FAQs

Email heads@cs50.harvard.edu with any other questions!

Curriculum

Which languages will I learn?

Rather than teach just one language, CS50 introduces students to a range of “procedural” programming languages, each of which builds conceptually atop another, among them Scratch, C, Python, SQL, and JavaScript. Along the way does the course also introduce students to HTML and CSS (which are languages but not programming languages). The goal, ultimately, is for students to feel not that they “learned how to program in X” but that they “learned how to program.”

Why does CS50 use C?

See this answer on Quora!

First Years

Can first years take both CS50 and a Freshman Seminar SAT/UNS?

Yes. Even though first years may not ordinarily enroll in both a Freshman Seminar and another non-letter-graded course in any one term, they may take both CS50 and a Freshman Seminar SAT/UNS.

Should first years take CS50?

Yes, if they would like! In Fall 2017, first years composed a majority of CS50’s student body. While students should be mindful of CS50’s workload and should perhaps avoid taking 4 pset-based classes, students shouldn’t shy away (from CS50 or any other introductory course) simply because they’re first years.

Gen Ed

Does CS50 satisfy a Gen Ed requirement?

Yes. Students graduating in 2019 can take CS50 to fulfill EMR, SLS, or SPU, provided they change to a letter grade. Students graduating after 2019 can take CS50 (SAT/UNS or for a letter grade) to fulfill the Science distribution requirement.

Grades

How can I change from SAT/UNS to letter grade?

In my.harvard, select Student Home, then select Documents, and then, under Document Center, download Fall 2018- P/F Petition as a PDF. Indicate a change from SUS to LG, and drop off the form at the Registrar’s office in Suite 450 of the Smith Center (at 1350 Massachusetts Avenue) no later than 5pm on the term’s fifth Monday. (There is no fee from the Registrar for changing grading basis.) If you email (a scan or photo of) the form to heads@cs50.harvard.edu, one of the course’s heads can sign it digitally and email it back to you for your advisor’s and resident dean’s signatures.

Should I take CS50 SAT/UNS or for a letter grade?

Unless your (potential) concentration or Gen Ed requires that you take CS50 for a letter grade, you should take CS50 SAT/UNS, which is the default. Not only does SAT/UNS allow you to explore an unfamiliar field (whether CS or some other) without fear of “failure,” odds are, more pragmatically, it will reduce undue stress during your semester’s busier times.

What is CS50’s grade distribution?

Per CS50’s syllabus, “what ultimately matters in this course is not so much where you end up relative to your classmates but where you, in Week 10, end up relative to yourself in Week 0.” Accordingly, provided you put in the time and effort, odds are you’ll fare quite well! In Fall 2017, 26% of students received a final grade of SAT, 28% of students received a final grade of A, 23% of students received a final grade of A-, 16% of students received a final grade in the B range, and 4% of students received a final grade in the C range, per the below. In cases of E (2%) or UNS (1%) were typically extenuating circumstances.

grades

Which concentrations offer concentration credit for CS50?

See https://docs.google.com/spreadsheets/d/1ZUcU4tdte7tR9CgMCcVWUbrfg1Kis8Y4saziitNBoLQ/edit?usp=sharing.

Which concentrations require a letter grade in order for CS50 to count for concentration credit?

See https://docs.google.com/spreadsheets/d/1ZUcU4tdte7tR9CgMCcVWUbrfg1Kis8Y4saziitNBoLQ/edit?usp=sharing. Note that you may take CS50 SAT/UNS and concentrate in CS; CS does not require a letter grade.

Prior Experience

Does CS50 have any prerequisites?

No, CS50 does not assume any prior CS or programming experience. In fact, 68% of Fall 2017’s students had never taken a CS course before!

Should I skip CS50 if I already took AP CS A?

Probably not. Most students who have taken AP CS A still take CS50 as it tends to fill in gaps in their knowledge and also introduces them to C (and more!).

Sections

Is attendance at section expected?

Yes, as sections are meant to be a more intimate, interactive opportunity to master the course’s material. If ever unable to attend your own TF’s section, though, you’re welcome to attend any other!

Simultaneous Enrollment

Can I simultaneously enroll in CS50 and another course that meets at the same or overlapping time?

Yes, you may simultaneously enroll in CS50 and another course that meets at the same time, watching CS50’s lectures anytime online and attending the other course in person.

Ordinarily for simultaneous enrollment, you need the permission of the other course’s instructor, you need to arrange for “compensatory instruction,” and you need to petition the Ad Board itself. But the Ad Board has already granted an exception for CS50 itself, which obviates those needs.

To simultaneously enroll in CS50 and another course that meets at the same or overlapping time, all that you need to do is enroll in the other course via my.harvard and then email enrollment@fas.harvard.edu to have CS50 manually added to your crimson cart as well. No other steps are necessary.

Support

How much academic support does CS50 provide?

Quite a lot! In Fall 2017, in addition to lectures and sections, CS50 also offered 308 staff-hours of office hours per week as well as 147 tutoring sessions with a 3:1 student:staff ratio.

Workload

How difficult is CS50?

For many students, CS50 is simply more time-consuming than it is difficult. Starting each week’s problem set early, then, makes things easier! And the course’s difficulty was also recalibrated back in 2016, per the Q data below.

difficulty

How much work is CS50?

Although the course’s workload had been on the rise in recent years, the course’s workload was recalibrated back in 2016, per the Q data below.

workload

By mid-semester, most students spend 12+ hours per week on the course’s problem sets, but it definitely varies by problem set, per the below, and student.

hours