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
- Introduction to time and space complexity analysis
Note on Course Availability
This course is typically offered Autumn and Spring quarters.
The course schedule is displayed for planning purposes – courses can be modified, changed, or cancelled. Course availability will be considered finalized on the first day of open enrollment. For quarterly enrollment dates, please refer to our graduate certificate homepage.
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
Students coming to CS106B are expected to have substantial prior experience with programming constructs such as loops, functions/methods, arrays, console and file I/O, standard data types (integer, string, and floating point), and classes. In other words, students coming to CS106B are expected to know how to write code.