Jeff Avery


CS Course Paths

Back in May, we recorded a video for incoming students on which CS courses to take. This post is a followup to that video.

Math and CS students are both expected to take CS courses in their first two terms. There are multiple CS courses available. As a new student, which ones should you take?

There are three main paths:

  1. Computing minor course path: recommended for Math students, or students pursuing a Computing minor.
  2. Regular CS course path: recommended for CS majors, or Math students who want a more challenging path. Note that courses above CS 245/246 are only available to CS students.
  3. Advanced CS course path: for CS students who want the most advanced courses at each level.

Computing Minor Course Path

This course path is recommended for non-CS students. You start with a slightly slower progression, which swaps CS 115 for CS 135, and also introduces a Python programming course, CS 116. You can then optionally continue to CS 136, CS 245 and CS 246.

If you are not a CS student, you could continue with recommended courses for the computing minor. CS students should be following the regular CS course path after first year.

---
title: Computing Minor Courses
config:
    theme:
        neutral
---
flowchart TD
    cs115
    cs116

    cs115 --> cs116
    cs116 -.-> cs136
    cs136 -.-> cs245
    cs136 -.-> cs246

Regular CS Course Path

The regular course path is what we recommend for most Computer Science students. You take the major versions of all CS courses, and you take them in the recommended sequence.

---
title: Standard CS courses
config:
    theme:
        neutral
---
flowchart TD
    cs115
    cs116
    cs135
    cs136
    cs245
    cs246
    cs251
    cs240
    cs241
    cs341
    cs350 

    cs115 --> cs116
    cs116 --> cs136
    cs135 --> cs136
    cs136 --> cs245
    cs136 --> cs246
    cs136 --> cs251
    cs245 --> cs240
    cs246 --> cs240
    cs246 --> cs241
    cs240 --> cs341
    cs245 --> cs341
    cs240 --> cs350
    cs241 --> cs350
    cs246 --> cs350
    cs251 --> cs350

Advanced CS Course Path

We also offer advanced versions of first and second year CS courses that are available for students who want more challenging content. These are not required, and are really intended for students that already have a high degree of knowledge in CS. The prerequisites for these courses are relaxed, since these courses may only be offered occasionally.

Note that taking one or more of these courses does not commit you to continue taking advanced courses; you can always take the regular versions of any of these if you choose (and many students will mix/match regular and advanced courses based course availability).

---
title: Advanced CS courses
config:
    theme:
        neutral
---
flowchart TD
    cs145
    cs146
    cs136
    cs240e
    cs241e
    cs245e
    cs246e
    cs251
    cs341
    cs350

    cs145 --> cs146
    cs145 --> cs136
    cs136 --> cs240e
    cs136 --> cs241e
    cs136 --> cs251
    cs146 --> cs240e
    cs146 --> cs241e
    cs146 --> cs251
    cs136 --> cs245e
    cs146 --> cs245e
    cs136 --> cs246e
    cs146 --> cs246e
    cs240e --> cs341
    cs245e --> cs341
    cs240e --> cs350
    cs246e --> cs350
    cs251 --> cs350