Content area
Effect of extended use of an executable flowchart for teaching C languageTeaching C language programming to students is a daunting task, especially to thosewithout any experience in computer programming. In order to improve learning outcomes,we built an executable flowchart language called CFL, which stands for “C-like FlowchartLanguage.” We thought CFL may help for several reasons. First, laying out graphicalsymbols is far easier than constructing a textual program. Second, stepwise executionenables the students to actually see the changes made in each step. The visualizationhighlights not only the variable values, but also the flow of control, input and output, andactivation record of function calls. Third, the syntax and semantics of CFL are designed inline with the C programming language, which makes it easy to transition from CFL to Clanguage. For instance, the input node uses syntactically simplified versions of scanf andgetchar. Last but not least, CFL is more fun to learn than C language. Currently it isimplemented as a Java applet. It has been shown elsewhere that CFL improves the learningspeed in a very short-term (2 hours) experiment. This time, we extended the use of CFL to4 weeks in an actual college class, and examined the effect. In order to see if CFL can really help students, we conducted an experiment asfollows. We had two classes of C programming language course for freshmen, taught bythe same instructor. The 4 credit-hour course consists of lecturing and laboratory exercises.One class - the control group - is taught by the traditional approach for the whole 16-weeksemester. The other class - the test group - learned only CFL for the first four weeks, andthen started learning C language. Topics for the first four weeks included CFL variables,assignments, conditionals, repetition, arrays, writing functions, event-driven processing,and simple graphics. Programming assignments in CFL included sorting, searching, and asimple game using graphics and a mouse. In terms of complexity, these are far moreadvanced than the assignments for the control group. In the final exam, three programming tasks where given to students in both groups. Wefound that the pass rates of the test group are significantly higher in two tasks and slightlyhigher in one task than those of the control group (Table 1). At the end of the semester,90.9% of the test group students passed the course, while only 72.4% of the control groupstudents passed. The pass rates of the course for the last 5 years ranged from 68% to 80%. Table 1. Test Results: pass rate for each task and course pass rate Task 1 Task 2 Task 3 course pass rate Test group 59.1% 68.2% 45.5% 90.9% Control group 58.6% 41.4% 27.6% 72.4%From the results of the experiment, we conclude that learning programming in CFL beforelearning C language not only makes up for the time spent, but also has a measurableoverall benefit to the students. Next year, we plan to conduct similar experiment, extendingthe CFL programming to 6 weeks.100.0% 90.0% 80.0% 70.0% 60.0% 50.0% Test group 40.0% Control group 30.0% 20.0% 10.0% 0.0% Task 1 Task 2 Task 3 course pass rate Figure 1. Bar chart equivalent of Table 1.
Details
Students;
Semantics;
C language;
Learning;
Experiments;
Flow charts;
Language programming;
C (programming language);
Colleges & universities;
Computer programming;
Java;
Teaching;
Control groups;
Computer graphics;
Learning outcomes;
Syntax;
Repetition;
Language usage;
Language acquisition;
Language;
Tests;
Groups;
Assignment