An Implementation of Educational Programming Environment Using Tangible Materials

Recently, people started to pay attention on the education using tangible teaching materials. The field of programming education is not an exception. Researchers in education have found that tangible teaching materials improve students' logical thinking ability. Because the tangible teaching materials make students deepen their understanding by touching them with their hands and seeing them with their eyes. In other words, they appeal to students' all five senses. Programming language independent learning materials are used in several educational institutions around the world. Programming environments using some kinds of graphics are commonly used, but they restrict their users' operations due to the abilities of installed computers and their small screens. To overcome this problem, we have developed a tangible teaching material for programming education. This system makes it possible for the users to learn programming by using its tangible materials for either group education or individual learning. The purpose of this research is to solve one of the common problems widely seen among programming learners. That is letting the instructors know the learners' programming situations in classes. It is difficult for instructors to collect data about what progress each student makes and what obstacle makes them be delay. Our system takes advantages of tangible teaching materials and provides such data for instructors. In this paper, we report our experiences about the development of a tangible material for programming education. Since our goal is to support programming classes in higher educational institutes, our target is how to develop and improve individual programming methods. This research is a new attempt to support programming classes with limited time.The student using this tangible teaching materials is supposed to arrange a set of programming cards. Each card has a QR code that matches an operation procedure. Upon completion of the arrangement of QR codes, the student takes a photo of these cards using the camera of a tablet. The series of QR codes construct a Python program, and it is executed on the device. The instructor can monitor each student's progress remotely, since each QR code has annotation that informs the instructor what program element it is executing so that the instructor can collect detailed information about the program individual student constructing. The instructor can classify students into several categories based on the collected information, then set study points for the students corresponding to the categories. The collected information contains where the students failed in their programs and how they tried to correct the errors. Some corrections are right, and some are not. Then the instructor further classifies students in the same categories so that the instructor can recognize each student's weak points and give him or her careful guidance. To demonstrate the effectiveness of our tangible materials for programming education, we have conduct numerical experiments over college students. We have observed 80% of them improve their logical thinking ability. As a future work, we will implement stronger support features for instructors so that the instructor can analyze students' common errors and rightly guide them.