Abstraction and its relation to programming. Software engineering principles of data abstraction and modularity. Object-oriented programming, fundamental data structures (such as stacks, queues, sets) and data-directed design. Recursion and recursive data structures (linked lists, trees, graphs). Introduction to time and space complexity analysis. Uses the programming language C++ covering its basic facilities. Prerequisite: 106A or equivalent. Summer quarter enrollment is limited. Priority given to Stanford students.
Prerequisite
CS 106A/ENGR 70A (or equivalent)
Notes
- Enrollment is limited. Priority given to Stanford students.
- Enrollment in a mandatory discussion section is done in class the first week, not in Axess.
- This course is offered as part of the Summer Intensive in Computer Science, and qualifies toward the Certificate of Completion in Computer Science.
- Stanford graduate students (with instructor approval) may choose to enroll in this course for 3-5 units. All other students must enroll in this course for 5 units.
- This course is cross-listed as CS 106B.