My strong belief in the important role of teaching fuels my motivation to pursue a career in academia. I believe that teaching complements research in the academic wheel and thus a teaching strategy should establish a close relationship between research and education. The teacher, as a guide to his or her students, has the responsibility not only to providing support and help to his students in the areas in which help is most needed, but also to making teaching an interactive, enjoyable experience, encouraging students to think independently and critically. Students should not only understand the material, but they should also understand how the material is to benefit them in the future.
As detailed in my Curriculum Vitae, I have a long experience in teaching at Boston University, the Arab Academy for Science and Technology and the American University in Cairo, both as a teaching assistant and as a lecturer.
I have been a teaching assistant in many courses, including Introduction to Computers, Introduction to Information Systems, Numerical Analysis and Computer Graphics. My responsibilities in these courses included, in addition to teaching, participating in the development of homework assignments, projects, midterms and finals. It also included grading and mentoring students in various projects.
I have been the main instructor in a number of other courses, including Introduction to Computers, Structured Programming, Data Structures, Object Oriented Programming, Database Design, Database Applications, Computer Graphics and Neural Networks. I found the experience of independently teaching and managing all the details of these courses to be very rewarding. I realized that careful planning (e.g., making the learning resources such as lecture notes and references to supplementary reading easily accessible) makes the teaching experience enjoyable both for the students and the teacher. I also realized that my research greatly informs my teaching. Doing research in a subject related to a course I am teaching allows me to provide students with deeper insights into the course material-not surprisingly, students recognize and appreciate this duality.
I have been a lecturer in the department of Electronics and Computer Engineering at the Arab Academy for Science and Technology at the time they were re-examining, re-designing and standardizing all their courses in order to be certified by ISO as a degree-granting Computer Engineering department. As a member of the technical committee in charge of this job, I helped developing the curricula and the details of some computer science courses. These courses were Object Oriented Programming, Structured Programming, Data Structures and Neural Networks.
My computer science and engineering background allows me to teach a wide variety of courses ranging from theory to systems to programming languages. Given my research interests, I would be particularly interested (and indeed excited) to teach introductory and advanced courses in Networking, Distributed Systems and Performance Evaluation. I would also enjoy giving seminars on graduate level topics like End-to-end Characterization, Network-aware Applications, Quality of Service and Mobile Ad-hoc Networks.
I have specific ideas concerning Computer Science courses and seminars that I would like to develop further as part of my future teaching career. For example: