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
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.
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.
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.
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.
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].

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.
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.
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.