Teaching

“What I cannot create, I do not understand.” — Richard P. Feynman

I believe that the creative process is a critical part of computer science education, which can both motivate students and bring them deeper understanding of the topics of study. I believe that software development, engineering and science are deeply creative acts. Far from the common view of computer science as the application of dry logic and analysis, most technology development is primarily a challenge of imagination, and the skills to communicate our vision to each other and to the systems and machines we are designing. Programming, engineering and science offer ample opportunities for invention. Some problems are investigative and reductionist: Why is this code running slowly? What on earth is causing that bug? Others are constructive, like devising algorithms and architectures. All of them are a delight if you enjoy the powerful act of creation, of realizing your vision as concrete working systems.

I believe that students learn best by doing. Richard P. Feynman was a consummate advocate of this philosopy, only by doing do we understand. While building is never a substitute for basic learning, I believe that it can motivate the study of difficult topics, allow students to test their theoretical understanding, and build confidence in their abilities. Whenever possible, my teaching methods use active learning methods, both in class, in assignments, and in my interactions with graduate research students and graduate projects. I prefer to use real working code from concrete current systems and applications, to illustrate and inform. Using active, creative methods prepares students for a changing field. Technology churns at too rapid of a pace to expect that specific skill sets taught in terms of programming languages or systems, will be relevant even within 3-5 years, much less for the whole career path of the student. Thus, whether the student is preparing for a career in academia, or industry, if they will be working in the computing technology and science fields they must be prepared and able to learn how to learn. Active methods and teaching by doing build the confidence necessary to continue to evolve and “sharpen” ones own saw, even after the formal process of the educational environment is over.

Teaching Activities