What Do I Take Next?

I Took So I should take
CS 1110 - Introduction to Computing Using Python CS 2110 - Object-Oriented Programming and Data Structures CS 2800 - Discrete Structures
CS 2110 - Object-Oriented Programming and Data Structures CS 2800 - Discrete Structures CS 3110 - Data Structures and Functional Programming CS 3410 - Computer System Organization and Programming
CS 2800 - Discrete Structures CS 2110 - Object-Oriented Programming and Data Structures CS 3110 - Data Structures and Functional Programming CS 3410 - Computer System Organization and Programming
CS 3110 - Data Structures and Functional Programming CS 3410 - Computer System Organization and Programming An elective class
CS 3410 - Computer System Organization and Programming CS 3110 - Data Structures and Functional Programming An elective class

CS 3410 or CS 3420?

This is difficult to answer, since almost nobody has taken both. Here are some considerations:

  • 3410 is a lot of work. Splitting it across 2300 and 3420 might be more manageable.
  • 2300 + 3420 will go more in depth than 3410 alone can.
  • Many classes (including requirements!) have 3410/3420 as a prerequisite, and you may not want to delay them in order to take 3420.
  • Most people take 3410.

I’m Feeling Ambitious

Note: any CS class is doable given the right combination of hard work, dedication, and experience. While the classes listed here were feasible for those recommending them, professors and curricula change, and your experience may be different.

CS 3152 - Introduction to Computer Game Development: if you have or can find a team, this is your chance to make a video game. You may need to apply, however.

CS 4120 - Introduction to Compilers: the infamous compilers class, for those of you who wonder how exactly your source code gets turned into something your computer can actually run. At this time, the class is offered infrequently, so if you’re interested, take it as soon as you get the chance. (But this writer has heard about plans to offer it yearly.)

CS 6360 - Educational Technology: talk to the professor before enrolling, but if you can gather a team, this class lets you build a project of your choosing, so long as it helps teach people something. And while you’ll be reading and discussing papers, this is your chance to learn about all sorts of applications from an automatic Python grader to Minecraft in the classroom.

Edit this page on GitHub: whatdoitakenext.md

Edit me on GitHub