Iconic Programming for Teaching the First Year Programming Sequence

Ben A. Calloni and Donald J. Bagert Department of Computer Science
Texas Tech University, Lubbock, TX 79409-3104
calloni@cs.coe.ttu.edu bagert@cs.coe.ttu.edu

Abstract:

Research has been undertaken to evaluate the effectiveness of using iconic (as opposed to visual) programming environments in teaching the first two computer programming courses. The co-authors have developed a Windows-based iconic programming language named BACCII. BACCII allows the user to program with icons representing all the major programming constructs and data structures within a syntax-directed environment. The user can then generate syntactically correct code for any one of several text-based languages.

This system has previously been used as a supplement to teach a Pascal-based introductory computer science (CS1) course required of both computer science and electrical engineering majors; the empirical results showed a significant increase in learning and comprehension, despite the fact that there were virtually no supplemental teaching materials for BACCII available at that time. Additional research has supplied object-oriented extensions to BACCII for use in the data structures/object-oriented programm ing (CS2) course. Current research concerns the development of a complete set of course materials for the use of BACCII in teaching both CS1 and CS2 using C++. Lecture notes, text, and lab manuals are under development. An experiment will be run using the new teaching materials at Texas Tech during the 1995-96 school year. Future research hopes to extend this program to series of pilot programs at other institutions.

Introduction

Research has been undertaken to answer the following question: Can icon-based programming languages be used to teach first year programming concepts to undergraduate students more effectively than text-based languages?

Many noted researchers (e.g. Glinert [4] and Scanlan [6]) have empirically established the cognitive advantage which graphical methodologies provide over textual ones. Research undertaken by the co-authors resulted in development a Windows-based iconic programming language named BACCII. BACCII (Ben A. Calloni Coding Iconic Interface) allows the user to program with icons representing all the major programming constructs, such as loops, conditional branching, within a syntax-directed environment [1,2]. The user can then generate syntactically correct code for any one of five text-based languages.

This system has previously been used as a supplement to teach a Pascal-based introductory computer science (CS1) course required of both computer science and electrical engineering majors; despite having limited teaching materials for BACCII at that time, the empirical results showed a 4-8%increase in learning and comprehension [3]. Recently, work on adding object-oriented extensions to BACCII for use in the data structures/object-oriented programming (CS2) course was undertaken.

Current research concerns the development of a complete set of course materials for the use of BACCII in teaching both CS1 and CS2 using C++. Lecture notes, text, and lab manuals are under development, and will be tested during the 1995-96 school year. This research has widespread potential significance: if it can be demonstrated that iconic languages perform significantly better than text-based languages in the learning of programming skills for a wide variety of schools and student groups, it could re volutionize how software development skills are taught in every computer-related program in higher education.

Background

The current use of C++, Ada, or any other programming language whose syntax is text-based has the major drawback that regardless of the language chosen, beginners quickly lose sight of the problem solving aspects of using an algorithm once the ``details'' of the syntax begin to surface. It seems that the question should not be which language to use for a first programming course, but rather the question should be whether students can be educated in a learning environment which keeps the student focused on the problem solving aspects of the algorithm development, frees that student from the details of the syntax of any language, incorporates some software engineering concepts, and provides a gentle nudge in the area of theoretical computer topics.

It is the investigators' opinion that the most effective methodology for learning programming skills lies within the bounds of graphical representations of algorithms. Much work has been accomplished in iconic programming but almost all of it has been developed for high level workstations. Two factors contribute to the selectivity: speed and memory requirements. The rapid progress in high speed, high resolution, large RAM, low cost computers in the last three or four years has made possible more visually based programming environments to a wider range of users.

Such a programming environment can use a syntax-directed approach, which would guarantee syntactically correct code before the compiler even sees it. Also, by providing a graphical representation for the flow of control, one could increase semantic accuracy by accurately conveying to the user which variables of the proper type could be used at a particular point in the algorithm. The BACCII programming environment was developed with these factors in mind.

BACCII provides a standard access to code regardless of the subroutine. Click in the body section of the bit map display and the system moves to a new screen (Figure 1). In order to insure syntactic correctness, BACCII allows the student to input new statements only if they would be correct for the program's parse tree. The student selects a statement from the ``paint menu'' and clicks on the <STMT> node in the display. Any selection other than a statement non-terminal is not accepted. BACCII automatica lly calculates screen locations for each new selection and scrolls the screen display down.

Single statements, such as read, write, assignment, and so forth, simply replace the <STMT> icon. The selection and iteration statements always are created in groupings. For instance, one cannot create just the ``if'' part of a selection. The student always gets both <STMT> options for true-false. The same process is applied to all ``multiple statement'' icons.

Previous Study

In the spring of 1993, BACCII was used in the introductory programming ``(CS1)'' course at Texas Tech, Computer Science 1462 (Fundamentals of Computer Science I). Both computer science and electrical engineering students are required to take this course. The experiment was designed to divide the students into two groups: one which would use only Pascal and the other which used both Pascal and BACCII for development. The BACCII students were required to use BACCII for main programming assignments and submit BACCII files for evaluation, in addition to submitting correct Pascal code for grading. This step was necessary to insure that all Pascal students would know Pascal syntax upon completion of the course. (BACCII is robust enough that it could be used for program development without the need to learn Pascal syntax.) Use of BACCII for weekly laboratory assignments was optional. There were almost no supplemental teaching materials for BACCII, although a tutorial was completed about two-thirds of the way into the semester.

There were several areas which were evaluated. H , the null hypothesis, is used to indicate that no difference exists between the population means. H is used to indicate that the BACCII group has a higher mean than the Pascal-only group.

  1. H : The BACCII environment will result in no difference in CS programming assignments. H

  2. H : The use of BACCII will result in higher scores on programming assignments. H

  3. H : The use of BACCII will result in EE students having higher programming grades than CS majors. H

  4. H : The use of BACCII will result in EE students having higher programming scores than non-BACCII engineers. H

  5. H : The use of BACCII will result in higher scores on Lab Assignments. H

  6. H : The use of BACCII will result in equivalent scores on (Pascal-only) exam scores. H

  7. H : The use of BACCII will result in equivalent course scores. H

The analysis results are in Table 1. To summarize: for all students, BACCII resulted in higher scores on the programming assignments, labs, exams and overall course grade; the EE majors using BACCII did the same as the CS majors using BACCII; however, th ere was no significant difference in how EE students performed using BACCII vs. just Pascal.

For more information concerning this experiment, please refer to [3].

Enhancements for a One-Year Computer Programming Curriculum

Section 3 discussed Computer Science (C S) 1462, the first computer programming course for both majors and non-majors at Texas Tech. This course has its roots in the updated ACM Curriculum 78 CS1 course, but is actually closer to the course C 101 described on pages 103-4 of Computing Curricula 1991 [7]. C S 1462 is a four-semester hour course with a ``partially closed'' laboratory which currently uses BACCII, and has recently switched to C++ as the programming language taught.

Computer Science 2463 (Fundamentals of Computer Science II), is the second programming course; its prerequisite is C S 1462. The evolution of C S 2463 has paralleled that of 1462; it originally resembled the updated ACM Curriculum 78 CS2 data structures course, but is actually closer to the course C 102 described on pages 103-4 of Computing Curricula 1991 [7]. The course is taught using object-oriented programming from the very beginning. C S 2463 is a four-semester hour course with a completely open laboratory; it has also recently switched to C++ as the programming language taught.

This course has not used BACCII, since it did not contain the necessary object-oriented extensions. However the ``visual'' nature of the object-oriented paradigm (since most people view the world in terms of objects interacting with each other) makes it id eal for implementation using an iconic language. Also, it is important that BACCII be a tool that could be used beyond the introductory course. Therefore, work has been ongoing to extend BACCII so that it can be used in the object-oriented/data structures course. Since these two courses supply the student with most of the programming techniques required of the computer scientist, it is extremely beneficial that the new version of BACCII can be used for both semesters of the one-year sequence.

Course Materials for the First Year Sequence

As stated in Section 3, the initial experiment was performed with almost no supplemental teaching materials for BACCII. Recently, work has begun to develop course materials for the entire first year sequence, under a National Science Foundation Division of Undergraduate Education grant. The C S 1462 and 2463 materials will be implemented starting in the Fall 1995 and Spring 1996 semesters, respectively. Each course will have closed laboratories throughout the semester, with each lab section having no mo re than 25 students. The courses would be evaluated in a manner similar to one previously used (described in Section 3); i.e. half of the students would use BACCII, while the other half would be a control group using only C++

The course materials that would be developed and disseminated as a result of this grant include a supplementary textbook for using BACCII with C++; a set of closed laboratories and other tutorial material for both courses, using both standard and multimed ia delivery systems; and sample on-line and off-line examination problems. Many of the course materials would be developed using the SIMPLE development environment created by Marion Hagler and William M. Marcy of Texas Tech University [5]. SIMPLE has been used successfully as an authoring tool in developing course materials for several different disciplines.

Summary and Future Directions

The BACCII iconic programming environment can be used to build programs using icons instead of the traditional text-based statements. Programs written in BACCII can be translated into several different programming languages, including C++. BACCII has been used successfully in the introductory course at Texas Tech. Subsequent research was undertaken so that BACCII could also be used with the object-oriented paradigm. Finally, a comprehensive set of teaching materials for both courses are being developed under an NSF grant. An experiment will be run using these course materials during the 1995-96 schools.

Future work is being proposed to run experiments using the BACCII materials at five pilot schools, and to conduct additional workshops on using BACCII in the first year sequence. The authors also believe that BACCII can be beneficial in learning programmi ng skills at the primary and secondary levels; in fact, it may be even more beneficial to those students.

References

  1. Calloni, Ben A. An Iconic, Syntax Directed Windows Environment for Teaching Procedural Programming. Master's Thesis, Department of Computer Science, Texas Tech University, Lubbock TX, May 1992.

  2. Calloni, Ben A., and Bagert, Donald. BACCII: An iconic syntax-directed system for teaching procedural programming, Proceedings of the 31st ACM Southeast Conference , Birmingham AL, April 15-16, 1993, pp. 177-183.

  3. Calloni, Ben A. and Bagert, Donald. Iconic programming in BACCII vs. textual programming: which is a better learning environment? Proceedings of the 25th SIGCSE Technical Symposium on Computer Science Education , Phoenix AZ, 10-11 March 1994, pp. 188-192.

  4. Glinert E. and Tanimoto S. Pict: An interactive graphical programming environment. IEEE Computer , 17 , 11 (November 1984), pp. 7-25.

  5. Hagler, Marion and Marcy, William M. Authentic and group learning technology using computer networks and intelligent tutors. Proceedings of the 23rd Annual IEEE/ASEE Frontiers in Education Conference , Washington DC, 6-9 November 1993, pp. 467-470.

  6. Scanlan, David. Structured flowcharts outperform pseudocode: an experimental comparison, IEEE Software , Vol 6, No 5, Sept. 1989, pp. 28-36.

  7. Tucker, Allen B; Barnes, Bruce H et. al. Computing Curricula 1991: Report of the ACM/IEEE-CS Joint Curriculum Task Force . Jointly published by ACM Press, New York NY and IEEE Computer Society Press, Los Alamitos CA, 17 December 1990.





mort@etp.com
Tue Oct 3 16:18:45 PDT 1995