2018 Course Materials

This is the website for a summer course on algorithms and programming for high schoolers, in Addis Ababa from July 16th to August 10th, 2018. Here you will find lecture notes, lab assignments, and contact information for the instructors. You can begin by downloading Anaconda. The version of Python used here is Python 3.0.

Course Content

Week 0

Training for lab assistants, additionally featuring:

Week 1

Day 1: Types, variables, operations, comments, and errors. Exercises A, B, C.
Day 2: Printing, lists, strings, and functions, and later Control flow, and review. Exercises A, B, C.
Day 3: Review of for loops and functions. Exercises A, B.
Day 4: Loops, variable scoping, and review of control flow. Exercises A, B.
Day 5: Recursion basics, and Tic Tac Toe. Exercises A, B.
Syntax cheat sheet and list of terms, and an extra challenge

Week 2

Day 1: Loops and functions review, more review
Day 2: More functions
Day 3: Quiz 1
Day 4: Recursion
Day 5: More recursion, and systems of linear equations
Fractal challenge

Week 3

Day 1: Searching and sorting (exercises)
Day 2: Merge sort (exercises)
Day 3: More sorting (exercises) and complexity
Day 4: Review
Day 5: Quiz 2, Fast integer multiplication: Karatsuba’s algorithm

Week 4

Day 1: Memoization (exercises)
Day 2: More memoization, tracing the dynamic programming table, and CTP presentation and panel
Day 3: The dynamic dictionary problem (exercises), and Bellman-Ford
Day 4: Career Day presentations and panels
Day 5: Final exam and course wrap-up