Artificial Intelligence
Artificial intelligence is the broad goal of getting a computer to solve problems that normally require intelligence, and machine learning is the specific, now-dominant approach to that goal: instead of a programmer hand-writing every rule, as the software-engineering topic described, a system learns its own rules directly from data. Search is the oldest classical-AI technique and a direct reuse of the algorithms topic's graph traversal: solving a puzzle or playing a game means navigating a huge space of possible next moves, exactly the same explore-and-backtrack idea behind a maze solver, just applied to a vastly larger and more abstract graph of possible game states instead of a physical grid. Reasoning is the other classical approach, applying explicit logical rules to known facts to derive new conclusions, directly extending the formal logic the discrete-mathematics and theory-of-computation topics already covered — if the rules and facts are complete enough, a reasoning system can prove new facts with certainty, but writing enough rules to cover a messy, real-world problem turns out to be extraordinarily hard, which is the exact gap machine learning was built to fill. Learning from data flips the entire approach: rather than hand-coding rules, a model is shown many examples and automatically adjusts its own internal parameters until it fits the patterns in that data, trading the certainty of hand-written logic for the ability to handle problems too complex or too fuzzy for anyone to write explicit rules for. Optimization is the mathematics-for-computing topic's calculus put directly to work: training a model means defining an error measurement and then using the derivative, exactly as the previous topic described, to repeatedly nudge the model's parameters a small step in whatever direction reduces that error, over and over, until the error stops shrinking. A neural network is the structure most modern machine learning trains this way: layers of simple units connected by weighted connections, where computing a prediction is literally the matrix multiplication the previous topic worked through by hand, chained across layers with a small nonlinear adjustment at each one — which is exactly why the GPU hardware the concurrency topic introduced, built from thousands of simple cores doing the same multiply-and-add on different data, fits training a neural network almost perfectly. None of search, reasoning, optimization, or neural networks replaced the others entirely; modern systems often combine them, and the next topic, computer graphics and vision, is one of the clearest places all of this comes together, training exactly this kind of network to recognize patterns in images instead of in rows of data.