Base course

Tasks

Every task of the course in one place. The server checks solutions with hidden tests; your progress is kept in this browser.

00 What a program can do

01 First program, first bug

02 Names and values

03 Forks in the road

04 Again and again

05 Words of your own

06 Lists

07 A conversation made of strings

08 Dictionaries and the telegraph

09 A problem inside a problem

10 Functions as values

11 The inquiry report

12 The island of rabbits and foxes

13 What a program costs

14 How a list lives in memory

15 Stacks, queues and a calculator

16 Hash tables: attack and defense

17 A garden of search trees

18 Who is next

19 Six handshakes

20 The sorting tournament

21 Divide and conquer

22 Remember instead of recomputing

23 Greed and electricity

24 The navigator

25 Flows and matchings

26 Let's flip a coin

27 A needle in a haystack

28 Everything is bits

29 Logic from switches

30 The machine does arithmetic

31 Memory and the clock

32 You are the processor

33 An X-ray of Python

34 Near and far

35 The pipeline and the fortune-teller

36 A tour of a living system

37 Mission control

38 The hotel of addresses

39 Races

40 The rescue operation

41 A day in the life of a packet

42 Inventing a protocol

43 Anatomy of this page

44 The parliament of Paxos

45 The archivist

46 The library and the bank

47 The packing contest

48 A search engine for our textbooks

49 The museum of languages

50 The field linguist

51 The nesting doll

52 Closing the circle

53 Null on trial

54 Automata and regular expressions

55 The Turing machine

56 A conversation with the Oracle

57 Gödel’s letter

58 The salesman’s expedition

59 The cipher bureau

60 A secret in plain sight

61 The training range

62 The bot tournament

63 The machine learns

64 The qubit lab

65 The blank spots