Computer Science - Undergraduate
Chair: Devin Balkcom
Professors D. Balkcom, A. T. Campbell, M. Casey, A. Chakrabarti, D. Chakrabarty, H. Chang, W. Jarosz, P. Jayanti, S. Jin, D. F. Kotz, A. Pediredla, S. Preum, T. Prioleau, A. Quattrini Li, D. Rockmore, S. W. Smith, S. Vosoughi, P. Winkler, Y. Yan, Y. Yang, B. Zhu; Research Professors C. Bailey-Kellogg, S. L. Bratus, G. Grigoryan, L. Loeb, T. Pierson; Lecturers V. Kommineni, J. Mahoney, T. Tregubov; Adjunct Professors M. Cohen, R. Coto Solano, G. Cybenko, Y. Halchenko, S. Hassanpour, N. Jacobson, I. Khayal, M. D. McIlroy, S. Mehnaz, E. Murnane, J. O'Malley, C. C. Palmer, E. Santos, L. Song, L. Torresani, XD. Yang, 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 placed out of through 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. Any lecture-based graduate course (as determined by the Department Undergraduate Advisor) 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 eleven courses in addition to passing the two prerequisite courses. Among these eleven 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 additional courses, of which two are electives (see ‘Elective Courses’ above) and the third is an elective, or COSC 94, or a Mathematics course numbered 20 or greater that is not a prerequisite to the Mathematics major and is not a seminar or a reading course.
5. Computer Science culminating experience: either two consecutive 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. 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) 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: Any three courses between COSC 20 and COSC 29. Consultation with the DA Advisor is recommended for choosing three courses that build on each other.
Two other courses, at most one of which is COSC, from the following list of approved additional courses for the Digital Arts Minor: FILM 30, FILM 31, FILM 32, FILM 35, FILM 36, FILM 38, FILM 39, FILM 51, MUS 14, 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 22, COSC 23.01, COSC 24, COSC 25.01, COSC 25.02, COSC 29, COSC 77, COSC 83.
If students aren't counting them as one of the courses in Section 2 above, students can take COSC 23.01 or COSC 24 as one of the courses meeting this requirement.
Use of other courses towards the Digital Arts Minor requires the approval of the Director of the Digital Arts Minor.
The Honors Program in Computer Science
To be eligible for departmental Honors or High Honors, a student must:
1. Be either a Computer Science Major or a Modified Major with Computer Science as the primary part;
2. Have a GPA of at least 3.33 overall and in the major, at the time of graduation;
3. Have an average grade of at least B+ in COSC 98 or 99;
4. Complete a written thesis; and
5. 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, 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, along with the approval of the Departmental Undergraduate Advisor 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 Computer Science faculty members 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 as 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 by the Departmental Undergraduate Advisor, the requirements are as follows:
1. Two Computer Science course numbered 30 to 49;
2. Two Computer Science course numbered 50 to 69;
3. Two Computer Science course numbered 70 to 89;
4. Computer Science culminating experience: either two consecutive 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.
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, or ENGS 20.
Requirements:
Courses: Any three courses between COSC 20 and COSC 29. Consultation with the DA Advisor is recommended for choosing three courses that build on each other.
Two other courses, at most one of which is COSC, from the following list of approved additional courses for the Digital Arts Minor: FILM 30, FILM 31, FILM 32, FILM 35, FILM 36, FILM 38, FILM 39, FILM 51, MUS 14, 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 22, COSC 23.01, COSC 24, COSC 25.01, COSC 25.02, COSC 29, COSC 77, COSC 83.
If students aren't counting them as one of the courses in Section 2 above, students can take COSC 23.01 or COSC 24 as one of the courses meeting this requirement.
Use of other courses towards the Digital Arts Minor requires the approval of the Director of the Digital Arts Minor.
The Computer Science Major Modified with Engineering Sciences
Prerequisites are COSC 1 or ENGS 20; COSC 10; MATH 3, MATH 8, MATH 13; and PHYS 13, PHYS 14.
Requirements:
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, or ENGS 91;
9. Computer Science culminating experience: either two consecutive 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.
The Computer Science Major Modified with Digital Arts
Prerequisites: COSC 1 or ENGS 20, and COSC 10.
Requirements:
CS Portion:
- Two Computer Science courses, either both from the range COSC 30 to 49 or both from the range COSC 50 to 69;
- COSC 70;
- Computer Science Breadth: Two additional computer science courses, one from the range COSC 30 to 69, and one from the range COSC 71 to 89;
- Visual computing courses: Two from COSC 73, 77, 87, 89.18, 89.19, 89.22. With the approval of the Director of the Digital Arts Minor, other courses from COSC 70-89 related to visual computing may substitute;
- Computer Science culminating experience: either two consecutive 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.
Digital Arts Portion:
1. Any three courses between COSC 20 and 29
2. Digital Arts elective: One Digital Arts elective outside the Computer Science department, listed above as additional courses under the description of the Digital Arts Minor