The Value of Discussion Classes for Teaching Introductory Programming Dianne Hagan
Judy Sheard
School of Computer Science and Software Engineering Monash University Australia 61 399032240
School of Computer Science and Software Engineering Monash University Australia 61 3 9903 2701
dianne.hagan
@Icsse.monash.edu.au
[email protected]
1. ABSTRACT
2. INTRODUCTION
In an attempt to improve the teaching and learning of first year programming, a weekly one-hour discussion class was added in 1996 to the lectures and microcomputer laboratory sessions that students attended. Discussion classes were held in classrooms without computers, and students were provided with enjoyable activities to perform in small groups. The activities forced discussion of new programming concepts, and helped students to clarify their understanding of them. The tutors’ role was to provoke discussion rather than simply providing answers. Student results that year showed an In 1997, for financial reasons, improvement. the discussion classes were discontinued, and student results deteriorated. As a consequence, discussion classes have been reinstated in 1998. The language used to implement the programming concepts in each of these years was C++. 1.1 Keywords
First year programming subjects in the Bachelor of Computing course at Monash University traditionally comprised a two-hour lecture and a two-hour laboratory sessioneach week. For practical reasons,the language of implementation was C++, a difficult language for beginners. In 1994, a research project described in 111 was begun to identify the problems contributing to the comparatively high failure rates and comparatively low retention rates for first year programming subjects (this applied to all computing coursesin the faculty, regardless of the language of implementation). The research report identified a number of issues and suggested possible solutions. As a result, in 1996, a one-hour discussion class was added to the student contact for one of the courses. In this discussionclass, studentstalked about the programming concepts they had encountered in the lectures, before implementing them on the computers. The discussion class bridged the gap between the lectures and the practical laboratory sessions,and gave students a greateropportunity to build supportive networks of friends with whom they could work. Some of the techniques mentioned in [2] were used to increase student participation in classes, such as asking open-ended questions of particular studentsby name, and encouraging students to answer each others’ questions. Tutors were also trained in ways to encouragerather than discourage studentparticipation, such as waiting for an answerfrom a student rather than filling in the silence by supplying one, and praising any question. At the same time as the discussion classes were introduced, the first year subjects were restructured and redesigned. The effectiveness of the changes was monitored in various ways described in [3]. This monitoring indicated that the changescould be considered a success. However, in 1997, for financial reasons, the discussion classeswere discontinued. Since tutors considered them of great benefit, they attempted to merge them with the
Introductory programming, discussion,learning activities.
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. ITiCSE ‘98 Dublin, Ireland 0 1998 ACM l-581 13-000-7/98/0008...
$5.00
laboratory sessionsby devoting the first half hour of these to discussion activities. This proved unsuccessful,as most discussions needed more than half an hour, and tutors found that they were either spending most of the laboratory time on discussions (leaving insufficient time for students to write programs), or omitting the discussionsentirely in order to help studentswith coding. At the weekly staff meetings, tutors expressed their frustration at their inability to do both successfully.
3. DISCUSSION
4. DISCUSSION
CLASS ACTIVITIES
The activities in the discussion classeswere designed to be fun, demandedstudent participation, and were linked strongly to the lectures and laboratory classes. Some examplesof theseactivities are given below.
4.1 Grids An example of a grid exercise is shown in figure 1. Students formed small groups to answer the questions. The grid was designed so that there was often more than one correct answerto a question. After sometime, groups of students compared their answers and discussed me differences they found. If all the students had missed a possible correct answer, the tutor would suggest it as a possibility and studentswould discuss it. The tutor might also suggest an incorrect answer that provoked some thought.
CLASS FORMAT
Between the two one-hour lectures each week, each student attendeda discussion class, in a classroomwithout computers. After the second lecture, each student attendeda two-hour laboratory session. The intention was that the first lecture presented an overall view of a new concept, while the second demonstrated its implementation and use. Discussion classes consisted of groups of 16 students, each with a tutor who was typically a postgraduate student. The tutors had been trained in effective teaching techniques, as described in [4]. Students were in the same group of 16 for the laboratory sessions,with the sametutor, and were strongly encouragedto remain with that group for the whole semester, in order to create “learning communities”. A learning community is a group of people who share ownership of a subject and work together to understandthe topics and acquire skills. In our subjects, each tutorial group consisting of tutor plus 16 studentsplus the lecturer was a learning community. The staff working in the subject (lecturers plus all the tutors) constituted another learning community, learning to teach mat subject more and more effectively. “Icebreakers” were used in tutorial groups at the beginning of semester, to help studentsto learn each others’ names. Tutors got to know their students earlier and better than in previous years, and found it easier to assess student levels of understandingand competence. For many activities, students were formed into groups of about three, Loencouragethem to talk. Somestudentsare extremely reluctant to speak in front of the whole class, but willing to contribute to a discussion among three people and ask questions of the tutor if he or shejoins in their discussion casually. The cultural background of the studentwas sometimesrelevant here. Student talk is important because it helps students to formulate their own links to prior knowledge, and to fit their understanding of a new topic into their framework of knowledge. The tutor’s role in me discussion classeswas not to supply answers to questions but rather to assist students to find their own answers. One function of the discussion class was to create a “need to know” related to the following day’s lecture, in order to stimulate interest in that lecture.
4.2 Role Plays Role plays were used to consolidate understanding of techniques and program specifications. One student assignmentwas to write a program to allocate passengers to plane seats. There was a waiting list, and passengers could express preferences for window or aisle seats, smoking or non-smoking areas, etc. Many students had difficulty understanding the specification and how to design classesto implement it, so one lecture was devoted to a role play by several tutors of how the program might work. In the discussion classes following that lecture, students were required to re-enact the role play themselves, since this greatly increased their understandingof the processesand classesinvolved. This was found to be an effective and popular method of teaching topics such as data structures and recursion, although mature age studentsand those from non-Englishspeaking backgrounds sometimes resisted participating. Some tutors from similar backgrounds also chose not to use role plays in their classes.
4.3 Mimics “Mimics” is a technique whereby studentswatch me tutor work methodically through a solution to a problem at the blackboard, explaining what he or she is doing, and then are required to repeat what the tutor has done, complete with explanations. When a student has completed one or more steps,he or she may hand over to someother student who is required to continue the solution and explanation from that point. When the current student makesan error, someoneusually points it out, and the tutor initiates a discussion of why the error has been made and what effect it would have. Students need to concentrate hard to remember the steps in solving the problem, but most enjoy this game.
109
A
B
C
1
tout -CC‘H’