3 research outputs found
The Holistic Course Delivery: A Novel Pedagogy for Collegiate Introductory Computer Programming
Title from PDF of title page viewed August 20, 2020Dissertation advisor: Rita BargerVitaIncludes bibliographical references (pages 184-197)Thesis (Ph.D.)--School of Education and School of Computing and Engineering. University of Missouri--Kansas City, 2020For many years there have not been enough computer science graduates to fill open
positions. One of the chief barriers to the formation of computer science graduates is that many
students are unsuccessful in the introductory programming course. Unsuccessful students often
change their major field of study or terminate their collegiate studies. A chief concern is
therefore to minimize the DFW rate (grade of D or F, or withdrawal from a course).
Student characteristics have been extensively studied to explain, and sometimes justify,
the high DFW rate in introductory programming courses. Pairs programming, flipped
classrooms, choice of programming language, and a variety of other modifications and novel
methods have been devised in efforts to reduce the DFW rate. The collective conclusion has
been that there is no silver bullet that has been demonstrated to be universally effective.
This quasi-experimental study incorporates four learning theories that inform the design
and delivery of an introductory programming course: Neo-Piagetian Theory, Cognitive
Apprenticeship Theory, Cognitive Load Theory, and Self-Efficacy Theory. The objective was
iv
to (1) design a course from the top-down that integrates several pedagogical elements in a
holistic way, and (2) deliver it to a group of nascent programming students.
The Holistic Course Delivery was implemented in three class sections of an
introductory programming course at a midwestern university in which a total of 96 students
were enrolled. The Holistic Course Delivery had a significantly lower DFW rate compared to
both historic DFW rates at the institution and established international norms and students
indicated they felt prepared for subsequent computer science coursework.Introduction -- Literature review -- Methodology -- Analysis -- Discussion -- Appendix A. Pre-course survey -- Appendix B. Pre-course test & post-course test -- Appendix C. Post-course survey Appendix D. Homework reflection -- Appendix E. Homework assignments -- Appendix F. Coding sprints -- Appendix G. Final exam programming questions -- Appendix H. Qualitative interview questions -- Appendix I. Curriculum outline -- Appendix J. Syllabu
A study of novice programmer performance and programming pedagogy.
Identifying and mitigating the difficulties experienced by novice programmers is an active
area of research that has embraced a number of research areas. The aim of this research
was to perform a holistic study into the causes of poor performance in novice
programmers and to develop teaching approaches to mitigate them. A grounded action
methodology was adopted to enable the primary concepts of programming cognitive
psychology and their relationships to be established, in a systematic and formal manner.
To further investigate novice programmer behaviour, two sub-studies were conducted
into programming performance and ability.
The first sub-study was a novel application of the FP-Tree algorithm to determine if
novice programmers demonstrated predictable patterns of behaviour. This was the first
study to data mine programming behavioural characteristics rather than the learner’s
background information such as age and gender. Using the algorithm, patterns of
behaviour were generated and associated with the students’ ability. No patterns of
behaviour were identified and it was not possible to predict student results using this
method. This suggests that novice programmers demonstrate no set patterns of
programming behaviour that can be used determine their ability, although problem
solving was found to be an important characteristic. Therefore, there was no evidence
that performance could be improved by adopting pedagogies to promote simple changes
in programming behaviour beyond the provision of specific problem solving instruction.
A second sub-study was conducted using Raven’s Matrices which determined that
cognitive psychology, specifically working memory, played an important role in novice
programmer ability. The implication was that programming pedagogies must take into
consideration the cognitive psychology of programming and the cognitive load imposed
on learners.
Abstracted Construct Instruction was developed based on these findings and forms a new
pedagogy for teaching programming that promotes the recall of abstract patterns while
reducing the cognitive demands associated with developing code. Cognitive load is
determined by the student’s ability to ignore irrelevant surface features of the written
problem and to cross-reference between the problem domain and their mental program
model. The former is dealt with by producing tersely written exercises to eliminate
distractors, while for the latter the teaching of problem solving should be delayed until
the student’s program model is formed. While this does delay the development of
problem solving skills, the problem solving abilities of students taught using this pedagogy
were found to be comparable with students taught using a more traditional approach.
Furthermore, monitoring students’ understanding of these patterns enabled micromanagement of the learning process, and hence explanations were provided for novice
behaviour such as difficulties using arrays, inert knowledge and “code thrashing”.
For teaching more complex problem solving, scaffolding of practice was investigated
through a program framework that could be developed in stages by the students.
However, personalising the level of scaffolding required was complicated and found to be
difficult to achieve in practice.
In both cases, these new teaching approaches evolved as part of a grounded theory study
and a clear progression of teaching practice was demonstrated with appropriate
evaluation at each stage in accordance with action researc