Welcome! 👋

This is an archive of my online notes on Computer Vision, Computer Graphics and Deep Learning!

Computer Systems III: Computer Architecture

Part III of the Computer Systems series: computer architecture (basic organization, instruction set architecture and MIPS32, performance and Amdahl’s law, design of the control unit, the MIPS32 datapath, SRAM and DRAM, memory interfacing and interleaving, the memory hierarchy and cache memory, I/O organization with interrupts and DMA, buses and USB, pipelining and pipeline hazards, instruction-level parallelism with dynamic scheduling and speculation, vector processors and SIMD extensions, the roofline model, multithreading, multicore processors and cache coherence).

November 3, 2026 · 131 min · Utkarsh Sharma

Computer Systems II: Operating Systems

Part II of the Computer Systems series: operating systems (dual-mode operation, system calls, processes, the PCB, scheduling queues and schedulers, context switches, process creation and termination, threads, CPU scheduling algorithms, deadlocks with the Banker’s algorithm and deadlock detection, process synchronization, the classic synchronization problems, memory management, paging and virtual memory, multi-level page tables, frame allocation and thrashing, memory-mapped files, kernel memory allocation (buddy system and slab allocation), disk structure, scheduling and management, directory structures, file allocation methods and free-space management).

November 3, 2026 · 152 min · Utkarsh Sharma

Computer Systems I: Digital Electronics

Part I of the Computer Systems series: digital electronics (Boolean algebra, duality, canonical forms, K-maps, NAND/NOR implementation, hazards), decoders, encoders and multiplexers, number systems and codes, number representation, adders, multiplication and Booth’s algorithm, IEEE 754 floating point, latches and flip-flops, registers, counters and state machines.

November 3, 2026 · 67 min · Utkarsh Sharma

Foundations of Physically Based Differentiable Rendering

Differentiable rendering techniques for computer graphics and vision

July 23, 2026 · 147 min · Utkarsh Sharma

Introduction to 3D Rendering

3D rendering from first principles: transforms, camera and projection, ray generation, intersections, shading, ray tracing, path tracing, and signed distance functions.

April 30, 2026 · 80 min · Utkarsh Sharma

A comprehensive look into the Importance Sampling and Path Guiding for Path Tracing

Exploring the Importance Sampling Techniques to reduce variance in Monte Carlo Path Tracing

December 22, 2025 · 2 min · Utkarsh Sharma

3D Reconstruction with 3DGS, NeRF, and Their Variants

An in-depth look at modern 3D reconstruction methods such as 3DGS and NeRF, comparing their architectures, strengths, and performance in diverse applications.

November 22, 2025 · 51 min · Utkarsh Sharma

Bagging and Boosting

Explore bagging and boosting in machine learning, including variance reduction, bias management, and ensemble classifier construction

November 8, 2025 · 9 min · Utkarsh Sharma

Bias–Variance Tradeoff

Understanding how bias and variance affect model performance

November 8, 2025 · 10 min · Utkarsh Sharma

Vision Transformer (ViT) - Architecture and Implementation

Understanding how transformers use scaled dot-product attention with multiple heads to process sequential data efficiently

November 4, 2025 · 19 min · Utkarsh Sharma