If you are interested in a major or minor in computer science, you should start with CS 151. We offer multiple sections of 151 that cover the same programming concepts but applied to different domains. As a result any of the 151 offerings will prepare you for the second course in the major, CS 205.

The versions of 151 offered in any semester will vary. Example domain topics are data science, digital humanities, and medicine. The programming projects for an offering of 151 will draw from problems in the specific domain for that section. In this way, you will learn programming and also be introduced to how programming is used within a domain.

If you have prior programming experience, you should consider beginning with CS 205. Please consult the department to help decide between 151 and 205. A student who scored 4 or 5 on the CS AP test should begin with 205.

If you are interested in exploring computer science but want a less intense introduction, the department offers some non-major courses which vary from term to term. CS 100 gives an overview of computing and introduces programming, CS 103 gives an introduction to network theory, CS 106 introduces how computing is applied to science, CS 109 lets you get creative with Arduinos, and CS 132 gives an introduction to engineering.

The department offers courses at the 200 and 300 levels in programming languages, theory, algorithms, artificial intelligence, operating systems, software design, and other topics. See the Computer Science chapter of the catalog for descriptions and prerequisites.

### Course plans

If you plan to graduate with a major in computer science, you should follow one of the plans described below. The key is to complete the first three courses (151, 205 and 225) in a timely manner. The rest of the curriculum offers more flexibility.

## If you start CS in Fall 2018 or later:

### CS major

**First Year**

- 151, Introduction to Computational Problem Solving
- 205, Data Structures

**Second Year**

- 225
- 221 Introduction to Computer Systems
- Math 232, Discrete Mathematics

**Third Year**

- 312 Algorithms
- A 200-level elective
- A 300-level elective

**Fourth Year**

- 322, Operating Systems
- A 300-level elective

### Alternative Spring Start

**First Year**

- 151, Introduction to Computational Problem Solving

**Second Year**

- 205, Data Structures
- 225,
- Math 232, Discrete Math

**Third Year**

- 221 Intro to Computer Systems
- 312 Algorithms
- A 200 -level elective

**Fourth Year**

- 322 Operating Systems
- 2 300-level electives

### Alternative Sophmore start

**Second Year**

- 151, Introduction to Computational Problem Solving
- 205, Data Structures
- Math 232, Discrete Math

**Third Year**

- 225
- 221 Intro to Computer Systems
- 312 Algorithms
- A 200-level elective

**Fourth Year**

- 322 Operating Systems
- 2 300-level electives

If you plan to study computer science in graduate school, you should consider a more accelerated and ambitious plan, like the one below. It includes courses that are important to the GRE, and prepares you with the necessary basics for an honors project.

### CS major with Honors

Read more about Honors in Computer Science...

**First Year**

- 151, Introduction to Computational Problem Solving
- 205, Data Structures

- Calculus I, II
- Discrete Math

**Second Year**

- 225
- 221 Intro to Computer Systems
- A 200-level elective
- A math course, such as Linear Algebra or Statistics 240

**Third Year**

- 312 Algorithms
- 322 Operating Systems

- 2 300-level electives
- Independent Study for preparation for honors.

**Fourth Year**

- 2 300-level electives
- Independent Study (8 credits of CS-395 for honors work and thesis)

## If you took CS 101 in Spring 2018 or earlier:

A student who plans to graduate with a major in computer science should follow the plan described below as "Computer Science Major" or "Computer Science Major (alternative)". The key is to complete the introductory sequence, 101, 201, 211 in a timely manner. The rest of the curriculum offers more flexibility. Note that Intro to Computer Systems and Data Structures can be taken in either order.

First Year 101 and 201 Object-Oriented Programming Calculus I or Discrete Math Second Year 211 Data Structures 221 Intro to Computer Systems 312 Algorithms Calculus I, II Third Year 322 Operating Systems 200 or 300-level electives Fourth Year 300-level electives

### CS major

**First Year**

- 101 and 201 Object-Oriented Programming
- Calculus I or Discrete Math

**Second Year**

- 211 Data Structures
- 221 Intro to Computer Systems
- 312 Algorithms
- Calculus I, II

**Third Year**

- 322 Operating Systems
- 200 or 300-level electives

**Fourth Year**

- 300-level electives

### Alternative Spring Start

**First Year**

- 101 Object-Oriented Programming
- Calculus I or Discrete Math

**Second Year**

- 201 Advanced Object-Oriented Programming
- 221 Intro to Computer Systems
- Calculus I or Discrete Math

**Third Year**

- 211 Data Structures
- 312 Algorithms
- 200 or 300-level electives

**Fourth Year**

- 322 Operating Systems
- 300-level electives

### Alternative Sophmore start

**Second Year**

- 101 and 201 Object-Oriented Programming
- Calculus I or Discrete Math

**Third Year**

- 211 Data Structures
- 221 Intro to Computer Systems
- 312 Algorithms
- 311 Theory of Computation

**Fourth Year**

- 322 Operating Systems
- 300-level electives

Students planning to graduate with honor should consider a more accelerated and ambitious plan. It includes courses that are important to the Graduate Record Examinations, should she choose to apply to graduate school, and prepares her with the necessary basics for an honors project.

### CS major with Honors

Read more about Honors in Computer Science...

**First Year**

- 101 and 201 Object-Oriented Programming
- Calculus I, II or Discrete Math

**Second Year**

- 211 Data Structures
- 221 Intro to Computer Systems
- 312 Algorithms
- Calculus I, II

**Third Year**

- 322 Operating Systems

- 334 Artificial Intelligence and/or
- 311 Theory of Computation
- 300 level elective
- Independent Study (4 credits of CS-395 for preparation for honors.)

- Complete honors proposal and have it approved

**Fourth Year**

**300 level electives****Independent Study (8 credits of CS-395 for honors work and thesis)**

## Explore the MHC Social Universe >