Support Methods for Teaching and Learning
Support Methods for Teaching and Learning
- 955 -
2.1. Classification of computer programming 2.2. Present state of support for computer
lesson styles programming instruction
No single lesson style is used to teach computer Here, we look at the present state of support for computer
programming. We have classified computer programming programming instruction, as reported in related studies, in
lesson styles into six types according to two characteristics: terms of activities classified as type I, V, or VI.
whether they are teacher-centered or student-centered, and Several methods have been developed to support individual
whether they are group-based or individual-based (Fig. 1). student learning (type VI) [1]-[5]. These support the learning
of computer programming by presenting programming
techniques, error causes, and other information. However, no
method has been reported that focuses on supporting
independent student activities in constructivist learning.
For type V learning, Vizcaino and Prieto developed a
system to support small-group learning, and adapted it for
computer programming education [9]. Williams and Kessler
described the effectiveness of students practicing computer
programming in pairs [10]. However, no specialized
techniques to support computer programming education
through peer tutoring have been developed.
Support methods concerning type I activities have focused
on understanding the situations that students find themselves
in during computer programming courses [6]-[8]. When an
Figure 1 Classification of computer programming lesson instructor teaches computer programming to students in these
styles learning situations, though, it is difficult for these methods to
understand in real time the student tendencies with regard to
Type I in Fig. 1 is the case where a teacher teaches having questions and making mistakes while programming. In
computer programming to a group of students; for example, a other words, these methods are insufficient to support in real
lecture is classified under this style. Type II is where a teacher time an instructor teaching computer programming.
teaches programming to a small group of students, and type
III is where a teacher teaches programming to a single student 2.3. Proposed support methods for teaching and
on a one-to-one basis. learning computer programming
In contrast, type IV is the case where all member of a large Based on the above analysis, we propose three types of
group learn collaboratively. Type V is where collaborative support method for teaching and learning computer
learning is done in a small group; for example, peer tutoring programming (Fig. 2). These three types of method
is classified under this style. Finally, type VI is where correspond to the three types of class activity we have chosen
individual learning is done independently by a student. In the to focus on (types I, IV, and VI).
type IV, V and VI cases, the main role of a teacher is to assist
the students’ learning by acting as a facilitator.
In many computer programming courses, however,
students with different levels of ability and motivation belong
to the same class and the class is taught through interaction
between the teacher and the students. In such a situation, it is
difficult to apply only one type of lesson style. For example,
Biggs has pointed out that effective teaching and learning
activities are combinations of teacher-controlled, peer-
controlled, and self-controlled activities in a large class [11].
Tomlinson described the typical instruction in mixed-ability
classrooms as a blend of whole-class, group, and individual
activities [12]. Lawrence et al. described the importance of
small-group activities in the classroom. [13]. Therefore, three Figure 2 Image of support types for teaching and
kinds of activities are thus needed to effectively teach learning computer programming
computer programming to a class: activities where a teacher
instructs the entire group (type I), student participation in Support (A): This type of support corresponds to type VI
small-group learning activities with their peers (type V), and activities in that it supports individual student learning.
student individual learning activities (type VI). In addition, That is, it supports constructivist learning using student
some means of support compatible with each type of activity portfolios consisting of program histories, source code,
is needed. This approach should also be applicable, possibly assessments, and so on.
with some adjustment, to e-Learning computer programming Support (B): This supports type V activities where students
classes. learn from their peers.
Support (C): This supports type I activities where the teacher
instructs a large group of students.
- 956 -
Support types (A) to (C) have to be provided organically syntax it occurred within should be provided to the teacher in
through the class of computer programming. real time.
In the following sections, we describe a detailed (C) type Therefore, our system presents information to the teacher
support method and a system based on this method. according to the following procedure.
Step 1: Real-time compilation histories are collected to
3. Support for teaching computer programming determine the cause and syntax of each compilation error.
Step 2: The teacher is shown the overall tendencies of
student errors obtained from the compilation histories in a
3.1. Present problems form that is easy to understand.
Here, we look at problems which typically arise when a The method of presenting information to the teacher
teacher instructs a large class on computer programming. consists of a method to collect compilation histories,
Suppose we have the following situation: corresponding to step 1 (Section 4.2), and a method to present
1. the teacher lectures the class the error tendencies, corresponding to step 2 (Section 4.3).
2. students attempt to understand sample programs
presented by the teacher
4.2. Method for collecting compilation histories
3. students write programs as exercises
In step 1, compilation histories are automatically collected
4. students hand in their written programs
in real time whenever students compile programs. The
The teacher has to teach many such students as a group histories include
within a limited time. Moreover, the teacher has to know in ・compilation error messages
real time the students’ learning status and their tendencies to ・student IDs
have questions and make mistakes, and has to properly teach ・exercise numbers
a lesson while making many decisions as to the best way to ・source code
teach in each situation. ・times of compilation
Teachers need support because of two particular problems: The histories are stored in a database. The teacher can
(1) teachers have difficulty knowing the status of the examine them to check the students’ compilation status and
students’ programming in real time the occurrence of errors. The histories are also used in step 2.
(2) teachers might not be aware of student tendencies to Therefore, requirement (a) is satisfied, and problem (1)
have questions and make mistakes in real time should be solved.
3.2. Requirements for solving the problems 4.3. Method for showing error tendencies
To solve these problems, we need a system that can 4.3.1. Procedure
provide the teacher with
(a) information that allows him or her to know the We also developed a method that helps the teacher
students’ programming status in real time (problem understand the students’ error tendencies. We analyzed the
(1)) compilation errors students have made in the past to help us
(b) information showing the students’ tendencies with develop this method.
respect to having questions and making mistakes In the computer environment in which programming is
(which we call the “error tendency”) in real time usually taught, the compilation error information that a
(problem (2)) computer can automatically acquire is limited to that listed in
Section 4.2. Therefore, this information must be used
We have developed a support system that satisfies both effectively. However, a mechanical analysis of compilation
requirement (a) and (b). error information has limits. In other words, compilation
This work has consisted of two phases. In the first, we errors that cannot be mechanically analyzed by computers
developed a method for presenting information to the teacher must be analyzed manually. Once the information has been
(Section 4). In the second, we implemented the method analyzed by hand, further mechanical analysis based on the
developed in the first phase as part of our support system result is possible.
(Section 5). Therefore, we first manually analyzed the causes of
In this work, we assumed that the programming language compilation errors and the syntaxes where compilation errors
being taught is C language. occur based on previously collected error messages (Section
4.3.2). Next, we developed a method of understanding the
4. Method for presenting information to the error tendencies of the students as a group by determining the
teacher causes of the errors and their syntaxes based on the analysis
result (Section 4.3.3).
4.1. Principle
To develop a system that satisfies requirements (a) and (b) 4.3.2. Compilation error analysis
during computer programming practice, information related Our compilation error analysis was done using compilation
to the students’ compilations should be collected in real time histories (13181 compilation error messages) collected from
while the programs are compiling. When a compilation error computer programming courses in the Faculty of Education at
occurs, information on what caused the error and the part of Tokyo Gakugei University.
- 957 -
Each item of the compilation histories consists of a source extrapolates that the error syntax is one of those with high
code, exercise number, compile error message, student ID, frequency.
and time of compilation, which were automatically collected. Information that allows the teacher to understand the
We analyzed the histories as follows. students’ overall error tendencies is presented to the teacher
1) Extraction of further error information through the above method. The model for presenting the error
For each item of the compilation histories, we extracted tendency to the teacher is shown in Fig. 3.
the “error cause” (the cause of the error) and “error syntax” First, error messages collected from the students through
(the part of the syntax that caused the error) to be analyzed the compilation histories are arranged in order of their
in addition to the information automatically extracted. frequency (step A). Second, the extrapolated error causes
2) Classification of the content of items corresponding to each error message are arranged in order of
We classified the content of items manually so that we their frequency (step B). Third, the extrapolated error
could make the classification specific. syntaxes for each error cause are similarly arranged (step C).
・ Error messages were classified into 257 error types. Finally, a table is created and presented to the teacher (step D).
・ Error causes were classified into 80 kinds. Thus, the teacher can understand the tendency of the
・ Error syntaxes were classified into 42 kinds. learners as a group in terms of what error messages occur,
3) Identification of classified content what the causes are, and in what kinds of syntax the errors
We assigned unique IDs to the classified content. occurred.
We classified each item into an “exercise field” Therefore, requirement (b) is satisfied, and problem (2)
determined by the kind of exercise and assigned IDs to the should be solved.
fields. The student IDs were used unmodified.
4) Creation of a compilation analysis table
Based on steps 1) to 3), we assigned IDs to all the
compilation error messages and created a compilation
analysis table. Table 1 shows a part of it.
Table 1 Part of compilation analysis table
5. System Development
- 958 -
5.2. System Configuration The teacher teaches students how a sample program
The system configuration is shown in Fig. 4. It consists of works and then directs them to write a program as an
five modules and two databases (DBs) and was developed in exercise.
PHP, Perl, and MySQL as follows. 2) Understanding students’ programming status
・Programming status presentation module: PHP 2-1) Understanding students’ compilation status
(corresponding to function 1) The teacher can understand the students’ compilation
・Error cause & syntax extrapolation module: PHP status by looking at the compilation status table (Fig. 5). In
(corresponding to function 2) the table, the compilation frequency is displayed by the
・Error tendency presentation module: PHP time the compilation is done. The teacher can understand
(corresponding to function 3) the students’ programming status by looking at this table
・Compilation error collection module: Perl and the submission status. The teacher can see that a
・Compilation error acquisition module: PHP student is having a problem if the student compiles the
(corresponding to function 4) same exercise many times or waits a long time between
・Compilation error history DB: MySQL compilations.
・Error cause & syntax DB: MySQL The teacher, moreover, can see the student’s latest three
source code and error messages by clicking the student’s
ID. Because the new source code is highlighted in yellow,
the teacher can see what the student did by comparing the
source code in yellow with the original code.
- 959 -
Here, requirement (a) is satisfied, and problem (1) is solved. In the future, we will achieve the final goal of this study by
implementing the two other types of support method to
3) Understanding the students’ error tendencies
complete the system.
The teacher can understand the students’ error tendencies
by looking at the error tendency table (Fig. 7). The table
displays the following information on compilation errors that 7. References
have occurred (in descending order of error frequency): the [1] Lane, H. C. and VanLehn, K. A Dialogue-Based
frequency, the three highest-ranking error causes, and the Tutoring System for Beginning Programming, Proc. The
three highest-ranking error syntaxes corresponding to each Seventeenth International Florida Artificial Intelligence
error cause. The teacher can understand what caused the Research Society Conference, pp.449-454, 2004.
compilation errors with the highest frequency and in what [2] Satratzemi, M., Dagdilelis, V. and Evagelidis, G. A
kind of syntax they occurred. The teacher can then system for program visualization and problem solving
appropriately teach the students to deal with compilation path assessment of novice programmers, Proc. Annual
errors by referring to the error causes and the error syntaxes Joint Conference on Integrating Technology in
with the highest frequencies. Computer Science Education, pp.137 -140, 2001.
[3] Takamoto, A., Fujii, M., Izumi, N. and Tanaka, M. A
Three highest-ranking error causes Support System Based on a Bug Factor for Programming
Frequency
and its Effectiveness, Transactions of Japanese Society
Three highest-ranking for Information and Systems in Education, 17, No.4,
Error message error syntaxes pp.533-540, 2000.
[4] Fujiwara, Y., Matsunishi, T., Okada, S., Ohkama, H.,
Goto, H. and Kuromaru, T. Design and Evaluation of
Hierarchical Distributed System for the Programming
Exercise Assistance, The IEICE Transactions on
Information and Systems, J78-D-II, No.11, pp.1701-
1709, 1995.
[5] Matsuda, N., Kashihara, A., Hirashima, T. and Toyoda, J.
A Tutoring for Behabior-Based Recursive Programming,
The IEICE Transactions on Information and Systems,
J80-D-II, No.1, pp.326-335, 1997.
[6] Takahashi, S. and Matsunaga, K. Development of
Learning Environment Using an Electronic Notebook, a
Textbook and an Exercise Book for Programming, Japan
Journal of Educational Technology, 23(3), pp.155-165,
1999.
Figure 7 Error tendency table [7] Martinez, R., Paredes, P., Pareja, C. and Urquiza, J.
Electronic Books for Programming Education, A Review
Here, requirement (b) is satisfied, and problem (2) is solved. and Future Prospects. Velazques, J.A. Proc. 7th Annual
Conference on Innovation and Technology in Computer
4) Repeating the teaching
Science Education, pp.23-38, 2002.
The teacher makes decisions according to the learning status
[8] Nagao, K. and Ishii, N. A Concept of Agent-based
of the students, which the teacher can know from the previous
Learning Support System for C Programming, Proc. 2nd
two steps, and instructs them appropriately. The teacher can
international Conference on information Technology
repeat the two steps if necessary.
Based Higher Education and Training, 2001.
[9] Vizcano, A. and Prieto, M. Examining the Effectiveness
6. Conclusion of New Technology in High School (number: 6), Proc.
the International Symposium of Technologies of
We have developed a teacher-centered method to support Information and Communication in Engineering and
the teaching of computer programming to a group of students Industry. TICE’2000, pp.355-360, 2000.
(which is one type of our proposed support methods) and [10] Biggs, J, Teaching for Quality Learning at University,
have applied this method in a teaching support system. This Open Univ pr, 2003.
system allows a teacher to monitor in real time the overall [11] Tomlinson, C. A. How to Differentiate Instruction in
status of students’ programming and their common tendencies Mixed-Ability Classrooms, Assn for Supervision &
to have questions and make mistakes. Thus, the teacher is Curriculum, 2001.
more able to appropriately teach computer programming to [12] Lawrence, C. M., Lawrence, G and Samek, L.S.
the students as a group. Organizing Classrooms for Small-Group Instruction:
This system was used in Computer Programming I and II Learning for Mastery, Scarecrow Pr, 2006.
classes in the Faculty of Education at Tokyo Gakugei [13] Williams, L. and Kessler, R., Pair Programming
University, and the teachers who used the system reported Illuminated, Addison-Wesley Pub, 2002.
very good impressions of it.
- 960 -