Courses / Computer Science / 5 units / CS 106A: Programming Methodology

Programming Methodology

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

Introduction to the engineering of computer applications emphasizing modern software engineering principles: object-oriented design, decomposition, encapsulation, abstraction, and testing. Uses the Java programming language. Emphasis is on good programming style and the built-in facilities of the Java language. No prior programming experience required.


CS 106A has no prerequisites. Please read notes below regarding enrollment.


  • Most students interested in learning computer programming will start with CS 106A, including most future CS majors. This course focuses on fundamental concepts in computer programming (if statements, methods, arrays, etc.) that arise in many different programming languages. Although CS 106A is taught using the Java programming language, it is not designed as a class in standard Java programming.
  • 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 106A/ENGR 70A 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 student enrolled for 3 or 4 units.
  • This course is cross-listed as ENGR 70A.


CS 106A Syllabus - 2016