Gain valuable exposure to advanced computer programming and abstraction techniques. Become knowledgeable about the many implementation methods used to build complicated, dynamic data structures. Harness powerful tools for understanding how the representation and efficiency of data can influence how effectively we can store it.
- Principles of data abstraction and modularity
- Object-oriented programming, fundamental data structures and data-directed design
- Recursion and recursive data structures (linked lists, trees, graphs)
- Programming language C++ basics
- Program Assignments (7)- 55%
- Midterm 1- 20%
- Midterm 2- 20%
- Section Participation- 5%
Programming assignments can be written on either Macintosh or Windows PC computers, using either XCode (on the Macintosh) or Visual Studio C++ (on the PC). More information on these two programming environments will be provided in separate handouts.
3.0 - 5.0
Students enrolling under the non degree option are required to take the course for 5.0 units.
Programming Methodology (Stanford Course: CS106A) or equivalent
We highly recommend watching the course preview to ensure you have the requisite background and understand the scope of material covered.