One of the main reasons I have chosen to pursue an academic career is that I deeply enjoy teaching and mentoring students. Although I have not had a chance to formally teach a class, I believe that I have had enough related experience to teach well. At the University of Washington, I have taken two teaching enrichment classes, and have been a teaching assistant for a large course (70 students) on data structures and algorithms. I graded assignments and projects, helped students in office hours, and assisted in preparing and grading exams. I prepared and gave lectures on several occasions, which gave me valuable opportunities to interact with students in a large class setting. I have also given invited lectures in graduate courses, and presented in many weekly seminars on a variety of topics, ranging from AI to Cognitive Science to Databases. My presentation skills have been well developed by these activities as well as by many presentations at conferences and research labs. I have also volunteered to mentor students at both the undergraduate and graduate level. For example, I believe my feedback and guidance were particularly successful with Jayant Madhavan, a younger graduate student who became my co-author on a paper submission.
Throughout these activities, I discovered that I both enjoy teaching and am good at it. My enthusiasm for the subject of my lecture always shows through. After my invited talk at a data mining company, for example, the CEO said to his employees ``I really wish that you can show as much enthusiasm for your work as AnHai has for his talk.'' I also enjoy working with a broad range of students. For example, students in the course that I TA-ed are non-CS majors with varied backgrounds in Computer Science. They frequently came to me for help. I found that I really enjoyed the challenge of tailoring my explanation of technical topics to fit the background of each student, and the rewards of seeing that they came to see those topics in a different light. I also found that I can explain complicated topics well. My method is to break such topics down and provide simple examples for each of the key ideas, while always keeping the audience oriented within the big picture. For example, after my lecture on probabilistic relational models, a complex topic in machine learning, the chair of the UW's highly ranked statistics department wrote to me ``that was a very nice talk, [and] I especially enjoyed your lucid explanation of Bayes nets.''
Besides showing enthusiasm and providing intuitions to the subject being taught, I believe another important element of effective teaching is continual assessment and adaptation to students' learning styles. My awareness of this need came from taking classes with many great teachers. The teachers encouraged students to give feedback from day one (either directly or anonymously via a web page), and periodically invited a teaching consultant to the class to talk with the students. I found that students really appreciate being given such opportunities, and that their feedback made teaching and learning become even more effective.
Given my research and teaching experience, I believe I am well qualified to teach undergraduate and graduate courses in databases, artificial intelligence, machine learning, data mining, information retrieval, and Internet systems. I would also enjoy teaching undergraduate courses in many other topics, including data structures and algorithms, programming languages, theory of computation, logic, discrete mathematics, and programming. I would like to develop an advanced course that combines distributed databases, machine learning, and information retrieval. In this course I would focus especially on information integration challenges brought about by the Internet, and on how techniques from a variety of fields can be brought to bear effectively on these challenges.
In sum, I regard teaching as a vital component of an academic career, and I look forward to working with both undergraduate and graduate students.