Learning C Language Programming with Executable Flowchart Language
Sehyeong Cho, Yeonseung Ryu, Sang‐Kyun Kim · 2020
Abstract Learning C language Programming with executable flowchart languageTeaching C language programming to students is a daunting task, especially to those withoutany background or experience in computer programming. Even simple assignment statementsseem hard for them to understand. We find that the students are having hard time visualizingwhat’s actually happening when the computer executes their code. Besides, silly syntax errorswill frustrate the students, only to find that they are not able to learn programming after all. In order to help the students out, we built an executable flowchart language called CFL,which stands for “C-like Flowchart Language.” There are a few reasons why we thought CFLmay help. First, instead of textual language, which is hard to learn, students can writeprograms by laying out graphical flowchart symbols and connecting them. Second, thestepwise execution enables the students to actually see the changes made in each step. Thevisualization highlights not only the variable values, but also the flow of control, the input andoutput, and activation record of function calls. Third, the syntax and concepts are in line withC programming language, thus it is easy to transition from CFL to C language. For instance,the input node can use simplified printf, scanf, getchar and putchar. Fourth, it eliminates theprocedure of compiling, which is one of the notorious sources of frustration. All syntax checkis done right at the time of entering each node. Currently it is implemented as a java applet.(http://turing.mju.ac.kr/cfl2/cfl_test.php) We prepared the experimentation as follows. There were two almost equal-sized(32, 33)classes of C programming, all freshmen, being taught by the same instructor. One grouplearned the control structure of “while” loop in C language syntax and given a few exercises.The other group first learned the same concept by using CFL and was given a bunch ofexercises, and then learned C language syntax later. We will call those groups A and B,respectively. The preparation times taken in two groups are the same. When the preparation stage is done, we gave the students a series of tasks of writing Cprograms, requiring the use of “while” statement. In the first 3 tasks, group A performed better(faster) than group B. After 3 exercises, students were given a slightly more difficult problem(printing a progression of differences), and group B started to outperform. The graph shows the completion time of the first 23 students in each class, from fast to slow. The remaining students cannot be compared because they failed. It is observed that “good students” are slightly better when directly taught C language, while average students are better when first learned with CFL and then by C language.