Scheduling Classes

To start, let's look at the core CS classes required for the major. It might look intimadating at first, but it just shows the requirements of classes. For example, to take CS 1501, you must take CS 441 and CS 445.

The dashed lines mean those classes are "coreqs". For example, you can take CS 449 if you are taking CS 447 in the semester. But, you cannot take CS 447 after 449.

Click a course on the graph to see details

The diagram above shows the relationships between the core classes!


The core courses can be broken up into different tracks.

Core Programming Intensive

These classes teach the most fundamental CS concepts. Pay attention!

  • CMP 401
  • CS 445
  • CS 1501


These are more theory based classes that involve proofs and math.

  • CS 441
  • CS 1502


Do you actually know how a computer works? These classes will teach you!

  • CS 447
  • CS 449
  • CS 1550

Full Requirements

View the full requirements:

This information is here -

The CS major is about 40 credits plus a capstone course. Read about the CS capstone here

Potential Schedules

When starting out, we recommend taking CS 441 and CMP 401 together. Or, if you have never programmed before and unsure if you will like it, you can start off with CS 007.

Note CS 1501 and CS 1550 are pretty demanding courses.

Making a Good CS Plan

  1. Take 401 and 445 early on
  2. Decide which semester you will take 1501.
  3. Throw away the plan (Especially in college, things will change!)

Below are some potential schedules. Your schedule will look different depending on your other classes!

Whenever you schedule a class make sure to play close attention to the professor. It's better to optimize your schedule to have better professors! Most profressors that teach the core classes are quite good. Check the respective pages for each course on this wiki and use Rate My Professor.

This are just example schedules. Your own schedule will likely look different. You need to consider what other majors/minors you will have, and what other electives (both CS and Non CS) and gen eds you need to take.


Semester 1Semester 2Semester 3Semester 4Semester 5


Semester 1Semester 2Semester 3Semester 4


Semester 1Semester 2Semester 3Semester 4
4414491502CS Elective

What should I take with these CS classes?

It depends on the rigor of the CS course, and the professor. Notably, if we are talking about CS 1501, I would not have a heavy course load. I would recommend taking a class like Calculus II when you are taking lower-level CS courses such as CS449 and below, or upper-level CS electives.

I would likely take some light gen-eds with CS 1501, or any of the upper level CS courses (CS 1502, CS 1550).

CS Electives

You discover your interests as you take some electives. A good way to determine a path to follow would be the following link:

Of course, you’re not limited to take classes in a certain path, but it’s important to take classes about subjects in Computer Science that you may enjoy. Electives are meant to be classes you want to enjoy, not classes you suffer in.

For example, if you didn’t enjoy CS 447 and CS 449, and don’t like to deal with CPUs, you probably don’t want to take Computer Architecture

On the other hand, if you enjoy certain parts of CS 1501, such as the introduction to cryptography section, CS 1653 would probably be a good elective to take.

Check out the course explorer to look at the different electives that are offered. Pick the ones that pique your interest.


CS 007 or CS 401?

If you have never programmed before, take CS 007. If you have experience programmed, take 401. If you have AP Computer Science credit, definitely skip 401.

Should I Graduate Early?

If you have enough credits, you can graduate early! It is a great way to save some tuition money. But, there are also some more classes that can help you as a CS major.

It really depends on what your interests are. For example, if you are interested in Data Science, I would recommend taking some Statistics classes. In particular, STAT 1261, and STAT 1201 would be excellent options.

If you are interested in Cryptography, I would recommend taking some Math classes. In particular, Introduction to Mathematical Cryptography, Elementary Number Theory, Combinatorial Mathematics, would be great options. Note that all these classes require MATH 413.