🌐
Harvard University
pll.harvard.edu › course › cs50-introduction-computer-science
CS50: Introduction to Computer Science | Harvard University
August 12, 2015 - Languages include C, Python, SQL, and JavaScript plus CSS and HTML. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. The on-campus version of CS50x , CS50, is Harvard's largest course.
computer science course taught at Harvard University, Yale University and Dartmouth College
Student presents their CS50 final project, type50, at the CS50 Fair, an end-of-semester event where projects are demonstrated to the Harvard community.
CS50 lecture in Sanders Theatre with Professor David J. Malan, featuring the course’s signature yellow rubber duck mascot.
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, … Wikipedia
🌐
edX
edx.org › cs50
CS50: Harvard’s computer science courses and certificates | edX
Take Harvard's CS50 online through edX and learn computer science and programming fundamentals. Complete graded projects and earn a verified HarvardX certificate.
Discussions

I completed every one of Harvard's CS50 courses. Here's a mini-review of each!
Interesting summary, thank you. People studying at Harvard pay a lot of hard cash for those kind of high-quality courses, but there is a plethora of such courses available nowadays for relatively free. I really do wonder if having studied at Harvard makes for a better programmer than having studied with (cheap) online resources or having worked at a company for an equivalent amount of time. Personally, I think I learned the most from uni projects and work in contrast to pure classes. Having to get into the weeds of something is where the learning happens. More on reddit.com
🌐 r/learnprogramming
162
961
March 20, 2024
[Opinion] Harvard's CS50 is an amazing course and wonderfully taught, but it's not a good first course to learn programming/computer science for someone with no background

I remember when I tried taking the course a couple years ago I completely gave up when I got to the "whodunit" problem, where you have to manipulate a bitmap to decipher a hidden message. In retrospect, the coding part wasn't all that hard, it was the way the problem expects you to figure out how exactly you need to manipulate the image to reveal the message. It's a great problem-solving exercise for someone with more coding experience but when you're taking CS50 as an introductory course it's just miserable. I'm still not sure I could figure it out on my own if I tried again today

More on reddit.com
🌐 r/learnprogramming
269
1825
April 5, 2021
is Harvard's CS50 a good course to start off with?
Yes I highly recommend it. It's what really got the ball rolling for me in terms of computer science. The way they explain the topics is very clear. They get you working on programing projects and problems right away aswell which in my opinion is the most important part. More on reddit.com
🌐 r/learnprogramming
34
131
May 7, 2023
I completed Harvard's CS50 (Without Certificate) and You should try it once in your life
Also just finished the course. Can confirm it rocks. More on reddit.com
🌐 r/cs50
37
122
January 27, 2023
People also ask

Will I learn coding by taking a CS50 course?
Yes, CS50 courses teach you how to code using languages like C, Python, SQL, and JavaScript. More importantly, they help you understand how programming works so you can continue learning new technologies over time.
🌐
edx.org
edx.org › cs50
CS50: Harvard’s computer science courses and certificates | edX
Why should I enroll in CS50 courses?
You should enroll in CS50 courses to build practical computer science skills through a structured, hands-on learning experience. On edX, you’ll learn from Harvard instructors, complete graded assignments, and earn a certificate that validates your progress.
🌐
edx.org
edx.org › cs50
CS50: Harvard’s computer science courses and certificates | edX
Is CS50 difficult?
CS50 can be challenging, especially for beginners or learners from nontechnical backgrounds, because it introduces complex concepts quickly. However, it’s designed for learners with and without prior technical experience and is structured with lectures, problem sets, and community support to help you progress at your own pace.
🌐
edx.org
edx.org › cs50
CS50: Harvard’s computer science courses and certificates | edX
🌐
Medium
medium.com › @shihabhq › a-comprehensive-review-and-guidelines-of-the-harvard-cs50-course-aa5977a0ab6d
A Comprehensive Review and Guidelines of the Harvard CS50 Course | by Shihab | Medium
August 22, 2024 - This is CS50, Harvard University’s introduction to the intellectual enterprises of computer science and the art of programming, for concentrators and non-concentrators alike, with or without prior programming experience. The course consists of 11 weeks(parts) of learning materials ...
🌐
Reddit
reddit.com › r/learnprogramming › i completed every one of harvard's cs50 courses. here's a mini-review of each!
r/learnprogramming on Reddit: I completed every one of Harvard's CS50 courses. Here's a mini-review of each!
March 20, 2024 -

Hello! Some of you may remember me as the person who completed every certificate on FreeCodeCamp. Well, it took me another year to do, but I've now completed every CS50 certificate. Most people probably only know the big CS50/CS50x (Introduction to Computer Science) course, but they actually offer 11 different courses. I've done them all! So here is a mini-review of each...

CS50x (Harvard's Introduction to Computer Science)

This is the CS50 course that everyone knows and loves. Taught by Prof. David Malan, you learn some Scratch, C, Python, SQL, HTML, CSS, JavaScript, and Flask. But, really, it’s about learning computer science basics and learning how to learn - the idea is that, by the end of this course, you will be able to pick up whatever programming languages or technology you need when you need it. Prof. Malan is an amazingly energetic lecturer, and the production quality is very high. To get the certificate, you need to complete 10 problem sets and build a final project.

One thing that I always careful to warn people about: it is a very difficult class for beginners. It’s an intro level class in the sense that it doesn’t assume you have any prior computer science/programming knowledge. But the learning curve for this course is extremely steep. So, personally, I don’t typically recommend this course for total beginners.

Otherwise, it’s an amazing course, and if you’re learning coding/programming/comp sci, you should absolutely put CS50x on your list.

Difficulty: Hard

CS50P (Intro to Programming with Python)

Whereas CS50x is really focused on general computer science concepts, CS50P really just focuses on learning Python. Again, this course is taught by Prof. David Malan, so the lectures are all great. Not quite as high production value as the big CS50x course, but still pretty good.

For the certificate, you need to complete 9 problem sets and build a final project. This course is challenging, but still easier than CS50x. So, for that reason, I tend to recommend completing this one first. And if you’re planning on taking CS50W or CS50AI, then this is definitely worthwhile just to hone your Python skills a bit more before those more difficult courses.

Difficulty: Medium

CS50T (Introduction to Technology)

I mostly took this course out of curiosity, as I didn’t really know what to expect from it. But I also took it because it is another course taught by Prof. David Malan, and he’s a good enough lecturer to make anything interesting. It’s described as a course “for students who don’t (yet) consider themselves computer persons.” So I almost expected it to be like, ‘here’s how to troubleshoot your printer,’ but it isn’t that basic. It’s just a version of CS50x that goes very, very light on coding. There is some Scratch and some HTML/CSS, but nothing too complicated.

It’s a short course with only 6 assignments to complete, which mostly consist of short-answer questions. So it’s like CS50x for people that don’t want to code.

Difficulty: Easy

CS50W (Web Development with Python)

Web development is my main interest, so this was the course I was most interested in taking. It’s taught Brian Yu, who has a different lecturing style than Prof. Malan, but I’d say he is also luckily a very good lecturer. He’s very good at explaining concepts.

CS50W is intended to be a follow-up to the CS50x course which focuses on building full stack applications with Django. If you didn’t have too much trouble with Flask in CS50x, then I don’t think you’ll have too much trouble here, but if you’re not super comfortable with Python, HTML, CSS, and JavaScript, then it will be a big challenge.

There are five assignments to complete, plus a final project. That may not seem like much, but the assignments are quite in depth and will take a good chunk of time to complete. I really enjoyed this course, and though I didn’t love Django at the beginning, it definitely grew on me.

Difficulty: Hard

CS50SQL (Intro to Databases with SQL)

As you may have guessed, this course focuses on building and querying databases using SQL. I don’t think SQL is the most exciting language, but since so much of the software world is about CRUD, this is a course I’d recommend to most people. And, luckily, this one is taught by Carter Zenke who is another good lecturer (and I believe he is also teaching the forthcoming CS50R)

Completing this course requires submitting 7 problem sets and a final project. And, honestly, I had fun doing it all.

Difficulty: Medium

CS50CS (Intro to Cybersecurity)

This newest course from CS50, and I would describe it as a broad overview of a bunch of different cybersecurity topics. You never get too in-the-weeds on any given topic, and there is no coding involved here (you’re not going to be programming a port sniffer in Python or anything like that). So it really does work as a good introductory course.

This course is once again taught by Prof. David Malan, who is as good as always. And it’s one of the shorter courses as well. To get the certificate, you need to submit 5 assignments (like CS50T, each assignment is mostly a bunch of short-answer questions) and a final project. The final project here is interesting: you have to find a recent cybersecurity incident in the news and record a ~10 minute presentation on it.

Difficulty: Easy

CS50B (CS50 for Business Professionals)

This one is very similar to CS50T, just with some modifications to aim it more towards a business-minded audience. Taught again by David Malan, it covers a lot of the same concepts as CS50x but without much of the programming (you only have to deal with a bit of HTML/CSS and Scratch).

There are six assignments, and they are each mostly just a collection of short-answer questions. If you’ve done CS50x this will be an absolute breeze. If this is your first computer science course, you’ll be more challenged, but I don’t think it’s too difficult overall.

Difficulty: Easy

CS50AI (Intro to AI with Python)

This is another follow-up course to CS50x taught by Brian Yu, and it is easily the most difficult course that CS50 offers. The course covers everything from (relatively) simple search algorithms to modern LLMs, and luckily Brian has a way of explaining everything in a very intuitive way. In the lectures, he really focuses on the concepts, to the point that it often feels like you’re hardly seeing any code at all.

To complete the course, you have to submit 7 quizzes - these are all multiple choice and not too difficult - and twelve assignments. These assignments are where it gets difficult. It is a very algorithm heavy course, and I often found myself banging my head against the keyboard for hours trying to get things to work.

I really muddled my way through this course. Even though it was a rewarding experience, it was so difficult at times that I was quite happy for it to be over.

Difficulty: Very Hard

CS50S (Intro to Programming with Scratch)

People often look down on Scratch because it’s a programming language designed for kids, but I honestly had a total blast with this one. It’s taught by Brian Yu, and the lectures are quite short (usually around 30 minutes). If you have some programming experience, you won’t have much trouble with this course at all.

There are 8 assignments, many of which are quite simple, and a final project. I tried to do clever or unique things with Scratch, and I really had fun making weird mini-games. If you’re thinking about taking CS50G, then I think CS50S would be a good warm up.

Difficulty: Easy

CS50L (CS50 for Lawyers)

With this course, I was expecting something similar to CS50T and CS50B (a light version of CS50x). However, it’s definitely more challenging than I’d anticipated.

It’s a longer course, and requires completing 10 assignments (each one mostly being short-answer type questions). The course covers general computer science topics covered in CS50x plus some lectures on cryptography, cybersecurity, and tech-related legal issues. It also covers a bit of Scratch, HTML, CSS, JavaScript, and Python. If you’ve done CS50x already, this won’t be too difficult, but it’s definitely going to be a challenge for anyone who hasn’t done programming/coding.

This one is co-taught by David Malan and Doug Lloyd (who provides the legal perspective).

Difficulty: Medium

CS50G (Intro to Game Development)

Out of all the CS50 courses, this one is in most need of updating. It teaches LOVE2D (uses Lua) and Unity (uses C#), both of which have had big-ish updates since this course was released. But if you’re here to learn more about game dev concepts, then it’s mostly still relevant.

It’s taught by Colton Ogden. In contrast to a lecturer like Brian Yu who really focuses on the conceptual aspects, you spend a lot of time with Colton just going through code.

There are 11 assignments, which are all essentially “take this game that Colton built and add some extra features.” Some of the assignments were easy and took very little time, but many took hours and hours to implement. The hardest thing in my experience was just understanding the codebase. For a couple of the assignments I just jumped right in without taking the time to look through the codebase, and I suffered for it.

There is also a final project that requires you to create a whole new game. This is, for obvious reasons, quite time consuming and difficult. I was quite exhausted by the end of this course, and it made me realize that I probably never want to do any game development ever again. Though, I definitely have a newfound appreciation for video games.

Difficulty: Very Hard

🌐
YouTube
youtube.com › cs50
CS50 - YouTube
This is CS50, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming. Demanding, but definitely doable. Social, but educational.
Find elsewhere
🌐
CS50
cs50.harvard.edu › x
CS50x 2026
(Two thirds of CS50 students have never taken CS before.) This course teaches you how to solve problems, both with and without code, with an emphasis on correctness, design, and style.
🌐
Harvard Online
harvardonline.harvard.edu › course › cs50-introduction-computer-science
CS50: Introduction to Computer Science | Harvard Online
An introduction to the intellectual enterprises of computer science and the art of programming in an online course from Harvard. This is CS50x , Harvard University's introduction to the intellectual enterprises of computer science and the art ...
🌐
edX
edx.org › learn › cybersecurity › harvard-university-cs50-s-introduction-to-cybersecurity
HarvardX: CS50's Introduction to Cybersecurity | edX
An introduction to cybersecurity for technical and non-technical audiences alike.
Published   November 21, 2024
🌐
freeCodeCamp
freecodecamp.org › news › harvard-cs50
Harvard CS50 – Free Computer Science University Course
October 19, 2022 - Harvard University's CS50 is one of the most popular beginner computer science courses in the world. We just released the entire CS50 course–all 25 hours–on the freeCodeCamp.org YouTube channel.
🌐
Wikipedia
en.wikipedia.org › wiki › CS50
CS50 - Wikipedia
October 21, 2025 - 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.
🌐
Quora
quora.com › What-is-CS50-Where-can-I-take-this-course-How-is-it-useful
What is CS50? Where can I take this course? How is it useful? - Quora
Answer (1 of 2): CS50 is a Computer Science course offered by Harvard University online and on campus. It is taught mainly by Prof. David J Malan and many teaching assistants (students also volunteer as teaching assistants).
🌐
CS50
cs50.harvard.edu › x › courses
Courses - CS50x 2026
The course explores the concepts and algorithms at the foundation of modern artificial intelligence, diving into the ideas that give rise to technologies like game-playing engines, handwriting recognition, and machine translation.
🌐
Class Central
classcentral.com › the report › archives › harvard cs50 in 2026: how to get a free certificate
Harvard CS50 in 2026: How to Get a Free Certificate — Class Central
1 month ago - Most notably, the course is entirely free, and it includes a free certificate of completion. But understanding how to obtain it can be a bit confusing. So in this article, let’s discuss CS50 and explain how you can earn a free certificate.
🌐
edX
edx.org › learn › computer-science › harvard-university-cs50-s-introduction-to-computer-science
HarvardX: CS50's Introduction to Computer Science | edX
An introduction to the intellectual enterprises of computer science and the art of programming.
Published   November 26, 2024
🌐
Harvard University
pll.harvard.edu › course › cs50s-introduction-programming-python
CS50's Introduction to Programming with Python | Harvard University
November 8, 2021 - This course is a variant of Harvard University's introduction to computer science, CS50, designed especially for lawyers (and law students).
🌐
edX
edx.org › learn › python › harvard-university-cs50-s-introduction-to-programming-with-python
HarvardX: CS50's Introduction to Programming with Python | edX
An introduction to programming using Python, a popular language for general-purpose programming, data science, web programming, and more.
Published   November 21, 2024
🌐
GitHub
github.com › TheKicker › Harvard-CS50
GitHub - TheKicker/Harvard-CS50: Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50x teaches students how to think algorithmically and solve problems efficiently. · GitHub
Languages include C, Python, SQL, and JavaScript plus CSS and HTML. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. The on-campus version of CS50x , CS50, is Harvard's largest course.
Starred by 34 users
Forked by 7 users
Languages   JavaScript 84.9% | HTML 11.4% | C 2.3% | Python 1.2%
🌐
Harvard University
pll.harvard.edu › course › cs50s-introduction-artificial-intelligence-python
CS50's Introduction to Artificial Intelligence with Python | Harvard University
February 14, 2020 - CS50’s Introduction to Artificial Intelligence with Python explores the concepts and algorithms at the foundation of modern artificial intelligence, diving into the ideas that give rise to technologies like game-playing engines, handwriting ...
🌐
Harvard University
pll.harvard.edu › subject › computer-science-0
Computer Science Courses | Harvard University
This course is a variant of Harvard University's introduction to computer science, CS50, designed especially for lawyers (and law students).