The Major

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. The Honors Program page includes additional requirements for the Honors Program.

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 2ENGS 20 may substitute for COSC 1 in any program of study.

Course Categorization

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 courses 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.

A full list of undergraduate Computer Science courses appears in the online ORC.

Major

Prerequisites

  1. Computer Science 1: Introduction to Programming and Computation

    This course introduces computational concepts that are fundamental to computer science and are useful for the sciences, social sciences, engineering, and digital arts. Students will write their own interactive programs to analyze data, process text, draw graphics, manipulate images, and simulate physical systems. Problem decomposition, program efficiency, and good programming style are emphasized throughout the course. No prior programming experience is assumed.

    ENGS 20 may substitute for COSC 1, though we recommend COSC 1 for students planning to take Computer Science 10.

  2. Computer Science 10: Problem Solving via Object-Oriented Programming

    Motivated by problems that arise in a variety of disciplines, this course examines concepts and develops skills in solving computational problems. Topics covered include abstraction (how to hide details), modularity (how to decompose problems), data structures (how to efficiently organize data), and algorithms (procedures for solving problems). Laboratory assignments are implemented using object-oriented programming techniques.

Major

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

  • Two Computer Science courses numbered 30 to 49;
  • Two Computer Science courses numbered 50 to 69;
  • Two Computer Science courses numbered 70 to 89;
  • Three additional courses, of which two are electives (see ‘Elective Courses’ below) and the third is an elective, or COSC 94, or a math course numbered 20 or greater that is not a prerequisite to the math major and is not a seminar or a reading course.
  • 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.

You have the flexibility to construct the Computer Science major however you wish from the above requirements, though you need to make sure that you've taken the prerequisites for each course.

Complete information about the Computer Science major requirements can be found in the online ORC.

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.

Off-Campus Credit Opportunities

Transfer Term at AIT-Budapest

Although the Department of Computer Science does not offer an off-campus program, a few of our undergraduates have taken a transfer term, usually in the fall, at AIT-Budapest and received transfer credit for some of the AIT courses. Check out this page for more information.