Computer Science

Professor Steven J. Gortler, Director of Undergraduate Studies

“Computer science” has many meanings. Although the professional society for computer scientists is still called the Association for Computing Machinery, the discipline of computer science has less to do with how devices work than with the concepts behind what they do and how they do it. According to one popular but abstract definition, computer science is the study of algorithms: finitely specified, executable procedures for obtaining output values from input values. This definition embraces both the mathematical theory of algorithms (do algorithms for solving a problem exist and which is best?), and the more concrete study of the programming languages and machine architectures used in solving real problems with algorithms. Other definitions stress other features. For some computer scientists the data on which computations are performed are more fundamental than the computational processes themselves; they would define computer science as the study of the structure and transformation of information. Others would stress the craft of problem solving with computers—a craft involving techniques as rich and varied as the formal and exact methods of algorithm design, specification, and mathematical analysis. Still others would argue that computer science has no exclusive domain of its own, and that its importance comes from the problems to which it is applied.

The concentration in computer science is designed to educate students from several perspectives. Computer scientists must know basic mathematics, the lingua franca of all the quantitative sciences; they must understand something about the abstract models that describe universal computational phenomena; and they must have some knowledge of how computers are currently designed, programmed, and used. Concentration requirements are intended to ensure balanced programs with emphasis on subjects that will endure through rapid technological change. At the same time, they permit students to choose courses in computer science and related fields that reflect individual interests and preferences.

The Computer Science concentration has both basic and honors-eligible options. While students are advised to obtain the needed mathematical background early in their careers, failure to take Computer Science 50 until the sophomore year in no way precludes students from completing the honors-eligible program. The Computer Science concentration is administered by the School of Engineering and Applied Sciences and transfer between it and the School’s other concentrations, Applied Mathematics and Engineering Sciences, is ordinarily simple if the course requirements can be completed in time for graduation.


The Computer Science website contains current information on the Computer Science concentration, concentration requirements, and honors standards.

Basic Requirements: 10-12 half-courses

  1. Required courses:

    1. Basic mathematics (2-4 half-courses): Mathematics 1a and b (unless placed out) and Mathematics 21a and b or equivalent. Equivalents include Applied Mathematics 21a and b; Mathematics 23a and b; Mathematics 25a and b; Mathematics 55a and b; Mathematics 21a and 121.

    2. Theory (2 half-courses): Computer Science 121 and one of the following: another theory half-course in Computer Science (numbered in the 120s and 220s), Applied Mathematics 106, or Applied Mathematics 107.

    3. Systems (2 half-courses): Computer Science 50 and Computer Science 51.

    4. Technical electives (4 half-courses): Four additional half-courses in computer science. Statistics 110 and Applied Mathematics 106 ,107 and 121 may also count toward this requirement.

    Breadth: In order to ensure breadth in the program, the courses taken towards this requirement must include two half-courses in different subfields of computer science, as indicated by having middle digits taken from the following list: 4 (computer hardware), 5 (programming languages), 6 (systems), 7 (graphics), 8 (artificial intelligence). Computer Science 61 counts as a systems course towards this breadth requirement.

    1. Reading and research: No more than one Computer Science 91r is allowed towards satisfying this requirement.

  2. Tutorial: Optional. Available as Computer Science 91r (see item 5d).

  3. Thesis: None.

  4. General Examination: None.

  5. Other information:

    1. Approved courses: Courses other than those listed in the relevant sections may be used to satisfy the course requirements above subject to the express approval of the director of undergraduate studies. Students must secure approval for courses not listed above before filing their study cards.

    2. Pass/Fail: None of the courses used to satisfy concentration requirements may be taken pass/fail.

    3. Credit for prior work: No credit for prior work is typically given, though students with strong computer programming background (as evidenced for instance by excellent performance on the Computer Science Advanced Placement exam) may not need to take Computer Science 50 as part of the systems requirement. In these cases, the Computer Science 50 requirement is replaced by an additional technical elective.

    4. Reading and research courses: Computer Science 91r offers opportunities for study of material not covered in ordinary courses for individual or small group instruction and for pursuit of undergraduate research projects. This course is repeatable, but ordinarily not more than one term may be used for concentration credit.

    5. Plans of study: All course programs will be reviewed and approved individually by the Committee on Undergraduate Studies in Computer Science. It is the responsibility of every concentrator to file a departmental Plan of Study in the fall of the sophomore year and to keep this Plan of Study up-to-date. Departmental Plans of Study may be obtained from the Academic Office, Pierce 110.

Requirements for Honors Eligibility: 12-14 half-courses

  1. Required courses:

    1. Basic mathematics (2-4 half courses): Same as Basic Requirements.

    2. Theory (2 half-courses): Same as Basic Requirements.

    3. Systems (2 half-courses): Same as Basic Requirements.

    4. Technical electives (6 half-courses): Same as Basic Requirements, except that six half-courses are required and three are subject to the breadth requirement.

    In addition, up to three half-courses outside of the list in item 1d of the Basic Requirements may be taken towards satisfying this requirement provided that the courses are sufficiently technical and are contributory to a student’s senior thesis. Such exceptions are subject to the approval of the student’s adviser and the director of undergraduate studies in Computer Science; approval requires an approved thesis topic before the beginning of the senior year, so as to allow time for planning the integration of the thesis and courses.

  2. Tutorial: Same as Basic Requirements.
  3. Thesis: Optional but encouraged. See item 5f below for honors requirements. Students writing theses are often enrolled in Computer Science 91r.

  4. General Examination: None.

  5. Other information:

  6. a-e. Same as Basic Requirements.

    f. Degrees of honors: Recommendations for all honors are decided individually by vote of the Committee on Undergraduate Studies in Computer Science, taking into account the student’s course selection and achievement and other evidence of scientific achievement at an advanced level. Ordinarily a recommendation for High Honors requires superior performance in an ambitious set of advanced courses or an excellent thesis, and a recommendation for Highest Honors requires an outstanding thesis. For more detailed information, see the concentration website.

    g. Grade point average: Each level of honors requires a sufficiently high grade point average within the concentration, roughly in accord with those of the cohorts of students the College deems appropriate for receipt of honors.

    h. Joint concentrations: Joint concentrations with certain other fields are possible. This option is intended for students who have interests in the intersection of two fields, not simply in the two fields independently; for example, a combined concentration in computer science and linguistics might be appropriate for a student with a special interest in computational linguistics. Course requirements are the same as for the honors-eligible program, except that up to three technical electives may be replaced by courses in the other field, and Computer Science 91r may be used to fulfill the breadth requirement. A thesis in the intersection of the fields is required for joint concentrators, read by both concentrations. The student is typically awarded the minimum honors recommended by the two concentrations separately. Guidelines for such joint programs are available from the academic office, Pierce 110. Students interested in combined programs should consult the Director of Undergraduate Studies at an early date.

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 program are based on those of the computer science requirements for honors eligibility, except that:

Students pursuing the computational neuroscience track are assigned an adviser in the field and are expected to participate in the University-wide Mind, Brain, and Behavior research milieu, including a non-credit senior year seminar for Mind, Brain, and Behavior thesis writers. To participate in the MBB track, students must both complete the Computer Science concentration plan of study and register at the beginning of every academic year on the MBB website. Interested students should contact the Computer Science liaison to the MBB program, Professor Stuart Shieber (


Students interested in concentrating in Computer Science are urged to consult the director of undergraduate studies early and often for advice on placement in courses and selection among courses. The director of undergraduate studies is happy to talk with freshmen and sophomores about their Plans of Study and to answer questions. When a student enters the concentration mid-way through the sophomore year, the director of undergraduate studies assigns a professor to serve as the student’s faculty adviser. Every effort is made to match the student’s special interests to the expertise of the adviser. Students should consult their advisers regularly, certainly at the beginning of each term. When a faculty adviser is on leave, the student is temporarily reassigned to a new adviser. Students desiring a change of adviser for any reason should contact the director of undergraduate studies. The director of undergraduate studies is also available to discuss problems or questions of any kind with students in the concentration.


Announcements covering academic and nonacademic topics of interest to computer science undergraduates are distributed by email from the director of undergraduate studies or the Academic Office. Announcements cover information about new courses, announcements of talks about graduate school applications, job listings, and more. Concentrators receive these mailings automatically; others who would like to receive them should contact the director of undergraduate studies or the Academic Office.

For further information, students should consult the Academic Programs Administrator (Academic Office, Pierce Hall 110a, 617-495-2833); Marie Dahleh, Assistant Dean for Academic Programs (Pierce Hall 111, 617-495-1485;, or the Director of Undergraduate Studies, Steven Gortler (


Non-exempt areas:

Exempt areas:

Foreign Cultures

Quantitative Reasoning

†Historical Study A

Science A

†Historical Study B

ONE of the areas marked †.

†Literature and Arts A

ONE of the areas marked *.

Literature and Arts B


†Literature and Arts C


Moral Reasoning


* Science B


* Social Analysis


For more information on fulfilling the Core requirement, see the Core Curriculum Requirement.

All students—regardless of concentration—planning to graduate under the requirements of the Program in General Education must complete one letter-graded course in each of the eight categories in General Education. The Class of 2013 is the first to enter the College under these requirements. Students who entered Harvard College in September 2008 or earlier are expected to fulfill the requirements of the Core Curriculum, but will be permitted to switch to the Program in General Education if such a change is possible and advisable given their overall schedule and plan of study. For more information on the requirements of the Program in General Education and the possibility of switching to it, please see The Program in General Education in Chapter 2 and the General Education website.


Number of Concentrators as of December







Computer Science






Computer Science + another field






Another field + Computer Science