0% found this document useful (0 votes)
4 views6 pages

Support Methods for Teaching and Learning

This paper proposes three methods to support teaching and learning computer programming through e-Learning, focusing on a teacher-centered approach that helps instructors monitor student progress and errors in real-time. The developed system analyzes compilation errors and provides insights to teachers, enabling them to address common issues among students effectively. The goal is to create a comprehensive support system that assists both teachers and students during programming classes.

Uploaded by

Luiz Henrique
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views6 pages

Support Methods for Teaching and Learning

This paper proposes three methods to support teaching and learning computer programming through e-Learning, focusing on a teacher-centered approach that helps instructors monitor student progress and errors in real-time. The developed system analyzes compilation errors and provides insights to teachers, enabling them to address common issues among students effectively. The goal is to create a comprehensive support system that assists both teachers and students during programming classes.

Uploaded by

Luiz Henrique
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

FR-H2-4 SCIS&ISIS2006 @ Tokyo, Japan (September 20-24, 2006)

Support Methods for Teaching and Learning


Computer Programming through E-Learning
Yasuhiko Morimoto1), 2), Kunimi Kurasawa3), Setsuo Yokoyama3), Maomi Ueno4), and Youzou Miyadera3)
1)
Fuji Tokoha University 325 Obuchi, Fuji, Shizuoka, 417-0801 Japan
2)
Nagaoka University of Technology 1603-1 Kamitomiokamachi, Nagaoka, Niigata, 940-2188 Japan
3)
Tokyo Gakugei University 4-1-1 Nukuikita, Koganei, Tokyo, 184-8501 Japan
4)
The University of Electro-Communications 1-5-1, Chofugaoka, Chofu, Tokyo, 182-8585 Japan
morimoto@mis.nagaokaut.ac.jp, ueno@ai.is.uec.ac.jp, miyadera@u-gakugei.ac.jp

Abstract lecture on computer programming, help students code and


debug their computer programs, manage the submission of
This paper proposed three types of method to support student assignments, assess students, and so on. Therefore,
teaching and learning computer programming through e- methods to support the teaching and learning of computer
Learning. From among these types, this paper developed a programming are needed. For remote classes receiving a
teacher-centered method to support the teaching of programming education through e-Learning such support
computer programming to a group of students and a methods are especially important.
system based on this method. The system extrapolates the There have been many studies on ways to support students
causes of students’ compilation errors and the parts of the learning computer programming [1]-[5] and ways to
syntax where the errors occur by analyzing the trends of understand the status of the students’ progress as they learn
past compilation errors and presents the extrapolated programming [6]-[8]. Although these studies have led to
result to the teacher in real time. By using the system, a methods that are individually effective, it remains difficult to
teacher can see in real time the sort of programming support both a teacher and the students at the same time
mistakes students are making when they are writing during computer programming classes at a university or
computer programs, and can appropriately teach elsewhere while ensuring classroom sessions are carried out
computer programming to a group of students who have smoothly and effectively. In other words, no method has been
common problems. reported that simultaneously supports the teacher, each
individual student, and all of the students during a computer
1. Introduction programming class.
The final goal of our study is therefore to develop a support
More computer engineers are needed as the world system which supports both the teacher and the students,
continues to be rapidly computerized, and this places much individually and collectively, at the same time during
pressure on schools to train a sufficient number. To keep up computer programming classes.
with the demand, specialized computer programming As the first stage of this study, in this paper, we propose
education is needed. three types of method to support the teaching and learning of
Unfortunately, the lesson styles used to teach computer computer programming. From among these, we have
programming at universities and elsewhere cannot take a developed a teacher-centered method to support the teaching
single approach all the time; in fact, the approach has to vary of computer programming to a group of students and a system
considerably because based on this method. The system extrapolates the causes of
student compilation errors and the parts of syntax where the
・ student ability differs according to each student’s errors occur by analyzing the trends of past compilation errors
learning experience and presents the results to the teacher in real time. During
・ students progress at different speeds computer programming practice, the system helps the teacher
・ students differ in their motivation to learn. monitor each student’s programming status and foresee the
questions and mistakes likely to arise during programming
In short, if teachers are inflexible in their approach to exercises. This also lets the teacher appropriately instruct
teaching computer programming, most students will find it groups of students who have common problems without
difficult to become proficient in computer programming. To needing to use a special programming environment and
teach effectively, each teacher must exert his or her ingenuity operations.
to appropriately adapt the teaching approach to the specific
needs of each student. 2. Support methods for teaching and learning
A teacher has to perform many educational tasks within a
limited amount of time, though. For example, he or she has to
computer programming

- 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

Figure 3 Model of presenting error tendencies

5. System Development

5.1. System Design


This system is intended to support the teaching of computer
4.3.3. Presentation of error tendencies based on programming to many students as a group by effectively
compilation error analysis using the students’ compilation histories and allowing the
We used the compilation analysis table (Table 1) to teacher to monitor the status of students’ computer
understand the students’ error tendencies. programming and their tendencies to have questions and
In preparation, we listed two of the fields from the make mistakes by presenting information to the teacher.
compilation analysis table: The system has four functions, as follows.
・ Error cause list Function corresponding to requirement (a)
A list arranged in order of the frequency of error causes 1) Presentation of programming status
corresponding to each error type.
The students’ compilation, error occurrence, and
・ Error syntax list submission status is presented to the teacher in a form that
A list arranged in order of the frequency of error can be easily understood.
syntaxes for each error cause.
Functions corresponding to requirement (b)
The error cause and the error syntax corresponding to an 2) Extrapolation of error causes and error syntaxes
error message can be extrapolated by using these lists. 3) Presentation of error tendencies
Specifically, the method matches the error type Extrapolated error causes and error syntaxes are presented
corresponding to the error message output when a student has to the teacher in a form that can be easily understood.
a compilation error to the error type in the error cause list, and Common function
then extrapolates that the error cause is one of those with high 4) Collection of compilation histories
frequency. The method moreover matches the error type of Information on students’ compilations is collected in real
the message to the error type in the error syntax list and time and stored as a compilation history.

- 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.

Figure 4 System configuration


This system runs on a Unix client/server.
When a student compiles a program by using a gcc
command on the client, the compilation error collection
module cooperates with the compilation error acquisition
module, and compilation history information is stored in the
compilation error history DB. Though the compilation error Figure 5 Compilation status table
collection module was created by adding the function to 2-2) Understanding the students’ error occurrence status
collect compilation errors to the gcc command, students do The teacher can monitor the students’ error occurrence
not feel a sense of incongruity because the output screen of status by looking at the error occurrence table when
the compilation error collection module is the same as that of necessary (Fig. 6). The teacher can see that many students
a normal gcc command. are having problems with their work if the error occurrence
The programming status presentation module acquires rate is high. When this happens, the teacher should advance
compilation information from the compilation error history to the next step and try to understand the students’ error
DB and presents the status of the students’ programming to tendencies.
the teacher in a form that can be easily understood.
The error cause & syntax extrapolation module acquires
the latest compilation errors of all students from the
compilation error history DB, extrapolates the error cause and
the error syntax for each compilation error from the error
cause & syntax DB, and sends the result to the error tendency
presentation module. The error tendency presentation module
then presents the error tendency in a form that can be easily
understood.

5.3. Usage Example


How the system can be used in teaching is explained below
using an example.
1) Directing students to write a computer program as an
exercise
Figure 6 Error occurrence table

- 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 -

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy