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 2017-18


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, G. Grigoryan, L. Torresani; Assistant Professors W. Jarosz, Q. Liu, X. Yang, X. Zhou; Lecturers P. Hannaway, J. Mahoney, T. Pierson, Vasanta Kommineni, T. Tregubov; Research Professor L. Loeb; Research Associate Professors 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, COSC 10, and COSC 11. 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. Math 22/24 cannot count as both a prerequisite equivalent and elective for the major.

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; COSC 11 or MATH 22 or MATH 24.

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 two terms of COSC 99 (Thesis Research). A written thesis is required for thesis research, the Honors program, or the High Honors program.

Minors in Computer Science

The Computer Science minor is 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 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

  

The Honors Program in Computer Science

To be eligible for departmental Honors or High Honors, a student must:

  1. Have an overall GPA of at least 3.33 and a GPA of at least 3.33 in the major, both at the time of graduation;
  2. Have an average grade of at least B+ in COSC 99 or 98;
  3. Complete a written thesis; and
  4. Meet College requirements for Honors, presented in the Regulations section of this catalog.

The GPA in the major is determined as follows: course prerequisites to the major are not counted and COSC 98, 99 are not counted, but all other courses used as part of the major (which might include courses in other departments) are counted, as are all courses titled Computer Science or cross-listed with Computer Science.

The written thesis is typically completed as part of the requirements for COSC 99 (Thesis Research), but at the recommendation of the instructor for COSC 98, students doing work in COSC 98 with a substantial independent component may also complete a written thesis based on that work. The subject of the thesis is often motivated by the content of an advanced course of the student's major, though a variety of activities can lead to a thesis. Student suggestions for theses are welcome. A student interested in pursuing thesis research should consult with his or her prospective adviser and get their approval for the thesis advising arrangement before enrolling in COSC 99.

Honors are awarded only if the work is of high quality and was done substantially independently. High Honors additionally requires presentation to a thesis committee of three CS faculty and the work should be deemed publishable or, if it is a project, useful. The recommendation of the thesis adviser to award Honors or High Honors must be ratified by a departmental vote.

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 two terms of COSC 99 (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;
  8. ENGS 26, ENGS 32, ENGS 61, ENGS 62, 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 two terms of COSC 99 (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 two terms of COSC 99 (Thesis Research).