Save for later

CS50's Introduction to Computer Science

Computer Science for Game Development,

This is CS50x , 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. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. 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.

Students who earn a satisfactory score on 9 problem sets (i.e., programming assignments) and a final project are eligible for a certificate. This is a self-paced course–you may take CS50x on your own schedule.

HarvardX requires individuals who enroll in its courses on edX to abide by the terms of the edX honor code. HarvardX will take appropriate corrective action in response to violations of the edX honor code, which may include dismissal from the HarvardX course; revocation of any certificates received for the HarvardX course; or other remedies as circumstances warrant. No refunds will be issued in the case of corrective action for such violations. Enrollees who are taking HarvardX courses as part of another program will also be governed by the academic policies of those programs.

HarvardX pursues the science of learning. By registering as an online learner in an HX course, you will also participate in research about learning. Read our research statement to learn more.

Harvard University and HarvardX are committed to maintaining a safe and healthy educational and work environment in which no member of the community is excluded from participation in, denied the benefits of, or subjected to discrimination or harassment in our program. All members of the HarvardX community are expected to abide by Harvard policies on nondiscrimination, including sexual harassment, and the edX Terms of Service. If you have any questions or concerns, please contact [email protected] and/or report your experience through the edX contact form.

What you'll learn

  • A broad and robust understanding of computer science and programming
  • How to think algorithmically and solve programming problems efficiently
  • Concepts like abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development
  • Familiarity in a number of languages, including C, Python, SQL, and JavaScript plus CSS and HTML
  • How to engage with a vibrant community of like-minded learners from all levels of experience
  • How to develop and present a final programming project to your peers

Get Details and Enroll Now

OpenCourser is an affiliate partner of edX and may earn a commission when you buy through our links.

Get a Reminder

Send to:
Rating 4.6 based on 96 ratings
Length 12 weeks
Effort 6 - 18 hours per week
Starts On Demand (Start anytime)
Cost $199
From Harvard University, HarvardX via edX
Instructors David J. Malan, Rob Bowden, Zamyla Chan, Doug Lloyd, Brian Yu
Download Videos On all desktop and mobile devices
Language English
Subjects Programming
Tags Computer Science Engineering

Get a Reminder

Send to:

Similar Courses

What people are saying

introduction to computer science

I thought this was a great introduction to computer science.

The introduction to Computer Science course from Harvard University CS50's was amazing.

This course is a general introduction to computer science focused primarily on the C language.

Good introduction to Computer science.

This class is first class and must be just about the best introduction to computer science accessible on the web.

Read more

problem sets

The problem sets are designed in such a way that one is forced to read and do further research to accomplish them.

The instructor, David Malin, does an outstanding job of making it interesting as well as making it easy to submit problem sets and get them graded quickly (because it's mostly automatic).

The team behind this course did a phenomenal job in creating an extremely thought out curriculum with challenging and interesting problem sets.

Pretty much everything is identical here, from the full 60-90 minute lectures uploaded verbatim twice a week to the admittedly very interesting and unique problem sets.

The lectures go at a good pace and are very engaging, the problem sets are challenging while also encouraging creative solutions, and the final project is a fantastic method of bringing together everything you have learnt in the course.

Lectures are very engaging, there are lots of resources to understand the material(Lectures, Turorials, shorts and wakthroughs), Problem sets are very good.

live classes please Best Introduction to C programming and very engaging problem sets .HASHTABLE and TRIES data structure is explained in a super easy manner.

My husband is a computer programmer and used some of the problem sets as interview questions for new hires.

Read more

david malan

Professor David Malan and his army of TAs put an absurd amount of effort into giving Intro to Computer Science actual LIFE.

David Malan explains everything very well and is very interactive, using his students to help explain different concepts.

The instructor David Malan is one of the most charismatic instructors I've ever seen.

You'll get fully filmed lectures of brilliant David Malan and set of really entertaining projects.

David Malan created an incredible course in which you have his presentations as a first contact to subjects and inspiritation and then you digg in deeper by watching the shorts (you need to) and the sections (if you need to)m and doing some readings before the psets.

Ahhh David Malan, a wonderful professor in the new era of free education.

Read more

figure out

There is a lot of good stuff here, but is is so painfully disorganized it is a chore to figure out.

Someday they'll figure out how to adjust the course material to the medium, but until then I'd rather not spend my time listening to a huge chunk of the lecture time spent on office hours, drop-add period, TA introductions, locations and times of recitation sections, exam and homework schedules.

Read more

learning curve

the learning curve is steep but doable and there is a lot of help out there!

CS50x has a steep learning curve, especially towards the end when students get to build a real web application using a combination of tools.

data structures

Introduce you to some fundamental data structures such as trees and linked lists.

Topics covered: bits, binary, ascii, Scratch, C, compilers, functions, types, scope, linear search, binary search, big O notation, sorting, pointers, data structures, HTTP, HTML, CSS, PHP, SQL, JavaScript, Ajax and APIs.

Read more

most importantly

The platform is reliable, the UX is crisp, and, most importantly, the course content is phenomenal.

even though

The sense of satisfaction I gained from completing each problem set was tremendous and even though the learning curve is steep (to say the least), I am now comfortable in my understanding of the basics of computer science and in coding in C. The web design module was probably the most fun even though for me personally it was the most demanding.

First of all, I need to say that I had previous knowledge in programming languages, and even though I hadn't written in pure C for almost 2 years, it might have been easier for me.

felt like

This course felt like a full college course.

It is the first MOOC for which I felt like I would really have earned 3 or 4 credit hours because- similar to taking it in-person.

I often felt like I might not make it but I now fell that I have learned more in this course than any other I have ever taken and am glad they have not dumbed it down or simplified it.

Read more

signed up

More recently I signed up for the EdX version out of interest to see what they had changed.

As an aspiring mathematician and scientist with an interest in tech, I have always wanted to learn computer science and programming in my free time, but to this day I have signed up for and given up on countless online courses due to a lack of motivation.

Read more

real life

He uses clever real life examples to make complicated notions easier, in fact, you don't need any programming experience and it's still useful in non- programming jobs.

And indeed making errors is an important part of the process, so by showing mistakes we can encounter that makes the lectures interactive and close to real life programming.

Read more

important part

# The lectures The lecture are one of the most important parts of the course, David J. Malan is a great lecturer.

# Problem Sets Without a doubt, psets were the other important part of the course.

Read more


An overview of related careers and their average salaries in the US. Bars indicate income percentile.

AP Coordinator Manager 2 $36k

account specialist,AR, AP, sales support, manufactoring $54k

Coordinator, Operations, AP $54k

AP Specialist/T&E Program Administrator $56k

Chinese-Mandarin Teacher (AP Test Preparation) $58k

AP sales rep $62k

HS Science Faculty (AP/Honors) & New Teacher Mentor $66k

Chemistry/ AP Environmental Science Teacher $70k

Senior Designer | LEED AP $70k

AP Customer Center Analyst $72k

Supervisor AP coder $81k

Vice Senior President Architect, LEED AP $149k

Write a review

Your opinion matters. Tell us what you think.

Rating 4.6 based on 96 ratings
Length 12 weeks
Effort 6 - 18 hours per week
Starts On Demand (Start anytime)
Cost $199
From Harvard University, HarvardX via edX
Instructors David J. Malan, Rob Bowden, Zamyla Chan, Doug Lloyd, Brian Yu
Download Videos On all desktop and mobile devices
Language English
Subjects Programming
Tags Computer Science Engineering

Similar Courses

Sorted by relevance

Like this course?

Here's what to do next:

  • Save this course for later
  • Get more details from the course provider
  • Enroll in this course
Enroll Now