Prerequisites for CS (Engineering)

Would it be an advantage to know how to program languages like C++, C, Python, or Java if I want to major in CS especially in top ranked colleges like Rice, Duke, Vanderbilt?

Having experience in some sort of programming before college is generally a good idea. What language won’t really matter a ton at the end of the day (though you can find many opinions on the “best” beginner languages), so I’d generally recommend either going along with any courses in your high school curriculum if available, and if not, doing some sort of project you’re passionate about and learning the language you need for that.

Once you get to college, you’ll get little to no credit for prior work at most top CS schools, so it’s not like you’ll be miles behind if you don’t know things going in. Of course it can be helpful, but it’s not required.

Generally, I’d recommend depth over breadth. If you already know one or two languages, doing more interesting things with those languages will usually be more useful than picking up a third language.

Personally, I think python is a good language to start on your own with and is pretty versatile for most projects. If you want to make an iOS app, I’d recommend Swift over Objective C to start.

Long story short: Yes, but focus deeply on 1-2 languages versus trying to learn as many as possible.

I’m sure you’re just getting started with the college process but as a note, CS strength and general rank don’t always correlate. While Rice is a great CS school, Duke/Vanderbilt aren’t particularly known versus say GT, CMU, or UMichigan. That’s not to say they are bad for CS either of course.

@PengsPhils Thanks for your input! Yea, getting better in one or two languages helps.

A college may have more than one entry point for CS courses. Examples:

  • College has a "CS 0" and a "CS 1" course. Students with no computing experience start with "CS 0" before taking "CS 1" which students with computing experience can start in.
  • College has an introductory sequence "CS 1A" and "CS 1B" which is suitable for students with no computing experience. But it also has a "CS 1fast" which is an accelerated course covering both "CS 1A" and "CS 1B" in one course for those with prior computing experience.

Just a side note - don’t sacrifice any core class to add another CS or programming class. If you have elective space, that’s fine but don’t take fewer courses in history or foreign language.

@ucbalumnus
@ momofsenior1
It is definitely better to do some programming before so that you can get a head start and use it to take other core classes.