Teaching for me is not just a job, but it is something I patiently enjoy. My highest pleasure is when I see my students enjoying and learning the subject I am teaching. I am very passionate about teaching that is why every semester I prepare my courses in a thorough way by improving any shortcoming and emphasizing the positives aspects from previous experiences. I am always looking for ways to continuously develop my teaching skills. In my teaching I focus on both theoretical concepts and practical experiences. I encourage my students to think about the class as a learning environment where they learn by interacting with me and with their peers. In both theory and lab sessions, I encourage students to work in smaller groups in which they discuss the solution of the given problem, design and write the code together. My goal as a teacher is to communicate information and explain concept to students in a very clear manner with examples, not only for them to memorize it but also to learn how to think and learn by themselves. I believe that in order for students to learn, not only they should listen and observe, but they should participate in the class discussion, solving problems, analyzing solutions presented by the teacher and other students. I teach many courses where students are required programs, I will emphasize to students that the program is just the final product but what more important so to go about producing this product. Using this approach learn how to solve problem by analyzing the problem, understanding the problem requirement, designing an algorithm and implementing their solution and testing it to make sure it work as intended. This approach will develop students’ critical thinking and problem solving skills.