The higher incidence of under-prepared students in the South African education institutions has a particular significance for introductory programming courses which rely heavily on the use of technological tools as components of the teaching model. Difficulties experienced by novice programmers in introductory programming courses include deficiencies in problem-solving strategies, misconceptions relating to programming language constructs and the use of traditional programming environments. An introductory programming course should offer students problem solving analysis and design experience as well as exposure to the basic ideas of algorithmic thinking. Generally, introductory programming courses tend to concentrate on the syntax of a programming language at the expense of developing problem solving skills. Coupled to this are the ever-increasing complexity of modern programming languages and the user interfaces of their IDEs. A strategy that addresses the difficulties experienced by novice programmers in introductory programming courses is one that modifies the teaching model, specifically within the context of technological support. One way of implementing this strategy is with the use of visual programming languages, of which the iconic flowchart approach is one. Further, iconic programming environments traditionally attempt to simplify the programming task by reducing the level of precision and manual typing usually required in the conventional textual programming languages. These environments also attempt to increase the speed at which problem-solving and implementation efforts occur. Consequently, B# was developed in order to provide an environment in which programs can be developed using iconic flowcharts. Basic programming concepts such as assignments, conditions, loops, inputs and outputs are supported. Automatic code generation, debugging and program execution is also supported by the system. This paper reports on the development of B#, focusing on insights that were obtained concerning iconic programming tools. The use of B# by novice programmers in an introductory programming course is discussed and assessed. Recommendations are made as to how an iconic programming environment like B# could contribute to the successful completion of an introductory programming course
[1]
Thomas Green.
Instructions and descriptions: some cognitive aspects of programming and similar activities
,
2000,
AVI '00.
[2]
David A. Scanlan.
Structured flowcharts outperform pseudocode: an experimental comparison
,
1989,
IEEE Software.
[3]
H. Paul Haiduk,et al.
Iconic programming proves effective for teaching the first year programming sequence
,
1997,
SIGCSE '97.
[4]
Thomas B. Hilburn,et al.
A top-down approach to teaching an introductory computer science course
,
1993,
SIGCSE '93.
[5]
Uta Ziegler,et al.
An integrated program development tool for teaching and learning how to program
,
1999,
SIGCSE '99.
[6]
Harriet J. Fell,et al.
Foundations of computer science: what are they and how do we teach them?
,
1996,
ITiCSE '96.
[7]
Donald J. Bagert,et al.
ICONIC programming in BACCII vs. textual programming: which is a better learning environment?
,
1994,
SIGCSE '94.
[8]
Margaret M. Reek,et al.
A top-down approach to teaching programming
,
1995,
SIGCSE.
[9]
U. Ziegler,et al.
The flowchart interpreter for introductory programming courses
,
1998,
FIE '98. 28th Annual Frontiers in Education Conference. Moving from 'Teacher-Centered' to 'Learner-Centered' Education. Conference Proceedings (Cat. No.98CH36214).
[10]
Edward L. Jones,et al.
Software testing in the computer science curriculum -- a holistic approach
,
2000,
ACSE '00.
[11]
Elliot Soloway,et al.
Where the bugs are
,
1985,
CHI '85.
[12]
L. Gugerty,et al.
Debugging by skilled and novice programmers
,
1986,
CHI '86.
[13]
Alan F. Blackwell,et al.
Metacognitive theories of visual programming: what do we think we are doing?
,
1996,
Proceedings 1996 IEEE Symposium on Visual Languages.