Department of Computer Science


Faculty Portal

Student Portal Instructions for students

Elective courses

Advising Computer Science majors: general advice

Top Priority: Java or C++ Programming Proficiency

The most important courses for timely graduation with a Computer Science major are the core programming courses in either Java or C++. Students must complete either the Java or C++ sequence before taking advanced Computer Science courses.

COMPSCI 172, 220, 223
COMPSCI 174, 222, 223

These are strict sequences!

  • Students must pass 172 with a grade of C or better before taking 220.
  • Students must pass 174 with a grade of C or better before taking 222.
  • Students must pass either 220 or 222 with a grade of C or better before taking 223.

Dropping or failing any of these courses will almost always delay graduation by one semester.

COMPSCI 223 is a prerequisite for almost all 300/400-level Computer Science courses. Both COMPSCI 223 sections are open to Java and C++ programmers.

Priorities for Other Courses

When choosing courses, a Computer Science major's priorities should be (from highest to lowest):
  1. Java or C++ sequence, up to COMPSCI 223
  2. Mathematics up to Calculus I (MATH 141, 152 or (150 and 151), 253), and either Discrete Structures (COMPSCI 215) or Discrete Math (MATH 280)
  3. Other core COMPSCI courses: COMPSCI 271, 366, 412, 433, 476 (and others for Comprehensive majors)
  4. (General majors only) Courses required for a minor
  5. Areas of specialization and/or COMPSCI electives
  6. General Education; U.S. Racial & Ethnic Diversity; College of L&S requirements
  7. Electives to reach 120 total credits

Note that General Education appears near the bottom of this list. That's an intentional choice, for two reasons:

  • Gen Ed courses are flexible. You have a huge number of choices, so you can always find a Gen Ed course that fits into your schedule. In contrast, most advanced (300/400-level) Computer Science courses have only one section, so you have to take it when it's offered.
  • Gen Ed courses are something different from your major and minor. "All coding all the time" might seem like a good idea now, but an English literature or History or Sociology course might give you a much-needed break from 12 credits of advanced Computer Science courses when you're a senior.
Sometimes, students who push hard to "get their Gen-Eds out of the way" struggle to find enough major or minor courses to fill their schedule, because they haven't met the prerequisites for advanced courses yet. Taking General Education courses gradually will help prevent this.