Skip to content
DoingCamp CS

Make it comfy

Lesson style

Quick mode shows the key picture, a summary and the practice. Good for a refresher.

Theme
Font

Both fonts are designed to be easy to read. Some readers with dyslexia prefer Lexend.

Text size
Spacing
Animations

F02

Programming 1: Thinking in Steps

“Writing a recipe a robot follows *exactly*”

Lessons

Start the course →0 of 26 lessons done
  1. Your first recipe for a computerFreeA program is a list of instructions the computer follows exactly, top to bottom. print() shows text on screen. · 10 min
  2. Values, types and arithmeticFreeEvery value in Python has a type (whole number, decimal, text, true/false), and the type decides what you can do with it. · 12 min
  3. Variables: names for valuesFreeA variable is a name tag stuck on a value so you can use it later. The = sign means "stick this name on that value", not "is equal to". · 12 min
  4. Talking to the user🔒 Membersinput() asks the user a question and always gives back text. Convert it with int() or float(), and build answers with f-strings. · 12 min
  5. Making decisions🔒 Membersif, elif and else let a program choose what to do. Conditions are True/False questions built with comparisons and and/or/not. · 14 min
  6. Repeating with while🔒 MembersA while loop repeats a block of code as long as a condition stays True. Something inside the loop must eventually make it False. · 13 min
  7. for loops and range🔒 MembersA for loop does something once for each item in a sequence. range() makes a sequence of numbers, and an accumulator builds up a result. · 14 min
  8. Meet Bit the robot🔒 MembersControl a robot on a grid with a handful of commands. Sequences, loops and decisions turn a few simple commands into smart behavior. · 15 min
  9. Functions: your own instructions🔒 Membersdef creates a new instruction with a name. Parameters are its inputs, and return sends a result back to whoever called it. · 15 min
  10. Scope and the call stack🔒 MembersEvery function call gets its own private workspace (a frame). Calls stack up like plates, and each one disappears when it returns. · 14 min
  11. Decomposition and abstraction🔒 MembersBig problems become easy when you split them into small, named helper functions. Each helper hides its details behind a clear name. · 16 min
  12. Strings up close🔒 MembersA string is a sequence of characters you can index, slice, search and transform. Strings never change; methods give you new ones. · 16 min
  13. Lists🔒 MembersA list holds many values in order, under one name. You can index it like a string, but unlike a string you can change it. · 15 min
  14. Mutability, aliasing and cloning🔒 MembersTwo names can refer to the same list. Change it through one name and the other sees the change too. Copy the list when you want independence. · 15 min
  15. Tuples and list comprehensions🔒 MembersA tuple is a list that can't change, perfect for fixed groups like coordinates. A list comprehension builds a whole list in one readable line. · 14 min
  16. Grids and images🔒 MembersA list of lists makes a grid. A digital image is exactly that, a grid of pixels, so with two nested loops you can write your own photo filters. · 18 min
  17. Dictionaries and sets🔒 MembersA dictionary looks things up by a label (key) instead of a position. A set keeps only unique items and answers "is it in here?" instantly. · 16 min
  18. Reading and writing files🔒 MembersFiles let data outlive your program. Open a file, read it line by line or write to it, and Python closes it for you with a with block. · 15 min
  19. When things go wrong🔒 MembersErrors are Python's way of saying "I can't do this." try/except lets your program catch an error and recover, and raise lets you signal your own. · 14 min
  20. Testing and debugging🔒 MembersTesting is trying your code on carefully chosen inputs to find bugs. Debugging is the detective work of finding why a bug happens, one experiment at a time. · 16 min
  21. Floats and approximation🔒 MembersComputers store most decimals only approximately, so 0.1 + 0.2 isn't exactly 0.3. Instead of exact answers, good programs find answers that are close enough, fast. · 16 min
  22. Objects and classes🔒 MembersA class is a blueprint for a new kind of value. Each object made from it bundles its own data (attributes) with the things it can do (methods). · 17 min
  23. Inheritance🔒 MembersA subclass is a more specific version of a class. It inherits everything from its parent and can add or change behavior. · 15 min
  24. How fast is my code?🔒 MembersInstead of timing code with a stopwatch, count how the number of steps grows as the input grows. That growth, written as Big-O, tells you whether code will still be fast with a million items. · 17 min
  25. Drawing and plotting🔒 MembersA canvas is a grid of pixels with (0, 0) at the top-left. Shapes, loops and a little math turn numbers into pictures and data into charts. · 15 min
  26. Boss level: build a text adventure🔒 MembersPut everything from this course together to build a playable game, with rooms in dictionaries, state in variables, commands parsed from strings, and functions keeping it organized. · 45 min

💼 Already know this course?

Placement tests are coming soon. Until then, you can mark it as known so it’s colored in on your map. You can undo this any time.