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 Have No Idea, But I Took CS 3xxx
Don’t know what to do for electives? Here’s a few options.
Systems programming: CS 4410 - Operating Systems, a requirement.
Artificial intelligence: CS 4700 - Foundations of Artificial Intelligence. Also consider CS 4740—Introduction to Natural Language Processing for the language/linguistics side of things.
Web development: CS 2300 - Intermediate Design and Programming for the Web (also, INFO/CS 1300—Introductory Design and Programming for the Web, CS 3300 - Data-Driven Web Applications). There may also be mobile app development (or check out CU AppDev).
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: 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.