This course is based on the work of the MIT-African Internet Technology Initiative (MIT-AITI). MIT-AITI is an innovative approach by MIT students to integrate computers and internet technology into the education of students in African schools. MIT-AITI achieves this goal by sending MIT students to three African nations in order to teach both students and teachers through intensive classroom and lab sessions for six weeks.

This course Web site has two major components:

  1. Content from the spring 2005 preparatory seminar offered by the MIT-AITI leadership.
  2. A snapshot of the MIT-AITI summer 2005 program in Kenya.

Laboratory exercises for both the spring 2005 and summer 2005 sessions are included below.

Spring 2005

In all of the lab sessions for the spring seminar, the students were charged with learning and reviewing the material for the summer program. They were given this time in class because it is imperative for any teacher to understand the material in question to a deep level! This included reading the lecture notes, completing the labs, and taking the exams which are on this site under the "Summer 2005" heading.

In addition to these materials, they were provided with sets of challenge problems to test their skills. These problems are below:

Challenge Problems - Set 1 (PDF)

Challenge Problems - Set 1 Solutions (PDF)

Challenge Problems - Set 2 (PDF)

Challenge Problems - Set 2 Solutions (PDF)

Summer 2005



Lab 0: Hello World (PDF)

Lab 0: Hello World Solutions (PDF)



Lab 1: Variables and Operators (PDF)

Lab 2: Control Structures (PDF)

Lab 1: Variables and Operators Solutions (PDF)

Lab 2: Using Control Structures (JAVA)



Lab 3: Gradebook Part I (PDF)

Lab 3: GradeBook (JAVA)



Lab 4: Gradebook Part II (PDF)

Lab 4: GradeBook (JAVA)



Lab 5: Gradebook OOP Part I (PDF) (JAVA) (JAVA)


Lab 6: Gradebook OOP Part II (PDF) (JAVA) (JAVA) (JAVA)



Lab 7: Fixing Modifier Bugs (PDF) (JAVA) (JAVA) (JAVA) (JAVA) (JAVA)


Lab 8: Inheritance and Interfaces (PDF) (JAVA) (JAVA) (JAVA) (JAVA)



Lab 9: I/O and Exceptions Lab (PDF)

Lab 9: Employee (JAVA)

Lab 9: Employee Already Added (JAVA)

Lab 9: File Utility (JAVA)

Lab 9: Payroll (JAVA)



Lab 10: Swing Lab (PDF)

Lab 10: Employee Listener (JAVA)

Lab 10: Swing Employees (JAVA)


Internationalization seminar (PDF) (JAVA) (JAVA) (JAVA) (JAVA)


In addition to the above materials, students were provided with the following challenge problems to test their skills.

Java programming note, Problem 1 (Final Jeopardy) and Problem 3 (Perfect Numbers), in the 2004 Computer Science Programming Contest hosted by Western Carolina University's Department of Mathematics and Computer Science.

Caesar (PDF)

Noughts and Crosses (PDF)