Don't learn another framework, learn the foundational computer science concepts that matter
Not sure where to start? Read the how-to guide.
Programming: Beyond the Basics
Develop your programming skills beyond what you may have seen in an introductory course.
12 problems
8 explainers
12 hr 13 min total of 20 hrs planned
Computer Systems
To best utilize the computer, you must understand how it works. Covering binary representations of data, introductory C and x86-64 assembly programming, CPU microarchitecture and the memory hierarchy.
25 problems
4 seminars
49 explainers
28 hr 14 min total
Algorithms and Data Structures
Understand common algorithms and data structures, and improve your general problem solving skills. Covers common data structures, divide and conquer, graph search, dynamic programming and more.
22 problems
8 seminars
12 explainers
27 hr 10 min total
Computer Networks
Understand network protocols from first principles, and learn network programming with sockets. Covers HTTP and DNS, TCP and QUIC, IPv4 and IPv6, TLS and more.
17 problems
1 seminar
43 explainers
23 hr 58 min total
Operating Systems
Most of the code you write is run by an operating system, so it's critical to know how they work. Covers process execution and scheduling, concurrency, virtual memory, IPC, file systems, virtual machines and containers.
22 problems
4 seminars
40 explainers
29 hr 33 min total
Relational Databases
Data is at the heart of most significant programs, but few understand how database systems actually work.
4 problems
6 explainers
7 hr 16 min total of 20hr planned