Skip to main content
CoursebeginnerFree

Structure and Interpretation of Computer Programs (MIT 6.001)

by Eric Grimson, Peter Szolovits, Trevor Darrell · MIT OpenCourseWare

The original course behind SICP: procedural and data abstraction, higher-order procedures, recursion, state and mutation, object-oriented design and building interpreters in Scheme. 20 lecture videos, notes, programming projects and exams with solutions teach learners to analyze and construct computational systems.

Visit resource
Also charted under:Programming Fundamentals

More resources on Introduction to Computer Science

WebsiteFree

CS Unplugged

Free collection of classroom activities from the University of Canterbury that teach computer science ideas such as binary numbers, sorting, searching, error detection and algorithms through games and puzzles without computers. Builds intuition for core concepts before any programming.

WebsiteFree

Teach Yourself Computer Science

Oz Nova and Myles Byrne's opinionated syllabus for self-taught engineers, naming one best book and video course for each of nine core subjects. Gives a defensible study order and rough hour budgets per topic.

CourseFree

CS61A: Structure and Interpretation of Computer Programs

Learn fundamental programming concepts with CS61A, an intro-level CS course from Pamela Fox et al. Explore structure & interpretation of programs!

CourseFree

Introduction to Computer Science and Programming Using Python (MITx 6.00.1x)

Self-paced introduction to programming and computational thinking in Python: branching, iteration, functions, recursion, objects, testing and debugging, and algorithmic complexity with simple search and sort. Video lectures and auto-graded exercises and problem sets teach learners to write small programs that solve problems.

WebsiteFree

NandGame

A browser puzzle that starts with a single NAND gate and has you compose latches, adders, an ALU, memory, and finally a working CPU with its own assembler and instruction set.

YouTubeFree

Computerphile

YouTube channel of short explainer videos on computer science, featuring academics mainly from the University of Nottingham. Covers algorithms, cryptography, security, data compression, machine learning and programming languages, giving viewers intuitive grounding in core ideas before formal study.

See all Introduction to Computer Science resources →