Some Personal Observations on Teaching
The Various Roles of Teaching
A teacher must play many roles throughout the
education process. Perhaps the key role is that of coach. A successful
instructor readily accepts the leadership role as the one providing the focus
and direction for the course. This role also implies that the teacher is to be
an energetic encourager. Additionally, an educator must play the role of evangelist,
or salesperson. This aspect of teaching provides the spark for making
learning fun. The students must really buy into the content of the course with
zeal. My daily goal is to leave the students more awake than when they came
into class so that they are eager to run to the lab and jump into the
assignment of the day. I believe that posing challenging questions related to
real-world problems heightens the level of interest in the material being
taught. Reducing the gap between theory and practice can aid in achieving this
goal. Another role that the instructor should play is that of guru. Well-prepared
lectures instill in the students the confidence and understanding that the
person leading them is someone who truly knows the material being presented.
Last, but certainly not least, a teacher must partially play the role of colleague.
Students who feel at ease with their instructor garner a feeling of
self-respect as they learn within a nurturing environment.
From
work on my Master’s thesis on computer science education, I realized that a
core component of learning is the integration of new knowledge with prior
knowledge. In that work, funding from a DARPA grant explored new techniques for
teaching the traditional second course (using Ada) at the freshmen level. The
research investigated a component-based approach where layered components
progressively built upon known concepts. Students built new components, based
on previously constructed components, to solve an increasingly complex problem.
I
believe that students must be encouraged to question. At Vanderbilt, there were
several semesters when I was given full responsibility for a section of the
introductory programming course. In these classes, I adopted a somewhat strange
practice of purposely introducing an error into something that was being
presented. This helps to encourage the students to question, and it also
provides the opportunity to backtrack and trace the proper solution while
learning from a mistake. At the graduate level, the importance of questioning
is even more desirable because it permits the student to grow in self-direction
and self-motivation.
Perhaps one of the most rewarding aspects of
teaching is that special look on a student’s face when they realize for the
first time some new concept (i.e., the “I get it!” look). I have found that
this look appeared frequently during the office hours interaction that I had
with my students. My real strength in teaching has been the one-on-one
interactions that often occur. These interactions help support the teaching
role of colleague.
With respect to student evaluations, I consistently
received evaluations that were in the top 10% of the whole Vanderbilt School of
Engineering. During one semester, my evaluation was among the top 1% of the
School. This resulted in my being given the Teaching Assistant of the Year
Award.
There
are several specific classes that I would enjoy teaching. At the undergraduate
level, my desire would be to teach classes in software engineering, compiler
construction, and programming languages. I would also be interested in
occasionally teaching a course on databases at the undergraduate level, as well
as introductory computer science courses. At the graduate level, my teaching
focus would be on advanced topics in the areas of object-oriented techniques,
software engineering, and generative programming.