2026 Course Materials

This is the website for a summer course on algorithms and programming for high schoolers, in Addis Ababa from July 27th to August 22nd, 2026. Here you will find lecture notes, exercises, and contact information for the instructors.

We also have a textbook covering some of the course material here.

Course Content

Week 0

Training for teaching assistants, as well as preparation of course materials and hardware.

Week 1

Day 1 Part A — Intro, Arithmetic Expressions, Variables: Slides · Notebook
Part B — Data Types, Operators, Casting: Slides · Notebook
Exercises: 1a · 1b · 1c
Solutions: 1a · 1b · 1c
Day 2 Part A — Style, Control Flow, String Functions: Slides · Notebook
Part B — For Loops, Range, Lists: Slides · Notebook
Exercises: 2a · 2b · 2c
Solutions: 2a · 2b · 2c
Day 3 Part A — While Loops, Print vs. Return: Slides · Notebook
Part B — Functions, Print vs. Return, None: Slides · Notebook
Bonus Lecture: Computer Science Ethics Slides
Exercises: 3a · 3b · 3c
Solutions: 3a · 3b · 3c
Worksheets: 3a: Questions · Solutions; 3b: Questions · Solutions
Day 4 Part A — More Functions, Scope: Slides · Notebook
Part B — Mutability, More Lists: Slides · Notebook
Exercises: 4a · 4b · 4c
Solutions: 4a · 4b · 4c
Worksheets: 4a: Questions · 4b: Questions
Sample Quiz Questions · Solutions
Day 5 Part A — Quiz
Part B — Nested Lists, Nested Loops, Modules & Imports: Slides · Notebook
Exercises: 5a
Quiz 1 Questions · Solutions

Week 2

Day 6 Part A — Intro, Review, Functions: Slides · Notebook
Part B — While and For Loops, Nested Loops and Lists, Modules: Notebook
Exercises: 6a · 6a_supp · 6b · 6b_supp
Solutions: 6a · 6a_supp · 6b · 6b_supp
Worksheets: 6a: Questions · Solutions; 6b: Questions · Solutions
Day 7 Part A — Introduction to Recursion: Slides · Notebook
Part B — More Practice with Recursion: Notebook
Exercises: 7a · 7a_supp · 7b · 7b_supp
Solutions: 7a · 7a_supp · 7b · 7b_supp
Worksheets: 7a: Questions · Solutions; 7b: Questions · Solutions
Day 8 Part A — Getting the Hang of Recursion: Notebook
Part B — Image Basics: Slides · Notebook
Exercises: 8a · 8a_supp · 8b · 8b_supp
Solutions: 8a · 8a_supp · 8b · 8b_supp
Worksheets: 8a: Questions · Solutions; 8b: Questions · Solutions
Day 9 Part A — More Fun with Images: Notebook
Part B — List Comprehensions, String Functions, Debugging: Notebook
Exercises: 9a · 9a_supp · 9b · 9b_supp
Solutions: 9a · 9a_supp · 9b · 9b_supp
Worksheets: 9a: Questions · Solutions; 9b: Questions · Solutions
Sample Quiz Questions · Solutions
Day 10 Part A — Quiz
Part B — Time Complexity and Search: Slides · Notebook
Exercises: 10 · 10_supp
Solutions: 10 · 10_supp
Worksheets: 10b: Questions · Solutions
Quiz 2 Questions · Solutions

Week 3

Day 11 Part A — What Is an Algorithm?, Time Complexity, Big-O Notation: Slides · Notebook
Part B — Linear Search, Binary Search, Applications of Search: Slides · Notebook
Exercises: 11a · 11a_supp · 11b · 11b_supp
Solutions: 11a · 11a_supp · 11b · 11b_supp
Worksheets: 11a: Questions · Solutions; 11b: Questions · Solutions
Day 12 Part A — Sorting Algorithms, Bubble Sort, Selection Sort: Slides · Notebook
Part B — Merge Sort, Sorting Runtimes: Slides · Notebook
Exercises: 12 · 12_supp · Sorting Visualizer
Solutions: 12 · 12_supp
Worksheets: 12: Questions · Solutions
College Panel: Presentation · Resources
Day 13 Part A — Graphs: Slides · Notebook
Part B — Paths and Trees: Slides · Notebook
Exercises: 13a · 13a_supp · 13b · 13b_supp
Solutions: 13a · 13a_supp · 13b · 13b_supp
Worksheets: 13a: Questions · Solutions; 13b: Questions · Solutions
Day 14 Part A — Graph Algorithms, Depth-First Search (DFS): Slides · Notebook
Part B — Graph Algorithms, Breadth-First Search (BFS): Slides · Notebook
Exercises: 14a · 14a_supp · 14b · 14b_supp
Sample Quiz Questions · Solutions
Day 15 Part A — Quiz
Part B — Language Models: Slides
Quiz 3 Questions · Solutions

Week 4

Day 16:
Day 17:
Day 18:
Day 19:
Day 20: Graduation and Closing Ceremony