Looking for an introduction to computer science? There are plenty of options online. In this article, we present our top five online introductions to computer science. We dive into each course’s syllabus and its Class Central rating and reviews, which informed our picks.
Our picks, simplified
Since all of our top picks are quality courses, the best course for you depends on fit. Here is a simplified guide for picking the best course for you:
Programming is not computer science and vice versa. There is a difference. This answer on the Software Engineering Stack Exchange highlights the difference:
Computer science is the study of what computers [can] do; programming is the practice of making computers do things.
Courses in this article introduce computer science. Many, you’ll notice, have a programming portion. None, however, are strictly programming courses, which is why courses like Udacity’s Introduction to Python Programming are excluded.
Why you should trust us
In 2016, I created my own data science master’s degree using online courses. I scoured the introduction to computer science landscape, took a few courses, and audited portions of many others, as I wanted to build a solid CS foundation before specializing in data science. I then wrote a review-driven guide for Class Central to help others create their own DIY data science education.
Over the past few years, I’ve created introductory courses in programming, computer science, and data science for Udacity and DataCamp. I know what computer science courses are available online and have first-hand experience learning and teaching similar courses.
For this article, I spent 10+ hours trying to find every single online introduction to computer science course offered as of March 2020, extracting key bits of information from their syllabi and reviews, and compiling their ratings.
Dhawal Shah is the founder and CEO of Class Central, an open source community that has a database with thousands of course ratings and reviews. Dhawal has been keeping a close eye on online courses since 2011 — arguably, more than anyone else in the world. He has vetted this list of courses.
Remember that all courses in our top picks are great courses — the best choice for you depends on fit.
Note: All Class Central rating data presented below is as of March 25, 2020. Visit the linked course pages to inspect the rating data as well as all student reviews.
Class Central rating
Number of ratings
CS50’s Introduction to Computer Science is our top pick for most people. This course has the best balance of breadth and depth of all of the content in this article. Plus, it introduces students to a variety of languages (notably C, Python, and SQL), whereas our other picks do not. The course is structured well and its production value is superb. The instructor, David J. Malan, and the community are strong.
CS50 has nine weeks of instruction with eight problem sets, which are assignments marked by an automated grading system. Students then pick one of four tracks (Games, Web, iOS, or Android), each of which has two to three problem sets. The course wraps up with a final project. This unique structure lets students choose their own computer science-related career path.
Students spend weeks 1 to 5 coding in C, a programming language known for its complexity. Why start in C instead of a higher-level, more beginner-friendly language like Python? CS50 teaches computer science with a “bottom-up approach, emphasizing mastery of low-level concepts and implementation.” I am glad I learned C for this reason:
The advantage to knowing C is that you have a very good idea of how a computer works. Not just how your programming model works, but how memory is laid out, and suchlike. Knowing C also lets you appreciate how much less work you have to do in a higher-level language … and the cost involved in working in that higher-level language.
This is the same course Harvard students take, which means the course is regularly updated, which is fairly rare for publically available online courses. Evidence of that: CS50 used to teach PHP, which has fallen out of favor somewhat. In late 2016, they recognized that and pivoted to teach Python instead, one of the hottest languages today.
My favorite quote from their course description emphasizes accessibility, which is important when teaching a topic that can be intimidating for many:
Designed for concentrators and non-concentrators alike, with or without prior programming experience. Two-thirds of CS50 students have never taken CS before. Among the overarching goals of this course are to inspire students to explore unfamiliar waters, without fear of failure, create an intensive, shared experience, accessible to all students, and build community among students.
CS50 is broken down into weeks on the course homepage, where you can preview lectures, problem sets, and more. Note that the week count is zero-indexed, with the twelve weeks numbered 0 to 11.
Week 0: Scratch 😺
Week 1: C
Week 2: Arrays
Week 3: Algorithms
Week 4: Memory
Week 5: Data Structures
Week 6: Python 🐍
Week 7: SQL
Week 8: Information
Weeks 9-10: Tracks (Games, Web, iOS, or Android)
Week 11: Final Project
I wrote this review of the course in 2016, which is filled with effusive praise. The course has been improved since then. Below are some more recent reviews.
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. The instructor, David Malan, 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). There are lots of people taking the course at any one time so the Facebook group is very active with people helping each other. Full review
This is the BEST kick off to pursue other ambitions for web development, artificial intelligence, machine learning, cyber security, databases, etc. Full review
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. Full review
A well-designed online experience from Georgia Tech with a tilt towards programming in Python
Georgia Tech’s Introduction to Python Programming Professional Certificate is our second pick, though it came close to being number one. It is a series of four courses, each 5 to 6 weeks long.
All four courses are taught by Dr. David Joyner, a leading voice in online education. Joyner designed the course based on modern best practices in online education — notably, the theory (presented via short videos and reading material) is systematically followed by multiple opportunities to practice. Multiple choice questions are available for those auditing the course. Students must upgrade to the paid Verified Track to access the coding problems. One reviewer writes: “The platform hosting the online problems works really well, with the ability to run your code and change the values right in the platform.”
One slight difference between this program and Harvard’s offering is Harvard uses the C programming language to teach the fundamentals of computer science then applies those to Python. By contrast, Georgia Tech conceptually covers those principles and rapidly transitions into implementing them in Python. Both strategies are based on the same inspiration and work well.
There are four courses in the program. The syllabus for each course is available on the Class Central page linked below.
The best part of the course, apart from the material, is the tone of the teaching. It’s inviting. Professor Joyner and his team are adept at understanding core problem areas of students when it comes to learning how to code, which is evident in how they emphasize certain learning challenges throughout the course (nested loops, understanding the “return” command of a function, etc.). Moreover, they treat you like a true beginner, someone who doesn’t know anything about the course that they’re taking, which is a huge plus. Sometimes introductory courses aren’t “introductory” enough. Full review
This is an outstanding introduction to Python and computer science. The materials are concise, comprehensive, clear and coherent. I’m sure there are alternatives as good as this, but I doubt that there are any better. There is some rigor and intensity to the presentation, but at the same time Joyner makes the materials inviting and understandable … That said, it’s a demanding effort–and the course materials provide plenty of interactive practice materials and evaluation. Full review
On Computing in Python III: Data Structures:
The lectures and SmartBook (online interactive textbook) go together nicely, and there is plenty of room to develop your own optimal method of learning, whether that entails all lecture, all reading, some of both, or a combination of those, exercises in the course, and information from other professor-recommended websites. Full review
Shorter and more conceptual versions of our top pick from Harvard
CS50’s Computer Science for Business Professionals (a.k.a. CS50B)
Free to audit
Paid certificate available
2-6 hours per week
6 weeks long
Class Central rating
Number of ratings
CS50 for Lawyers (a.k.a. CS50L)
Free to audit
Paid certificate available
3-6 hours a week
10 weeks long
Python and SQL
Class Central rating
Number of ratings
Our next pick(s) are CS50’s Computer Science for Business Professionals (CS50B) or CS50 for Lawyers (CS50L). These courses are shorter, more conceptual versions of our top pick. The course description for both note that “CS50 itself takes a bottom-up approach, emphasizing mastery of low-level concepts and implementation details thereof, [CS50B or CS50L] takes a top-down approach, emphasizing mastery of high-level concepts and design decisions related thereto.”
These courses have similar benefits to our top pick, including thoughtful course design, excellent production value, a dynamic instructor, and a lively community.
CS50B does not involve coding, which makes it a great option for those who don’t need to code (like “managers, product managers, founders, and decision-makers more generally”) but need to know the fundamentals of computer science. Anyone looking to understand computers a bit better would benefit from this course, whether or not you consider yourself a “Business Professional.”
CS50L is a little bit longer than CS50B and equips students with hands-on experience with Python and SQL. It is also a little less general than CS50B as it is geared towards lawyers and law students. Its course description states: “Through a mix of technical instruction and discussion of case studies, [CS50L] … prepares students to formulate technology-informed legal arguments and opinions.”
CS50’s Computer Science for Business Professionals is structured as follows:
CS50 for Lawyers is structured as follows:
Algorithms, Data Structures
Internet Technologies, Cloud Computing
Challenges at the Intersection of Law and Technology
As these courses are relatively new, they only have one review on Class Central as of March, 2020. On CS50’s Computer Science for Business Professionals:
This course is excellent for business professionals who want a high-level overview of computer science. There are six lecture videos and six assignments, one for each section. The assignments are technical, but don’t involve much math and will not be overly complicated for the average professional. Wikipedia is your friend when reviewing the content to answer questions. If you’ve been programming for a year or more then skip this class and take Harvard’s standard CS50 or MITs CS with Python. Full review
An in-depth, programming-focused series of courses in Python from Rice University
Our fourth pick is Rice University’s Fundamentals of Computing Specialization, which contains six courses and a capstone exam. The first two courses focus more on programming (students learn Python), whereas the later courses focus more on computer science and are also more complex.
This Coursera Specialization has by far the most ratings on Class Central of all of our picks, though these are heavily skewed to the first course in the specialization. With over 3000 ratings at time of writing and 95% of them five stars, An Introduction to Interactive Programming in Python (Part 1) has a cult-level following. That said, it’s more focused on programming, and the later computer science-focused courses aren’t as unanimously loved, which is why it’s our fourth pick.
This Specialization covers much of the material that first-year Computer Science students take at Rice University. Projects are heavily featured: students build more than 20 projects. These features are similar to those of our top two picks. Though the duration is listed at 34 weeks, the total time commitment is just over 200 hours, similar to our top two picks.
There are seven courses in this Coursera Specialization. The syllabus for each course is available on the Class Central page linked below.
On An Introduction to Interactive Programming in Python (Part 1):
The beauty of this course is that it is truly meant for beginners. And it carries your attention the entire time because of the great teaching and projects along the way. It focuses on the fundamentals, which is exactly what a novice needs. From my perspective, trying to enter the field of CS feels like a gargantuan task, especially in today’s world. There is simply too much to learn and it is next to impossible to know where to start. This course (and really the specialization) provides that backbone of fundamentals needed for someone new to the field to grab on to. Full review
On Principles of Computing (Part 1):
A big step up from [An Introduction to Interactive Programming in Python]. Does a great job of starting to transition students from introductory, highly guided projects toward more independent research and experimental exploration of the scientific underpinnings of coding with Python. Full review
On Algorithmic Thinking (Part 1):
As someone with a background in maths, I found this course an excellent way to apply my current knowledge to a programming environment. The applications are extremely interesting and have relevance. The code you write is short, but often you have to write it very thoughtfully. I’m somewhat ashamed to admit that for one of the applications I had to leave my computer running for a few hours because I failed to adequately optimize my code. Full review
A challenging two-course sequence from MIT using Python
Our final top pick is the two-course series from MIT, Introduction to Computer Science and Programming Using Python, and Introduction to Computational Thinking and Data Science. As per the first course’s description, together “they are designed to help people with no prior exposure to computer science or programming learn to think computationally and write programs to tackle useful problems. Some of the people taking the two courses will use them as a stepping stone to more advanced computer science courses, but for many it will be their first and last computer science courses.” The series features lecture videos, lecture exercises, and problem sets in Python 3.
Like our above picks, they cater to a general audience by balancing breadth and depth. That said, this series appears a little more challenging than most (the second course particularly), as per the course description and Class Central review data. Some students loved this, while others found it too difficult. The series is also the longest of our top picks, clocking in at an estimated total of 270 hours.
There are a few negative reviews that note that some of the course material (e.g., slides and code) is disorganized and contains mistakes. These reviews suggest that the course may not be updated as often as our top pick, for example.
The first course, Introduction to Computer Science and Programming Using Python (6.00.1x), is structured as follows:
Week 1: Python Basics
Week 2: Simple Programs
Week 3: Structured Types
Week 4: Good Programming Practices
Week 5: Object Oriented Programming
Week 6: Algorithmic Complexity
Week 7: Plotting
The second course, Introduction to Computational Thinking and Data Science (6.00.2x), is structured as follows:
Lecture 1: Optimization and Knapsack Problem
Lecture 2: Decision Trees and Dynamic Programming
Lecture 3: Graphs
Lecture 4: Plotting
Lecture 5: Stochastic Thinking
Lecture 6: Random Walks
Lecture 7: Inferential Statistics
Lecture 8: Monte Carlo Simulations
Lecture 9: Monte Carlo Simulations
Lecture 10: Experimental Data
Lecture 11: Experimental Data
Lecture 12: Machine Learning
Lecture 13: Statistical Fallacies
The second course also features a programming challenge that is relevant to the current COVID-19 crisis: “you will write a program that will … model the population dynamics of viruses replicating and drug treatments in a patient’s body.”
On Introduction to Computer Science and Programming Using Python:
This is a well-crafted, fast-paced introduction to Computer Science, though a little dry at times. I think it’s based on the introductory ‘CS for non CS majors’ course at MIT. The pace, relative complexity of some of the subject matter and difficulty of a few of the exercises … might make it better suited as a second (or third) course for some, despite using Python (perhaps the easiest programming language to pick up). Full review
I personally enjoyed the instructor’s sense of humour and barely contained enthusiasm for the subject. Full review
The slides are disorganized, oftentimes with the professor making random, nonsensical scribbles that are more distracting than helpful. When you do see the code example screen, there’s old code, unused code, and sometimes superfluous code that would be extremely confusing to a beginner. Full review
On Introduction to Computational Thinking and Data Science:
This is one of the most intellectually stimulating classes ever. Full review
Let’s look at alternatives to our top picks. Keep in mind that programming-only courses are not included in this guide: the focus is computer science. If there are any relevant courses you think we missed, let us know in the comments.
Microcredentials are part of the higher education trend toward modularity and stackability. They involve combining small, individual learning units into broader, cohesive qualifications. In that sense, they live somewhere in the space between single courses and full degrees. Recently, microcredentials have become part of Class Central’s catalog. For more info, check out this page.
All of the courses in this section are free to audit and self-paced. Most have a paid certificate available.
Computer Science: Programming with a Purpose and Computer Science: Algorithms, Theory, and Machines by Princeton University on Coursera. They’re a relatively new pair of courses from an Ivy League university. They use the Java programming language to “teach basic skills for computational problem solving that are applicable in many modern computing environments.” The first course is estimated at 2 to 5 hours a week for 10 weeks, and the second course at 10 to 20 hours a week for 10 weeks. They have no ratings on Class Central.
Computer Science 101 by Stanford University on edX. Taught by Nick Parlante, who has a knack for breaking down complicated topics so beginners can understand. Relatively easy. Estimated 4-6 hours for 6 weeks. It has an average rating of 4/5 with 17 ratings on Class Central.
CS For All: Introduction to Computer Science and Python Programming by Harvey Mudd College on edX. It covers both “low- and high-level concepts, from how the circuits inside a computer represent data to how to design algorithms, as well as how all of this information affects the technology we use today.” Its workload is estimated at 5 to 7 hours a week for 14 weeks. It has an average rating of 5/5 with 2 ratings on Class Central.
Problem Solving, Python Programming, and Video Games by University of Alberta on Coursera. One reviewer noted that the course is successful “getting the learner to solve problems and read the language documentation on their own.” Its workload is estimated at 6 to 10 hours a week for 12 weeks. It has an average rating of 4.5/5 with 2 ratings on Class Central.
CS50’s AP® Computer Science Principles by Harvard University on edX. This course satisfies the College Board’s new AP CS Principles curriculum framework. Its workload is estimated at 5 to 6 hours a week for 36 weeks. It has an average rating of 5/5 with 1 rating on Class Central.
Computing: Art, Magic, Science by ETH Zurich on edX. Students learn the Eiffel object-oriented programming language and notation. The estimated workload is 5 to 10 hours a week for 4 weeks. It has an average rating of 4/5 with 1 rating on Class Central.
MyCS: Computer Science for Beginners by Harvey Mudd College on edX. “The course is intended especially for middle school students and their teachers, but is good for learners of all ages.” It’s six weeks long. It has an average rating of 3/5 with 1 rating on Class Central.
How Computers Work: Demystifying Computation by Raspberry Pi Foundation on FutureLearn. “This course would suit teachers of KS3 and GCSE Computer Science – plus educators from other countries that teach at an equivalent level.” The estimated workload is 2 hours a week for 4 weeks. It has an average rating of 2/5 with 1 rating on Class Central.
Introduction to Computer Science and Programming by Tokyo Institute of Technology on edX. The video lectures in this course are delivered in Japanese accompanied by Japanese transcripts. Its estimated workload is 2 to 3 hours a week for 4 weeks. It has no ratings on Class Central.
Course quality varies greatly on Udemy. All courses included in this section have an average rating above 4/5. They all also have a cost that varies depending on Udemy discounts, which are frequent.
Computer Science 101: Master the Theory Behind Programming by Kurt Anderson on Udemy. This is a short, theory-focused intro with no coding that can be completed in a week. Like our third pick (CS50’s Computer Science for Business Professionals or CS50 for Lawyers), this individual course is a great option for those who don’t need to code but want to know the fundamentals of computer science. This course nearly made our top picks. It includes 8.5 hours of video and 20 articles. It has an average rating of 4.5/5 with 1805 ratings on Udemy.
CS101 Bootcamp: Introduction to Computer Science & Software by Samuel Spencer on Udemy. “A Computer Science & software programming / coding bootcamp for absolute beginners. No coding background necessary.” It includes 2.5 hours of video. It has an average rating of 4.3/5 with 525 ratings on Udemy.
Computer Science 101 – Computers & Programming for Beginners by Timothy Meixner and Johannes Ruof on Udemy. “Understand the basic concepts behind Computers, Computer Science, Programming and Programming Languages.” It includes 1.5 hours of video, 20 articles, and 1 downloadable resource. It has an average rating of 4.5/5 with 243 ratings on Udemy.
Java Programming Essentials: AP Computer Science A by Eric Chou on Udemy. “AP Computer Science, Java, Java 8, Programming, Objected Oriented Programming, OOP, BlueJ, Eclipse, Java SE.” It includes 20.5 hours of video, 19 articles, and 379 downloadable resources. It has an average rating of 4.3/5 with 180 ratings on Udemy.
Computer Science 101: Intro to Java & Algorithms by Tristan Hull and Joshua Benz on Udemy. “Master Coding The Right Way!” It includes 14.5 hours of video, 10 articles, and 7 downloadable resources. It has an average rating of 4.4/5 with 68 ratings on Udemy.
Khan Academy’s Computer Science. Course sections: Algorithms, Journey into cryptography, Journey into information theory, How Computers Work, and Internet 101.
Code Academy’s Code Foundations. “Everyone’s talking about coding, but where do you start? This path will give you an introduction to the world of code and basic concepts. By the end, you’ll know whether Data Science, Computer Science or Web Development is right for you.”
Code Academy’s Computer Science. “Master Python and learn the fundamentals of Computer Science, like data structures and algorithms. These skills are the key to writing more efficient code and acing technical interviews, but most bootcamps don’t teach them.”