** When and where: Addis Ababa Institute of Technology, Addis Ababa University (Amist Kilo), July 4-29 (European calendar)**

** Instructor:** Jelani Nelson

** Organizers:** Naod Duga, Jelani Nelson

** Teaching Assistant:** Imnet Edossa

This is the website for a summer course on algorithms and programming for high schoolers, in Addis Ababa. The course is free and will be taught in English, and students interested in finding out contact information and registering should read this flyer (በአማርኛ).

**News:**

- Final Exam during class on Friday, July 29.
- Practice Exam (solutions).

**Week 1**

- July 4: Basic Python data types, operations, and functions. [lecture notes][lab][lab solutions]
- July 5: Control flow. [lecture notes][lab][lab solutions]
- July 6: Recursion and binary search. [lecture notes][lab][lab solutions]
- July 7: Sorting. [lecture notes][lab][lab solutions]
- July 8: Order of growth, induction, and recurrences. [lecture notes][lab][lab solutions]

**Week 2**

- July 11: Memoization. [lecture notes][lab][lab solutions]
- July 12: More memoization. [lecture notes][lab][lab solutions]
- July 13: More memoization. [lecture notes][lab][lab solutions]
- July 14: No class.
- July 15: Greedy algorithms. [lecture notes][lab][lab solutions]

**Week 3**

- July 18: Graph exploration. [lecture notes][lab][lab solutions]
- July 19: File I/O and more graph exploration. [lab][lab solutions]
- July 20: Shortest paths. [lecture notes][lab][lab solutions]
- July 21: Numerical algorithms. [lecture notes][lab][lab solutions]
- July 22: Practice problems (recursion/memoization). [lecture notes]

**Week 4**

- July 25: More practice problems (recursion/memoization/graph exploration). [lecture notes]
- July 26: More practice problems (recursion/memoization/shortest paths). [lecture notes]
- July 27: More practice problems (DFS/BFS). [lecture notes]
- July 28: More practice problems (IOI recursion/fast powering). [lecture notes]
- July 29: Final Exam (solutions).