Teaching Philosophy

Seeing students learn and their excitement for computer science grow is the real gift of teaching. I have found that my own motivation and excitement for Computer Science is contagious when expressed in the classroom. This helps to spark each student’s interest, focus their attention, and ignite their curiosity for Computer Science.

I believe that student’s learn most effectively when they are engaged and take personal responsibility for their own learning by being focused, prepared, and present. Thus, it is my responsibility to ensure that their experience is not only interesting but also relevant and encourages critical thinking, as this is a defining trait of any engineer. Critical thinking starts with the instructor themselves, reflecting on their understanding of the subject and the models they have constructed in their mind to guide their students. Thus, to challenge students to apply what they learn in the classroom I use multiple techniques: Think-Pair-Share, Jigsaw group activities, as well as focused small to medium sized collaborative projects. For example, during a summer introduction to java class to I had students work on small pair projects every other day (non-lab days) to learn the concepts while simultaneously gaining more confidence and practice in Java. Furthermore, as I believe that teaching must be balanced with strong research, since research creates novel ideas, which when integrated into lectures provides an avenue to inspire students and enhance their learning experience.

It is my belief that the highly abstract nature of Computer Science mixed with the difficulty of problems facing engineers in the field, is telling of the need for students to develop a thought process refined by practice. This has only been enhanced through my personal experience in the military, in industry, and more recently with industry partners. Both must be taught and their connections made apparent in order to forge truly successful engineers. This is achieved marrying the concepts from readings and lectures with real-world examples and personal experiences from the trenches.

In industry, academia, and society people of diverse cultures, genders, sexual orientations, and religious beliefs have come together to solve some of the most difficult problems humanity has ever encountered. In the classroom just like the real-world diversity is our strength. My approach is to create an inclusive and engaging environment based on clearly identified standards of equality, respect, personal responsibility, and academic conduct allowing my students to feel safe and comfortable enough to express themselves while opening their minds to new ways of thinking. As an example, in an introduction to Software Engineering course I introduce randomized groups of students to the Scrum lifecycle, agile estimation, and the Demming cycle using the Ball-point game prior to a lecture on Agile techniques. In this environment, I encourage students to collaborate, to exchange ideas and develop solutions which draw upon their unique and diverse backgrounds. In the same course as the previous example, I utilized the Jigsaw method to help students review and prepare notes on design patterns for a final exam. These activities help students to develop inter-personal communications skills, gain a deeper understanding by teaching each other, and help students to develop and learn new problem solving strategies.

In any course I teach I strive to develop challenging material and maintain high standards while ensuring that the pace of the course does not allow the average students to fall behind. A key to this is to consistently maintain a reflective frame of mind, both in and out of the classroom and to constantly review and improve my methods. Pivotal to this is the elicitation student feedback both directly and indirectly and maintaining an open-door policy and consistent office hours should they need extra help or wish to talk. I am also aware of the stress/anxiety that students face when course objectives, evaluations, and expectations are unclear. To this end, I ensure that the course and assignment objectives and expectations are clearly laid out in the syllabus and assignment definitions. I believe that understanding is more thoroughly demonstrated in the application of knowledge and thus evaluated through well designed assignments and group projects, rather than exams. Though, not all concepts can be evaluated in such ways, and in such cases well designed exams serve well. Although test taking can be stressful, I believe in “testing early and often” while providing ample time can relieve both the anxiety of worrying that a single exam will ruin their grade and the stress inherent to “time-pressured” exams.

Building on a core of solid fundamental concepts hardened with experience from application I motivate and excite students towards a path of lifelong learning and preparation for an ever-changing field. Whether their careers lead them to academia or industry as Computer Scientists, Software Engineers, or Security Engineers, our students will be able to face the complexity and challenges that await; knowing they have the necessary skills and intuition to be confident and successful in their professional careers.