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.
All undergraduates in Computer Science at Harvard are candidates for the Bachelor of Arts degree (A.B.). 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.
See the Resources page for more guides and information about the 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 linear algebra, single variable calculus and multilinear calculus and/or probability/statistics. 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 and algorithm design. 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, machine learning, and computer graphics. In order to ensure breadth in the program, a plan of study must include courses in different subfields of computer science.
There are two types of honors for undergraduates: Latin honors (summa, magna, cum laude) are determined by the College and English honors (highest honors, high honors, honors) are determined by concentrations. (See this page for more information about requirements for Latin honors.)
To receive English 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. There are several honors tracks within Computer Science:
The standard 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 this table as well as the handbook entry for the details).
Joint Concentrations and the Mind, Brain, and Behavior Program are also part of the honors track.
All levels of English honors in Computer Science are decided individually by vote of the Computer Science faculty based on the student’s academic and scientific achievements. For high honors and highest honors a (strong) thesis is required as well.
English honors requirements: Ordinarily, honors in Computer Science requires a concentration GPA of at least 3.5 in the courses on the student’s Computer Science study plan; high honors in Computer Science requires a concentration GPA of at least 3.75 and an excellent thesis; and highest honors in Computer Science requires a concentration GPA of at least 3.85 and an outstanding thesis.
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. This is an honors track program: students with a joint concentration are eligible for English Honors. The student is typically awarded the minimum honors recommended by the two concentrations separately. These requirements, including the thesis requirement, are the same whether Computer Science is the primary field or the allied field of the joint concentration.
Course requirements are the same as for the Requirements for Honors Eligibility, except that only three technical electives are required. These three technical electives must satisfy the breadth requirement as stated in Breadth Requirement, with the further provision that one semester of Computer Science 91r may be used to satisfy the breadth requirement for joint concentrations. Such courses may also be double-counted towards the requirements of the other field.
Students interested in combined programs should consult the Director of Undergraduate Studies at an early date and should work carefully with both concentrations to ensure all deadlines and requirements of both concentrations are met. Students with separate interests in more than one field should consider a secondary rather than a joint concentration, or simply using some of their electives to study one of the fields. We advise all our joint concentrators to make sure that they satisfy the non-joint requirements for at least one concentration, in case they are unable to complete a thesis.
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 handbook entry for more information and also Frequently Asked Questions about the MBB Track. This is an honors track program: students are eligible for English Honors.
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 Office of Undergraduate Education. 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.