Most of my experience teaching in an academic setting comes from volunteering to give a short 4-week course on programming in C in the fall 1997. My responsibilities included giving lectures three times a week to class of approximately 30 students, creating and grading three short assignments, and holding office hours. The course was intended for students who already have background programming, but want to learn the syntax and programming idioms of C. However, there were one or two students who had absolutely no programming experience, but wanted to take the course anyway. They required extensive extra help outside of class on basic concepts such as the meaning of functions and the nature of variables. Although time-consuming, I find such one-on-one interaction one of the most satisfying aspects of teaching, particularly when the students are really interested in learning the material, which was the case in this situation.
I have also had experience as a teaching assistant. I have helped teach a second-year core computer science course that introduces students to topics including high-level functional programming languages, development and use of data structures (lists, trees, queues), proving programs correct, and basic complexity theory. I have also helped teach a masters student course on software engineering. My responsibilities as a teaching assistant have ranged from giving weekly tutorials to groups of students, to holding regular office hours and creating and grading assignments. In May 96, I was given an award as an outstanding teaching assistant by the Cornell University computer science department.
Outside of academia, I have had extensive experience teaching children a variety of outdoor skills at a private camp in Ontario, Canada. In the summers between 91 and 96, I taught children, aged 6 through 17, kayaking, canoeing, rock climbing and canoe tripping as well as soft skills such as conflict resolution, teamwork and group communication. Although this setting is quite different from a university lecture hall, many of the same principles apply. In particular, the importance of being well-prepared, creative and enthusiastic can never be underestimated.