I find I am most effective as a teacher when sharing my enthusiasm for computer science. Computer science brings the principles of critical thinking and ingenuity to the forefront, as there is rarely one best solution to a given problem. It allows for the direct exploration of many other fields, such as cellular processes in biology, friendship and interaction in social networks, or even logical frameworks for metaphysics in philosophy. By teaching computer science at a liberal arts institution, I have the opportunity to inspire the next generation of scholars and teachers.
Another way for students to personalize the material is through understanding mobile and tangible computing devices. I have begun to incorporate programming for Android devices into many of my courses, and I see that students are engaged and motivated to learn about the principles running these ubiquitous pieces of our modern lives. By personalizing and anthropomorphizing computer in our classroom discussions, and encouraging them to think in terms of behavior motivations and systems of communications, my students can more quickly understand and remedy errors in their code.
Each course I teach requires substantial background research to be current in the field, since there is almost always a new version of a particular programming language or software package. Because of this rapid evolution in content, my course structure has shifted recently from a purely scientific application of algorithms and programming, toward an infusion of event-driven programming and mobile software development. A typical homework for my courses will include a section on working through a concept by hand, useful for understand the mechanics of an algorithm, followed by a programming section to put the algorithm into practice. For advanced classes, I always incorporate an independent project, which allows students to delve into related topics of their interest and then present their findings to the rest of the class. Many students have found these final projects to be the most valuable part of their education and expand their work into either research independent studies or portfolio pieces geared toward employment. I feel exams should rely less on memorization and more on application of the concepts to new problem settings to test their ability to transfer and abstract the course material. I have also conducting oral exams of students in smaller classes, and found that this leads to a greater understanding of the student's mastery of the material.