Looking for AI and machine learning resources? Visit the Technology Dashboard.
Scratch (MIT Media Lab)
Topics: Block-based programming (loops, conditionals, variables, events), custom blocks (intro to functions), parallelism, coordinate geometry for sprite motion
Prerequisites: None; basic reading and mouse/keyboard use
Code.org — CS Fundamentals
Topics: Sequencing, loops, events, conditionals; K-5 computational thinking curriculum
Prerequisites: None
Google CS First
Topics: Scratch-based storytelling, animation, and game design as an on-ramp to computational thinking
Prerequisites: None
Code.org — CS Discoveries
Topics: Problem decomposition, HTML/CSS, introductory JavaScript, data & society, physical computing
Prerequisites: Completion of CS Fundamentals or equivalent block-coding experience recommended
Khan Academy — Computing
Topics: JavaScript and Processing.js (drawing, animation, variables, functions, arrays, objects), HTML/CSS, basic SQL querying, how computers/the internet work
Prerequisites: None; basic algebra helpful
Codecademy — Programming Fundamentals
Topics: Python, JavaScript, Java, and C++ language tracks; AP CS A (Java) and AP CS Principles exam-prep courses
Prerequisites: None for entry tracks
Codecademy — Skill Paths
Topics: Data structures (arrays, hash maps, stacks/queues); React and Node.js web-development tracks
Prerequisites: Completed JavaScript or Python fundamentals track
CS50: Harvard's Introduction to Computer Science
Topics: C programming, algorithmic complexity (Big-O/Big-Omega/Big-Theta), sorting and searching algorithms, recursion, memory management and pointers, data structures (linked lists, hash tables, tries, trees), Python, SQL and relational databases, web programming (HTML/CSS/JavaScript, Flask, HTTP), and security fundamentals
Prerequisites: None formally (two-thirds of enrollees have never coded); strong self-directed study skills expected given course rigor
MIT OpenCourseWare — Intro to CS & Programming in Python (6.100L/6.0001)
Topics: Functions, recursion, objects, algorithmic complexity, computational simulation
Prerequisites: None; high-school algebra helpful
Stanford Online — CS106A Programming Methodology
Topics: Java fundamentals, procedural decomposition, basic object-oriented design
Prerequisites: None
Stanford Online — CS106B Programming Abstractions
Topics: C++, recursion, abstract data types, object-oriented design
Prerequisites: CS106A or equivalent programming experience
MIT OpenCourseWare — Introduction to Algorithms (6.006)
Topics: Sorting, hashing, graph algorithms (BFS/DFS, shortest paths), dynamic programming
Prerequisites: Intro-level programming plus discrete math (proofs, asymptotic notation)
MIT OpenCourseWare — Mathematics for Computer Science (6.042)
Topics: Mathematical proof and induction, graph theory, combinatorics, discrete probability
Prerequisites: High-school algebra
freeCodeCamp — Web Development Certifications
Topics: Responsive Web Design (HTML5, CSS3, Flexbox, Grid); JavaScript Algorithms & Data Structures (closures, higher-order functions, recursion); Front-End Libraries (React, Redux); Back-End Development (Node.js, Express, MongoDB, APIs)
Prerequisites: None to start; later certifications assume completion of earlier ones in sequence
Stanford Online — CS161 Design & Analysis of Algorithms
Topics: Graph algorithms, greedy algorithms, dynamic programming, NP-completeness
Prerequisites: CS107/CS110-level programming plus discrete math and linear algebra
LeetCode
Topics: Arrays/strings, two pointers, sliding window, trees and graphs (BFS/DFS, topological sort, union-find), dynamic programming, backtracking, greedy algorithms, binary search
Prerequisites: Working proficiency in one language (Python/Java/C++/JavaScript) plus foundational data-structures & algorithms knowledge
edX — Georgia Tech / UC Berkeley CS MicroMasters
Topics: Operating systems, computer architecture, software analysis & testing
Prerequisites: Calculus-based probability/statistics and prior programming (Python or Java)
MIT OpenCourseWare — Design and Analysis of Algorithms (6.046)
Topics: Advanced dynamic programming, network flow, approximation algorithms, randomized algorithms
Prerequisites: 6.006-level algorithms plus 6.042-level discrete math
MIT OpenCourseWare — Distributed Systems (6.824)
Topics: Consensus protocols (Paxos/Raft), replication, fault tolerance
Prerequisites: Operating systems and networking fundamentals
MIT OpenCourseWare — Theory of Computation (18.404)
Topics: Automata, computability, NP-completeness, undecidability
Prerequisites: Discrete math and proof-writing (6.042-level)
LeetCode — System Design Track
Topics: Scalability, caching, load balancing, database sharding
Prerequisites: 2+ years of applied software engineering experience; DSA mastery
GeeksforGeeks — K-12 & DSA Track
Topics: Grade-specific coding lessons through a full data structures & algorithms curriculum (arrays through advanced graph theory), operating systems, DBMS, computer networks
Prerequisites: None for K-12 track; basic programming syntax for the DSA/interview track
MDN Web Docs (Mozilla)
Topics: Authoritative HTML/CSS/JavaScript reference, Web APIs (Fetch, DOM, WebSockets, WebAssembly), accessibility (ARIA)
Prerequisites: None to browse; effective use assumes basic web-dev vocabulary since this is a reference, not a guided course