Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Harvard University

CS50's Introduction to Computer Science

Harvard University via edX

Overview

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.

Taught by

David J. Malan

Reviews

4.6 rating, based on 172 Class Central reviews

Start your review of CS50's Introduction to Computer Science

  • Billy Lim
    A lot of effort can be seen to be placed in the production of lectures/shorts, making it very enjoyable and the concepts understandable. However, if you already know the concepts, the videos can seem overly-theatrical.
  • I thought this was a great introduction to computer science. The instructor David Malan is one of the most charismatic instructors I've ever seen. The team behind this course did a phenomenal job in creating an extremely thought out curriculum with challenging and interesting problem sets. This is not an easy course but was well worth the effort.
  • Kidanemariam Abebe
    This course is not for beginners. I wanted to learn programming for fun, to understand what my husband does, and learn something new at a leisurely pace. But introduction means nothing, you jump right into problems sets that are extremely challenging
  • Anonymous
    Not free they charging for certificate. I was really hoping for it to be free so I can just have a good skill and certificate. But they only giving video lecture for free but not certificate 😭.
  • Profile image for Hamoon Jamshidi Meydandar
    Hamoon Jamshidi Meydandar
    I have tried many introductory courses/books/websites for computer science and programming. This one is my favorite.
    It is challenging to complete the tasks, but they are designed so after you finish them, you will have a fantastic vision of a computer scientist.

  • Profile image for Leek
    Leek
    wonderful course also interesting I love how many information I can get in a free course ! so lovely and again thank you
  • Anonymous
    If you have done some programming and want to gain a deeper understanding about how computers work and what the code you write actually makes a computer do, this is a great place to start. This course deserves the praise it gets. I learned a lot from it and really enjoyed it!
  • Profile image for Kgd Khdky
    Kgd Khdky
    this is the best course to get your feet wet in CS.
    when you finish the course you'll be amazed of how much new things you learned and how many challenging problems you solved and you'll also build a project to spice up your portfolio.
  • Anonymous
    This is the best course for Computer Science at introductory level.
  • Anonymous
    This course is not for beginners. My husband is a computer programmer and used some of the problem sets as interview questions for new hires. There are better classes out there for true beginners.
  • Anonymous
    amazing work. demanding but helpful and comprehensive.
  • Kirubel Getnet
    it's good course and this is a big responsiplity thanks for give this chance for me and please add the cyber securityh or ethical hacking course with free thanks forr all
  • Anonymous
    One of the best online courses out there. Prof. Malan's enthusiasm makes computer science come alive. Highly recommended as a first course in computer science.
  • Vikash Kumar
    I’ve just today completed CS50x and my review would be - a tough ride, absolute life changing course with a lot to offer anyone prepared to tackle the challenge head on. It’s not an easy course, & will take a lot of willpower to get through it. But…
  • Hemant Sharma
    Buttercup Pansies completed this course, spending 30 hours a week on it and found the difficulty to be hard. They were not kidding when they said the course was "demanding". I spent at least 2 hours daily working on the course and each course week…
  • Mohamed Ahmed Fettet
    Good Good Good Good Good Good Good Good Good GoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGoodGood
  • Profile image for Modugu Mallika
    Modugu Mallika
    This online computer science course surpassed all expectations. From foundational concepts to intricate algorithms, the course skillfully navigates the vast landscape of CS. With a blend of engaging lectures, hands-on projects, and interactive quizzes, it ensures a comprehensive understanding. The instructor’s clarity, paired with a well-structured curriculum, makes challenging topics accessible to both novices and seasoned learners. Moreover, the course forums foster a collaborative community, encouraging peer-to-peer learning. In an era flooded with online resources, this course stands out, offering a holistic, immersive, and enriching CS learning experience. Highly recommended!
  • Profile image for Roni Rahman
    Roni Rahman
    CS50's Introduction to Computer Science is a highly regarded online course that offers a comprehensive introduction to computer science concepts, programming languages, and algorithms. Taught by Harvard professors, the course covers topics such as C, Python, SQL, web development, and more. Through engaging lectures, problem sets, and projects, students gain a strong foundation in computer science that can be applied to a variety of fields. The course is also highly accessible, with no prior programming experience required. Overall, CS50's Introduction to Computer Science is a fantastic course for anyone looking to gain a strong understanding of computer science fundamentals.
  • Anonymous
    contemplating all the theoretical material I was going to receive about how computers work and the software involved in the machine I use everyday to get work done. I skimmed over the course description but did not give it much attention. I was simp…
  • It helped be to learn and reinforce concepts during my school time and since then I recommend it to everyone.

    Engaging lectures, lots of extra material like the shorts and the activities around the course (puzzle day, live sessions, seminars, etc.)

    The problem sets are fun and interesting and the infrastructure for working on them is good since you can get automated feedback.

    It has several active communities from where you can get support, particularly on Discord.

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.