New & Current CS Major Advice

Incoming Student Advice

Here are our top tips for prefrosh to prepare for CS at Yale! We know it can be intimidating to come to Yale with limited CS experience, but there’s so much support and resources available for students regardless of their background or experience. Don’t worry — there’s not much that prefrosh have to do before classes start, but here are just a few helpful tips for those who are interested!

1. Join the CS majors mailing list at the Yale CS Mailman (must be on campus or use VPN). This is the best place to hear about all the opportunities and events available for CS students — anyone can join! 1a. You should also join the CS Major Jobs mailing list at the Yale CS Mailman for the latest on recruiting and other internship offers 2. Decide which CS class to start with! The two most popular introductory CS classes are CPSC 100 (CS 50) and CPSC 201. 2a.Here are the official “roadmaps” of the major, depending on which introductory course you start with 2b.This is another helpful flowchart of course options 2c.Note that it is totally possible to start the major later on as a sophomore and still finish on time! Some students have even started the major as a junior, which is difficult but doable with enough planning

CS 50

Never programmed before, or haven’t had too much computer science experience? CPSC 100 is a great introduction to practical programming languages (Scratch, C, Python, SQL and more) coupled with your own unique final project. 
It’s a great way to prepare for higher-level CS classes like CPSC 223 and CPSC 323! Furthermore, the CS major requires fewer classes and prerequisites than most STEM majors, so it’s totally doable to take CS 201 as a second-semester frosh or even a sophomore and still complete all the requirements. 
Be mindful that CS50’s website states you can expect 12+ hours of work per week when planning your schedule out.
CPSC 100 does NOT count towards the CS Major

CS 201

Have some CS experience or took AP/IB Computer Science in high school? You’d be a good fit for CPCS 201, Introduction to Computer Science. CPSC 201 is the first required course in the CS Sequence and focuses on computer science fundamentals from a theoretical point of view. You’ll be using the Racket language, a recursive programming language (no loops!) derived from Lisp. It will probably be extremely different from any CS class you’ve taken before, and is heavily focused on problem-solving skills

Afterwards

After CPSC 201, you’ll progress to CPSC 223 (Data Structures), CPSC 323 (Systems), and then CPSC 365 (Algorithms) or CPSC 366 (Intensive Algorithms). Most electives in the department ‘unlock’ after completing CPSC 223.

For exceptionally prepared students, it is possible to skip CPSC 201 and start in CPSC 223, Data Structures. Students should know the C programming language, and should contact the CPSC 223 instructor for more information on this. Skipping a required course is generally discouraged by the department and will require an elective to be substituted for the course.

3. What’s in a CS Major? As mentioned above, you’ll have the five required courses, and then space for electives. The CS department offers both a BA degree and a BS degree.

Info Bachelors of Science Bachelors of Arts
Required Classes 12 (5 + 6 electives) 10 (5 + 4 electives)
Senior Project / Thesis? Yes - CPSC 490 Yes - CPSC 490
Electives? Any course # 203+ Any course # 203+

When Should I Take These Classes?

We suggest the following, which might look similar to the chart on the YCPS but we recommend you take CPSC 202 slightly earlier, as CPSC 323 is a very high workload course you’ll want to focus on.

First-Year Sophomore Junior Senior
CPSC 201 CPSC 323 Two electives CPSC 490
CPSC 223 and CPSC 202 CPSC 365 or 366 Two electives One elective
  One elective    

Starting as a Sophomore?

Sophomore Junior Senior
CPSC 223 CPSC 365 or 366 Two electives
CPSC 201 CPSC 323 CPSC 490
CPSC 202 Two electives Two electives

3c. Considering a double major? Take a look at CS joint majors first! Joint majors (CS+Econ, CS+Math, CS+…) are a great way to explore an additional interest alongsideCS without having to do as much work as a double major (up to 18 required classes instead of 24+). You might want to plan your first-year schedule around trying out the introductory courses for these joint majors.

3d. Alternatively, a double major is entirely possible! However, a large part of the Yale experience is just being able to be intellectually curious and take interesting classes, without worrying about the constraints of a second major. If you’re still committed and want to know more, reach out to Inssia (inssia.ahmed@yale.edu) – she’s on DSAC ‘22 and a double major in computer science and comparative literature.

4. Plan to check out the Extracurricular Bazaar in the fall! Most CS student organizations will have a booth there, and clubs are a great way to learn more practical skills outside of the classroom, improve your resume, and meet upperclassmen in the major!

5. OPTIONAL: look at research labs on campus! The YURA Research Database, https://rdb.yale.edu/, is a great place to start and see what labs are on campus that accept or are looking for undergraduates.

6. OPTIONAL: start planning for summer internships! It’s relatively rare (and not at all required) for students to pursue internships after their first year summer, but it can be a good opportunity for those who want to get a head start on exploring different career options. There are a few options specifically targeted towards underclassmen, notably Facebook University, Google STEP, and Microsoft Explore.