CS50 (Computer Science 50) is an introductory course on computer science taught at Harvard University by David J. Malan. The on-campus version of the course is Harvard's largest class with 800 students, 102 staff, and up to 2,200 participants in their regular hackathons.[1] [2] The course was first offered on campus in 1989,[3] and Malan has been the course's instructor since 2007.[4] Notable industry experts including Mark Zuckerberg and Steve Ballmer have given guest lectures.[5] [6]
An online version of the course, CS50x, is available through the platforms edX and OpenCourseWare and follows the same curriculum as the in-person format of the course.[7] All CS50x course materials are free and there is no fee to complete the course, though various verified certificates are available for a fee.[8] CS50x teaches the languages C, Python, SQL, HTML, CSS, and JavaScript. It also teaches fundamental computer science concepts including data structures and the Flask framework.[9] New content is added to the course each year; additional lectures on cybersecurity and emoji were added for 2022.[10] Another adapted version of the course, CS50 AP, is designed for high school students and completes the required curriculum of AP Computer Science Principles.[11]
CS50 was first available in 1989. Michael D. Smith was the professor of the course from 2002 to 2006,[12] after which point David J. Malan has been the primary professor. Margo Seltzer,[13] Brian Yu,[14] and Doug Lloyd[15] have also taught the course. Guest lecturers have included Mark Zuckerberg (2005) and Steve Ballmer (2014).
Yale University began offering the course in 2015, becoming the second institution to teach an official version of the course. The course was offered experimentally for three years until it was added as a permanently-available course.[16] At Yale, CS50 is based on Malan's recorded lectures, which are then supplemented by in-person class sections and office hours, all in New Haven.[17] [18] [19] The University of Oxford is the third university to offer the course; it is available as an online course through their Department for Continuing Education.[20]
In 2016, CS50's lecture schedule changed so that students would only have to attend two in-person lectures during the semester. Instead, lectures are now primarily delivered online.[21] In 2023, an AI-powered teaching assistant was introduced to the course.[22]
CS32 (Computational Thinking and Problem Solving), taught by Michael D. Smith,[23] is an alternative to CS50 but does not have a free online version.[24] The next course in sequence after CS32 or CS50 is CS51: Abstraction and Design in Computation, instructed by Stuart M. Shieber with Brian Yu as co-instructor.[25] CS50 is primarily offered every fall semester, with CS51 being offered every spring semester.[26] [27]
CS50x is a massive online open course and "one of the most popular MOOCs in the world."[28] CS50 first opened to online students in 2007,[29] but the CS50x course officially launched in 2012 as a course on edX.[30] The course content can also be taken through OpenCourseWare for those not seeking a verified certificate. In its inaugural year, over 50 thousand students enrolled;[31] in the years since, it has become the largest MOOC on the edX platform.[32] In 2016, it was reported that around 700 thousand students were enrolled in CS50x.[33] In 2018, a freeCodeCamp article crowned CS50x as "the best MOOC."[34]
There are 11 weeks of material in the CS50x course. Recordings of the on-campus lectures are recorded and uploaded to multiple platforms, including YouTube, Apple TV, and Google TV (one lecture per week). Additional recommended "section" and "shorts" videos are available, as well as "walkthrough" videos within the problem sets. After each week's material, the student submits a problem set, which automatically receives a calculated grade. At the end of the course, the student must submit a final project to complete the course or receive a verified certificate.[35]
There are a variety of other CS50 courses available on edX and OpenCourseWare,[36] [37] including courses on Python, R, and SQL, as well as CS50 AI and CS50 Web, with focuses on artificial intelligence and web applications, respectively.