Sources: MIT, Stanford, Princeton, AWS and more · Verified
Computer science courses differ from programming courses in emphasis. A free introduction covers programming as a means, but its subject is how computation works: algorithms and their cost, data structures, memory and abstraction, and often a tour of web, database or security topics at the end. Intermediate courses take single threads further: algorithms, computer architecture, operating systems, networks, databases, theory of computation and artificial intelligence. Universities dominate this subject and offer their courses in several ways. Recorded lecture archives are free in full under open licences, with problem sets but no certificate.
Introductory courses run on a university's own site can be free in full with a free certificate, while the same course on edX is free to audit with a paid certificate and time-limited access. Non-profit curricula cover the same ground in a hands-on way with free verifiable certificates. When reading a syllabus, look for stated prerequisites in mathematics, for problem sets and projects rather than lectures alone, and for whether the course assumes a particular language. Computer science suits students weighing a degree in the subject, self-taught programmers who want the theory they skipped, and professionals in adjacent fields who need to understand how systems behave. Programming, Python and IT have their own pages on this site for the practical side of the same territory.
CS50's Introduction to Computer ScienceCS50x is Harvard's entry-level course in computer science and programming, open to people with or without prior codin…Harvard · Beginner · 11 weeks
Algorithms, Part IAlgorithms, Part I is the first half of Robert Sedgewick and Kevin Wayne's Princeton course on the algorithms and dat…Princeton · Intermediate · 5 weeks
Algorithms, Part IIAlgorithms, Part II continues Robert Sedgewick and Kevin Wayne's Princeton course and focuses on graph- and string-pr…Princeton · Intermediate · 6 weeks
Computer Science: Algorithms, Theory, and MachinesComputer Science: Algorithms, Theory, and Machines introduces the broader discipline of computer science to people wh…Princeton · Intermediate · 2 weeks
CS223A - Introduction to RoboticsIntroduction to Robotics is Oussama Khatib's graduate course CS223A, released on Stanford Engineering Everywhere.Stanford
Bitcoin and Cryptocurrency TechnologiesBitcoin and Cryptocurrency Technologies is Arvind Narayanan's Princeton course on how Bitcoin works at a technical le…Princeton · 2 weeks
Analysis of AlgorithmsAnalysis of Algorithms is Robert Sedgewick's Princeton course on the mathematics used to make precise quantitative pr…Princeton · Advanced · 2 weeks
Computer ArchitectureComputer Architecture is David Wentzlaff's Princeton course on the design of modern processors, pitched at advanced l…Princeton · Advanced · 5 weeks
Design and Analysis of Algorithms6.046J is MIT's intermediate algorithms course, and the spring 2015 edition taught by Erik Demaine, Srini Devadas and…MIT
Computer Science 101Computer Science 101 is Nick Parlante's StanfordOnline course on edX for people with no prior experience of computer…Stanford · Beginner · 6 weeks
Algorithms: Design and Analysis, Part 1Algorithms: Design and Analysis, Part 1 is Tim Roughgarden's StanfordOnline course on edX, the first half of a two-pa…Stanford · Intermediate · 6 weeks
Prompt Engineering for EveryonePrompt Engineering for Everyone, course code AI0117EN, teaches non-specialists how to write prompts that get useful a…IBM · Beginner · 5 hours
AI FluencyAI Fluency is a seven-module learning path published by Microsoft Philanthropies for people who want a plain-language…Microsoft · Beginner · 4.6 hours
AP®︎/College Computer Science PrinciplesKhan Academy's AP/College Computer Science Principles course follows the topics of the AP CSP curriculum across ten u…Khan Academy
AWS Cloud Quest: Generative AI PractitionerAWS Cloud Quest: Generative AI Practitioner is the second free role in AWS's game-based Cloud Quest and runs about 10…AWS · Beginner · 10 hours
CS50's Computer Science for LawyersCS50 for Lawyers adapts CS50x for lawyers and law students, taking a top-down approach that emphasises high-level con…Harvard · Beginner · 10 weeks
CS50's Introduction to Programming with ScratchCS50's Introduction to Programming with Scratch teaches the fundamentals of programming through Scratch, the block-ba…Harvard · Beginner · 9 weeks
CS50's Web Programming with Python and JavaScriptCS50's Web Programming with Python and JavaScript continues from CS50x into building and deploying web applications.Harvard · Intermediate · 9 weeks
Deep Learning FundamentalsDeep Learning Fundamentals, course code ML0115EN, is a concept-only crash course produced by DeepLearning.TV and host…IBM · 3 hours
Docker Essentials: A Developer IntroductionDocker Essentials: A Developer Introduction, course code CO0101EN, is a compact, lab-driven introduction to containers.IBM · Beginner · 3 hours
Introduction to CloudIntroduction to Cloud, course code CC0101EN, gives the vocabulary of cloud computing from both a business and a pract…IBM · Beginner · 6 hours
Responsive Web Design CertificationfreeCodeCamp's entry point to web development and the first certification in its current Full-Stack Developer curricu…freeCodeCamp
SQL and Relational Databases 101SQL and Relational Databases 101, course code DB0101EN, is a short introduction to querying data with SQL and to the…IBM · Beginner · 5 hours
Analytic CombinatoricsAnalytic Combinatorics is Robert Sedgewick's Princeton course on a calculus for making precise quantitative predictio…Princeton · Intermediate · 2 weeks
AWS Technical EssentialsAWS Technical Essentials is a four-hour digital course on AWS Skill Builder for people in technical roles who are new…AWS · Beginner · 4 hours
Computer Science: Programming with a PurposeComputer Science: Programming with a Purpose is Robert Sedgewick and Kevin Wayne's introductory programming course, b…Princeton · Beginner
CS106A - Programming MethodologyProgramming Methodology is Stanford's introductory programming course, released in full on Stanford Engineering Every…Stanford
CS106B - Programming AbstractionsProgramming Abstractions is the second course in Stanford's CS106 sequence, taught here by Julie Zelenski and publish…Stanford
CS107 - Programming ParadigmsProgramming Paradigms is Jerry Cain's Stanford course on how different languages think, published in full on Stanford…Stanford
EE364B - Convex Optimization IIConvex Optimization II continues Stephen Boyd's EE364A and is published in full on Stanford Engineering Everywhere.Stanford
GitHub Foundations Part 1 of 2GitHub Foundations Part 1 of 2 is a Microsoft Learn learning path that introduces Git and GitHub from scratch.Microsoft · 6.7 hours
Introduction to Machine Learning6.036 Introduction to Machine Learning is MIT's undergraduate machine learning course, offered in the Open Learning L…MIT · 13 weeks
Mathematics for Computer Science6.042J is MIT's discrete mathematics course for computer science and engineering students, and the fall 2010 edition…MIT
Software Construction in Java6.005.1x Software Construction in Java is the first of a two-course MITx sequence on writing good software with moder…MIT · 14 weeks
Introduction to PythonIntroduction to Python is a seven-week BerkeleyX course taught by lecturer Michael Ball and forms part of UC Berkeley…UC Berkeley · Intermediate · 7 weeks
Mining Massive DatasetsMining Massive Datasets is the StanfordOnline edX course taught by Jure Leskovec, Anand Rajaraman and Jeff Ullman, ba…Stanford · Advanced · 7 weeks
Free online computer science courses with certificates: which ones qualify
The 59 courses on this page fall into three groups by what you get at the end: a free certificate, a paid one, or none. The provider decides, not the difficulty: a graduate-level MIT course carries no credential while a short IBM course carries a free one.
University courses on edX and MITx Online open the videos and readings without charge but put graded work and the certificate on a paid track, and edX audit access lapses after the estimated course length. Stanford's Computer Science 101 lists its verified certificate at $249, Algorithms: Design and Analysis, Part 1 at $189, the Linux Foundation's Introduction to Linux at $209, BerkeleyX's Introduction to Python at $200 and MITx's 6.00.1x at $149. CS50x also runs on edX, where the verified certificate costs $219; the free certificate on Harvard's own site covers the same work.
Edinburgh's Code Yourself! on Coursera is the exception in this group: it is free in full rather than free to audit, and its shareable certificate is a paid option with no price stated.
No certificate at all
MIT OpenCourseWare, Stanford Engineering Everywhere and Khan Academy publish complete courses with no credential, and Princeton's courses on Coursera state that no certificates, credentials or reports are awarded under university policy. Microsoft Learn paths such as GitHub Foundations end with a profile trophy, not a certificate.
Harvard or MIT: how their free computer science courses differ
Harvard's free computer science course is CS50x, which runs 11 weeks at 10 to 20 hours a week, moves from C to Python, SQL and web development, and ends with a final project. The Harvard hub lists the rest of the CS50 family.
Which introduction to computer science online course to start with
The starting point depends on whether you have written code before and which language you want to meet first.
Never written code
CS50's Introduction to Programming with Scratch (9 weeks) and Edinburgh's Code Yourself! use block-based Scratch to teach functions, loops and variables before any typing. Stanford's Computer Science 101 (6 weeks at 4 to 6 hours a week) runs small pieces of code in the browser and covers hardware, images, the internet and security. Khan Academy's AP Computer Science Principles follows the AP CSP curriculum for students preparing for that exam.
Some code, want the full introduction
CS50x is the standard answer. Alternatives by language: Princeton's Programming with a Purpose teaches Java from Sedgewick and Wayne's textbook; BerkeleyX's Introduction to Python (7 weeks) covers functions, iteration and higher-order functions; Stanford's CS106A is the recorded campus course in Java with assignments and exams.
After the introduction
The intermediate courses split by thread, and most assume you can already program.
For discrete mathematics, MIT's 6.042J covers proofs, graph theory, counting and probability and names single-variable calculus as its only prerequisite.
Algorithms: MIT's 6.006, Princeton's Algorithms, Part I (5 weeks) and Part II in Java, and Stanford's Algorithms: Design and Analysis, Part 1 (6 weeks).
Software engineering: MIT's Software Construction in Java (14 weeks) on testing, specifications and abstract data types.
Artificial intelligence and machine learning: CS50 AI (7 weeks at 10 to 30 hours a week), MIT's Introduction to Machine Learning (13 weeks) and Stanford's CS229.
Do you need mathematics or programming before you start
Not for the introductions: CS50x, the Scratch course, Code Yourself! and Computer Science 101 state no prerequisites, and Stanford's CS106A says it needs no programming background but considerable dedication. The intermediate courses are explicit about what they assume. CS50 AI asks for CS50x or a year of Python; Stanford's algorithms course says it is not an introduction to programming; 6.046J assumes 6.006; MIT's machine learning course recommends Python, calculus and linear algebra; Mining Massive Datasets expects prior courses in data structures, algorithms, databases, linear algebra, multivariable calculus and statistics.
Related pages on this site
For the practical side of the same material, the programming and Python pages list courses by language rather than by theory, and the IT page covers Linux, cloud and networking. Mathematics has the calculus and linear algebra the machine learning courses assume, and cyber security continues from MIT's systems security course. Free credentials across subjects are collected at free certifications.
Do I need to know programming before a computer science course?
Not for an introductory course, which teaches programming as it goes. Intermediate courses in algorithms, systems or theory usually assume you can already write and read code in at least one language.
Can I get a free computer science certificate?
Yes, from some university introductions taught on the university's own site and from non-profit curricula. University courses hosted on edX generally charge for the certificate.
Is a free course a substitute for a computer science degree?
No, but a sequence of free courses can cover much of the content of the early years. What a degree adds is assessment, credit, supervised projects and a recognised credential.