Northwestern University CS Underclassmen Guide

✋ Hey! This guide is mostly pertained to current first-years, second-years, and folks who are switching to Computer Science! A lot of the information that will be presented in this guide is based on various anecdotal experiences from our members and alumni and we have found to work for most folks within our community. If you have any suggestions, comments, or things you would like to be added, please make a PR on the EmergingCoders Website Repo

Authors: Ethan Pineda

Introduction

How to Use This Guide

The purpose of this guide is to provide additional context and guidance when it comes to navigating the Computer Science major at Northwestern. The department already provides lots of resources, guides, and opportunities for students to succeed, but we wanted to provide a more personal and condensed guide that is based on the experiences of our members and alumni. This guide by no means is perfect to every situation, interest, or path that you may embark on during your time at Northwestern but, if you someone that is completely new to Computer Science (like many of us were), or you don't have someone to ask questions to, we hope that this guide can help you out with answering some of your questions. Keep in mind also that this guide is mostly geared for those wanting to enter industry after graduation. A more detailed version for folks interested in graduate school will be coming soon!

NOTE: This guide was built on the requirements for the Computer Science Major from the 2023-2024 Academic Year.

What this Guide Covers

There are 3 main sections with various subsections to each topic to this guide:

  • Should I Pursue a CS major?
  • What is the CS major like at Northwestern?
  • What should I do to prepare for a career in tech

Now let's get started!

Should I Pursue a CS major?

Before we say anything, ultimately the decision to pursue a Computer Science degree is going to be up to you. Again, a lot of this advice in this guide is subjective and your mileage may vary, so take everything with a grain of salt.

What is Computer Science?

In simple terms, Computer science is like a magical world of instructions and thinking for computers. It's all about teaching computers how to do cool stuff. Just like you learn math and languages in school, computer scientists learn how to talk to computers. Imagine you have a really smart robot friend, and you want to tell it what to do. Computer science helps you do that. You can tell the robot to play your favorite game, draw pictures, solve math problems, or even talk to your friends on the internet.

Here are some important things in computer science:

  • Coding: This is like giving instructions to your robot friend. You use special languages (like C, Python, or JavaScript) to write these instructions. It's like creating a recipe for the robot to follow.
  • Algorithms: Think of this as a plan or a recipe for your robot. It's a step-by-step guide on how to solve a problem, like finding the best way to get from your house to the park.
  • Data: This is like information that the robot needs to remember. It could be your favorite game scores, your friends' names, or anything else. Computer scientists figure out how to store and use this data.
  • Hardware: These are the physical parts of a computer, like the screen, keyboard, and memory. Computer scientists design and build these parts to make computers work.
  • Software: This is like the apps and programs you use on your computer or tablet. Computer scientists create software to do all kinds of fun and useful things.

Computer science is like a big playground where you can create, explore, and solve puzzles with computers. It's not just about playing games but also about making the world a better place by solving real-world problems. So, if you're curious and love to learn, computer science can be a fantastic adventure for you!

Why Computer Science?

Pursuing a degree in computer science offers not only promising career prospects but also the chance to make a meaningful impact on the world through innovation and problem-solving. It's a field that rewards curiosity, adaptability, and a passion for learning. A Computer Science degree is very versatile and the skills that you learn in a CS degree can be applied to a wide variety of fields and industries. You don't have to become a software engineer after graduation, you can become a data scientist, a product manager, a UX designer, a technical writer, a technical recruiter, and so much more!

Of course, if you choose to work in technology, you'll be joining a fast-growing industry with a lot of opportunities for career growth and advancement. The tech industry is also known for it's competitive salaries and benefits, as well as its flexible work arrangements.

What is the CS major like at Northwestern?

The Computer Science major at Northwestern is a very diverse and versatile major. Because of the quarter system, its possible to take classes in a variety of different fields and topics in CS from systems/hardware, game development, human-computer interaction, artificial intelligence, and theory. Depending on your planning and how many credits you come into Northwestern with, it's even possible to double major or minor in another field or even graduate with a Masters in Computer Science in 4 years.

What are the requirements for the CS major?

The Computer Science Department already has a general overview of the curriculum that you could use to get a better understanding of the requirements for the major.

But, the curriculum can be broken down into the following:

Okay, but what does this all mean?

This is a lot of information! And for the most part, a lot of this information you could have just found online through the department website. Let's now break down some of the components of the major and what they mean.

Should I do a BA or BS in Computer Science?

If you choose to pursue Computer Science in either McCormick or Weinberg, the difference is only in the classes that you need to take outside of Computer Science (your graduation requirements) albeit, some of the specific math classes are different between the two schools. But, in terms of just Computer Science classes, both degrees have the same requirements.

The McCormick version of Computer Science is more geared towards students who want to learn more about the "engineering" side of Computer Science. This just means that you'll take more engineering-focused classes such as DTC, and EA.

On the contrary, the Weinberg route in CS is good if you want a more holistic education since you'll have more opportunities to take classes outside of CS such as humanities, social sciences, and other STEM classes. It's also worth noting that a lot of people choose Weinberg CS because it's a lot easier to double-major in CS and another "fun" field such as Creative Writing or Economics.

It's important to emphasize that between the two schools, there is no difference in terms of job placement. Technology companies do not care if you graduate with a BS or BA in CS, what matters most is if you have the technical skills and background that they are looking for! Not what your degree type is.

What Order should I Take The Core Classes In?

Before we begin, it's important to note that the CS department already has sample 4-year schedules for both McCormick and Weinberg students. And while these sample 4-year planners are useful, they don't provide as much context as to why you should take classes in a certain order. Likewise, there's a lot of subjectiveness in terms of what classes you should take first and what classes you should take later. So let's talk through some of the suggestions that we have.

Weinberg Students
FallWinterSpring
COMP_SCI 111COMP_SCI 150COMP_SCI 214
MATH 220-1MATH 220-2MATH 230-1
SEMINAR/DISTROSEMINAR/DISTROSEMINAR/DISTRO

Unrestricted

Unrestricted

Unrestricted

FallWinterSpring
COMP_SCI 211COMP_SCI 213COMP_SCI 212
MATH 240

STAT 210/Unrestricted

Unrestricted

Unrestricted

Unrestricted

Unrestricted

Unrestricted

Unrestricted

Unrestricted

The Key Takeaways

This recommend study is not exhaustive and won't work for everyone (since everyone's paths are different!). But the key things to take away from this is that:

If you want to have a solid foundation for recruitment season, you should aim to take CS 214 first. This is because in CS 214, you learn about data structures and algorithms which are the bread and butter of technical interviews. The class will give you the foundation to be able to start to understand LeetCode style questions a bit better and will help you in your technical interviews. Likewise, doing CS 211 after 214 is an optimal choice since you'll learn about common languages such as C and C++ as well as the Unix environment and learn more about Object-Oriented Programming. Additionally, both classes are the most popular pre-requisites for many of the 300-level CS classes. So the earlier you can take them, the more options you'll have during your second year of Computer Science.

It's very common to pair CS 214 and CS 211 together. And while it's manageable, keep in mind that a lot of the content between the two classes is very different. So it's important to be able to manage your time well and be able to balance the workload between the two classes. But if you switched to CS late, or you're a second-year, it's very common to take CS 214 and CS 211 together.

Now, you may be wondering what's the reasoning behind putting CS 212 so late if you only need 111 to take it. The idea with CS 212 so late in our schedules is because CS 212 is am extremely difficult class since it's a discrete maths course. You'll be learning about proofs, induction, and other topics that are very different from the other CS classes since it is very theory focused. CS 212 is by no means impossible to do well in, but you probably want to put it off while you learn some of the other CS topics first because in terms of industry, you'll probably never use the content from CS 212 and very few classes have it as a pre-req.

Other Resources and Tips

If you're still curious to learn about the CS major at Northwestern and want to learn more about the differences between McCormick and Weinberg, we actually recently did a workshop going over this topic! You can find the link to the Google Drive Presentation by clicking on the image below

That's all we have for this guide, we hope that you found the information on this page useful and that it helps you understand how to navigate the Computer Science major a bit better! 🫶🏽🫶🏽