[ieee 2013 learning and teaching in computing and enginering (latice) - macau (2013.3.21-2013.3.24)]...

2
Learning Beginning Programming with Cloud-based Cloze Programming Practices Yu-Jen Lo, Chiung-Chen Lin, Lily Hou, Jane-Dong Wu Computer Curriculum Transformation Taskforce Taipei Municipal Nei-Hu High School Taipei, Taiwan Email: [email protected] Yu-Chi Feng, Greg C. Lee Dept. of Computer Science & Information Engineering National Taiwan Normal University Taipei, Taiwan Email: [email protected] Abstract— There is a trend in Taiwan to offer computer programming as an elective course for all high school students. Although students seem to be quite enthusiastic about learning to program at the beginning of the course, students’ enthusiasm quickly dissipated when the practice program becomes too complex for them to bear. To help students learn better, we have implemented a cloud-based cloze programming practicing system. The system allows teacher to upload a program and then block out part of the program that is intended for students to practice. The blocked out code can be as simple as a variable declaration or as complex as a complete function. In the extreme case, the entire program could be blocked out, meaning students have to write the complete program. Therefore, teachers can have students practice a particular aspect of programming by supplying multiple programs and block out the same part of the program for students to fill-in. Students can submit their completed program online and the system will automatically compile and execute the program with pre-assigned input data. Any compiler time error, execution time error, or incorrect output would be reported back to the students for debugging. The on- going teaching experiment has the teachers teach programming as usual, but prepare cloze programming tasks for students to practice. Many such cloze programming exercises of various difficulties have also been developed. Keywords: Cloze-based Programming Practices, Cloud-based Programming Practicing System I. INTRODUCTION Computer programming is a fundamental skill for Computer Science majors. Thus, many high schools have offered introductory programming course so students can have a head start. However, it has been well documented that learning to program is not an easy task. From learning about the syntax of a programming language, programming structures and algorithms, to constructing problem solving strategies and writing complete program, students faces very high cognitive load when learning to program [1]. And if the cognitive load is too excessive, then the learning can be inhibited [2]. Thus finding a methodology to reduce this cognitive overload can enable students to become more better and more efficient programmer [1]. In 2001, Garner [3] developed a cloze-based program code restructuring tool (CORT) to help novice programmers reduce their cognitive load. It was found that not only the cognitive load was reduced, but students were more focused on solving the programming task. In the follow-up study [4], it was found that students were also more motivated when utilizing CORT to learn about programming. The above two experiments yielded promising results for reducing student's cognitive load when learning to program. The research reported in this poster build on the above results and expanded the use of cloze programming practices over the entire semester of the introductory programming course. In this research, we have developed a cloud-based cloze programming practicing system. The system allows teacher to upload a program and then block out part of the program that is intended for students to practice. The blocked out code can be as simple as a variable declaration or as complex as a complete function. In the extreme case, the entire program could be blocked out, meaning students have to write the entire program. Therefore, teachers can have students practice a particular aspect of programming by supplying multiple programs and block out the same part of the program for students to fill-in, effectively reducing student’s cognitive load in completing the program. For example, to have students repetitively practice writing the conditional statement for the for-loop, teachers only need to supply programs containing for-loops and block-out the conditional parts and then ask students to fill-in the missing conditional statements, while students only need to concentrate on writing the conditional statement that controls the loop. In addition, a sample program can be used over and over again. Each time, asking students to complete a gradually larger chunk of the program. Students can submit their completed program online and the system will automatically compile and execute the program with pre- assigned input data. Any compiler time error, execution time error, or incorrect output would be reported back to the students for debugging. The poster will encompass the research work as outlined below as well as a demonstration of the working system. II. CLOUD-BASED CLOZE PROGRAMMING SYSTEM Figure 1 depicts the system architecture of the cloud- based cloze programming practice system. The Creator module allow teacher to create a complete program and then create cloze practice tasks by omitting part of the program that is to be practiced. The practice tasks created by different teachers are shared through the Teaching Resource Pool. When practicing, students complete the program and submit 2013 Learning and Teaching in Computing and Engineering 978-0-7695-4960-6/13 $26.00 © 2013 IEEE DOI 10.1109/LaTiCE.2013.18 235 2013 Learning and Teaching in Computing and Engineering 978-0-7695-4960-6/13 $26.00 © 2013 IEEE DOI 10.1109/LaTiCE.2013.18 235

Upload: g-c

Post on 09-Feb-2017

231 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: [IEEE 2013 Learning and Teaching in Computing and Enginering (LaTiCE) - Macau (2013.3.21-2013.3.24)] 2013 Learning and Teaching in Computing and Engineering - Learning Beginning Programming

Learning Beginning Programming with Cloud-based Cloze Programming Practices Yu-Jen Lo, Chiung-Chen Lin, Lily Hou, Jane-Dong Wu

Computer Curriculum Transformation Taskforce Taipei Municipal Nei-Hu High School

Taipei, Taiwan Email: [email protected]

Yu-Chi Feng, Greg C. Lee Dept. of Computer Science & Information Engineering

National Taiwan Normal University Taipei, Taiwan

Email: [email protected]

Abstract— There is a trend in Taiwan to offer computer programming as an elective course for all high school students. Although students seem to be quite enthusiastic about learning to program at the beginning of the course, students’ enthusiasm quickly dissipated when the practice program becomes too complex for them to bear. To help students learn better, we have implemented a cloud-based cloze programming practicing system. The system allows teacher to upload a program and then block out part of the program that is intended for students to practice. The blocked out code can be as simple as a variable declaration or as complex as a complete function. In the extreme case, the entire program could be blocked out, meaning students have to write the complete program. Therefore, teachers can have students practice a particular aspect of programming by supplying multiple programs and block out the same part of the program for students to fill-in. Students can submit their completed program online and the system will automatically compile and execute the program with pre-assigned input data. Any compiler time error, execution time error, or incorrect output would be reported back to the students for debugging. The on-going teaching experiment has the teachers teach programming as usual, but prepare cloze programming tasks for students to practice. Many such cloze programming exercises of various difficulties have also been developed.

Keywords: Cloze-based Programming Practices, Cloud-based Programming Practicing System

I. INTRODUCTION Computer programming is a fundamental skill for

Computer Science majors. Thus, many high schools have offered introductory programming course so students can have a head start. However, it has been well documented that learning to program is not an easy task. From learning about the syntax of a programming language, programming structures and algorithms, to constructing problem solving strategies and writing complete program, students faces very high cognitive load when learning to program [1]. And if the cognitive load is too excessive, then the learning can be inhibited [2]. Thus finding a methodology to reduce this cognitive overload can enable students to become more better and more efficient programmer [1].

In 2001, Garner [3] developed a cloze-based program code restructuring tool (CORT) to help novice programmers reduce their cognitive load. It was found that not only the cognitive load was reduced, but students were more focused

on solving the programming task. In the follow-up study [4], it was found that students were also more motivated when utilizing CORT to learn about programming. The above two experiments yielded promising results for reducing student's cognitive load when learning to program. The research reported in this poster build on the above results and expanded the use of cloze programming practices over the entire semester of the introductory programming course.

In this research, we have developed a cloud-based cloze programming practicing system. The system allows teacher to upload a program and then block out part of the program that is intended for students to practice. The blocked out code can be as simple as a variable declaration or as complex as a complete function. In the extreme case, the entire program could be blocked out, meaning students have to write the entire program. Therefore, teachers can have students practice a particular aspect of programming by supplying multiple programs and block out the same part of the program for students to fill-in, effectively reducing student’s cognitive load in completing the program. For example, to have students repetitively practice writing the conditional statement for the for-loop, teachers only need to supply programs containing for-loops and block-out the conditional parts and then ask students to fill-in the missing conditional statements, while students only need to concentrate on writing the conditional statement that controls the loop. In addition, a sample program can be used over and over again. Each time, asking students to complete a gradually larger chunk of the program. Students can submit their completed program online and the system will automatically compile and execute the program with pre-assigned input data. Any compiler time error, execution time error, or incorrect output would be reported back to the students for debugging.

The poster will encompass the research work as outlined below as well as a demonstration of the working system.

II. CLOUD-BASED CLOZE PROGRAMMING SYSTEM Figure 1 depicts the system architecture of the cloud-

based cloze programming practice system. The Creator module allow teacher to create a complete program and then create cloze practice tasks by omitting part of the program that is to be practiced. The practice tasks created by different teachers are shared through the Teaching Resource Pool. When practicing, students complete the program and submit

2013 Learning and Teaching in Computing and Engineering

978-0-7695-4960-6/13 $26.00 © 2013 IEEE

DOI 10.1109/LaTiCE.2013.18

235

2013 Learning and Teaching in Computing and Engineering

978-0-7695-4960-6/13 $26.00 © 2013 IEEE

DOI 10.1109/LaTiCE.2013.18

235

Page 2: [IEEE 2013 Learning and Teaching in Computing and Enginering (LaTiCE) - Macau (2013.3.21-2013.3.24)] 2013 Learning and Teaching in Computing and Engineering - Learning Beginning Programming

to the Grader which checks for correctness.snapshot of a cloze practice task. For each given the task description as well as comments to help them complete the program

Figure 1. Cloud-based cloze programming practice s

Figure 2. Snapshot of a cloze programming p

III. TEACHING RESOURCE

For this research, average of 5 cloze pradesigned for each week of classes. By semester, we expect to have over 70 practicedifficulties.

IV. EXPERIMENTAL SETU

A. Subjects Two sophomore level classes parti

experiment. A total of 60 students, 30 bparticipated. The programming course is betwo senior teachers, one teacher for each two teachers are involved, they collaboratecloze practice exercises.

B. Background The students have no prior programm

For many students, this is their first foComputing. The two teachers have taught for many years, so their programming teachabundance. However, this is the firstcollaborating in their teaching and are programming system for the first time.

Figure 2 shows task, students are the in-program

m.

system architecture.

ractice task.

ES actice tasks were

the end of the e tasks of various

UP

icipated in this oys and 30 girls

eing conducted by class. Although e in creating the

ming background. formal course in

the same course hing experience is t time they are using the cloze

C. Procedure The course meets only once a

class periods (100 minutes). Theconstruct first followed by cloze The teach-practice process can repeathe class. So students must finish ttime frame. At the end of each semsemester), student will undergo achinclude cloze programming questprogramming tasks. The teacherresults with student’s achievements

V. PRELIMINARY

Although this research is still onfacts have already been observed.

1. Students are more enthusiastpractices in the class. Compare classes in which they must devemany more students in the clozclass are able to start working onaway.

2. Since more students are capabprogram, we observe there areinteractions in class. Students sdiscuss the task at hand with thei

3. Students are more attentive to thwilling to spend time to finish class.

Achievement results from the ends in January, will be reported at t

VI. CONCLU

At the conference, the teachingprogramming exercises will be on dwill demonstrate the workinprogramming system. Although coidea has not been implemented yfruitful discussion with the conferen

REFERENCE

[1] D.M. Kennedy and C. McNaught, “D

Media,” Australian Journal of Educatiopp. 1-22, 1997.

[2] J. Sweller and P. Chandler, “Evidence Cognition and Instruction, vol. 8, no. 4

[3] S. Garner, “A tool to support the use olearning of programming,” in ProceeScience and Information Technology E343-353, Findland, 2003.

[4] S. Garner, “The cloze procedure and thProceedings of the Twelfth InternationGranada, Spain, July 11-14, 2005.

week, each time for two e teacher would teach a

programming practices. at many times throughout their practice in the given mester (we are in the first ievement test, which will tions as well as actual s will compare the end from the past years.

Y FINDINGS n going, some interesting

tic about programming to students in the regular

elop a complete program, ze programming practice n the given problem right

ble of “completing” the more student-to-student seem willing to help and ir peers

he task at hand. Most are the tasks given in each

current semester, which the conference.

USION g material and the cloze display. Furthermore, we ng cloud-based cloze ollaborative programming yet, we look forward to nce attendees.

ES

Desig Elements for Interactive onal Technology, vol. 13, no. 1,

for cognitive load theory,” , pp. 351-362, 1991. f part-complete solutions in the edings of the 2003 Informing Education Joint Conference, pp.

he learning of programming,” in al Conference on Learning,

236236