Skip to content

Computer Science Requirements

Chair: Prasad Jayanti

Associate Chair: Hany Farid

Professors T. H. Cormen, R. L. Drysdale III, H. Farid, P. Jayanti, D. F. Kotz, D. Rockmore, P. Winkler; Associate Professors C. J. Bailey-Kellogg, A.T. Campbell, L. Fleischer, S. W. Smith; Assistant Professors D. Balkcom, A. Chakrabarti, F. Pellacini, A. J. Zomorodian; Instructor K. M. Forbes-Riley; Senior Lecturer C. E. Heckman; Research Associate Professor P. Thompson; Research Assistant Professors J. C. Ford, L. Loeb, L. Torresani; Visiting Associate Professor H. Jonsson; Adjunct Professors E. Demidenko, E. Feustel, R. H. Granger, F. Makedon, M. D. McIlroy, W. M. McKeeman, E. Santos; Adjunct Associate Professor C. S. McDonald.

INTRODUCTORY COURSES

Students wishing to devote one course to the study of computer science may choose Computer Science 4 or 5, depending on their background and interests. Students wishing to devote two or more courses to the study of computer science should begin with Computer Science 5 and 8. Students wishing to take courses in Digital Arts should start by taking Computer Science 2, 4, or 5.

MAJOR IN COMPUTER SCIENCE

The major in computer science is intended for those students who plan careers in computer science or in fields that make use of computing, for those who plan graduate study in computer science, and also for those who simply find computer science interesting. Undergraduates majoring in computer science will have opportunities to participate with faculty in activities outside formal coursework. These activities include assisting in courses, writing a thesis or doing a project under the guidance of a faculty member, and assisting a faculty member in research or in a programming project.

To fulfill the major in computer science, a student must complete the courses prerequisite to the major and satisfy the requirements of the major. For additional requirements for the Honors Program see the section ‘The Honors Program in Computer Science’ below.

Students planning advanced work in computer science should start by taking Computer Science 5. Normally, the next courses taken are Computer Science 8 and Computer Science 19, taken in either order or concurrently. Prerequisites for most upper-level courses are drawn from these two courses, along with Computer Science 23 and Computer Science 37. Computer Science 23 may be taken any time after Computer Science 8, and Computer Science 37 may be taken any time after Computer Science 5.

REQUIREMENTS FOR THE COMPUTER SCIENCE MAJOR

Prerequisite courses: A student must complete Computer Science 5, 8, and 19, or the equivalent honors or advanced placement course. (Mathematics 19 may substitute for Computer Science 19.)

Requirements: A student who wishes to major in Computer Science must obtain approval of her or his program of study from the Departmental Undergraduate Advisor. To complete the major, it is necessary to pass at least nine courses in addition to taking the three prerequisite courses. Among these nine courses must be the following:

1. Computer Science 23;

2. Computer Science 25;

3. Computer Science 37;

4. Computer Science 39;

5. Computer Science 58 or 78;

6. One of the following courses: Mathematics 20, 22, 25, 26, 28, 31, 38, 39, 40, 46, 50, 56, or their honors equivalent; Computer Science 16, 36;

7. Two other Computer Science courses numbered from 33 to 38 or from 43 to 88. These may include 58 or 78, if not used to satisfy requirement 5, and 36, if not used to satisfy requirement 6;

8. Computer Science Culminating Experience Course (two terms of Computer Science 98) or Thesis (Computer Science 97).

MINORS IN COMPUTER SCIENCE

The Computer Science and Operations Research minors are available to all students who are not majoring in Computer Science and who do not have a modified major with Computer Science. The Digital Arts minor is available to students majoring in Computer Science. Students may modify the Computer Science major with Digital Arts. For each minor, the prerequisites and required courses are listed below. Approval of a minor can be obtained through the Undergraduate Advisor.

I. Computer Science

Prerequisites: Computer Science 5, 8, and 19. (Mathematics 19 may substitute for Computer Science 19.)

Courses: Computer Science 23, 25, 37; any one of Computer Science 39, 48, 58, 68, 78, or 85; plus one other Computer Science course numbered from 33 to 38 or from 43 to 88.

II. Digital Arts

Prerequisites: Computer Science 2, 4, or 5.

Courses: Computer Science 22, 32, 42; one of Film Studies 31, Film Studies 35, Film Studies 38, Studio Art 16, Studio Art 29, Theater 30; and one other course from the following list: Film Studies 31, Film Studies 35, Film Studies 38, Studio Art 16, Studio Art 29, Theater 30, Computer Science 12, Computer Science 52, Computer Science 82, Psychology 21.

III. Operations Research

Prerequisites: Mathematics 3, 8, 13, and Computer Science 19. (Mathematics 19 may substitute for Computer Science 19.)

Courses: Computer Science 16, 25; Mathematics 20, 22; and one of Mathematics 38 or 88 or Computer Science 85 with approval of the Undergraduate Advisor.

THE HONORS PROGRAM IN COMPUTER SCIENCE

For completion of the Honors Program in Computer Science, and to be eligible to graduate with Honors or High Honors, a student must complete either an independent study project or a written thesis (for High Honors the thesis is required), and have his or her program of study approved as an Honors Program by the Undergraduate Advisor. In addition, the recommendation of the thesis/project advisor to award Honors or High Honors must be ratified by a departmental vote. College requirements for the Honors Program are discussed elsewhere. The Honors project is undertaken by a student under the guidance of a faculty member. Usually the subject of the project or thesis will be motivated by the concepts or content of an advanced course taken as a part of the student’s major, and will normally be completed over a period of two or three terms. A variety of activities, such as participation in a department seminar, can lead to a project or thesis. Student suggestions for both projects and theses are welcome. The student should consult with his/her prospective project advisor and submit to the Undergraduate Advisor a brief written proposal of the project that has the written approval of the project advisor. The Undergraduate Advisor will review the student’s proposal and the courses that have been selected for the Honors major. Approval of the proposal and course selection will constitute formal admission into the Honors Program. This procedure is normally completed before the end of fall term, senior year. The student may then register for (at most two terms of) Computer Science 97, Honors Thesis Research.

Admission to the Honors Program requires a general College average of B, and a B average in the major at the time of admission and at the time of graduation. Moreover, a B+ average is required in the work of the Honors project/thesis. The B average in the major is determined as follows: Courses prerequisite to the major are not counted, but all other courses used as part of the major are counted, as are all courses titled Computer Science (beyond prerequisites, excluding 97), including courses cross-listed with Computer Science. Note that in the case of modified majors, courses used as part of the major may include courses from other departments. The B+ average required in the work of the Honors program is defined to be a grade of B+ given by the thesis/project advisor on the thesis or project. Questions about this requirement should be addressed to the Departmental Undergraduate Advisor.

PREGRADUATE STUDY IN COMPUTER SCIENCE

Most graduate departments of computer science require applicants to take the Graduate Record Examination in Computer Science. This examination primarily covers material in Computer Science 5, 8, 19, 23, 25, 37, 39, 58, and 68, plus material in Engineering Sciences 31. Those considering graduate school should take many of these courses. Less emphasis is placed on material in Computer Science 33, 44, 48, 52, and 78, and the various advanced topics covered in Computer Science 85 and 88 (although advanced topics are very good preparation for graduate study). Material from mathematics courses related to computer science, such as those fulfilling requirement 6 of the Computer Science major, may appear on the examination, though it is hard to recommend any particular mathematics course over the others. This examination is only one part of an application for graduate school. Letters of recommendation, particularly from professors who know you well through an advanced class or work on a project, usually are given more weight.

MODIFIED MAJORS

Many students have created modified majors with Computer Science being either the primary or the secondary part. Particularly common modified majors are with engineering, mathematics, or economics, but modified majors with philosophy, music, film studies, psychology, physics, geography, studio art, and many other subjects have been approved.

A modified major with Computer Science as the primary part must satisfy the first three requirements of the Computer Science major, one of requirements 4 and 5, and both of requirements 7 and 8. Students should discuss their plans with the Department’s Undergraduate Advisor to ensure a coherent major.

A modified major with Computer Science as the secondary part normally contains Computer Science 23, 25, and 37, and must contain at least two of these courses.

THE COMPUTER SCIENCE MAJOR MODIFIED WITH DIGITAL ARTS

The Computer Science major modified with Digital Arts requires satisfying most of the requirements of the computer science major, along with four courses from the Digital Arts minor. The prerequisites are Computer Science 5, 8, 19. (Mathematics 19 may substitute for Computer Science 19.) The requirements are as follows:

1. Computer Science 23;

2. Computer Science 25;

3. Computer Science 37;

4. Computer Science 52;

5. Two of the following:

a) Computer Science 39;

b) Computer Science 58 or 78 (but not both);

c) Computer Science 36;

d) Computer Science 82;

6. Computer Science 22;

7. Computer Science 32;

8. Two of the following courses: Film and Television Studies 31, 35, 38; Studio Art 16, 29; Theater 30; Computer Science 12, 42; Psychology 21;

9. Computer Science Culminating Experience Course (two terms of Computer Science 98) or Thesis (Computer Science 97).

THE COMPUTER SCIENCE MAJOR MODIFIED WITH ENGINEERING

The Computer Science major modified with engineering requires satisfying most of the requirements of the computer science major, along with four engineering courses related to computer science. The prerequisites are Computer Science 5, 8, 19 (Mathematics 19 may substitute for Computer Science 19); Mathematics 3, 8, 13; and Physics 13, 14. The requirements are as follows:

1. Computer Science 23;

2. Computer Science 25;

3. Computer Science 37;

4. One of Computer Science 39, 58, or 78;

5. Two other Computer Science courses numbered from 33 to 39 or from 43 to 88. These may include 39, 58, or 78 if not used to satisfy requirement 4; they may not include Computer Science 47, which is identical to requirement 7 (Engineering Sciences 31);

6. Engineering Sciences 22;

7. Engineering Sciences 31;

8. Engineering Sciences 62 or 63;

9. Engineering Sciences 26, 32, 61, 62, 63 or 91. (The same course cannot satisfy both 8 and 9).

10. Computer Science Culminating Experience Course (two terms of Computer Science 98) or Thesis (Computer Science 97).

GRADUATE STUDY IN COMPUTER SCIENCE

The Department of Computer Science offers programs leading to the Ph.D. and M.S. degrees in Computer Science. Each is described below.

REQUIREMENTS FOR THE DOCTOR’S DEGREE (PH.D.)

During the first two years, the students take a set of core graduate courses, topics courses, research seminars, and begin to become involved in research projects. In the third year and beyond, the main activities will be research and participation in seminars and topics courses.

The requirements for the Ph.D. degree in Computer Science are as follows:

1. Admission to the degree program by an admissions committee of the Computer Science faculty.

2. Completion of a course of study that includes:

(a) Computer Science 105, 107, 108, and 118.

(b) Two of Computer Science 104, 106, and 109. If 109 is not taken then Computer Science 39 must be taken, unless the departmental advisor to Ph.D. students certifies that the student has taken an equivalent course elsewhere.

(c) Two advanced topics courses numbered between 181 and 188.

(d) Two additional courses, which may be chosen from advanced topics courses numbered between 181 and 188, the courses Computer Science 33, 38, 52, 54, and 78 taken for graduate credit (which involves additional work not required of undergraduates), whichever of Computer Science 104, 106, and 109 was not used to satisfy requirement (b) above, and Computer Science 110 and 136.

A student’s course of study is subject to the approval of the departmental advisor to Ph.D. students. Students normally take the six core courses specified in requirements (a) and (b) above by the end of their second year.

3. Students are expected to pass the Research Presentation Exam by the end of the winter term of their third year. An examining committee consisting of three faculty members, appointed by the departmental advisor to the Ph.D. Program, will select a paper for the student to present. The paper is selected in the area of Computer Science that the student chooses to be examined in. The student will have a month to read the paper, and will then present the paper to the committee and will orally answer questions on the paper. The committee will evaluate the student’s presentation and performance answering questions, and will determine if the student passes the examination. A student repeats this exam until he/she eventually passes the exam. In each attempt, the student is assigned a new paper, but not necessarily a new committee. Passing the Research Presentation Exam is a prerequisite to thesis proposal (see requirement 5 below). For more details on this exam, consult the Computer Science department web page.

4. At least one term of participation in undergraduate teaching. That is, the student must pass Computer Science 257.

5. Each student must display readiness for research in one area by giving a written and a public oral presentation of their research plan. This thesis proposal will be judged by a faculty committee chosen by the student; the rules used for the composition of this committee are the same as for a Ph.D. defense committee; this committee does not require the approval of the Dean of Graduate Studies, but must be approved by the departmental advisor to Ph.D. students. The presentation will be followed by a question period in which the student demonstrates mastery of the relevant area, and defends their proposed thesis plan.

6. Six terms in residence at Dartmouth. (This is a College requirement.)

7. Preparation of a thesis acceptable to a faculty committee and a public defense of this thesis. The committee shall be formed for the purpose of guiding the student’s research, according to the rules of the College. This committee must be approved by the Dean of Graduate Studies. All members of the committee shall read and sign the thesis in its final form.

REQUIREMENTS FOR THE MASTER OF SCIENCE DEGREE (M.S.)

The requirements for the M.S. degree in Computer Science are as follows:

1. Course requirements:

(a) Satisfactory completion of six Computer Science courses taken for graduate credit. At least three of these courses must be numbered above 100.

(b) Satisfactory completion of three additional courses taken for graduate credit, at least one of which is an advanced topics graduate course in Computer Science (listed as Computer Science 181-188). Any courses taken outside of the Computer Science department must be approved by the departmental advisor to Master’s students. Students are expected to complete the M.S. degree in a maximum period of seven consecutive terms.

2. Research requirements:

Six course equivalents of research from Computer Science 297-299 is the minimum amount of research required towards the development and writing of a Master’s Thesis.

3. Thesis requirements:

(a) A thesis proposal, consisting of a written document and a public presentation, shall be completed by the end of the fourth term of study. This thesis proposal will be judged by a faculty committee chosen by the student; the rules used for the composition of this committee are the same as for an M.S. defense committee as noted in the Graduate Student Handbook, “three faculty members from the student’s department/program (including the dissertation advisor). One of the three may be from outside the department/program, but this is not a requirement.”

(b) Preparation of a thesis acceptable to a faculty committee and a public defense of this thesis. The committee shall be formed for the purpose of guiding the student’s research, according to the rules of the College. This committee must be approved by the Dean of Graduate Studies. All members of the committee shall read and sign the thesis in its final form. We expect that the thesis, including a copy of the signature page, shall be published as a departmental Technical Report.