For me, high quality teaching works better when the classroom is fun, interactive, and positive. I have a good sense of humor and try to integrate that into lecture and discussion. I write my own demonstration projects and use live programming to show students the step-by-step process of building software to solve a problem. I also like to use visualizations to help students better grasp abstract concepts, so I regularly use the whiteboard or integrate graphics and animation into my demo programs.
Outside of class, I continue my commitment to providing high quality education through prompt, constructive feedback to students via constant monitoring of email even at home and over the weekends. As far as office hours go, my policy is that if I am in the office, my door is open. While there have been times when I have had 4 or 5 students in my office at once (sadly, I only have 3 chairs), answering one student’s question may also answer another’s.
Over the past few years, I have had several non-CS students in my classes become CS majors, citing my classes as the motivating reason for the change. I still stay in touch with some of my past students and occasionally they email me about their jobs and how my courses have better prepared them for programming-related work after school. In my spare time, I am interested in building games, so currently I am investigating (with the help of some of my students) ways to teach program design and software engineering through simulation games.