What is CS50/CPSC 100?

CS50 is an introduction to the intellectual enterprises of computer science and the art of programming. It is run jointly with Harvard. Although it is officially listed as CPSC 100 here at Yale, we typically refer to the course as CS50. The course is designed for majors and non-majors alike, with or without prior programming experience. Topics include abstraction, algorithms, data structures, encapsulation, machine learning, resource management, security, software engineering, and web development. Languages include C, Python, SQL, and JavaScript, plus CSS and HTML.

Who teaches CS50?

CS50 is led by Harvard Professor David J. Malan, who has taught the course at Harvard since 2007, and Yale Lecturer Benedict Brown. Working alongside Dr. Brown and Course Manager Natalie Melo to bring CS50’s culture to life is a team of 40+ undergraduate course assistants (CAs) who hold office hours and teaching assistants (TAs)—undergraduate and graduate—who also lead sections and evaluate students’ work.

Should first-years take CS50?

Yes, if they would like! First-years regularly compose a plurality of CS50’s student body. We simply encourage all students—including first-years—to be mindful of CS50’s workload (12+ hours per week) and of the number of problem set-based courses in their schedule.

I’m a grad student. May I take CS50?

Thank you so much for expressing your interest in CS50—we’d certainly love to have you in the course! Please stop by Benedict’s or Natalie’s office hours to introduce yourself once the semester has started to discuss your goals, expectations, and schedule. If you can’t make our office hours, just e-mail heads@cs50.yale.edu to make an appointment. We’ll also schedule a group meeting early in the semester where you can introduce yourself and meet each other instead of coming individually.

Graduate and professional students are allowed to officially enroll in CS50 and receive credit towards their degrees; however, in most graduate and professional schools, students may only receive credit if said course credit has been authorized in advance by one of their deans. Thus, we highly recommend that you reach out to your school’s administration now just to double check that you’re all good to go!

In terms of credit for your degree, Yale College courses typically carry 4 units of credit (at least that’s the case at SOM). In addition, enrollment in undergraduate courses typically requires additional work for the graduate and professional students of the course. In CS50’s case, the “additional work” we expect of these students is that they complete a project whose scope is 50% greater than what is expected of undergraduate students. (Final project information is discussed in the syllabus and will be outlined in even greater detail during the latter half of the course.) This requirement for graduate and professional students, we have found, often aligns nicely with some of their reasons for taking the course; namely, that they’ll learn some of the foundational computer science and programming skills necessary to implementing an idea they’ve developed while at school.

If you have any additional questions, please don’t hesitate to ask!

What about EMBA students?

We’re happy to have you in the class if you are going to be able to come to one of the sections on a weekly basis and will be able to attend some office hours regularly. In Fall 2018, sections will be at a range of times throughout the day on Tuesday and Wednesday, and also Monday evening. There will be office hours available many afternoons and evenings during the week, and on Sunday afternoons. Lectures are delivered online, so you can watch them any time, anywhere.

If you are not based in the New Haven area and able to participate in the class throughout the week, we strongly encourage you to investigate the free, self-paced edX version of CS50. We won’t be able to offer you additional support over the online version and will need to hold you to much stricter deadlines. You will therefore likely be better served taking a different course for your EMBA program and taking CS50 on your own.

What are CS50’s prerequisites?

None. You may take CS50 regardless of previous computer science experience, inside or outside a classroom. In fact, over 2/3 of CS50 students have never taken a CS course before!

Does CS50 fulfill a QR credit?


Can students take CS50 Credit/D/Fail?

Definitely! Taking CS50 Credit/D/Fail is a great way to gain a strong foundation in CS without feeling as much of the pressure surrounding letter grades.

What about CPSC 112 and CPSC 201?

In the fall, CPSC 112—Yale’s introductory CS course geared towards non-majors—is not offered, but CPSC 201—Yale’s introductory CS course geared towards majors—is offered. Unlike CS50, both courses are offered in the spring. Many students choose to take CS50 in the fall, followed by CPSC 201 in the spring.

What’s it like to take CS50?

Lectures, Walkthroughs, and Enrichment

CS50 officially meets for one 75-minute period per week every Thursday from 4-5:15pm in SSS 114 during the term. Students are only expected to attend three lectures in person (one at the start of the term, one in the middle, and one at the end). All other lectures are available via video, released weekly in conjunction with problem sets. During class time on all other Thursdays, CS50 holds discussions of related topics for students who are interested in additional context and applications. We will also hold “walkthroughs” for students who would like additional guidance on problem sets either during office hours or the Thursday lecture slot; students are welcome but not expected to attend any of these sessions.

You are welcome to sign up for CS50 even if you have another class that conflicts with the Thursday lecture. The course time will be listed as “3HTBA” for course registration to make this possible.


CS50 sections are at the heart of the course. Led by CS50 TAs, sections are 110 minutes long and take place at a variety of times and days during the week. The TA who leads your section will also evaluate your weekly problem sets and serves as a go-to resource for any and all questions, comments, or concerns.

Office Hours

CS50’s office hours are opportunities for you to receive additional guidance on course material and problem sets from the course’s TAs and CAs, as well as to work in a communal environment with your peers! Office hours take place on multiple afternoons and evenings throughout the week.


CS50 hosts a number of exciting events throughout the fall that will allow you to better connect with your peers and the course’s staff as well as dive more deeply into the world of computer science. Every Friday, CS Lunches bring together students, staff, and our friends in companies throughout the industry. CS50 Puzzle Day at the start of the term, the CS50 Hackathon (an epic all-nighter!), and the CS50 Fair at term’s end help make the course an unforgettable experience.

What do students say about the course?

“Best class I have taken at Yale. 100% would do it again. It teaches computer science in an engaging and interesting way, making problem solving sexier than traditional computer science courses. The support system is great (TAs, professors, and assistants).”

“A time­consuming but extremely rewarding course. Will make you love computer science, despite the long and arduous [problem] sets. This course doesn’t just teach programming, it teaches computer science. I would absolutely recommend it because if you want to do well you have all the resources you need: from discussion forums to nightly office hours with outstanding TAs, this course gives you so much support.”

“CS50 is a fantastic class, appropriately challenging, and harnesses the most positive characters of the student body towards a collaborative and social learning experience that is both efficient and rewarding.”

“Definitely take—it’s very important to have coding/comp sci skills, and this is the best class to teach you.”