Coming Fall 2019

CS50’s first lecture will be on Wednesday 9/4, 3pm–5pm, in Sanders Theatre. Thereafter, lectures will be on Mondays, 3pm–5pm.


Introduction to the intellectual enterprises of computer science and the art of programming. This course teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, and software engineering. Languages include C, Python, and SQL plus students’ choice of: HTML, CSS, and JavaScript (for web development); Java or Swift (for mobile app development); or Lua (for game development). Problem sets inspired by the arts, humanities, social sciences, and sciences. Course culminates in a final project. Designed for concentrators and non-concentrators alike, with or without prior programming experience. Two thirds of CS50 students have never taken CS before. Among the overarching goals of this course are to inspire students to explore unfamiliar waters, without fear of failure, create an intensive, shared experience, accessible to all students, and build community among students.

Class Notes

This course meets for lectures on Mondays, 3pm–5pm. Students are expected to attend the course’s first eight lectures in person unless simultaneously enrolled in another course that meets at the same or overlapping time, in which case they may watch CS50’s lectures online and attend the other course in person. (The Ad Board has already granted this exception for CS50; no other steps are required.) After the course’s eighth lecture, all students will watch their choice of lectures (on web development, mobile app development, or game development) online. CS50 is ordinarily graded SAT/UNS, though students whose concentration requires letter grades should change their grading status to letter-graded by the term’s fifth Monday. Students may take CS50 SAT/UNS to fulfill the Science and Engineering and Applied Science distribution requirement or the Quantitative Reasoning with Data requirement, but not both. First years may take both CS50 and a freshman seminar SAT/UNS. Graduate students are welcome to cross-register for CS50. All students are expected to attend an orientation meeting during the second week of term; students with conflicts may watch online. Required sections to be arranged. See for FAQs, syllabus, and what’s new for Fall 2019.