1 of 6

Choosing Computer Science Courses

Mehran Sahami

Associate Chair, Computer Science Dept.

Autumn 2022

2 of 6

Introductory CS Courses at Stanford

CS106M

Additional enrichment material

(50 students/year)

Main Introductory Track

“Terminal” General Education Track

CS105

Introduction

to Computers

(150 students/year)

OPTIONAL

1 unit adjunct class

CS106A

Programming Methodology

(1500 students/year)

CS106B

Programming Abstractions

(1200 students/year)

3 of 6

CS106B and CS106M

  • CS106B: 5 unit follow-up class to CS106A
    • Offered every quarter (Autumn, Winter, Spring, Summer)
  • CS106M: Additional material to augment CS106B
    • For students with strong prior programming background
      • Additional (advanced) material and more challenging projects
    • CS106M provides 1 additional unit of credit
    • Offered only in Autumn quarter
  • Taking CS106B alone will prepare you well for follow-up classes
    • CS106M is purely optional (not taken by most students)
    • The material covered is not expected in later classes

4 of 6

Where Should You Start?�Consider Your Background

  • No/light previous programming (many students start here)
  • Limited previous programming (e.g., written “short” programs)
  • AP exam: CS Principles, score 4 or 5
  • AP exam: CS A, score 4 or 5
  • No AP, significant previous programming experience
  • Extensive prior experience and/or multiple prior CS classes
  • Just want to satisfy “Ways” and know that will be all you’ll take

CS106A

CS106A

CS106A

CS106B (+M)

CS106B (+M)

CS106B (+M) or CS107

CS105 or 106A

5 of 6

What If I’m Still Not Sure�Where I Should Start?

  • If you’re still not sure which CS class you should start with, consider the following:
    • Pick what you think might be the best class for you to start in.
    • Go to the first day of lecture for that class. The introductory CS instructors often discuss different class options in the first lecture.
    • If you’re still not sure, talk with the instructor of the class you went to after class and they can give you more guidance.

6 of 6

Why Take a Computer Science Course?

  • Considering any lab science or engineering major
  • Considering computing-related major (Computer Science, Symbolic Systems, Math & Computational Science, etc.)
  • Satisfy “Ways” requirement

any CS106

any CS106

CS105 or any CS106