2019 Course Materials

This is the website for a summer course on algorithms and programming for high schoolers, in Addis Ababa from July 22nd to August 23rd, 2019. 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.

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

Course Content

Week 0

Training for lab assistants, additionally featuring:

  • Guest lecture and discussion with Betelhem Dessie (Projector Manager at Anyone Can Code)

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: Loops, and more functions. Exercises A, B.
Day 4: More loops, variable scoping. Exercises A, B.
Day 5: Recursion basics, and Tic Tac Toe. Exercises A, B, Supplement, Challenge.
Syntax cheat sheet and list of terms

Week 2

Day 1: Loops. Exercises A, B.
Day 2: Functions, indexing, loops, and later Recursion basics. Exercises A, B.
Day 3: Recursion, and later More recursion. Exercises A, B.
Day 4: List comprehension, time complexity, and search. Exercises A, B.
Day 5: Quiz 1, and later Data structures.

Week 3

Day 1: Binary search and later Selection and merge sort. Exercises A, B.
Day 2: Time complexity and later Merge and quick sort. Exercises A, B.
Day 3: Data structures and later More data structures. Exercises A, B.
Day 4: Graphs and later More graphs. Exercises A, B.
Day 5: Quiz 2, and Graphics. Exercises A, Extra.

Week 4

Day 1: Memoization and later More memoization. Exercises A, B, Challenge.
Day 2: More memoization, tracing the dynamic programming table. Exercises A, B.
Day 3: Memoization on graphs. Exercises A, B.
Day 4: Karatsuba’s Algorithm.
Day 5: Final exam and course wrap-up.