| Title | Action | ||||
|---|---|---|---|---|---|
| 1 | Build A Little, Test A LittleYou write the smallest piece of a program that can be run, run it, fix it, and o... | easy | ○ Not Started | Problem Solving | Solve |
| 2 | Two Kinds Of DivisionWhat does this line print?... | easy | ○ Not Started | Printing | Solve |
| 3 | The Step Before Any CodeThe problem-solving toolkit has seven steps. Before you visualise anything, brea... | easy | ○ Not Started | Problem Solving | Solve |
| 4 | A Recipe Is A PlanA recipe turns "make dinner" into a list of smaller jobs: chop the onions, boil ... | easy | ○ Not Started | Problem Solving | Solve |
| 5 | The Bicycle Nobody TestedYou bolt together a frame, two wheels, brakes and gears that were never tried on... | easy | ○ Not Started | Problem Solving | Solve |
| 7 | Sandwich Before The ClubInstead of starting straight on a three-layer club sandwich, you first make a pl... | easy | ○ Not Started | Problem Solving | Solve |
| 10 | Fail Early Fail OftenWhat does the toolkit's advice "fail early, fail often" ask you to do while writ... | easy | ○ Not Started | Problem Solving | Solve |
| 11 | What The Cards Stand ForThe deck visualises a problem with real objects: a stack of numbered cards laid ... | easy | ○ Not Started | Problem Solving | Solve |
| 13 | What Input Hands BackThe program runs `age = input('How old are you? ')`, the user types 42 and press... | easy | ○ Not Started | User Input | Solve |
| 14 | Type Of A Decimal LiteralWhat does this line print?... | easy | ○ Not Started | Printing | Solve |
| 16 | A Separator Of NothingWhat does this call print?... | easy | ○ Not Started | Printing | Solve |
| 17 | Reversed By A SliceWhat does this line print?... | easy | ○ Not Started | Lists | Solve |
| 19 | Counting From The EndWhat does this program print?... | easy | ○ Not Started | Lists | Solve |
| 21 | What The Slice IncludesWhat does this program print?... | easy | ○ Not Started | Strings | Solve |
| 23 | Two Decimals Of PiWhat does this line print?... | easy | ○ Not Started | Printing | Solve |
| 24 | Braces Inside The QuotesWhat does this program print?... | easy | ○ Not Started | Strings | Solve |
| 25 | Making A Virtual EnvironmentWhat does the terminal command `python -m venv .venv` do?... | easy | ○ Not Started | Command Line | Solve |
| 26 | First Item Of ArgvThe program is started with `python report.py data.csv 3`. What does `sys.argv[0... | easy | ○ Not Started | Command Line | Solve |
| 29 | Window Without MainloopA tkinter program creates a window and a button wired with `command=save`, and t... | easy | ○ Not Started | Menus & Validation | Solve |
| 30 | Pack Or Gridtkinter widgets can be placed with `pack()` or with `grid()`. What is the differ... | easy | ○ Not Started | Menus & Validation | Solve |
| 31 | Opening With WThe file `notes.txt` already holds three lines. The program opens it with `with ... | easy | ○ Not Started | Files | Solve |
| 35 | What Recursion Error MeansThis program stops with `RecursionError: maximum recursion depth exceeded`. What... | easy | ○ Not Started | Recursion | Solve |
| 37 | Stripping The EdgesThe menu reads a choice with `.strip()` because the user may add spaces and the ... | easy | ○ Not Started | Menus & Validation | Solve |
| 39 | Slowest Growth To FastestWhich list puts these complexity classes in order from the slowest-growing (best... | easy | ○ Not Started | Big-O | Solve |
| 40 | Dropping What Does Not MatterAn algorithm does `n^2 + 3n + 8` steps for an input of size n. What is its Big-O... | easy | ○ Not Started | Big-O | Solve |
| 43 | Why Binary Search Needs OrderBinary search looks at the middle item and discards half of the list at each ste... | easy | ○ Not Started | Data Structures & Algorithms | Solve |
| 50 | Last In Or First InA stack and a queue differ in which item comes out next. Which answer pairs each... | easy | ○ Not Started | Data Structures & Algorithms | Solve |
| 52 | Why In-Order Comes Out SortedIn a binary search tree every key in a node's left subtree is smaller than the n... | easy | ○ Not Started | Data Structures & Algorithms | Solve |
| 53 | Children In An Array TreeA complete binary tree is stored in a plain list with the root at index 0. Where... | easy | ○ Not Started | Data Structures & Algorithms | Solve |
| 55 | Bind Listen AcceptA TCP server and a TCP client are written with the `socket` module. Which calls ... | easy | ○ Not Started | Networking | Solve |
| 56 | Text Does Not Fit In A SocketSending the string `'hi'` through a socket with `send` fails, while `send('hi'.e... | easy | ○ Not Started | Bytes | Solve |
| 62 | Assign And Test In One GoWhat does the walrus operator `:=` do, and what does this program print?... | easy | ○ Not Started | Operators | Solve |
| 6 | Edges Of The JigsawPeople doing a jigsaw usually start with the straight-edged border pieces, becau... | medium | ○ Not Started | Problem Solving | Solve |
| 8 | One Loop Shape Two Problems"Print the even numbers up to 50" and "print the prime numbers up to 50" are sol... | medium | ○ Not Started | Problem Solving | Solve |
| 9 | Why Integration Bugs Hurt MostEvery part of a program seems fine on its own, yet the program fails once the pa... | medium | ○ Not Started | Problem Solving | Solve |
| 15 | Division That Comes Out EvenBoth divisions here come out exactly, with nothing left over. What do the two li... | medium | ○ Not Started | Printing | Solve |
| 20 | Length Of A Nested ListWhat does this program print?... | medium | ○ Not Started | Lists | Solve |
| 22 | Asking For A Key That Is Not ThereThe record has two keys. What happens when the program looks up a key that is no... | medium | ○ Not Started | Dictionaries | Solve |
| 27 | Why Reach For ArgparseA program could read its options straight out of `sys.argv`. What does `argparse... | medium | ○ Not Started | Command Line | Solve |
| 28 | A Flag Without A ValueAn option is declared with `parser.add_argument('--verbose', action='store_true'... | medium | ○ Not Started | Command Line | Solve |
| 32 | What With GuaranteesWhy does the deck open files with `with open('input.txt') as f:` rather than a p... | medium | ○ Not Started | Files | Solve |
| 33 | Load Versus Loads`json.load` and `json.loads` both turn JSON text into Python values. What is the... | medium | ○ Not Started | JSON | Solve |
| 34 | Reader Versus DictReaderA CSV file begins with the header line `name,age` followed by the row `Maya,19`.... | medium | ○ Not Started | CSV | Solve |
| 36 | Calling The Parent ConstructorWhat does the `super().__init__(name, grades)` line do inside `HonourStudent`?... | medium | ○ Not Started | Classes | Solve |
| 41 | Three Cases Of Linear SearchLinear search walks a list of n items from the front until it finds the target. ... | medium | ○ Not Started | Big-O | Solve |
| 42 | When Quicksort Goes QuadraticQuicksort is usually O(n log n). What is its worst case, and which pivot choice ... | medium | ○ Not Started | Data Structures & Algorithms | Solve |
| 44 | Finding Duplicates Two WaysTo decide whether a list of n numbers holds a duplicate, one program compares ev... | medium | ○ Not Started | Data Structures & Algorithms | Solve |
| 45 | The Hidden Cost Of RecursionA recursive sum of a list of n items makes one nested call per item. Besides tim... | medium | ○ Not Started | Big-O | Solve |
| 48 | Remembering SubproblemsThe naive recursive `fib(35)` takes seconds because it computes the same values ... | medium | ○ Not Started | Data Structures & Algorithms | Solve |
| 49 | Array Or Linked ListCompare an array (a Python list) with a singly linked list that keeps only a poi... | medium | ○ Not Started | Data Structures & Algorithms | Solve |
| 51 | Why Pop From The Front Is SlowA queue built on a plain Python list removes the front item with `items.pop(0)`.... | medium | ○ Not Started | Data Structures & Algorithms | Solve |
| 57 | Waiting At The SocketThe deck says that `accept()` and `recv()` are blocking calls. What does that me... | medium | ○ Not Started | Networking | Solve |
| 58 | When Async Pays OffWhen does `asyncio` make a program faster, and why does one ordinary blocking ca... | medium | ○ Not Started | Concurrency | Solve |
| 60 | Two Threads One CounterTwo threads each add 1 to a shared `counter` 100,000 times, and the final value ... | medium | ○ Not Started | Concurrency | Solve |
| 12 | Finding One Card In A Hundred ThousandWith 100 shuffled cards you find a given number by flipping through them one at ... | hard | ○ Not Started | Problem Solving | Solve |
| 18 | A Hint Is Not A GuaranteeThe deck writes type hints such as `name: str = 'Giselle'`. This program assigns... | hard | ○ Not Started | Type Hints | Solve |
| 38 | Is A Or Has AIn the deck, `class HonourStudent(Student)` extends `Student`, and every `Studen... | hard | ○ Not Started | Classes | Solve |
| 46 | Picking The StrategyMatch each problem to its strategy, in order: placing eight queens by trying a s... | hard | ○ Not Started | Data Structures & Algorithms | Solve |
| 47 | When Greedy Change FailsGreedy change-making takes the largest coin that still fits at every step. With ... | hard | ○ Not Started | Data Structures & Algorithms | Solve |
| 54 | Height Decides The CostSearching a binary search tree costs O(h), where h is the height of the tree. Wh... | hard | ○ Not Started | Data Structures & Algorithms | Solve |
| 59 | Three Sleeps At OnceThree coroutines each `await asyncio.sleep(...)` for 2, 1 and 3 seconds and are ... | hard | ○ Not Started | Concurrency | Solve |
| 61 | Four Cores One InterpreterTwo threads each crunching numbers on a four-core machine take as long as one th... | hard | ○ Not Started | Concurrency | Solve |