This unit expands foundational computing skills into a broad set of algorithmic design patterns and data structures used to solve real-world problems. Students explore divide-and-conquer, greedy and dynamic programming, randomized and heuristic methods, graph algorithms, streaming and distributed paradigms (MapReduce), and practical tools (notebooks, PageRank, basic cryptography) to prepare for applied projects in subsequent units.
Leave a Reply