**When/where:** Addis Ababa Institute of Technology, Addis Ababa University, July 4-29, 2011

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).

## Course Content

### Week 1

### Week 2

Topic | Lecture Notes | Lab | Lab Solutions |
---|---|---|---|

July 11: Memoization |
|||

July 12: More memoization |
|||

July 13: More memoization |
|||

July 14: No class |
|||

July 15: Greedy algorithms |

### Week 3

### Week 4

Topic | Lecture Notes | Lab | Lab Solutions |
---|---|---|---|

July 25: More practice problems (recursion/memoization/graph exploration) |
|||

July 26: More practice problems (recursion/memoization/shortest paths) |
|||

July 27: More practice problems (DFS/BFS) |
|||

July 28: More practice problems (IOI recursion/fast powering) |
|||

July 29: Final Exam (solutions) |

Students interested in seeing similar courses should look at the websites for 6.042, 6.006, and 6.046 at MIT. There are also several websites which contain algorithms problems for solution, which could make good practice: see the USACO Training Program Gateway, TopCoder, the Sphere Online Judge, Z-Trening, and the UVA Online Judge. You can take a crash course in Python 3.0 here (note the lecture notes above were prepared with Python 2.6 in mind, and there are some differences), and the readings here may also be helpful in learning Python.