Courses / Computer Science / 5 units / CS 106B: Programming Abstractions
 

Programming Abstractions

CS 106B
5 units
June 26 - August 19, 2017

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

CS 106A (or equivalent). Please read notes below regarding enrollment.

Notes

  • CS 106B focuses on techniques for solving more complex problems than those covered in CS106A and for analyzing program efficiency. Its major topics are fundamental data types and data structures, recursive problem solving, graph algorithms, and basic algorithmic analysis. CS 106B assumes you have programming experience at the level of CS 106A, though you don’t necessarily have to have taken CS 106A in order to take CS 106B. If you’ve seen basic control structures (loops, if statements, etc.), variables, arrays, hash tables, and program decomposition, then you should be ready to take CS 106B.
  • Enrollment is limited. Priority given to Stanford students.¬†All interested students should enroll, but may be asked to drop on the first day of the quarter. Students who are interested in CS 106B/ENGR 70B should enroll in an alternative course in Axess, in case they are not selected to remain in the course.
  • Enrollment in a mandatory discussion section is done in class the first week, not in Axess.
  • Matriculated Stanford graduate students may enroll for 3, 4 or 5 units; everyone else must take the course for 5 units. All students do 5 units worth of work, including Stanford graduate students enrolled for 3 or 4 units.
  • This course is cross-listed as ENGR 70B.
  • The 5 unit version of this¬†course is offered as part of the Summer Intensive in Computer Science, and qualifies toward the Certificate of Completion in Computer Science. 3 or 4 unit enrollments will not qualify toward the Certificate. Enrolled units can be adjusted in Axess through the Final Study List deadline.

Syllabus

CS 106B/ENGR 70B Syllabus - 2013