Is CS50 on Coursera?
No. This is the single most common point of confusion about CS50, and it makes sense: Harvard does offer other courses on Coursera. CS50 is not one of them.
All CS50 courses live on edX (edx.org) and the official CS50 site (cs50.harvard.edu). If you search Coursera for "CS50," you will not find the real thing. Any listing you find there under a similar name is not the official Harvard course.
Why does the confusion happen? Harvard partners with both Coursera and edX for different programs. CS50 has been on edX since 2012 and has never moved. But when people hear "free Harvard course," they check Coursera first because it's the bigger platform. The course simply isn't there.
The direct links: go to edx.org and search for CS50, or visit cs50.harvard.edu for the full list of courses with direct enrollment links.
Is CS50 free?
Yes. Every CS50 course is free to take, watch, and submit work on edX through their audit track. You get full access to lectures, problem sets, and course materials at no cost.
Certificates are where the money comes in. edX charges for a "verified certificate" (typically $149 to $299 depending on the course). But cs50.harvard.edu offers its own free certificate for CS50x specifically: if you complete all problem sets and the final project, you can claim a free certificate directly from Harvard's site. This is a genuine Harvard certificate, not a participation badge.
For the other CS50 courses (CS50P, CS50W, CS50 SQL, etc.), the free audit gives you everything except the edX verified certificate. The learning is identical whether you pay or not.
All seven CS50 courses: what each one covers
Harvard offers seven CS50 courses. They share an instructor (David Malan) and a teaching style (lectures, problem sets, a final project), but each covers different ground. Here's what you need to know about each one.
1. CS50x: Introduction to Computer Science
Level: beginner. Time: 10 to 20 weeks.
This is the flagship course and the one most people mean when they say "CS50." It starts with Scratch (visual block programming), moves to C, then Python, SQL, HTML, CSS, JavaScript, and Flask. It's not a language course; it's a computer science course that happens to use multiple languages. You'll learn how memory works, what algorithms do, and why data structures matter. Best starting point if you want a real CS foundation. See /courses/cs50-intro-computer-science for details.
2. CS50P: Introduction to Programming with Python
Level: beginner. Time: 8 to 12 weeks.
A pure Python course. Covers variables, functions, conditionals, loops, exceptions, libraries, unit testing, file I/O, regular expressions, and object-oriented programming. It's gentler than CS50x because it sticks to one language and skips the low-level C material. Best choice if you want to learn Python specifically and aren't interested in the broader CS theory. See /courses/cs50-python for details.
3. CS50W: Web Programming with Python and JavaScript
Level: intermediate. Time: 12 weeks.
Pick this up after CS50x or CS50P. Covers HTML, CSS, Git, Python (Django), JavaScript, SQL, testing, scalability, and security. The final project requires you to build and deploy a complete web application. This is where CS50 students who want to become web developers go next. See /courses/cs50-javascript for details.
4. CS50 AI: Introduction to Artificial Intelligence with Python
Level: intermediate. Time: 7 weeks.
Covers search algorithms, knowledge representation, uncertainty (probability), optimization, machine learning, and neural networks, all implemented in Python. Requires comfort with Python (take CS50P first). Good entry point into AI/ML concepts before jumping to specialized frameworks like TensorFlow or PyTorch. See /courses/cs50-ai for details.
5. CS50 SQL: Introduction to Databases with SQL
Level: beginner. Time: 6 weeks.
Covers querying, relating, designing, writing, viewing, and optimizing databases using SQL. Useful on its own for anyone working with data, and a natural companion to CS50P if you're heading toward data science or backend development. See /courses/cs50-sql for details.
6. CS50 Cybersecurity
Level: beginner. Time: 8 weeks.
Covers passwords, phone security, email security, internet security, web security, and more from a practical, non-programmer perspective. This is the most accessible CS50 course because it doesn't require prior coding experience. Good for anyone who wants to understand digital security without writing code. See /courses/cs50-cybersecurity for details.
7. CS50 Scratch: Introduction to Programming
Level: true beginner. Time: 3 to 4 weeks.
Uses MIT's Scratch (visual block-based programming) to teach programming concepts to absolute beginners, including kids and teens. No typing code, no setup. If you're not sure whether programming is for you, this is the lowest-commitment way to find out. See /courses/cs50-java for details.
Which CS50 course should I take?
This depends on where you are and where you want to go. Here's a quick decision guide.
I've never coded before and want a serious foundation: CS50x. It's hard, but it will teach you how computers actually work.
I've never coded before and just want to try Python: CS50P. Simpler scope, one language, still well-taught.
I want to build websites: CS50W (after CS50x or CS50P).
I'm interested in AI and machine learning: CS50 AI (after CS50P).
I want to work with databases and data: CS50 SQL (can be taken standalone or after CS50P).
I want to understand cybersecurity: CS50 Cybersecurity (no prerequisites).
I'm a kid, a teen, or a total beginner who wants the gentlest intro: CS50 Scratch.
You don't need to take them in order. CS50x and CS50P both work as standalone first courses. The intermediate courses (CS50W and CS50 AI) assume you know Python.
CS50 vs other free options
CS50P vs Python for Everybody (Coursera): both are free, both are beginner-friendly Python courses. CS50P is faster-paced and project-driven with tougher problem sets. Python for Everybody is more gradual and structured as a multi-week specialization with weekly pacing. If you want a challenge, CS50P. If you want a gentler ramp, Python for Everybody. See our Python course ranking at /guides/best-free-python-courses-2026.
CS50x vs The Odin Project: very different goals. CS50x teaches computer science fundamentals using multiple languages. The Odin Project teaches practical web development through building real projects. CS50x gives you theory and breadth; The Odin Project gives you job-ready web dev skills. Many people do both. See /guides/freecodecamp-vs-the-odin-project for a deeper comparison of free learning platforms.
CS50x vs freeCodeCamp: freeCodeCamp is broader (covers more languages and topics) and more guided (in-browser coding, structured milestones). CS50x is deeper in CS fundamentals but narrower in scope. If you want a wide survey of topics with certificates along the way, freeCodeCamp. If you want to understand computing at a foundational level, CS50x.
Tips for getting through CS50
CS50 courses are well-made but genuinely challenging. A few things that help.
Don't skip the problem sets. Watching lectures without doing the work is like watching someone else exercise. The learning happens in the struggle.
Use the CS50 community. The courses have active communities on Discord, Reddit (r/cs50), and the Ed Discussion forums built into edX. When you're stuck, search the forums before posting. Your question has probably been asked before.
Budget more time than you think. CS50x's "10 to 20 weeks" estimate assumes several hours per week. Most people take longer, and that's fine. There are no deadlines on the audit track.
If CS50x feels too hard in week 1, try CS50P or CS50 Scratch first. Coming back to CS50x after learning some Python basics makes the C sections much less intimidating.