20. Course Review  Summary and Q&A
TL;DR
This lecture provides an overview of the topics covered in 6.006, such as problemsolving, correctness and efficiency, data structures, graph algorithms, dynamic programming, and more.
Questions & Answers
Q: What are the three main goals of 6.006?
The three main goals are to solve hard computational problems, argue correctness, and argue efficiency.
Q: What are the three units of content covered in 6.006?
The three units are data structures, graph algorithms, and dynamic programming.
Q: What are some examples of extensions to the material covered in 6.006?
Some extensions include randomization, numerical approximation, and approximation algorithms.
Q: What is the significance of the cache model in changing the model of computation?
The cache model accounts for the hierarchy of memory and the costs associated with accessing different levels of memory, leading to more realistic analysis of algorithms.
Q: How does parallel computing change the model of computation?
Parallel computing allows for multiple CPUs to work together, potentially leading to faster computations, but also introduces challenges related to memory access and coordination.
Summary & Key Takeaways

The lecture begins by discussing the goals of 6.006, which include solving computational problems, arguing correctness, and efficiency.

The content covered can be divided into three units: data structures, graph algorithms, and dynamic programming.

The lecture also mentions the importance of randomization, numerical approximation, and approximation algorithms as extensions to the material in 6.006.