Mooc AtlasUniversity-level self-study
Bachelor-style curricula

Computer Science

From the first line of Python to algorithms, software engineering and machine learning. ≈ 10 h a week over 40 weeks.

The curriculum at a glance

Year 1Foundations384 h
Year 2Programming and algorithms379 h
Year 3Software engineering and broadening438 h
  1. S1Programming and algorithmic thinking177 h
  2. S2Mathematics for computing207 h
  3. S3C and Java168 h
  4. S4Data structures and algorithms211 h
  5. S5Software engineering210 h
  6. S6Security, concurrency, the web and AI228 h

The six semesters

S1 · 177 h

Programming and algorithmic thinking

Learn to program in Python, from the first script to interactive programs, then tackle recursion, search and graphs.

Project: The Fundamentals of Computing final exam, then a Python strategy game with a minimax AI and a test suite.

Open the semester
S2 · 207 h

Mathematics for computing

Learn to prove, count and reason about graphs, master basic linear algebra and the statistics modern computing needs.

Project: UCSD's Delivery Problem project (travelling salesman), then a small RSA implementation with tests.

Open the semester
S3 · 168 h

C and Java

Understand memory, pointers and compilation with C, then object-oriented programming with Java.

Project: The recommender system from Duke's final course, then a mini Unix shell in C with redirections and pipes.

Open the semester
S4 · 211 h

Data structures and algorithms

Choose and implement the right data structures, then design and analyse efficient algorithms.

Project: The UCSD capstone (social network analysis in Java), then a benchmark comparing five sorting and shortest-path algorithms.

Open the semester
S5 · 210 h

Software engineering

Move from a program that works to maintainable software: design, architecture, agile lifecycle and automated testing.

Project: A software project run in pairs over two sprints: design with patterns, product backlog, automated tests and continuous integration.

Open the semester
S6 · 228 h

Security, concurrency, the web and AI

Broaden the profile: design secure software, program concurrency in Go, build for the web and use machine learning.

Project: The final project: a secure web application, served by a concurrent Go service, with a machine-learning recommendation feature.

Open the semester

Plan and sheets to download

Computer Science

From the first line of Python to algorithms, software engineering and machine learning.

1,201 hhours of coursework
68courses
14textbooks
Year 1Foundations384 h
  • S1 · Programming and algorithmic thinking
  • S2 · Mathematics for computing
Year 2Programming and algorithms379 h
  • S3 · C and Java
  • S4 · Data structures and algorithms
Year 3Software engineering and broadening438 h
  • S5 · Software engineering
  • S6 · Security, concurrency, the web and AI

What the PDFs contain

  • Plan: overview and workload per semester
  • Plan: course-by-course programme with links, lengths, levels and ratings
  • Plan: skills, project and things to watch per semester, bibliography
  • Sheets: one overview page per semester with the course calendar
  • Sheets: 120 weekly sheets with tasks, self-assessment, time log and notes

Shorter paths in Computer science