Planning, Degrees, & Courses

The Computer Science curriculum is designed to offer students a great deal of flexibility — with time for related study and for outside opportunities, from sports to clubs to hobbies.

You can combine your studies with other fields, including mathematics, physics, economics, psychology, and linguistics.

If you are eligible for advanced standing on the basis of AP tests you took before entering Harvard, you can consider the more intensive A.B. / S.M. option.

In addition to these web pages, the Unofficial Guide to Computer Science @ Harvard has a great deal of useful data and information about the program.

Planning

Placement

Most students start with CS50, even if they have had an AP course in Computer Science. The course is designed to accommodate both students who are starting from scratch and students with prior programming experience. However, some students have sufficient programming background to skip CS50 and start with CS51 or CS61. See the CS50 FAQs for more advice, or consult the Director of Undergraduate Studies.

Students should consult with the Mathematics Department, Chemistry Department, and Physics Department for advice about appropriate placement in courses in those departments.

CS20, Discrete Mathematics for Computer Science, teaches the mathematics needed for later computer science courses that is not covered in the calculus and linear algebra sequence in Mathematics and Applied Mathematics. Many students will not need to take CS20, but students with no background in writing mathematical proofs should consider taking this course. Check the CS20 web site for more information about whether to take CS20 before taking the more advanced theory courses (CS121 and CS124).

Degree Programs

All undergraduates in Computer Science at Harvard are candidates for the Bachelor of Arts degree (A.B.).

Basic A.B. Program

The basic degree requirements are twelve half-courses in mathematics, theoretical computer science, computer software, and other areas of computer science. Math courses cover calculus and linear algebra. Students who place out of part or all of the introductory calculus sequence, Mathematics 1ab, reduce their concentration requirements to 11 or 10 half-courses.

Courses in theoretical computer science cover formal models of computation. Courses in computer software include the introductory sequence and courses on systems programming. Courses in other areas include courses such as computer architecture, programming languages, natural language processing, and computer graphics. In order to ensure breadth in the program, a plan of study must include courses in different subfields of computer science.

See the Fields of Concentration page for full details.

Honors A.B. Program

To be eligible to graduate with honors, students must be recommended for honors by their concentration program, and also satisfy certain College-wide requirements documented in the Handbook for Students. To be recommended for honors in Computer Science, students must have a high grade point average and must also fulfill a more demanding course program than the basic program. The honors program requires 14 half-courses instead of 12 (12 instead of 10 for students who place out of Mathematics 1ab). The honors program also requires greater breadth within Computer Science (see the Fields of Concentration for the details).

Recommendations for all degrees of honors are decided individually by vote of the Computer Science faculty based on the student's academic and scientific achievements. Ordinarily a recommendation for Honors requires a concentration GPA of at least 3.5 in the courses on the student's Computer Science study plan, a recommendation for High Honors requires a concentration GPA of at least 3.75 and an excellent thesis, and a recommendation for Highest Honors requires a concentration GPA of at least 3.85 and an outstanding thesis.

Joint Concentration

It is possible to concentrate jointly in Computer Science and another field. However a joint concentration is not a “double major.” The two fields must overlap in a way that will enable the candidate to write a senior thesis acceptable to both departments. Most joint concentrations with Computer Science are with Mathematics, though other combinations are possible. See the Fields of Concentration for more information.

The Mind, Brain, and Behavior Program

Students interested in addressing questions of neuroscience and cognition from the perspective of computer science may pursue a special program of study affiliated with the University-wide Mind, Brain, and Behavior Initiative, that allows them to participate in a variety of related activities. (Similar programs are available through the Anthropology, History and Science, Human Evolutionary Biology, Linguistics, Neurobiology, Philosophy, and Psychology concentrations.) Requirements for this honors-only program are based on those of the computer science Requirements for Honors Eligibility.  See the Fields of Concentration for more information.

A.B./S.M. Option

Students who are eligible for Advanced Standing on the basis of A.P. tests before entering Harvard may be able to apply for admission to the S.M. program of the Graduate School of Arts and Sciences and graduate in four years with both a bachelor’s and master’s degree (not necessarily in the same field). More information about the Advanced Standing program at Harvard is available from the Advising Programs Office. Students should consult both the Director of Undergraduate Studies and their Allston Burr Resident Dean about the advisability of pursuing this option, which is very demanding and may preclude other educational opportunities.

Secondary Field

Information technology and computation has had a profound impact on many aspects of society, health care, and the scientific disciplines. As such, a foundation of formal training in Computer Science can benefit undergraduate concentrators in many fields of the natural sciences, social sciences, and humanities. To provide this training, a secondary field in Computer Science requires that students concentrating in other fields take four courses in Computer Science numbered greater than or equal to 50, excluding CS 91r. College-wide rules stipulate that one, but not more than one, half-course may count toward both the concentration and the secondary field.

See the Student Handbook for more information.

Courses

SEAS offers undergraduate and graduate courses in Computer Science. SEAS faculty also offer several Freshman Seminars. Many additional courses of interest to concentrators can be found in the Applied Mathematics, Engineering Sciences, Mathematics, Physics, and Statistics sections of the my.harvard course catalog.

Sample Schedules for Concentrators

Below are some suggested paths for the freshman and sophomore years in the Computer Science concentration. There are many possible pathways through the degree. Interested students should consult with the Director of Undergraduate Studies for guidance.

A.B. Degree (Basic Track)

Schedule 1 - Student has no advanced placement credit for mathematics or computer science.

 

Year Fall Courses Spring Courses
Freshman Year
  • Math 1a
  • CS 50 (Introduction to Computer Science I)
  • Math 1b
  • CS 20
Sophomore Year
  • CS 121 (Introduction to Formal Systems and Computation)
  • Math 21b
  • CS 51 (Introduction to Computer Science II)

A student who takes all of Math 1a, Math 1b, Math 21b, and CS 20, need not also take Math 21a.

Schedule 2A - Student places out of Math 1a.

Year Fall Courses Spring Courses
Freshman Year
  • Math 1b
  • CS 50 (Introduction to Computer Science I)
  • CS 20
  • CS 51 (Introduction to Computer Science II)
Sophomore Year
  • Math 21 a
  • CS 121 (Introduction to Formal Systems and Computation)
  • Math 21 b

Schedule 2B - Student places out of Math 1a and Math 1b.

Year Fall Courses Spring Courses
Freshman Year
  • Math 21a
  • CS 50 (Introduction to Computer Science I)
  • Math 21b
  • CS 51 (Introduction to Computer Science II)
Sophomore Year
  • CS 121 (Introduction to Formal Systems and Computation)
 

Schedule 3 - Student starts in sophomore year.

It is possible for a student to start in CS 50 in the sophomore year. Any of the above schedules could be changed to have CS 50 in the second year. As an example, see a revised version of schedule 1 shown below:

Year Fall Courses Spring Courses
Freshman Year
  • Math 1a
  • Math 1b
Sophomore Year
  • Math 21a
  • CS 50 (Introduction to Computer Science I)
  • Math 21b
  • CS 51 (Introduction to Computer Science II)
Junior Year
  • CS 121 (Introduction to Formal Systems and Computation)
 

With this schedule, a student would want to take additional CS classes in the fall
and spring of the junior year.

Advanced /Honors Students

Students whose background in both mathematics and computer science is unusually strong may want to take a course other than CS 50 for the first term. There are three recommended alternatives. The first is CS 61, Programming and Machine Organization.

The second is CS 121, the basic course in the theory of computation. This is recommended for students who are mathematically inclined and is required for all CS concentrators. The second alternative is CS 141, Computing Hardware. This is recommended for students who are inclined to experimental systems. A possible schedule is:

Schedule 4 - Advanced Students

Year Fall Courses Spring Courses
Freshman Year
  • Math 21a
  • CS 61 (Programming and Machine Organization)
  • CS 121 (Introduction to Formal Systems and Computation) OR CS 141 (Computing Hardware)
  • CS 51 (Introduction to Computer Science II)
Sophomore Year
  • CS 121 (Introduction to Formal Systems and Computation) - if not taken as a freshman OR Technical Elective
  • Technical Elective

Schedule 5 - Honors Students

The recommended program is similar for the freshman and sophomore years (Schedules 1–3). As mentioned, the Honors track has an additional two technical electives over the Basic concentration. A student who is considering the Honors program should consider taking a technical elective in the spring of the sophomore year.

Popular Study Cards for Concentrators and Secondaries

The Unofficial Guide to Computer Science @ Harvard contains some sets of courses suitable for concentrators and secondaries, based on your potential interests. Plenty of other combinations are possible!