Office of the Registrar
Campus Address
Hanover, NH
03755-3529
Phone: (603) 646-xxxx
Fax: (603) 646-xxxx
Email: reg@Dartmouth.EDU

Organization, Regulations, and Courses 2016-17


Computer Science - Undergraduate

Chair: Hany Farid

Professors C. J. Bailey-Kellogg, A. T. Campbell, M. Casey, A. Chakrabarti, T. H. Cormen, R. L. Drysdale III, H. Farid, P. Jayanti, D. F. Kotz, D. Rockmore, S. W. Smith, P. Winkler; Associate Professors D. Balkcom, L. Torresani; Assistant Professors G. Grigoryan, W. Jarosz, Q. Liu, E. Whiting, X. Yang, X. Zhou; Lecturers P. Hannaway, J. Mahoney T. Tregubov; Research Professor L. Loeb; Research Associate Professor S. L. Bratus; Adjunct Professors M. Cohen, A. Gettinger, M. D. McIlroy, W. M. McKeeman, C. E. Palmer; Adjunct Associate professor A. Farid; Adjunct Assistant Professors R. Halter, Y. Halchenko, S. Hassanpour, I. Khayal, O. Zhaxybayeva.

 

To view the Computer Science Undergraduate courses, click here.

To view the Computer Science Graduate requirements, click here.

To view the Computer Science Graduate courses, click here. 

  

Introductory Courses

Students wishing to devote one course to the study of Computer Science may choose COSC 1 or COSC 2, depending on their background and interests. Students wishing to devote two or more courses to the study of Computer Science should begin with COSC 1 and COSC 10. Students wishing to take courses in Digital Arts should start by taking COSC 1 or COSC 2. ENGS 20 may substitute for COSC 1 in any program of study.

Undergraduate Courses

Computer Science undergraduate courses are numbered as follows:

1–19: Introductory and non-major courses.

20–29: Courses in Digital Arts.

30–49: Courses in theory and algorithms.

50–69: Courses in systems and hardware.

70–89: Courses in applied computer science.

90–99: Reading course and culminating experience courses.

Wherever COSC 1 is listed as a prerequisite, it may be replaced by ENGS 20 or by credit (for the classes of 2017 and earlier) and placement (for all classes) from either the Computer Science Advanced Placement examination or a local placement examination.

Elective Courses

Many of the majors and minors involving Computer Science allow for one or more elective courses. In all cases, an elective course is any Computer Science course numbered from 30 to 89 that is not used to fulfill another requirement. With the approval of the Department’s Undergraduate Advisor, a Mathematics course or COSC 94 may substitute for one elective course; at most one such substitution is allowed. With the approval of the Departmental Undergraduate Advisor, any graduate course in Computer Science (courses numbered above 100) may substitute for an elective course, as long as the graduate course is not cross-listed as an undergraduate course that is used to fulfill another requirement.

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.

Requirements for the Computer Science Major

Prerequisite courses: COSC 1 or ENGS 20; COSC 10.

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 ten courses in addition to taking the two prerequisite courses. Among these ten courses must be the following:

  1. Two Computer Science courses numbered 30 to 49;
  2. Two Computer Science courses numbered 50 to 69;
  3. Two Computer Science courses numbered 70 to 89;
  4. Three elective courses (see ‘Elective Courses’ above);
  5. Computer Science culminating experience: either two terms of COSC 98, or one or two terms of COSC 97 (Thesis Research) or COSC 99 (Honors Thesis Research).

Minors in Computer Science

The Computer Science, Computational Methods, 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 all students, including those majoring in Computer Science. Students may modify any major, including Computer Science, with Digital Arts. For each minor, the prerequisites and required courses are listed below. Approval of a minor in Computer Science, Computational Methods, or Operations Research can be obtained through the Departmental Undergraduate Advisor.  Approval of a minor in Digital Arts can be obtained through the Director of the Digital Arts Minor.

I. Computer Science

Prerequisites: COSC 1 or ENGS 20; COSC 10.

Courses: Any five elective courses (see ‘Elective Courses’ above) as approved by the Departmental Undergraduate Advisor and drawn from at least two of the following three sets of courses: COSC 30 to COSC 49; COSC 50 to COSC 69; COSC 70 to  COSC 89.

II. Digital Arts

Prerequisites: COSC 1, COSC 2, or ENGS 20.

Courses: COSC 22, COSC 24, COSC 27; two from the following list: FILM 30, FILM 31, FILM 32, FILM 35, FILM 36, FILM 38, FILM 39, FILM 51, MUS 9, MUS 14, MUS 31, MUS 34, SART 15, SART 16, SART 20, SART 21, SART 22, SART 23, SART 25, SART 29, SART 30, SART 31, SART 65, SART 66, ENGS 12, ENGS 75, THEA 26, THEA 27, THEA 30, THEA 31, THEA 34, THEA 42, THEA 43, THEA 44, THEA 45, COSC 20, COSC 29, COSC 77, COSC 83. No more than one of the two courses may be COSC. Additional courses may be counted towards the Digital Arts Minor with permission of the Advisor

 

III. Computational Methods

Prerequisites: One of COSC 1, COSC 3, ENGS 20, or equivalent; one of MATH 22 or MATH 24.

Courses: COSC 70 and COSC 84; one of COSC 31, COSC 71, or COSC 74; and two courses from one of the following groups:

  1. BIOL 39, BIOL 47, BIOL 75; COSC 75;
  2. EARS 64, EARS 66, EARS 67, EARS 76;
  3. ENGS 22, ENGS 23, ENGS 26, ENGS 27, ENGS 41, ENGS 52, ENGS 67, ENGS 68, ENGS 91 (if COSC 71 is not used as one of the courses above), ENGS 104, ENGS 105, ENGS 106, ENGS 110, ENGS 145, ENGS 150;
  4. LING 22, LING 25, LING 26;
  5. MATH 75 and one of MATH 25, MATH 31, MATH 71, MATH 81;
  6. MATH 23, MATH 46, MATH 53, MATH 76;
  7. MATH 36, MATH 76, MATH 86, MATH 96;
  8. PHYS 68, PHYS 73, PHYS 74, PHYS 75; ASTR 74, ASTR 75;
  9. PSYC 28, PSYC 40, PSYC 60;
  10. Two other courses, as approved for inclusion in the minor by the offering department(s) and the Computer Science department.

IV. Operations Research

Prerequisites: MATH 3, MATH 8, MATH 13; COSC 1 or ENGS 20; COSC 10.

Courses: COSC 30 or MATH 19; COSC 31; COSC 84; MATH 20, MATH 22; and one of MATH 38 or MATH 88 or COSC 49 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 in the Regulations section of this catalog. The Honors project is undertaken by a student under the guidance of a faculty member. The subject of the project or thesis often will be motivated by the concepts or content of an advanced course taken as a part of the student’s major, though a variety of activities can lead to a project or thesis. Student suggestions for both projects and theses are welcome. The project or thesis will normally be completed over a period of two or three terms. The student should consult with his or 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) COSC 99, Honors Thesis Research.

Admission to the Honors Program in Computer Science 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 COSC 99), 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.


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.

Modified Major with Computer Science as the Primary Part

A modified major with Computer Science as the primary part must satisfy the following requirements, and it must be approved by the Departmental Undergraduate Advisor to ensure a coherent major.

Prerequisites: COSC 1 or ENGS 20; COSC 10.

Requirements: Along with at least four modifying courses, as approved, the requirements are as follows: 

  1. One Computer Science course numbered 30 to 49;
  2. One Computer Science course numbered 50 to 69;
  3. One Computer Science course numbered 70 to 89;
  4. Three elective courses (see ‘Elective Courses’ above);
  5. Computer Science culminating experience: either two terms of COSC 98, or one or two terms of COSC 97 (Thesis Research) or COSC 99 (Honors Thesis Research).

Modified Major with Computer Science as the Secondary Part

Prerequisites: COSC 1 or ENGS 20; COSC 10.

Requirements: Four electives (see ‘Elective Courses’ above) that complement the primary part of the modified major, subject to the approval of the Departmental Undergraduate Advisor.

 

Modified Major with Digital Arts as the Secondary Part

Prerequisites: COSC 1 or COSC 2.

Requirements:

  1. Three Computer Science courses numbered 20–29;
  2. One of the approved additional courses for the Digital Arts Minor. The additional course may not be from the department of the primary part of the modified major.  (For example, a "Film Studies modified by Digital Arts" major may not use a Film Studies course to satisfy this requirement.)

 

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 COSC 1 or ENGS 20; COSC 10; MATH 3, MATH 8, MATH 13; and PHYS 13, PHYS 14. The requirements are as follows:

  1. One Computer Science course numbered 30 to 49;
  2. One Computer Science course numbered 50 to 69, but not including COSC 56, which is identical to ENGS 31;
  3. One Computer Science course numbered 70 to 89;
  4. Three elective courses (see ‘Elective Courses’ above), not including COSC 56;
  5. ENGS 22;
  6. ENGS 31;
  7. ENGS 62 or ENGS 63;
  8. ENGS 26, ENGS 32, ENGS 61, ENGS 62, ENGS 63 or ENGS 91. (The same course cannot satisfy both requirements 5 and 6);
  9. Computer Science culminating experience: either two terms of COSC 98, or one or two terms of COSC 97 (Thesis Research) or COSC 99 (Honors Thesis Research).

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 COSC 1 or ENGS 20; and COSC 10. The requirements are as follows:

  1. Two Computer Science courses, either both numbered 30 to 49 or both numbered 50 to 69;
  2. COSC 22;
  3. COSC 24;
  4. COSC 27;
  5. COSC 77;
  6. One Computer Science course numbered 70 to 89, but not COSC 77;
  7. One elective course (see ‘Elective Courses’ above);
  8. Two of the approved additional courses for the Digital Arts Minor, other than COSC 77.  No more than one of the two courses may be COSC;
  9. Computer Science culminating experience: either two terms of COSC 98, or one or two terms of COSC 97 (Thesis Research) or COSC 99 (Honors Thesis Research).