Computer Science Foundations Specialization
The computer science behind every system you build: algorithms, data structures, databases, concurrency, distributed systems and system design.
Learn the algorithms and data structures that make programs fast, how databases store, index and query data, how concurrent programs share work safely, how distributed systems stay consistent when machines and networks fail, and how to put it all together in a system design. Every course has hands-on labs and a project your instructors review.
Prepares you for
Software engineer, Backend developer, Systems engineer
5 courses in this Specialization
- Data Structures and Algorithms in Python: Analyse, implement and test the core data structures and algorithms in Python, from hash tables and heaps to graph search and dynamic programming. (Intermediate, about 19 hours)
- Database Internals: Indexes, Transactions and Query Plans: Look inside a database: how pages, B-trees and LSM trees store data, how the planner uses indexes, and how MVCC, locks and the write-ahead log keep transactions correct. (Advanced, about 18 hours)
- Concurrency and Asynchronous Programming in Python: Make Python do many things at once, correctly: threads, processes and asyncio, and the measurements that tell you which to use. (Advanced, about 13 hours)
- Distributed Systems: Replication, Consensus and Consistency: Reason precisely about systems that span many machines: clocks, replication, consistency models, Raft consensus and distributed transactions, with simulations you build and break. (Advanced, about 19 hours)
- System Design Fundamentals: Scale, Caching and Load Balancing: Design systems that scale: estimate the load, then choose load balancers, caches, databases and queues, and defend every trade-off. (Intermediate, about 17 hours)