This is the website for a summer course on algorithms and programming for high schoolers, in Addis Ababa from July 15th to August 9th, 2024. Here you will find lecture notes, exercises, and contact information for the instructors. The version of Python used here is Python 3.12.

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: Jupyter Notebooks, Basic Expressions, Part B: Simple Data Types (Boolean, Integers, Floats, Strings, …). Exercises 1a, 1a Supplement, 1b, 1b Supplement. |

Day 2: Part A: Variables, Printing, Comments, and Conditionals, Part B: Collection Typses (List, Dictionaries). Exercises 2a, 2a Supplement, 2b, 2b Supplement. |

Day 3: Part A: Loops and Functions, Part B: Loops and Functions. Exercises 3a, 3a Supplement, 3b, 3b Supplement. |

Day 4: Part A: Reviewing Loops and Functions, Part B: Recursion Basics. Exercises 4a, 4a Supplement, 4b, 4b Supplement |

Day 5: Part A: Quiz, Part B: Tic-Tac-Toe, Exercises 5a Supplement, 5b Supplement, 5c Supplement |

### Week 2

Day 6: Part A: Reviewing Loops, Functions and Collections, Part B: Reviewing Loops, Functions and Dictionaries. Exercises 6a, 6a Supplement, 6b, 6b Supplement. |

Day 7: Part A: Recursion, Part B: Recursion. Exercises 7a, 7a Supplement, 7b, 7b Supplement. |

Day 8: Part A: More Recursion, Part B: Image Basics. Exercises 8a, 8a Supplement, 8b, 8b Supplement. |

Day 9: Part A: Image Filters, Gradients, Patterns, Part B: Time Complexity. Exercises 9a, 9a Supplement, 9b, 9b Supplement. |

Day 10: Quiz, Exercises 10, 10 Supplement. |

### Week 3

Day 11: Part A: Linear Search, Part B: Binary Search. Exercises 11a, 11a Supplement, 11b, 11b Supplement. |

Day 12: Part A: Bubble Sort + Selection Sort, Part B: Quicksort. Exercises 12a, 12a Supplement, 12b, 12b Supplement. |

Day 13: Part A: Merge Sort, Part B: Introduction to Graphs. Exercises 13a, 13a Supplement, 13b, 13b Supplement. |

Day 14: Part A: Depth-First Search (DFS), Part B: Breadth-First Search (BFS). Exercises 14, 14 Supplement. |

Day 15: Quiz + College Workshop |

### Week 4

Day 16: Part A: Breadth-First Search (BFS), Part B: Memoization. Exercises 16a, 16a Supplement, 16b, 16b Supplement. |

Day 17: Part A: More Memoization, Part B: More Memoization. Exercises 17, 17 Supplement. |

Day 18: Part A: Memoization on Graphs, Part B: Invited Talk by Founder of Digital INVEA. Exercises 18a, 18b |

Day 19: Part A: Final Exam, Part B: Karatsuba’s Algorithm, Part C: Invited Talk by Emre Varol (Founder of A2SV) |

Day 20: Closing Ceremony |