Learning is not merely the accumulation of knowledge in the mind of the student; neither is teaching simply the process of transferring information from the mind of the teacher to the mind of the student. From my perspective, learning is a constructive process in which the student not only accumulates and retains knowledge, but also develops the ability to effectively apply what they know to real life circumstances in fresh and insightful ways. My perspective on learning informs my approach to teaching. As a teacher, I must actively anticipate how the student will be called upon in the future to utilize what they are learning in the classroom. In other words, in order to be effective teachers, we must be well-grounded in both theory and practice. If we tilt too much toward the former, we produce students who may know a lot but are incapable of putting what they know to good use. If we’re preoccupied with the latter, we produce students who have a meager toolbox at best. They can effectively respond to a narrow set of real life circumstances, but only the ones they’ve seen before.
There is an old saying that goes like this: “Experience is the best teacher, but the tuition is very expensive.” From my perspective, one of the biggest challenges in teaching computer science is that it is often infeasible to authentically reproduce within the confines of the classroom, the challenges computer science practitioners experience daily at their jobs. For example, I can lecture on textbook best practices for developing a complex software system for a large long-lived telecommunication system or the mission critical software systems for a nuclear submarine involving teams of thousands of software engineers. However, it’s very difficult to faithfully reproduce the pathos of that experience and the consequences of doing it wrong within the context of a fifteen week course involving twenty students. I also realize that the human mind can at times be too efficient – without real honest to goodness smoke and din to heighten their sense of urgency, students may not be as motivated to master difficult and unwieldy problems that live out in a world they have yet to experience, and can hardly imagine. Realizing this need to properly motivate students to learn without having a nuclear submarine on hand to tweak their interest has an enormous impact on how I approach the classroom.
I consciously motivate my students to learn by combining a number of elements that I have found to be essential in teaching with excellence. First and foremost, I strive to have absolute mastery of the subject I’m teaching, and be thoroughly prepared with regard to both lecture materials and assignments. In my own experience as a student, truly qualified and well-prepared instructors have always been a huge source of inspiration to me. Second, I believe the material taught in the classroom must be relevant and up-to-date. Computer science as a discipline is relatively young, and new developments often emerge with mind boggling swiftness and quickly become pervasive in practice. This is especially important when teaching advanced undergraduate and graduate courses where I often find it necessary to incorporate material from my own research or drawn from the recent literature, as the available textbooks are often silent on important developments that have occurred after they were printed. Third, while I realize I cannot authentically replicate the real-world in my classroom, I have found that contextualizing the subject matter being taught in the classroom by sharing real world experiences and/or relevant published case studies pays enormous dividends in terms of motivating the student to learn. I have found that my nearly two decades of industry experience is invaluable in the classroom in that it helps me frame the material I’m teaching or the project I’m assigning with real world fidelity. Students become very motivated once they realize how a particular method or technique is brought to bear on real problems.
Finally, there are a number of more detailed and practical ways that I’ve found to be very important in maintaining the motivational level of students and teaching with excellence. For example, I believe, excitement and enthusiasm are very contagious human experiences, and always try to convey my own genuine excitement and enthusiasm for the subject I am teaching. I also feel it’s very important to be reasonable in terms of how much material I can expect the students to learn in a semester. To be sure, I aim to stretch them as much as possible, but not to the extent that they become frustrated to a point that makes it impossible to learn. When assigning programming projects, I normally do the implementations myself prior to writing up the final project specification for the students. Not only does this help me gauge how much effort the assignment requires, but it also helps me anticipate the students’ questions in advance. It also lets me provide the students with a “model solution” once they’ve completed the project that they can compare their own solution to. I also find myself very drawn to and empathetic with students who are struggling in my class, yet show they are very motivated to master the material despite their difficulties. In my experience, when you demonstrate to a student that you really care about them as an individual and are determined to see them succeed, they will typically respond positively and with renewed energy. I find it very gratifying to work one-on-one with students during office hours and see them grow over the semester and eventually succeed in the end.
In conclusion, I believe the best way to become and remain an excellent teacher is by remaining a life long student myself. Every course I have taught has been a learning opportunity for me. I learn more about the subject itself, but I also become more discerning in terms of what works well and what doesn’t work from a pedagogical perspective. I carefully observe and listen to how students respond to my lectures and assignments over the course of the semester and pay very close attention to what students share in their evaluations at the end of the semester. Excellence in teaching requires a thorough knowledge of the discipline being taught, experience and insight in putting that knowledge into practice, an ability to inspire and engage the student in the learning process, and continuous learning.