SMALL STEPS

One small step at a time.

97 core lessons + 3 Image lessons. Read, try the examples in the desktop IDE, and make them your own.

Choose a part to explore its lessons.

Small Steps I — Creating with Text and Numbers01–35 · 35 lessons
  1. 01Showing text on the screen
  2. 02Running from top to bottom
  3. 03Calculating and displaying numbers
  4. 04Giving a value a name
  5. 05Changing a stored value
  6. 06Calculating with a remembered value
  7. 07Storing values with fractional parts
  8. 08Multiplication and calculation order
  9. 09Quotients and remainders
  10. 10Storing strings too
  11. 11Asking for a name while running
  12. 12Calculating with an entered number
  13. 13Making a small calculator
  14. 14Running only when a condition holds
  15. 15Doing something else when a condition is false
  16. 16Choosing one of three branches
  17. 17Remembering true and false
  18. 18Combining two conditions
  19. 19Repeating the same instructions
  20. 20Repeating while a condition holds
  21. 21Stopping or skipping an iteration
  22. 22Drawing several rows of stars
  23. 23Naming a task you created
  24. 24Passing values to a function
  25. 25Receiving a function's result
  26. 26Using separate variables inside a function
  27. 27Joining strings
  28. 28Taking out one character
  29. 29Taking part of a string
  30. 30Including quotes and newlines
  31. 31Keeping several values together
  32. 32Looking at array values one at a time
  33. 33Creating an array by choosing its size
  34. 34Naming a value that will not change
  35. 35Shorter ways to update a value
Small Steps II — Making Things36–53 · 18 lessons
  1. 36Opening a window
  2. 37Asking an object for information
  3. 38Drawing with coordinates
  4. 39Adding colors and text
  5. 40Moving while a key is held
  6. 41Changing once per key press
  7. 42A circle that follows the mouse
  8. 43Responding to mouse buttons
  9. 44Changing position and drawing again
  10. 45Bouncing by changing direction
  11. 46Measuring elapsed time
  12. 47Moving according to actual time
  13. 48Playing sound effects
  14. 49Waiting for a sound to finish
  15. 50Running a function when it is time
  16. 51Displaying a timer's value
  17. 52Combining what you learned into a small game
  18. 53Adding a score to a game
Small Steps III — Thinking with Programs54–69 · 16 lessons
  1. 54Adding values in order
  2. 55Counting matching values
  3. 56Remembering the largest value so far
  4. 57Remembering a value's position
  5. 58Searching for a value
  6. 59Handling the not-found case
  7. 60Ordering from smallest to largest
  8. 61Ordering from largest to smallest
  9. 62Showing numbers as bars
  10. 63Watching a sort happen
  11. 64Halving the search range
  12. 65Seeing which values were compared
  13. 66How much work does more data require?
  14. 67How many times can a range be halved?
  15. 68Finding the second-largest value
  16. 69Counting occurrences of the largest value
Small Steps IV — Saving and Loading70–73 · 4 lessons
  1. 70Keeping values after a program ends
  2. 71Reading values back from a file
  3. 72Saving numbers in binary form
  4. 73Reading binary data in its written order
Small Steps V — Making Your Own Types74–78 · 5 lessons
  1. 74Grouping related values
  2. 75Storing several grouped values
  3. 76Grouping data and operations
  4. 77Naming the original instead of copying
  5. 78Reading without copying
Small Steps VI — Growing into C++79–88 · 10 lessons
  1. 79Using tools that already exist
  2. 80Finding the magnitude of a negative number
  3. 81Meeting standard strings and arrays
  4. 82Adding elements and reading them one by one
  5. 83Writing down the tools you need
  6. 84Showing where a name belongs
  7. 85Writing the real entry function main
  8. 86Cleaning up the window before the runtime
  9. 87Greeting without Small
  10. 88Using the same procedures in standard C++
Small Steps VII — Share Your Program89–91 · 3 lessons
  1. 89Publish Your Program
  2. 90Include Extra Files
  3. 91Share with Friends
Small Steps VIII — Build with Several Files92–97 · 6 lessons
  1. 92A Folder Is a Project
  2. 93Split a Program into Two Files
  3. 94Give Functions a Header
  4. 95Give Each File a Job
  5. 96Set a File Aside
  6. 97Share a Project or Its Program
Image extension98–100 · 3 lessons
  1. 98Creating Images
  2. 99Pixels
  3. 100Loading and Saving