by Ray Lischner
Lectures are cost-effective for teaching a large number of students at once, but they present serious challenges to effective education. Some schools cannot afford to reduce class size, add closed labs, and so on. When budgets are tight, though, it is still possible to add effective collaborative-learning techniques to traditional lectures. Just shutting up for a few minutes does wonders and costs nothing. With only a little extra work, small-group interaction can greatly enhance learning and student interest, even in large lectures.
Every school and every teacher has a different approach to teaching introductory computer science. Large lectures, small classes, open labs, closed labs, recitations--the options are numerous. We face just as many restrictions, though, usually limitations in numbers--of teachers, teaching assistants, and computers. A survey of accredited departments reported that 70% use closed labs for their CS1 class [2], but for many large institutions, lectures and open labs are the only affordable options for our introductory computer science classes.
A lecture is typically a one-way communication channel. The lecturer talks and the students passively listen. Research shows that unadorned lectures are not effective teaching mechanisms. Within fifteen minutes, students' attention begins to wander. After the lecture ends, students tend not to retain much of what was presented [3, 7]. The limitations of lectures have long been well-understood, but only recently have innovative solutions been implemented and shown to be effective.
Most improvements to the traditional lecture format involve group work, often in laboratories [8], but also in modified lectures [5, 9]. In all these efforts, the focus is for students to work together. Peer instruction helps the students who are giving and receiving the instruction. Not every teacher has the time or funding to develop new peer instruction techniques, to add lab time to a class, or modify established lectures to add peer instruction modules. Nonetheless, a few simple techniques can improve traditional lectures with a minimum of effort.
This paper presents some simple techniques that help bring out the best in lectures, shifting the focus of the lecture from the teacher back to the students. The primary technique uses flashcards to help the lecturer turn the lecture into a two-way communication channel. Even in large lectures, students can work in small groups, promoting peer instruction and increasing the efficiency of lecture-based teaching. I use these techniques successfully in CS 151 at Oregon State University.
Oregon State University's first programming class is CS 151. The class meets for three hours of lecture per week, with no recitation. Open lab assignments are at the instructor's discretion. Class size varies from 80 to 200 students per 10-week term.
Many students have never programmed a computer before, and do not know the first thing about programming. Concepts such as variables, functions, and compilers are entirely new and alien.
Lecturing about variables and what-not is not an effective way for students to learn these vital concepts, but budgetary constraints force us to stick with lectures. Moving to closed labs requires new computing facilities, and even adding recitations calls for added teaching assistants in a time when the entire university is facing budget deficits.
Thus, my challenge was to make the most of the lecture setting. I started with techniques that were proven in other classes and at other schools and adapted them for use in CS 151. The primary tool is the flashcard, but the class involves other small-group activities, too.
The fundamental principle for dealing with large lectures is to let the students teach each other. Talking at students in a large lecture hall is simply not an effective way to teach. As far back as thirty years ago, studies demonstrated how retention immediately after a lecture drops markedly when the length of the length increases from 15 minutes to 30 minutes to 45 minutes. Retesting after eight weeks showed almost no retention [3].
One way to improve retention is to apply the knowledge one learns from the lecture, and every university class does this to some extent. But if retention immediately after a 45 minute lecture is low (about 20% of the information presented), what information is the student to apply? Naturally students learn by doing, refer to the textbook, ask classmates, teaching assistants, and so on. But if the student is able to get the necessary information from these other sources, the lecture serves no useful purpose.
One remedy immediately suggests itself: shorten lectures to no more than 15 minutes. One study showed that if the lecture simply paused for two minutes in each 15-minute block of lecture time, student retention increased significantly [4]. The lecturer did not interact with the students, provide additional information, or help the students during those two minutes. It was just a time for students to reflect on what they had recently heard, review or complete their notes, or discuss the lecture with their classmates.
Two factors influence this improvement: shortening the lecture time to adapt to a natural attention span, and encouraging students to work with their classmates in the lecture setting.
In other words, shutting up the teacher is a low-cost, effective way to improve a lecture. Sacrifice a few minutes of talking during each class, and give the students some time to think about and discuss what they just learned. This technique requires no additional staff, lab time, class time, and costs only a few minutes of lecture time.
If a little bit works well, why not take it a step further? Instead of standing idle for 2 minutes, the instructor can provide some focus for the discussion period. Flashcards are a simple way to create a group activity.
The flashcard is a single sheet of paper with the letters A, B, C, and D on it, two letters to a side. When folded in half, only one letter is visible. The students raise their cards to show one letter--their answers to a multiple-choice question.
(A student in the back of the lecture hall can see the reverse side of everyone's card. To prevent the residents of the back row from simply echoing their classmates, I distribute two different cards at random. If everyone holds up the letter A, for example, a student in the back row will see a mixture of B and D.)
The flashcard technique has been used at other classes at Oregon State and elsewhere [1]. The technique is simple. After each short lecture block of 10-20 minutes, I pose a multiple-choice question. Students think about it on their own and raise flashcards to show their answers.
I can quickly see if most students have the right answer, wrong answer, or a mix. If everyone has the right answer, the lecture continues, but this rarely happens. If the majority hold up the wrong letter, I know that the lecture was ineffective, so I go back and repeat the material from a different point of view. Most often, the majority has the right answer, with a sprinkling of wrong answers throughout the hall. That's when the fun begins. I ask the students to break up into small groups to discuss the problem.
The discussions are the important part of the class. I encourage the students to give each group member a chance to speak and defend his or her choice. Then the group debates the choices and the students try to convince each other they are right. I roam about the lecture hall listening to their discussions, answering questions, and providing minimal guidance.
Students choose their own groups, based on proximity of seating. A few students will move to different seats, but most are already sitting next to their friends. Every lecture hall large enough for CS 151 has fixed seats, but students still manage to include people in rows behind them as part of their groups.
The discussions turn the focus of the lecture from the lecturer to the students. Sometimes, a student picked the wrong answer due to a minor misunderstanding. In a traditional lecture, such a student can interrupt the lecture to ask a question, but that can bog down the entire class. The larger the class, the more likely a student will have a minor question, and the slower the progress of the entire class.
With small group discussions, however, students clear up minor misconceptions in parallel. The discussions have several other benefits. Students who think they know the right answer but are unsure must convince their classmates. They must articulate their reasons, which helps cement their understanding. Students who lack confidence in their answers hear from classmates who often pick the same answer for the same reason. The reinforcement helps their confidence.
After a few minutes, the discussions naturally wind down. By circulating in the lecture hall, I can tell when most of the groups have arrived at a decision, or at least reached the point where they agree not to agree. I repeat the questions and see the answers. In most cases, more students choose the correct answer. I explain the problem and the answer. Students who were teetering on the edge between two choices can see the right answer. By discussing the problem in depth with their classmates, they have a better understanding of the problem, so they can better appreciate the correct answer.
The best multiple-choice questions are simple and objective. Subjective questions work better in a small class where the letter cards are not needed, and you want to encourage discussion where the entire class can participate. In a large class, the lecturer cannot keep track of all the discussions, so you want to have confidence that students are imparting the correct answer on their peers.
I start with simple questions, one that I expect everyone to get right. Even in a low-pressure setting, students don't want to get the wrong answer every time. Subsequent questions are slightly harder. I also keep some harder ones in reserve, just in case I get a sharper class than I expect.
The ideal question is one where each group of students has at least one person with the wrong answer, but most students have the right answer. Disagreement encourages discussion and it forces students to reason about their choices, to defend their points of view. Even if a student knows he or she is right, having to back up that opinion helps cement the understanding.
Adding multiple-choice questions is another low-cost technique for improving lectures. By examining your existing lecture notes, you can easily turn examples into questions. After the class discusses the problem in their groups, you can develop the example the way you always have, but now the students have a deeper understanding of the material.
Below are some examples of the kinds of questions I pose in class.
What does this print?int array[4] = { 3, 7, 10, 42 }; printf("%d\n", array[2]);A: 3
B: 7
C: 10
D: 42
What is the value of answer?int answer, x; int *px = &x; x = 10; ++x; answer = *px;A: garbage
B: 0
C: 10
D: 11
Replace SOMETHING with which answer to make the following a legal C function?struct point { int x, y; }; double distance(struct point pt) { return SOMETHING }A:
sqrt(pt.x * pt.x + pt.y * pt.y);
B:sqrt(pt->x * pt->x + pt->y * pt->y);
C:sqrt(x * x + y * y);
D:sqrt(pt[x] * pt[x] + pt[y] * pt[y]);
At other times, students work in small groups on projects, not just multiple-choice questions. For example, before the first homework assignment where the student must write a program, they write a small program in class. First-time programmers often stumble over little syntax details, and their peers are much more forgiving and helpful than a compiler for solving these kinds of problems. I could have the students turn in their hand-written programs, grade them, and return them, but that's much less efficient.
Nonetheless, these activities are more involved. I ask my teaching assistant to help me in the lecture hall when I give this kind of exercise in class. That lets both of us roam the aisles, helping the groups. The activity typically lasts about 45 minutes, taking away time from lecturing.
Developing good group activities is much more difficult than devising good multiple-choice questions, so I recommend starting with just questions. Add other group activities only if you have time and teaching staff to make them work well.
The students like the flashcards. In student evaluation of teaching, they often commend the flashcards explicitly:
"I enjoyed the class participation with multiple choice questions during class."
"Keep using A, B, C, & D method."
"I liked the A, B, C, D in class questions."
All the techniques I use in class have been proven in other classes [1, 4, 6], so I'm not inventing anything new. What's new is the application of these techniques to introductory computer programming.
Student interest has increased since I started using small-group activities in class. Just talking with students reveals their interest qualitatively. Each term, the university administers a Student Assessment of Teaching form. Most of the metrics pertain to the instructor, not the teaching method, but some of the relevant measures are:
As you can see in the table below, both of these values have risen significantly since I introduced these techniques in 1997, and added more in-class activities in 1998.
1996 | 1997 | 1997 | 1998 | 1998 | |
---|---|---|---|---|---|
Enthusiasm | 2.60 | 2.83 | 3.35 | 2.90 | 3.14 |
Thinking | 2.86 | 3.25 | 3.48 | 3.05 | 3.36 |
The student assessment numbers are not an ideal measure of how well these techniques work, but they are an indication that the students are getting something of value from the class. Class size also rose a lot in 1998, which tends to depress student assessment numbers, so they are not entirely comparable from one year to the next.
Nonetheless, every indication shows that adding small-group discussions to a large lecture can only help the students learn more and better.