Majoring in Computer Science

The requirements for the BA degree in Computer Science have changed as of September 2014.   Any student who declares beginning September 2014 (including incoming freshman) are subject to the new requirements.  Students who declared before September 2014 have the option of completing either the old or the new requirements.

The Major in Computer Science requires a total of 15 courses, all completed with a grade of C or higher.

CS students are expected to be comfortable with standard high school mathematics as a well as calculus at a level equivalent to completion of CAS MA 123.

The 15 courses required for the major are divided into four groups: A, B, C, and D. Students must take all courses in Group A, at least 2 courses from Group B, at least 2 courses from Group C, and a total of 15 courses from Groups A-D.

Group A

  • CS 111 Introduction to Computer Science I
  • CS 112 Introduction to Computer Science II
  • CS 131 Combinatoric Structures
  • CS 210 Computer Systems
  • CS 330 Introduction to the Analysis of Algorithms

Group B

  • CS 132 Geometrical Algorithms
  • CS 235 Algebraic Algorithms
  • CS 237 Probability in Computing

Group C

  • CS 320 Concepts of Programming Languages
  • CS 332 Elements in the Theory of Computation
  • CS 350 Fundamentals of Computing Systems

Group D

  • All CS courses at the 400- and 500-levels

The list of prerequisites or co-requisites for a CS course may contain a CS course “X” with a non-CS alternative “Y.” In such a case, course “Y” may be counted toward the major instead of course “X.”

In special cases, a student, with consent of the instructor, may petition the Undergraduate Director to count course other than those listed in the Courses section. Attention is called to the following: CS courses number 600 and above; 500-level courses in Mathematics & Statistics; and Computer Engineering course offered by the College of Engineering.

CS major credit will not be given for Metropolitan College courses.

The “Group D” electives allow you to put an emphasis on a particular area of computer science if you wish. See here for possible areas of emphasis, joint programs, and resources of interest to potential majors, including student organizations and career resources.

After you declare a CS major (code 0701), be sure to sign up for our cs-ugrads mailing list. You may also sign up for cs-jobs, cs-internships, and cs-contests lists if you wish to receive job-related announcements (see CS Connections for details). Finally, consider signing up for colloq-l list if you are interested in the advanced topics presented at the department’s colloquium.

You will get assigned a CS advisor who will help you with the choice of courses each registration cycle (you can change your advisor by contacting the CS Department). The advising sheet for CS majors lists CS major requirements and CAS requirements; fill it out before the advising meeting. We recommend declaring a major early (even if you are not entirely sure—you can always change your mind), so that you can connect with the CS community.

Course Planning

Most CS major courses have prerequisites and are offered only once a year (see our courses page for more information), so it is important to plan your schedule in advance.

Learning Outcomes

1. Understand and evaluate the organization, design, and construction of hardware and software systems for computing.
2. Attain a level of mathematical ability allowing the student to formally abstract and analyze computational processes.
3. Analyze problems that require computation to answer, and design and implement appropriate problem solutions that are efficient and effective.


For more information, contact Professor Wayne Snyder, the Director of Undergraduate Studies.