2011 Course Materials

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 (በአማርኛ).


Course Content

Week 1

Topic Lecture Notes Lab Lab Solutions
July 4: Basic Python data types, operations, and functions pdf pdf pdf
July 5: Control flow pdf pdf pdf
July 6: Recursion and binary search pdf pdf pdf
July 7: Sorting pdf pdf pdf
July 8: Order of growth, induction, and recurrences pdf pdf pdf

Week 2

Topic Lecture Notes Lab Lab Solutions
July 11: Memoization pdf pdf pdf
July 12: More memoization pdf pdf pdf
July 13: More memoization pdf pdf pdf
July 14: No class
July 15: Greedy algorithms pdf pdf pdf

Week 3

Topic Lecture Notes Lab Lab Solutions
July 18: Graph exploration pdf pdf pdf
July 19: File I/O and more graph exploration pdf pdf
July 20: Shortest paths pdf pdf pdf
July 21: Numerical algorithms pdf pdf pdf
July 22: Practice problems (recursion/memoization) pdf

Week 4

Topic Lecture Notes Lab Lab Solutions
July 25: More practice problems (recursion/memoization/graph exploration) pdf
July 26: More practice problems (recursion/memoization/shortest paths) pdf
July 27: More practice problems (DFS/BFS) pdf
July 28: More practice problems (IOI recursion/fast powering) pdf
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.