I view teaching as a significant and rewarding part of my career as a researcher. My research combines robotics and computer vision. This combination provides a useful perspective on the teaching of courses in distributed systems, mathematics, automation, operating systems, and artificial intelligence.
My academic background has been a balance between systems and Artificial Intelligence (A.I). %I draw on this balance for the examples and applications I use in class. I strive to help students see the interconnections not only within the discipline of computer science but in other fields as well.
I have extensive experience teaching as the instructor for a number of courses and as a teaching assistant for several others. The most recent courses that I was the instructor for was the graduate level introduction to Artificial Intelligence. The challenge in this class for me was finding ways to bring the students down into the nuts and bolts of A.I. without squandering their initial enthusiasm from the higher-level discussions. I found that allowing breadth in their final research report let the students explore any aspect of the topic that interested them, while the tests and programming assignments provided a more hands-on working knowledge of A.I. techniques. In addition to being the instructor for A.I., I was the instructor for an undergraduate higher-level language design class.
While at Minnesota I proposed, created, and taught a new colloquium course. While undergraduates are encouraged to attend the department colloquium, they rarely do. So, I proposed an undergraduate colloquium. I found that undergraduates benefited from cutting-edge work presented at their level. The colloquium helped to give their course work a context. It was a phenomenal success and the course has been a recurring part of the curriculum since.
As a teaching assistant I was fortunate to work for some the best teachers at Minnesota: Nikolaos Papanikolopoulos, Phil Barry, and Joe Konstan, each of whom has won numerous teaching awards. Theirs are the examples by which I judge my own teaching.
I look forward to using my experiences developing curricula to create new courses for both graduate and undergraduate students. With my experience teaching at Minnesota I am well prepared to teach some segment of the existing curriculum, from introductory courses to courses in Artificial Intelligence, Computer Vision, and Robotics. At the graduate level I would like to develop advanced courses in user interfaces, computer vision, robotics, real-time systems, and artificial intelligence (for example, project courses in game theory and learning). I'm also interested in teaching compilers and introductory courses on programing (introduction to computer science as well as specific languages). Although these courses are outside of my research area, I believe problem solving within the context of programming is vitally important to computer science undergraduates. The best place to start teaching these skills is early --- with early programming classes. Finding the best way to help students learn these skills is a specific goal for me in my career as an educator.