The current investigation focuses on an implementation of the second type of approach that has been proposed as a solution to increase the successful throughput of students in introductory programming courses at tertiary level. This approach is namely the modification of the teaching model (Wilson et al. 1985; Austin 1987). This investigation is a natural extension of the comprehensive studies already conducted at UPE with respect to the first of the approaches, namely the identification, selection and placement of potentially successful students (Calitz 1984; Calitz et al. 1992; Calitz 1997; Greyling 2000; Greyling et al. 2002; Greyling et al. 2003). It is also an extension of related international studies in programming with respect to the second type of approach (Calloni et al. 1994, 1997; Ramalingam et al. 1997; Crews 2001).
During the 1990’s, quantitative international research in the use of an iconic programming notation in an introductory programming course at tertiary level was conducted (Calloni et al. 1994, 1997). The study by Calloni et al. indicated a significant improvement in the results obtained by novice programmers in an introductory programming course using BACCII©, an iconic programming notation and development environment. It seems apt to perform a similar study on South African CS/IS students and thereby determine the suitability of an iconic programming notation as an alternative form of technological support for novice programmers in an introductory programming course at tertiary level within the South African context.
Furthermore, as a result of the continued increase in enrolment figures in CS/IS introductory programming courses, the continually growing diversity in first year introductory programming student populations (as discussed in Section 1.3) is of relevance when the issue of a technological support in the learning environment is considered. A cognitive model that provides insight into the process followed by novice programmers while learning to program (Mattson undated-a), can be used to compare different programming notations and their associated development environments more effectively.
Preferably, the programming notation used to educate and train novice programmers in an introductory programming course should be chosen for teaching and learning suitability and not because it is accepted and endorsed by industry (Jenkins 2002). The courses in which these notations are used should be designed to be flexible so as to allow different students to learn in different ways. This is supported by the results of a study that examined the correlations between preferred learning style of novice programmers and performance on both the exam and practical aspects of an introductory programming course (Thomas et al. 2002). The study observed that novice programmers with specific preferred learning characteristics8 may be disadvantaged by certain traditional methods of teaching. These findings add to the present research’s focus on the preferred teaching and learning programming notation in a development environment by also focussing on the issue of the use of a commercial textual programming notation and associated development environment as the accepted and prescribed technological support.
The focus of the investigation is highlighted in terms of the study’s primary objectives (Section 1.4.1). One of the main objectives is the conducting of a comparative study using different categories of technological support as learning environment instruments for subjects in an introductory programming course (Section 1.4.2). The scope (Section 1.4.3) and feasibility (Section 1.4.4) of the research are presented, together with the specific research questions that are to be addressed by the current investigation (Section 1.4.5).
8
Namely active (learning by trying), sensing (concrete learning), and visual (learning with diagrams) (Thomas et al. 2002; Soloman & Felder undated).
1.4.1 Goal and Objectives
This thesis investigates and addresses the challenges of existing misconceptions about the syntax, semantics and pragmatics of programming notation constructs that are evident in novice programmers when using programming notations within the context of an introductory programming course teaching model. The thesis specifically reports on a quantitative and qualitative behavioural study of novice programmers in an introductory programming course. The behavioural study determines whether novice programmer performance achievement with respect to the comprehension and composition of program solutions is independent of the programming notation used as technological support in the learning environment for an introductory programming course at tertiary level.
The investigation encompasses a comprehensive study of the cognitive model of novice programmers while learning to program. The acknowledgement of such a cognitive model can assist in the design of programming notations and development environments that more closely match the way programmers, specifically novice programmers, think. Consequently, a framework of novice programmer requirements is proposed as the result of a comprehensive literature study of the cognitive model of such programmers.
The framework of novice programmer requirements is applied as the criteria against which programming notations related to that forming part of the current study are measured in support of suitability for novice programmers. Various distinct categories of experimental technological support for novice programmers are identified from existing research and evaluated according to these criteria. Furthermore, the framework of novice programmer requirements has a direct influence on the design and implementation of the locally developed visual iconic programming notation and development environment, B#. The role of B# in the current study is that of the treatment technological support in a between-groups empirical analysis.
The empirical analysis component of this investigation is conducted by qualitatively and quantitatively comparing two different programming notations and their
associated development environments used as technological support in an introductory programming course learning environment in the Department of CS/IS at UPE during 2003. The present research is primarily concerned with the comparison of performance achievements observed for each of the identified technological supports. This research is partly in response to the observation of a continued unsatisfactory trend in the pass rate of introductory programming courses at tertiary level in South Africa (Naudé et al. 2003; UPE 2003a).
A further issue that impacts on introductory programming course throughput is the influence of a student’s motivation when using specific technological support in the learning environment of an introductory programming course. If a student’s preferred learning style matches that presented by a particular programming notation, the level of personal motivation might be more positive, thereby resulting in increased performance achievement and ultimately increased throughput (Thomas et al. 2002).
Although focussing on a visual iconic programming notation as the preferred technological learning environment in a CS/IS introductory programming course, this thesis also reports on whether a visual iconic programming notation is beneficial as a technological learning environment that is supplemental to that of a conventional textual programming notation. The analysis of the study is done in terms of maximising throughput as well as individual average performance achievement.
1.4.2 Technological Support and Subjects of Comparative Study
The subjects for the research are first year introductory programming students in the Department of CS/IS at UPE. In the introductory programming course at UPE, students are traditionally taught the basic concepts of programming in a procedural, or imperative, fashion, using a conventional textual programming notation (PASCAL) and associated commercial development environment, Delphi™ Enterprise, as the technological support (CS&IS 2003).
The programming notations considered in the investigation are the aforementioned textual programming notation and development environment (discussed further in
Section 5.4.1) and, B#, a visual iconic programming notation developed in the Department of CS/IS at UPE (discussed further in Section 5.4.2).
1.4.3 Scope
The hierarchical placement of the current investigation is shown in Figure 1.2 by means of an orange colour scheme. The focus of the investigation is on the impact of using B# as technological support in the teaching model of an introductory programming course in an attempt to increase the throughput rate.
The other components in the diagram illustrated in Figure 1.2 are research related to the approach of the modification of the teaching model. The components appearing in green and purple shading indicate alternative techniques for addressing the same problem addressed by the focus of the current investigation. Some of these alternative techniques (shown by means of a green colour scheme), amongst others, are the themes of related recent and current research at UPE but fall outside the scope of the current investigation (Christians 2003; Gamieldien 2003; Van Tonder 2003; De Jager 2004; Henning 2004; Leppan 2004; Mamtani 2004; Naudé 2004; Vogts 2004; Yeh 2004).
The theme indicated by yellow shading is that of the first approach identified as being an approach that increases the throughput rate in introductory programming courses. This approach that identifies potentially successful students in an introductory programming course has in the past been comprehensively researched in the Department of CS/IS at UPE (Calitz 1984; Calitz et al. 1992; Calitz 1997; Greyling 2000; Greyling et al. 2002; Greyling et al. 2003). The selection model based on the findings of this research has been applied at UPE since 2001 and consequently has a bearing on the profile of the subjects selected as participants in the current comparative study.
Figure 1.2 emphasises that one way in which to modify the teaching model for an introductory programming course is by means of the inclusion of technological support within the teaching model. Many types of experimental technological support in terms of programming notations and development environments have been used to
Approaches to raise throughput rate Identify potentially successful students Modify teaching model Technological support tool Visual programming notations Iconic programming notations Innovative presentation techniques Response to individual learning Worked Examples and Code Restructuring Pseudo Programming Flowchart Simulators Dataflow Programming Languages Mini- languages and Micro-worlds B# BACCII© Programming Notations Algorithm Visualisation Programming Environments
support students of introductory programming courses internationally9 and nationally (Warren 2000, 2001, 2003), yet the evidence is that not one has thus far gained widespread acceptance for various reasons elaborated on in this thesis (Chapter 3).
Figure 1.2: Scope of the investigation
9
(Bonar & Liffick 1990; Lyons et al. 1993; Calloni et al. 1994; Calloni & Bagert 1995; Studer et al. 1995; Liffick & Aiken 1996; Calloni et al. 1997; Cockburn et al. 1997; Crews et al. 1998; Blackwell & Green 1999a; Good 1999; Cooper et al. 2000; Garner 2000; Stajano 2000; Blackwell 2001; Dagiano et al. 2001; Materson & Meyer 2001; McIver 2001; Navarro-Prieto & Cañas 2001; Baas 2002; Chamillard et al. 2002; De Raadt et al. 2002; Fergusson 2002; Gibbs 2002; McIver 2002; Quinn 2002; Burrell 2003; Donaldson 2003; Carlisle et al. 2004; Hickey 2004; Mahmoud et al. 2004; Zelle undated)
1.4.4 Feasibility
The validity of B# with respect to goodness of fit to the envisaged study was initially determined by means of a pilot study that was conducted on students in the introductory programming course in the Department of CS/IS at UPE during 2002. This pilot study used B# version 1 (Brown 2001a, b).
The results of the pilot study suggested evidence of improved academic performance achievement for students who used B# as technological support (Cilliers & Vogts 2002; Cilliers et al. 2003). The findings of the pilot study also suggested programming notation and development environment enhancements that were incorporated into version 2 of B#, which was in development concurrent with the conducting of the pilot study.
The enhanced version of B#, version 2 (Thomas 2002a, b), is used as the experimental programming notation and development environment in the comparative study reported on in this thesis.
1.4.5 Research Questions
The investigation attempts to answer the specific research questions posed in Table 1.1. Various methods are used to determine the answers to the research questions posed. The different methods used are indicated in Table 1.1. Where appropriate, a literature review forms the basis for the research.
An acknowledged experimental design used in studies in programming is adopted, modified and applied in the design of the experiment, collection of data and analysis of the results. The chapter(s) that address each of the identified research questions is(are) also listed in Table 1.1. The significance and relationship of the chapters to the overall investigation is discussed in the following section.
Research Question Research method Chapter
1. What is the mental model of novice
programmers when learning to program? Literature review 2
2. What are the criteria for selecting an appropriate programming notation and associated development environment for novice programmers?
Analysis of literature
review 2
3. What categories of programming notations and associated development environments are used in introductory programming courses at tertiary level?
Literature review 3
4. What categories of programming notations and associated development environments satisfy the selection criteria for an appropriate programming notation and development environment for novice programmers?
Critical analysis of
literature review 3
5. What is the contribution of previous research at UPE to the current investigation?
Literature review 4
6. What technological support is developed for use in the current investigation?
Design and implementation of experimental programming notation and
development environment (B#)
5
7. Why were the specified tools chosen as instruments in the current investigation?
Critical analysis of
literature review 5 8. What process is followed in the empirical
analysis relevant to the current investigation?
Literature review Experimental design
6 9. How well do novice programmers
perform depending on the technological learning environment exposed to?
Empirical evaluation Deliberation on findings
7 and 8
10. What is the impact of a visual iconic programming notation on novice programmer performance and motivation in an introductory programming course at tertiary level?
Comparative study of textual and iconic programming notations
and associated development environments
Deliberation on findings
7 and 8
11. How should a visual iconic programming notation be used in an introductory programming course at tertiary level?
Evaluation 9