CS50

CS50 (Computer Science 50) is an on-campus and online introductory course on computer science taught at Harvard University and Yale University. In 2016, CS50 became available to high school students as an Advanced Placement Computer Science course. The on-campus version is Harvard's largest class with 800 students, 102 staff, and up to 2,200 participants in their regular hackathons.

The course material is available online for free on the edX platform, with a range of certificates available for a fee. this online version, called CS50x, teaches the languages C, Python, SQL, HTML, CSS, and JavaScript. It also teaches fundamental computer science concepts including arrays and data structures, and the Flask web framework. The 2021 iteration of the course introduced three new additional lectures on computer security, artificial intelligence, and the ethics of technology.

The lead instructor is Harvard professor David Malan. Doug Lloyd and Brian Yu were also former members of the CS50 course staff and its lecturers. Facebook co-founder Mark Zuckerberg and former Microsoft Chief Executive Officer Steve Ballmer have given guest lectures. The CS50 course first appeared on-campus in 1989.

Several follow-on programs exist, focusing on web programming, artificial intelligence, game development, and mobile apps.

Format
Lectures are recorded and uploaded to several services including iTunes U, EdX, and YouTube. Additional video "walkthroughs" are recorded with professors and volunteer students. Course questions, called problem sets, or "psets" for short, are available in both PDF and HTML formats. Students can upload problem set answers, and some questions are graded by automation. Students can also use special software to check their code in the cloud. In 2016, CS50 became the first university course to offer students the possibility to watch all lectures entirely in virtual reality. In 2022, the course shifted from CS50 IDE to a web-based version of VS Code based on GitHub codespaces and now the lectures are available in 4K HDR and SDR.

Follow-up courses
CS50 offers several follow-up courses, including:


 * CS50 Computer Science for Web Programming - a more in-depth look at HTML, CSS, and JavaScript, as well as frameworks including Django and React.
 * CS50's Introduction to Artificial Intelligence with Python - covers search algorithms, machine learning, and artificial intelligence.
 * CS50's Introduction to Game Development - teaches the Unity and Löve 2D game engines, as well as 2D and 3D game principles.

Beginner courses
CS50 also provides courses for people who are new to programming or who want to understand more about technology.


 * CS50P: Intro to Python programming
 * CS50x: Computer Science intro
 * CS50's Introduction to Programming with Scratch—An introduction to programming using Scratch, a visual programming language with which aspiring programmers can write code by dragging and dropping graphical blocks
 * CS50's Understanding Technology—covers basic technology concepts, such as computer hardware, the Internet, and multimedia.
 * CS50's Introduction to Computer Science for Lawyers.