Statement on Teaching

by Henry M. Walker

I view education as a collaborative effort among teachers and students, as both groups strive to learn about unfamiliar subjects and to gain new insights about familiar ones. Within this collaboration, my role as a teacher involves facilitating student learning at many levels. Although my end-of-course evaluations are consistently quite positive, I try to become ever more effective in this role by continually experimenting with new pedagogies and with new combinations of proven techniques. To be effective in my style of teaching, I believe a teacher must build an extensive repertoire of teaching approaches, develop a keen sense of what approaches connect best with specific groups of students, and forge a shared sense of purpose that both instructor and students are working toward common goals. I also find it very helpful to ground my teaching on various basic educational principles.

Since 1997 I have tried to provide practical perspectives and suggestions in my columns, first in the SIGCSE Bulletin and now in ACM Inroads. In these and other articles and books, I draw from numerous books, articles, presentations, and conversations that discuss pedagogies and educational theories, typically focusing on down-to-earth ideas that I can apply in designing curricula and in classroom teaching. Through 2017, I had written 56 columns, which now are being collected, updated, and expanded into a book on the teaching of computing. The book, which is based on extensive experience and informed by computing-education research, is expected to be published by Taylor and Francis in about March 2018. [6]

In what follows I have selected four illustrative themes which I believe are vital for effective teaching: Bloom's Taxonomy of Education Objectives [2], active learning, accommodation to diverse learning styles, and listening. I hope that this limited discussion will provide some general insights about my perspectives on teaching and my work with students, both in and out of the classroom.

Bloom's Taxonomy of Education Objectives in the Cognitive Domain

Although it is easy to state that "student mastery is a goal" for virtually any course, careful consideration is needed to determine just what such mastery might mean. In this regard, I have found the work of Benjamin Bloom [2] to be quite helpful. Bloom identified six components of understanding, each of which are important for student mastery of a subject [2, pp. 201-207]:

  1. Knowledge of specifics (e.g., terminology, dates, events, persons, places, specific techniques, ideas)
  2. Comprehension (e.g., understanding information,making use of communications received)
  3. Application (e.g., using "abstractions in particular and concrete situations")
  4. Analysis (e.g., "the breakdown of a communication into its constituent elements or parts")
  5. Synthesis (e.g., "putting together of elements and parts so as to form a whole")
  6. Evaluation (e.g., "judgments about the value of material and methods for given purposes.")

CS2013 [1] from ACM/IEEE-CS merges these levels into three categories, but I find Bloom's full Taxonomy particularly helpful. Bloom's categorization highlights that a full understanding of a topic involves many elements. In addition to knowing terminology and facts, one must be able to apply the material and appreciate how the topic relates to other ideas. In my classes, Bloom's Taxonomy reminds me that I need to encourage students to view a subject from several perspectives, practice with ideas at various levels, and strive to integrate topics.

At a practical level, I want students to tackle a wide range of problems. Simple exercises (e.g., statement of definitions, paraphrasing arguments) may be necessary when a subject is first introduced, but such exercises are not sufficient. I also need to require students to use ideas to solve broader problems and to ask higher-order questions.

In addition, when considering an entire course, I find it worthwhile to consider the overall shape of assignments given. Simple exercises often are easy to write, and they are important to begin the learning process. However, I regularly check that over a semester I have asked students to address questions at the higher levels of Bloom's Taxonomy as well.

To extend this perspective somewhat, computer scientists commonly promote the view that computer science is not the same as programming. However, it often is startling to observe that, in some courses, all exercises are programming assignments. While this might be appropriate in some situations, I think it important that assignments reflect the breadth and depth of a subject, not just activity from a narrow perspective or from just one or two understanding levels.

Active Learning

Much educational research shows that students learn most when they are actively engaged in the subject. For example, passive learning (e.g., lecturing) is much less effective than activities that require students to interact with ideas and techniques. Thus, over the years, my perspective of teaching has evolved, so that I no longer base a course on the amount of material I will discuss during a semester. Rather, I focus on how much students will learn. My goal is to find ways to encourage the students to take initiatives in the learning process.

In some settings, I still use a lecture format as a way to outline or review a subject in a relatively short amount of time. However, I also look for ways that promote active student learning. The following list mentions four of the approaches I use regularly. My columns in the SIGCSE Bulletin and ACM Inroads highlight numerous other possibilities.

While some of these emphasize large- or small-group work, other techniques require students to work individually. At the same time, I strive to provide considerable encouragement and help.

For example, when my colleague, John Stone, and I developed a lab-based, introductory computing course in 1997, we designed lab exercises for almost every class meeting (e.g., 45-50 labs per semester) — building on pedagogy I had adopted as early as Fall 1992. As I continue to develop this approach, I now begin many class sessions with clicker questions to help students focus on the material at hand. My students then spend most of each class working collaboratively on a series of on-line questions and exercises. I move throughout the classroom answering questions and offering help; my goal is to talk with each group twice during the 50-minute class. When a common difficulty arises in several groups, I lead a group discussion or mini-lecture on that point. Overall, I lecture roughly 4 hours per month; coursework also includes in-class tests and individual programming assignments for homework, but the in-class work focuses on labs done in pairs.

For the past seven years, I have used this type of lab-based course with collaborative learning with a course that introduces imperative problem solving and data structures — supported by C. In this course, material is divided into about 8 modules, each of which starts with introductory material, includes 3-5 labs, and concludes with an integrative project.

Two observations provide insight on the effectiveness of this approach. First, I began this approach in 1992, when I changed the separate, weekly labs (which coordinated with lectures) of the previous semester to daily labs (without lecture). In the new format, the class easily covered about 20% more material than the earlier version. Second, when I began this approach, I typically introduced material during the first part of a class, and students completed lab work for the second part. While I enjoy lecturing and students rated my lectures highly, students quickly learned that they could come to class unprepared. When I reduced lectures to almost zero, students did more homework and were ready to tackle the work at hand. Some additional details of this course are given in [4, 5].

Overall, by placing responsibility for class preparation and lab completion on the students, they had to actively engage the material, they learned more, and their strong ratings for the course moved even higher. In addition, the attrition rate for the course decreased.

Accommodation to Diverse Learning Styles

Sheila Tobias [3] and others have observed that different people learn in different ways and respond best to different pedagogical approaches. On a practical level, this suggests that classes should use a variety of formats and pedagogies, so that each student will find activities that fit particularly well with her or his learning style. Thus, in my own classes, I utilize several types of activities aimed to accommodate varying learning styles, including the following:


During high school, I became actively involved in the school's plays and musicals -- both as an actor and a technician. During an effective theatrical production, the stage company forms a bond with the audience to create an atmosphere and to reinforce themes. Actors use such techniques as pace, intonation, facial expressions, and stage presence for dramatic effect. Technicians work with such elements as stage design, lighting, and color. As part of this activity, both actors and technicians must pay attention to audience reactions to learn how viewers react and why. Playing to the audience has its risks (individual actors may draw undue attention to themselves and ruin an overall effect), but an effective actor or technician must be aware of the audience and make adjustments as appropriate.

While I certainly do not consider teaching as a subcategory of entertainment, I think my style of teaching does have some elements in common with good theater. During lecture times, I try to read the faces of students to assess reactions, and I worry about pace, intonation, and expressions. At times, I may try a demonstration or other device for to make a point dramatically.

Similarly, during lab times and when reading papers, I pay attention to what students are really thinking. To put this in perspective, when I graded calculus tests during my first years of teaching, I might see a pattern of errors, but it was tempting to dismiss misguided approaches as being the result of time pressures induced by testing situations. However, as I included more labs and had increasing contact with students, I found that some errors might be related to conceptual misunderstandings which I had dismissed earlier. Usually, by responding relatively quickly, invalid suppositions can be reworked before a student has built on a shaky foundation. Once I found new ways to listen, I have heard a remarkable range of surprising ideas. In many cases, when the ideas had serious flaws, I could take advantage of my listening to address the errors. In some cases, I found marvelous new insights.

In addition to lab discussions and assignments, I continue to try a variety of mechanisms to obtain on-going feedback throughout a course. For example, I may ask students to fill out mid-semester evaluations as well as the end-of-course ones required by the institution. Similarly, I may ask students to send me comments through e-mail, or all students in a class may be required to come talk to me during office hours. Such feedback provides valuable information about topics where I should focus class time. I also learn that some topics are understood well, and there is little need to continue to discuss them.

Throughout my teaching, I have found that listening and watching have been vital qualities that have made me a better teacher.


  1. ACM/IEEE-CS Joint Task Force on Computing Curricula, Computer Science Curricula 2013, ACM and the IEEE Computer Society, December 20, 2013.

  2. Benjamin S. Bloom, et al, Taxonomy of Educational Objectives: Handbook 1: Cognitive Domain. Longmans, Green and Company, 1956.

  3. Sheila Tobias, They're Not Dumb, They're Different: Stalking the Second Tier, Research Corporation, Tuscon, AZ, 1990.

  4. Henry M. Walker, "Collaborative Learning: A Case Study for CS1 at Grinnell College and UT-Austin", SIGCSE Bulletin, Vol. 29, No. 1, March 1997, pp. 209-213

  5. Henry M. Walker, "A lab-based approach for introductory computing that emphasizes collaboration", CSERC '11 Computer Science Education Research Conference, Open Universiteit, Heerlen, The Netherlands, April, 2011, ISBN: 9789035819870, pp 21-31.

  6. Henry M. Walker, Teaching Computing: A Practitioner's Perspective, Taylor and Francis, in production Winter 2018; planned publication March 2018.

This document is available on the World Wide Web as

created 23 February 2000
revised 23 March 2009
updated 1 February 2016
last revised 22 January 2018
Valid HTML 4.01! Valid CSS!
For more information, please contact Henry M. Walker at