Advanced topics in graph algorithms. Covering a mix of theoretic algorithm improvements, novel frameworks, and careful performance tuning, this course focused exclusively on running common graph algorithms on extremely large data sets. Students read and presented on a wide variety of papers and completed a final project.
17.42 Causes and Prevention of War
- 21G.304 French IV
This class covered a wide variety of very niche datastructures, including: retroactive and cache-oblivious datastructures, van Emde Boa trees, range trees, splay trees, among many even more obscure structures.
21G.303 French III
This class builds on 6.006 and covers the following topics: the fast fourier transform, union-find, minimum spanning tree, max flow/min cut, linear programming, perfect hashing, gradient descent optimization, and further dynamic programming techniques. - 6.033 Computer Systems Engineering - 6.041 Probability - 21M.301 Harmony and Counterpoint - 21G.302 French II
Before taking this class, I already had two serious attempts at writing my own operating system. I spent a lot of time learning the intricate details of the x86 IBM PC boot process, but did not get to many of the core ideas of what constitutes an operating system.
This class had a variety of fascinating readings. However, at the core this was a project class. The staff had written xv6, a very small early Unix clone, and for this class they had removed several key components. Each of the labs involved reimplementing one of the following key features: the virtual memory subsystem, the transition between privilege levels, the systemcall interface, a simple process scheduler, a rudimentary journaling filesystem, and an intel network interface driver (where the actual TCP processing was provided by a userspace driver that used an existing network library)
Covered basic computer science topics such as asymptotic time complexity, basic data structures (vectors, balanced binary trees, heaps, hashtables), dynamic programming, and basic graph algorithms (BFS/DFS, Djikstra's, Single Source Shortest Path).
- 6.009 Fundamentals of Programming
- 21G.301 French I
- 6.01 Introduction to EECS
- 6.042 Discrete Mathematics
- 8.02 Physics - Electromagnetism
- 7.013 Introductory Biology
- 8.01 Physics - Kinematics
- 18.022 Advanced Multivariable Calculus
- 24.00 Introductory Philosophy
- 3.091 Solid-state Chemistry