My philosophy of teaching is based on the belief that an effective instructor must have a good command of both the field being taught and the underlying pedagogical theories. Teaching is not only a procedure for conveying knowledge, but also one that raises curiosity, assists discovery, and promotes achievement.
An excellent teacher must be able to select what to teach and then decide how to teach, depending on the subject and kind of student. Also, an excellent teacher should remain current and strive to stay abreast of theory and practice in his particular field. Teaching courses in computer science, a fast-moving field, makes this even more challenging. I believe a good teacher should also engage in research, participate in classes, attend conferences, and interact with society in order to continuously refresh his knowledge.
The art of teaching is also the art of inspiring. It's been said that "the mediocre teacher tells, the good one explains, the superior one shows, the great one inspires." Beyond the subject matter, students should also acquire important learning tools and skills from the teacher; with these, they can conduct independent research and solve new problems.