Computer Science at uChicago

I have just been accepted at the University of Chicago, and I plan to major in computer science. I want the best computer science education possible, and I do not know which college would be my best option for computer science. I have been rejected from Carnegie Mellon and Caltech, and deferred from MIT, but I want to know what other schools would be a better choice than uChciago. Currently my list is Northwestern, UPenn, Cornell, Duke, Georgia Tech, and UMichigan. From experience and what you all hear, what schools on my list should I apply?

Northwestern, UPenn, and Duke are great schools overall, but nothing special in CS. Consider Harvey Mudd, Stanford, Berkeley. UIUC, Maryland, and Purdue have very strong CS programs but if it were me, the strength of their CS probably would not be enough to make me choose them over Chicago.

Come here if you really like theory. The sequence for majors starts with a functional language (either Scheme or Haskell depending on how masochistic you’re feeling). Most people think both languages are totally useless, which tells you something about our CS department.

CS here isn’t going to make you unemployable but CS here is rather unique. You’re going to learn a lot about math and very little about app development. It is very possible to find a job and over the course of your time here you will learn “useful” languages (there are classes taught in Java, Python, R, etc.) but there is way more focus on CS research than helping students make startups.

That said, there are a lot of CS events (outside of classes) focused on helping you prepare for an interview, including weekly tech workshops and weekly meetings where CS students sit together, work on problems, and eat free food. UChicago Careers in STEM is incredible and the school will do a good job helping you find an internship/job/grad school. There is some entrepreneurial/startup culture here, but it is small and you will have to actively seek it out.

Basically, you will get a great CS education here, but it will be somewhat unconventional.

I am doing Math + CS, and love it so far. In my opinion, we have a very underrated CS program. I don’t think Haskell or Scheme are useless- in fact, our intro sequences (especially honors) are great for learning CS fundamentals. They will make you very comfortable with recursive problem solving and algorithm design.

Honestly, learning a new programming language takes a few days once you have mastered the fundamentals. The theory will help you so much more than “app development” or specializing in a specific language- as the above poster mentioned, you can learn these very well at the abundance of CS events outside of class, and softwares in this space change so much every few years (to think Facebook was made in php!).

I think Chicago is the best school on your remaining list, but you should definitely apply to Stanford and follow up your app to MIT- and go to one of these schools if you get in.

Haskell and Scheme aren’t useless at all. Honors CS is the best CS class in the country imo - it’s certainly the most unique. It’s just that most people think the languages are useless. The second class in the honors sequence switches languages every two weeks so you will get very, very good at picking up new languages quickly, which is an important skill to have.

Honors CS was hell, but one of those nostalgic experiences you think back to through rose colored glasses. Kurtz still my favorite professor at the university. UChicago CS is extremely difficult (most time-intensive major, and if you don’t consider physics objectively the hardest). Stanford, Berkeley, CMU have better programs. For everything else I’d honestly take UChicago. After intro classes many classes taught in C, which sucks until you realize how much of a better programmer you are when you are forced to think about low-level implementations of high-level processes. Avoid operating systems and machine learning until you’re really ready. I tried to take both with the bare prereqs. Bad idea.

CS recruiting is pretty good here, too, so you don’t have to worry too much about getting a job if you know your stuff.

@LearningLover What classes are good prep for Machine Learning?

I struggled with the math parts of it the most, mle proofs can get a bid absurd if you don’t know exactly what you’re doing. The actual coding is straight forward if you have enough experience. Optimization, some linear algebra (stat 243) is quite helpful, if you’re an econ major metrics is tangentially useful. Machine learning is this weird blend of math/stat/cs/optimization so it’s hard to pinpoint the class that’s most-useful for it, but if you’re missing too many gaps you won’t have enough time to figure out what you need as you go along.

Is it easy to get involved with research as an undergrad?