CS107: Programming Paradigms
About this course
CS107 is Stanford's course that peels back the abstraction layers most programmers take for granted — it teaches C and assembly to show what the hardware is actually doing when you run your Python or JavaScript code. It covers C data types and memory, the stack and heap, compilation and linking, assembly language, functional programming paradigms in Scheme, and generic programming with polymorphism.
The course answers the questions most application developers never encounter until they hit a memory corruption bug or try to understand a performance bottleneck: why does memory matter? what's a pointer actually doing? how does a compiler turn code into instructions? It's a systems foundations course for developers who want to understand the machine, not just write programs that run on it.
What you'll learn
This course includes
Compare alternatives for CS107: Programming Paradigms
- Price
- FreeFree lecture materials available online
- Duration
- 45 hrs
- Level
- Intermediate
- Certificate
- Price
- PaidSubscription-based, free to audit
- Duration
- 200 hrs
- Level
- Intermediate
- Certificate
- Specialization Certificate
- Price
- FreeAudit free · $199 cert
- Duration
- 100 hrs
- Level
- Beginner
- Certificate
- Verified
- Price
- FreeCompletely free, forever
- Duration
- 300 hrs
- Level
- Beginner
- Certificate
- Completion
Instructor
Taught by Jerry Cain, Stanford CS lecturer, known for accessible explanations of low-level systems concepts for an audience coming from higher-level languages.
Requirements
- Solid programming experience in any high-level language
Who this course is for
- Application developers who want to understand how the machine actually works
- Anyone who writes Python or JavaScript and wants the systems knowledge underneath
- Developers preparing for systems-level engineering roles