lconic Programming Proves Effective for ... - ACM Digital Library

32 downloads 9018 Views 607KB Size Report
ness of using iconic (as opposed to visual) program- ming environments in teaching the first two computer programming courses. In 1992, Calloni developed a.
lconic Programming Proves Effective for Teaching the First Year Programming Sequence Donald J. Bagert Ben A. Calloni Texas Tech University Department of Computer Science Lubbock, TX 79409 [email protected] [email protected] Abstract 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? BACCII++ is an iconic environment de-

veloped at Texas Tech University for teaching procedural and object-oriented programming concepts and languages. Course materials were developed and used under experimental conditions during the 1995-96 school year at Texas Tech University, with half using BACCIIH to generate C-H- code, and the other half using only C-i+. For each course in each semester the experiment was run, the sections using BACCIItl- did significantly better in overall performance 1. Introduction 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. In 1992, Calloni developed a Windows-based iconic programming language named BACCII [1,2]. BACCII allowed the user to program with icons representing all the major programming constructs and data structures within a syntax-directed environment. The user could 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 (CS 1) course required of both computer science and electrical engineering majors; the empirical results showed a 4-S% increase in learning and comprehension, despite the fact that there were virtually no supplemental teaching materials for BACCII available at that time [3]. permission to make digital/hard copy of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage, the copyright notice, the title of the publication and its date appear, and notice is given that copying is by permission of ACM, Inc. To copy otherwIse, to.republish, to post on servers, or to redistribute to lists, requires pnor specrfic permlsslon and/or a fee. SIGCSE ‘97 CA, USA 0 1997 ACM o-89791 -889497I0002...$3.50

262

In recent years, additional research has supplied object-oriented extensions to BACCII for use in the data structures/object-oriented programming (CS2) course, resulting in BACCII++[5]. More recent research concerns the development of a complete set of course materials for the use of BACCII++ in teaching both CSl and CS2 using C++. Lecture notes, text, and lab manuals were developed. A successful experiment using those materials was run at Texas Tech University during the 1995-96 school year’. It is this recent experiment which is the focus of this paper. Section 2 of this paper gives some background information about BACCII++. Section 3 briefly dcscribes the 1993 experiment using BACCII and Pascal. Section 4 outlines the experiment conducted during the 1995-96 school year, while Section 5 provides the rcsults. Finally, Section 6 provides a summary and outlines future directions. 2. Background Many noted researchers (e.g. Glinert [4] and Scanlan [7]) have empirically established the cognitive advantage which graphical methodologies provide over tcxtual ones. Research undertaken by this author resulted in development of a Windows-based iconic programming language named BACCIF. This programming environment allows the user to program with icons rcpresenting all the major programming constructs, such as loops and conditional branching, within a syntaxdirected environment [1,2]. The user can then gcncratc syntactically correct code for any one of flvc text-based languages. It is the investigators’ opinion that the most effic-

1 This work was partially supported by the National Science Foundation Division of Undergraduate Education under Grant DUE-9455614 to Texas Tech University. BACCII (pronounced ba-thee) is 0 and XJJ19921996 Ben A. Calloni.

.

___,- -

---_---.

_

__~~-..----.

--_ - -

_. .-.-----

--_ - _~.

tive methodology for learning programming skills lies within the bounds of graphical representations of algorithms, Much work has been accomplished in iconic progrmrning 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.

terminal is not accepted. BACCII automatically calculates screen locations for each new selection and scrolls the screen display down.

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

Over the last few years, object-oriented constructs to allow for the definition and implementation of classes have been added to BACCII, with the resulting environment being named BACCII++a. A class icon in BACCIItt can be found in Figure 2. Attributes and methods can then be declared in a similar manner to how variables and subroutines, respectively, were declarcd in BACClI, except for the fact that each attribute and method can be declared as public, private, or protected.

Main Body:

progl HELP

11 M.lninScreen Nexl Level Previous Level Genemte Cede Utiliies

Single statements, such as read, write, assignment, and so forth, simply replace the -GTMl?- 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 GXMTP options for true-false. The same process is applied to all “multiple statement” icons.

fault

Figure 2. A class icon in BACCII++. 3. Previous Study

Figure 1. Coding Screen rately 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 CSTIvfD node in the display, Any selection other than a statement non-

263

In the spring of 1993, BACCII was used in the introductory programming (“CSl”) course at Texas Tech University, Computer Science 1462 (Fundamentals of Computer Science I). The experiment was designed to divide the students into two groups: one which would use only Pascal4 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. 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 evaluated. To summa-

3 BACCII-H is 0 and -i~r19951996 Ben A. Calloni. 4 At the time, Pascal was the language taught in this course; it is now Ctl- (although still primarily teaching the procedure-oriented paradigm).

rize that study: for all students, BACCII resulted in higher scores (4-S%) on the programming assignments, labs, exams and overall course grade. For more tiermation concerning this experimenl, please refer to [3]. 4.

Experiment Setup

Section 3 discussed Computer Science (C S) 1462, the first computer programming course for both majors and non-majors at Texas Tech University. This course has its roots in the updated ACM Curriculum 78 CSl course, but is actually closer to the course CD 101 described on pages 103-4 of Computing Curricula 1991 [8]. C S 1462 is a four-semester hour course which now has a closed laboratory. 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 CD 102 described on pages 103-4 of Computing Curricula 1991 [S]. The cowse is taught using object-oriented programming from the very beginning. C S 2463 is a four-semester hour course with closed laboratories.

The course materials developed and disseminated as a result of this grant include a supplementary lextbook for using BACCII-H- with Ctt, a set of closed laboratories and other tutorial material for both courses, using both standard and multimedia delivery syslems; and sample on-line and off-line examination problems. The multimedia labs were developed using Aiymelrix Toolbookm application; an example is in Figure 3. The BACCIItl- group in C S 1462 was given instruction in both the BACCIItt language constructs and C-H- constructs in lecture, while the C+l- group lqed C++ only. The C S 2463 students all received the same generic C-H- lectures with no BACCII-t+ constructs presented. The only BACCII++ instruction was through lab materials. Both courses and both BACCIIst- and nonBACCII++ groups, were provided Interactive Multimedia Labs (IML) using Toolbook. These were designed as 1.5 hour, in lab exercises. Students were provided with the appropriate files (BACCII-H or C-H-)

Both the above courses use C++ as the programming language. The first and inuses the improved syntax put/output of Ctt but is taught using the imperative paradigm. The data structures course uses the objectoricntcd paradigm throughout. As stated in Section 3, the initial experiment was performed with almost no supplemental teaching materials for BACCII. With funding from a National Science Foundation Division of Undergraduate Education (DUJZ)grant, C S 1462 and 2463 course materials Figure 3. Example of BACCII++ courseware interface. .^ were developed and implemented for and asked lo complete the necessary code, such as an tluse in the Fall 1995 and Spring 1996 semesters. Each then or while loop in the C S 1462 labs or to complete a course had closed laboratories throughout the semester, class design by adding attributes or methods in the C S with each lab section having no more than 25 students. 2463 labs. The courses were evaluated in a manner similar to one All students took the same departmental exams for previously used (described in Section 3); i.e. half of the their respective courses which used C+l- syntax. There students would use BACCIItt, while the other half were no specijic questions to BACCII++ on the exams, would be a control group using only Cd. This was done for two reasons. First, students are ex5 C++ was chosen as the programming language since many universities (including Texas Tech Universify) have switched to it as its introductory lan-

264

guage. The AP Computer Science exam is also scheduled to change to C-H in 1998-99.

-

--.- -.-_-_

_

~--- -

petted to be proficient in C-l+ for follow-on courses and hence had to pass departmental exams. Second, the only way to perform a valid statistical comparison was to have the same exams for both control groups.

6. HI: The use of BACCIItt wilI result in higher scores for the course. IQ c(I > p2

Both courses accomplished project development in which they were given a problem statement and asked to complete a design and implementation in BACCIWIor C.-I+depending on their group assignment. The C S 1462 were assigned 4 of these while the C S 2463 were assigned two much larger problems using classes.

The analysis results are in Tables 1 and 2 for C S 1462 and C S 2463, respectively.

The C S 1462 students were also given a lab exam at the end of the semester and were asked to complete a partially coded C-I+ program. This lab practical exam, like the written course exams, was administered in straight C!++code without the use of BACCII*. The C S 2463 students also accomplished several C-i+ only programming assignments using the lab manual by James Roberge [6]. These programs were outside programming assignments requiring about 3-5 hours to complete. The students are given a series of partially implemented classes and programs and asked to complete various sections of the C++ code. Hg, the null hypothesis, is used to indicate that no difference exists between the population means. HI is used to indicate that the BACCIItF group has a higher mean than the Cttdnly group. 1. HI: The use of BACCII+t will result in higher scores on programming assignments. HI: ~1 > P2 2, HI: The use of BACCII++ will result in higher scores onLab Assignments. HI: pI > ~2 3.

HO: The use of BACCI1-t-Fwill result in no difference on the Roberge Lab assignments. Hg: PI = P2

4. HI: The use of BACCIWI- will result in higher scoresonCi+writtenexams. I$: pI > ~2 5. Hl: The use of BACCIItt will result in higher scores for the practical Cttexams. Hg: PI > p2

5. Experiment Results

5.1 C S 1462 Results It appears that in using BACCIItt in C S 1462 (the imperative paradigm) with C* as the language, BACCII++ had its only impact in the exams. While the results desired in the labs and programs was not what the authors expected, based on the earlier experiments, we are still quite satisfied. The BACCII++ group performed equally in the lab / programming environment. But even more exciting is the fact that the BACCII-H- students showed higher comprehension of the CU syntax. This was born out by an analysis of each exam. The first exam, which is predominantly definitions and overview material about computers in general with very little syntax showed no significant differences between the control groups. But the final three had marked differences. As a matter of fact the average performance of the BACCIIU group on the last three exams, was 10.4 percentage points higher than the CU group. 5.2 C S 2463 Results The C S 2463 results indicate a much di.%rent learning mechanism. This course is a true Object Oriented methodology. Like the other course, we anticipated an advantage in the IM Labs. However, there was no difference. The authors also anticipated no difference between the groups on the Roberge C+t labs. But on the other items there was a significant performance improvement by the BACCII-H- group. As in the C S 1462 course, the first exam in entirety, and about haIf the second exam, is definitions and non-code related materials. The first two exams showed no statisticaIly significant difference in average, while the third exam and comprehensive final showed Result

Accept Reject Accept Table 1. C S 1462 HypothesesOverview (All are at a confidencelevel of 95%)

265

Calculated

Hypothesis #

Result

Z 2.71

Accept

1.39

Rcjcct

0.80

Accept

2.41

Accept

2.35

Accept

Table 2. C S 2463 Hypotheses Overview (Au are at a confidence level of 95% marked differences. However for reference, the first and second exam average was 81.85 for the BACCIItt group and 71.80 for the C++ only group. The Z value was about 1.80 where 1.96 is a 95% confidence level value. Another interesting factor became apparent for both courses, the BACCII++ groups had far less variance from the average scores in all categories. In general, the standard deviations on the BACCIItt- groups was about half that of the non-BACCIItt groups. This suggests a more uniform learning. It appears that like the C S 1462 course, the use of BACCIItt facilitated an increased comprehension of the C-l+ syntax. In addition, in this course BACCIItt seemed to assist in the design and implementation of the OOP programs. Perhaps the iconic representations play more to the strengths of the object-oriented paradigm than to the imperative design issues as in the C S 1462. 6. Summary and Future Directions

References 1. calloni, Ben A., An Iconic, Syntax Directed Windows Environment for Teaching Procedural Programming. Master’s Thesis, Department of Com-

puter Science, Texas Tech University, Lubbock TX, May 1992. 2. Calloni, Ben A., and Bagert, Donald J.

BACCII: An iconic synta..-directed system for teaching procedural programming, Proceedings ofthe 31st AC.1 Southeast Conference, Birmingham AL, April 1516, 1993, pp. 177-183.

3. Calloni, Ben A., and Bagert, Donald J. Iconic pro-

gramming in BACCII vs. textual programming: which is a better learning environment? Proceedings of the 25th SIGCSE Technical Symposium on Computer Science Education, Phoenis AZ, lo-11

March 1994, pp. 188-192. 4. Glinert E. and Tanimoto S. Pitt:

An interactive graphical programming environment. IEEE Computer, 17, 11 (November 1984), pp. 7-25.

5. Bagert, Donald J., Calloni, Ben A., and Haiduk,

The results of the experiment further strengthens the previous study that iconic language representations enhance a student’s ability to comprehend and learn the language syntax albeit PASCAL or C*. A comprehensive set of teaching materials for both courses were developed under an NSF grant. BACCII++ has been used successfully in the CS! and CS2 courses at Texas Tech University during the test period of the 1995-96 school year. Because of the results, the Department of Computer Science at Texas Tech University decided to keep BACCII-t+ as an integral part of the design and learning process for both courses in the 1996-97 school J&r. Future work is being proposed to run experiments using the BACCII++ materials at five pilot schools, and to conduct additional workshops on using BACCIItl- in the first year sequence. The authors also believe that BACCIItl- can be beneficial in learning programming skills at the primary and secondary levels; in fact, it may be even more beneficial to those students.

266

H.Paul. Iconic vs. text-based programming in the introductory programming sequence. Proceedings of the ASEE Annual Conference, 23-26 June 1996, Washington DC. (CD-ROM, 6 pp.) 6. Roberge, James. Data Structures in C-t+: A Laboratov Course, Heath Publishing, Lexington MA,

1995. 7. Scanlan, David. Structured flowcharts outperform

pseudocode: an experimental comparison,

IL?&!%

Sofivare, Vol6, No 5, Sept. 1989, pp. 28-36. 8. 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.