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, and SQL. Via the course’s end-of-term “tracks” will you learn a bit about Java, JavaScript, Lua, and/or Swift (each of which can be described as an “object-oriented” language). Via one of the course’s end-of-term tracks can you also learn a bit of 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. You may may take CS50 (SAT/UNS or for a letter grade) to fulfill the Science and Engineering and Applied Science distribution requirement or the Quantitative Reasoning with Data requirement, but not both.

Grades

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

College Students

In my.harvard, select Student Home, then select Documents, and then, under Document Center, download Fall 2019- 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.

Grad Students

If you are a GSAS student, submit this form. Even though it’s “for language courses only,” you may indeed use it for CS50.

If you are a grad student at another school, email enrollment@fas.harvard.edu, and FAS’s Registrar will make the change for you.

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

Unless your (potential) concentration 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 11, 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 2018, 41% of students received a final grade of SAT, 30% of students received a final grade of A, 18% of students received a final grade of A-, 6% of students received a final grade in the B range, and 2% of students received a final grade in the C range, per the below. In cases of E (<1%) or UNS (1%) were typically extenuating circumstances.

grades

Which concentrations offer concentration credit for CS50?

See this spreadsheet.

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

See this spreadsheet. Note that you may take CS50 SAT/UNS and concentrate in CS; CS does not require a letter grade.

Laptops

If my laptop isn’t working, can I borrow one?

Yes, SEAS Computing has a (small) number of loaner computers that they can loan out for a couple of weeks at a time. They arent’t replacements, just a way of not falling too far behind while you either get your current machine repaired or procure a new one. Email ithelp@harvard.edu to arrange.

Prior Experience

Does CS50 have any prerequisites?

No, CS50 does not assume any prior CS or programming experience. In fact, 66% of Fall 2018’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!

Semesters

When is CS50 offered?

CS50 is offered primarily in fall term. All students, including concentrators and non-concentrators, are encouraged to take CS50 in fall term. However, concentrators and secondaries unable to take the course in fall term may take a spring version of CS50, aka CS50s.

How does spring term differ from fall term?

In fall term, students are expected to attend live lectures as well as live sections. In spring term, students are expected to watch lectures on video (produced in fall term) and attend live sections.

Academically, the terms are equivalent, but the fall version of CS50 includes cultural traditions as well.

  Fall Spring
CS50 Fair  
CS50 Hackathon  
CS50 Lunches  
CS50 Puzzle Day  
Enrollment Unlimited Limited
Final Project
Grading Basis SUS or LG LG
Lectures Live Video
Sections
Office Hours
Problem Sets
Quizzes
Simultaneous Enrollment  
Test
Tutorials  

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 Administrative Board itself. But the Administrative Board has already granted an exception for CS50 itself, which obviates those needs. You do not need anyone’s permission or signature, and you do not need to petition the Administrative Board.

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 both courses via my.harvard. CS50 is deliberately listed in the catalog as having no day or time (even though it does meet on Mondays, 3pm–5pm) so that it doesn’t technically conflict with any other courses. (Otherwise known as a “workaround” in software!)

Can I watch CS50’s lectures online if they conflict with some other academic or athletic commitment?

Yes, but be sure to arrange first with heads@cs50.harvard.edu.

Support

How much academic support does CS50 provide?

Quite a lot! In addition to lectures, supersections, and sections, CS50 also offers more than 350 staff-hours of office hours and tutorials per week.

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

Note that, in Fall 2018, Problem Set 3 proved more time-consuming than intended.