Computer Graphics
Computer graphics and vision are two directions on the exact same path: graphics turns numbers into an image, and vision turns an image back into numbers a program can reason about, and this entire topic is where the previous five topics converge on pixels specifically. An image, at the lowest level, is nothing more than the two-dimensional array the data-structures topic already covered, with each cell — a pixel — holding a handful of bytes that encode a color, the exact same kind of fixed-size numeric encoding the data-representation topic introduced early in this series. Geometry describes shapes and positions in space using the vectors and matrices the mathematics-for-computing topic worked through by hand: a 3D model is a collection of points connected into surfaces, and moving, rotating, or scaling that model is done by multiplying its points through a transformation matrix, the identical matrix-times-vector operation from that earlier topic, just repurposed to move a point through space instead of pushing a value through a neural network layer. Rendering is the process that turns a geometric scene into the actual grid of pixels a screen displays, and it is overwhelmingly the same calculation — figure out this pixel's color, given the scene — repeated independently for every single pixel on the screen, which is exactly the uniform, massively repeated workload the concurrency topic identified as a perfect fit for a GPU's thousands of simple cores running the same operation on different data at once. Image processing works in the opposite direction, starting from an existing image and transforming it: a filter like blurring or edge detection slides a small window across the pixel array and recomputes each pixel from its neighbors, the same sliding-window instinct a simple pattern-matching algorithm would use, applied directly to a grid of color values instead of a string of characters. Visual recognition is where the previous topic's neural networks meet this one directly: a convolutional neural network is trained, using the exact optimization process already covered, to recognize patterns in an image's pixel array — edges first, then shapes, then whole objects — layer by layer, which is precisely the "applying this network structure to images" that topic closed by promising. From a raw grid of bytes to a labeled object a program can act on, this entire pipeline — representation, geometry, rendering, processing, recognition — is built from nothing this series hasn't already introduced somewhere earlier, just aimed specifically at pixels, and the next topic, human-computer interaction, is what happens once a computer can both show something to a person and understand what it's looking at.