Cognitive Model of the Novice Programmer
3) The prerequisite knowledge is used so that the new programming concept can be connected with it and stored in long-term memory for future use This is
2.3 Novice Programmer Motivation
Individual performance of novice programmers in introductory programming courses can also be attributed to personal motivation. A major challenge for educators of introductory programming courses is to find ways to motivate CS/IS students to perform satisfactorily as individuals as well as a group, and to help them enjoy the course.
The traditional teaching method in introductory programming courses is by means of deduction, namely where students are introduced to fundamentals at the superficial level of learning and then proceed with the applications at the in-depth level of learning using conventional textual programming notations and development environments (Felder 2002). This learning environment is often responsible for discouraging many students who have the initial intention and the ability to be successful in programming fields to switch to non-programming fields due to cognitive overload.
It has further been suggested that students whose learning styles are compatible with the teaching style of a course educator tend to retain information longer, apply it more effectively and have more positive post-course attitudes toward the course than do their counterparts who experience learning/teaching style mismatches (Felder 1993). The expectations of introductory programming students with respect to learning resources thus impacts on the type and level of motivation.
The previous argument is supported in part by a recent South African study that examined the effects of a changing society and technology on the way that learners interact with information in an educational environment (Miller 2003). The study revealed that learners today require material in visual format, find or create their own learning content, need fast access to learning material and require learning material
with a long-term career value. It is apparent that these learners were motivated by the technology used in information transfer, are active learners, externally motivated and regard learning as a social activity.
Novice programmers should be motivated to expect to succeed in their studies, and they should value the eventual outcome, for example individual success in the course with respect to performance level, final programme qualification or the possession of a qualification that guarantees employability (Jenkins 2001a; Salcedo 2003; Jenkins undated). If novice programmers are not able to appreciate these expectations of success and outcome value, they will become discouraged and consequently will not learn (Jenkins 2001a). Furthermore the motivation dilemma has been observed to be exacerbated in courses containing a diverse population of both computer science majors and non-majors (Chamillard et al. 2002). The introductory programming course in the Department of CS/IS at UPE, the context in which the current study takes place, is such a combined course and currently has an intake of 39% (n = 144) CS/IS majors and 61% (n = 225) non-majors (UPE 2003a).
Motivation amongst novice programmers has been classified as being intrinsic or extrinsic (Jenkins 2002). Novice programmers who are intrinsically motivated have been found to be genuinely interested in the introductory programming course. Extrinsically motivated novice programmers are motivated by the fact that the introductory programming course is a step towards a lucrative career (Wilson et al. 1985; Boyle et al. 2002; Jenkins 2002; Jenkins undated).
Novice programmers who struggle in the introductory programming course have been more often observed to have a primarily extrinsic motivation (Jenkins undated). One possible way in which to encourage positive motivation amongst novice programmers in introductory programming courses is to provide technological support in terms of a programming notation and development environment that motivates as well as encourages the novice programmers to be successful in using it to compose accurate program solutions.
2.4 Conclusion
Success in the transference of programming skills requires a novice programmer to be skilled in the comprehension of existing program solutions at the superficial learning level and especially the in-depth learning level. From the simple textual programming notation program solution fragments illustrated in Figures 2.1 – 2.3 and Figure 2.5, it is obvious that the level of precision required at both levels by novice programmers in order to produce correctly functioning solutions in a conventional textual programming notation is high. Technological support in an introductory programming learning environment should aim to reduce the volume of finer details that a novice programmer has to recall. The impact of this support is a reduction in total cognitive load in the novice programmer while learning to program, especially at the extraneous level.
The aforementioned observation is supported by the fact that novice programmers should begin programming at a level where concepts are what really matters rather than on a lower level where programming notation technicalities become the main issue. Superficial level implementation issues can distract the novice programmer so that the abstractions at the in-depth learning level are not fully comprehended.
Novice programmers should be encouraged in the long-term assimilation of programming knowledge with the use of concrete models that enhance the process of learning to program within technological support in the learning environment in order to ensure that the process of in-depth learning is promoted. Due to novice programmers having been identified as visual learners, the concrete models within the technological support in the learning environment should take the form of imagery.
As a consequence of the discussion in this chapter, 8 requirements are identified as the program domain requirements for technological support in an introductory programming course learning environment. The identified requirements (R1 – R8) appear in Table 2.1.
The framework in Table 2.1 emphasises the need for a programming notation and development environment as technological support in the learning environment of an introductory programming course to
• minimise the restrictions placed on novice programmers by a programming notation and associated development environment (R4);
• minimise the mundane program solution implementation details at the superficial level of learning (R1);
• develop comprehension of the use of programming constructs at the in-depth level of learning (R2, R5, R6, R7, R8); and
• encourage a positive attitude while learning to program (R3).
Requirements for Novice Programmer Technological Support Section R1: Elimination of finer implementation details typically found
at the superficial learning level of the program domain
2.2.1 2.2.2
R2: Increased level of program solution comprehension at the in-
depth learning level of the program domain 2.2.2
R3: Increase in level of motivation when using the programming
notation 2.3
R4: Designed specifically for use by novice programmers 2.2.1
R5: Provision of visual techniques to aid comprehension process
at the in-depth learning level of the program domain 2.2.1
R6: Support for reduced mapping between the problem and
program domains 2.2.1
R7: Increased focus on problem-solving 2.2.2
R8: Increase in novice programmer performance achievement
measured in terms of higher level of accuracy in program solutions in program domain
2.2.2
Table 2.1: Framework of novice programmer requirements for technological support in the learning environment of an introductory programming course
The framework of requirements in Table 2.1 is used as the criteria measures in the assessment of different categories of existing introductory programming notations and development environments in Chapter 3. The listed requirements further serve as a partial foundation for the development of the experimental technological support instrument used in the current investigation (Chapter 5) and the description of the methodology applied to the current empirical study (Chapter 6).