CS50: Introduction to Computer Science
Harvard's legendary intro to CS: Scratch to C to Python, SQL, and the web, taught as things you can actually watch happen.
12 units · 93 topics · 443 questions
Computational thinking before a single line of text-code: binary, abstraction, and algorithms taught in click-together blocks.
Computational Thinking and Problem Solving · Representing Numbers in Binary · ASCII, Unicode, and Text as Bits · RGB and Representing Color · +4 more
Trading Scratch's blocks for actual text: the same ideas, now typed by hand, and judged on more than just whether they run.
From Blocks to Text: Why C · Anatomy of a C Program · Data Types in C · Operators and Expressions · +4 more
From typed source code to a running program, plus the first real data structure: the array, and the strings and ciphers built on top of it.
From Source Code to Executable · Debugging Strategies · Arrays in Memory · Strings as Arrays of Characters · +4 more
Searching and sorting as things you can watch: a phone book torn in half, and three sorting strategies racing on the same shuffled deck.
What Makes an Algorithm Efficient · Linear Search · Binary Search · Big O and Asymptotic Notation · +5 more
Memory made physical: addresses as boxes on a grid, pointers as arrows, malloc carving out space, and what happens when code writes past the end.
Hexadecimal Numbers · Pointers and Memory Addresses · Pointer Arithmetic and Arrays · Dynamic Memory Allocation with malloc · +6 more
Building your own containers out of pointers: stacks, queues, linked lists, trees, hash tables, and tries, each trading one strength for another.
Abstract Data Types · Stacks: LIFO · Queues: FIFO · Singly Linked Lists · +5 more
The same problems, solved again in far fewer lines, and an honest look at what that convenience costs and what it buys.
Why Python After C · Python Syntax and Dynamic Typing · Python Lists vs. C Arrays · Python Strings and Slicing · +4 more
A short detour into what CS50 now teaches about large language models: how they predict text, why they hallucinate, and how to use one honestly.
How LLMs Predict the Next Word · Prompting an AI Effectively · Why AI Hallucinates · Using AI Responsibly While Coding · +1 more
Data organized into tables instead of files: querying, joining, and the two classic ways an attacker can break a database.
Relational Data and Tables · Primary and Foreign Keys · SELECT Queries · INSERT, UPDATE, and DELETE · +4 more
The internet's actual plumbing, DNS, TCP/IP, HTTP, followed by the three languages that turn a response into a page you can click.
How the Internet Works: TCP/IP · DNS Lookups · The HTTP Request-Response Cycle · HTML Structure and Tags · +4 more
A web app comes alive on a server: routes answering requests, sessions remembering who you are, and one push shipping it to the world.
Routes and View Functions · Handling GET and POST Requests · Templates and Jinja · Sessions and Cookies · +3 more
No more problem sets: choosing your own project, designing it before you code it, and where the road goes after CS50 ends.
Choosing a Final Project · Planning and Designing Your Project · Presenting a Finished Project · Where to Go After CS50 · +1 more