Teaching Experience
University of Waterloo, Ontario (2007–2013)
Guest Lecturer (9 lectures) Courses: Data and Knowledge Modeling and Analysis, Dimensionality Reduction, Classification, and Computational Statistics
- Independently instructed nine guest lectures in undergraduate and graduate courses
- Communicated complex ideas to students through interactive instruction, examples and illustrations
Teaching Assistant – Graduate (1 term) Course: Data and Knowledge Modeling and Analysis
- Introduced and designed a course project on Kaggle (a competition platform) in which students competed on solving classification and clustering problems.
- Evaluated and discussed a variety of research-oriented course projects
Teaching Assistant – Undergraduate (2 terms) Courses: Data Structures and Algorithms, Cooperative and Adaptive Algorithms
- Independently instructed weekly tutorials in a classroom setting
- Contributed significantly to the preparation of problem sets and their solutions for the Cooperative and Adaptive Algorithms course, later adopted by the course instructor
- Graded assignments and exams to evaluate students’ understanding of the course materials
- Assisted students by providing face-to-face office hours and answering questions via email
Cairo University, Egypt (2003–2007)
Teaching Assistant (6 terms) Courses: Software Engineering (3 terms), Data Structures and Algorithms, Pattern Recognition, Computer Architecture
- Independently instructed weekly tutorials in a classroom setting
- Designed many problem sets and their solutions
- Designed several materials for the Software Engineering course project, later adopted by the course instructor
- Developed a complete syllabus for teaching the Unified Modeling Language (UML) in the Software Engineering course, which included the design of all tutorial and laboratory sessions
- Mentored and guided more than one hundred students in their course projects
- Developed marking schemes to evaluate students’ understanding of the course materials and graded several assignments, project reports, and exams
Laboratory Instructor (6 terms)
- Independently instructed weekly laboratory sessions for Data Structures and Algorithms, Software Engineering, Computer Graphics, Operating Systems, Microprocessor Systems and Computer Architecture
|