• No results found

Teaching programming strategies explicitly to novice programmers

N/A
N/A
Protected

Academic year: 2019

Share "Teaching programming strategies explicitly to novice programmers"

Copied!
10
0
0

Loading.... (view fulltext now)

Full text

(1)

University of Southern Queensland

Teaching Programming

Strategies Explicitly to Novice

Programmers

A dissertation submitted by Michael de Raadt

for the award of Doctor of Philosophy

(2)

Abstract Teaching Programming Strategies Explicitly to Novice Programmers

Page ii

Abstract

The traditional approach to training novice programmers has been to provide explicit programming knowledge instruction but to rely on implicit instruction of programming strategies. Studies, reported in literature, have discovered universally poor results on standardised tests for novices studying under this traditional approach.

This dissertation describes the explicit integration of programming strategies into instruction and assessment of novice programmers, and the impact of this change on their learning outcomes.

An initial experiment was used to measure the performance of students studying under a traditional curriculum with implicitly taught programming strategies. This experiment uncovered common flaws in the strategy skills of novices and revealed weaknesses in the curriculum. Incorporation of explicit strategy instruction was proposed.

To validate a model of strategies as being authentic and appropriate for novice instruction, an experiment with experts was conducted. Experts were asked to solve three problems that a novice would typically be expected to solve at the end of an introductory programming course. Experts‟ solutions were analysed using Goal/Plan Analysis and it was discovered that experts consistently applied plans, the sub-algorithmic strategies suggested by Soloway (1986). It was proposed that plans could be adapted for explicit inclusion in an introductory programming curriculum. Initially a curriculum incorporating explicit strategy instruction was tested in an artificial setting with a small number of volunteers, divided into control and experimental groups. The control group was taught using a simplified traditional curriculum and the experimental group were exposed to a curriculum which explicitly included programming strategies. Testing revealed that experimental group participants applied plans more than control group participants, who had been expected to learn these strategies implicitly. In interviews, experimental participants used strategy-related terminology and were more confident in the solutions they had created. These results justified a trial of the curriculum in an actual introductory programming course.

When explicit instruction of programming strategies was incorporated into an actual introductory programming curriculum, novices achieved superior results when compared to results from the initial experiment. Novices used strategies significantly more when these strategies were incorporated explicitly into instructional materials and assessment items.

This series of experiments focussed on explicitly teaching specific programming

strategies rather than teaching problem-solving more generally. These experimental

(3)

Teaching Programming Strategies Explicitly to Novice Programmers Certification of Dissertation

Certification of Dissertation

I certify that the ideas, experimental work, results, analyses and conclusions reported in this dissertation are entirely my own effort, except where otherwise acknowledged. I also certify that the work is original and has not been previously submitted for any other award, except where otherwise acknowledged.

________________________________ ______________

Signature of Candidate Date

ENDORSEMENT

________________________________ ______________

Signature of Supervisor Date

________________________________ ______________

(4)

Relevant Publications Teaching Programming Strategies Explicitly to Novice Programmers

Page iv

Relevant Publications

DE RAADT, M., WATSON, R. & TOLEMAN, M. (2002) Language Trends in Introductory Programming Courses. In Proceedings of Informing Science and IT Education Conference. p. 329 - 337.

DE RAADT, M., WATSON, R. & TOLEMAN, M. (2003) Language Tug-Of-War: Industry Demand and Academic Choice. Australian Computer Science

Communications, 25, 137 - 142.

DE RAADT, M., WATSON, R. & TOLEMAN, M. (2003) Introductory programming languages at Australian universities at the beginning of the twenty first century. Journal of Research and Practice in Information

Technology, 35, 163-167.

DE RAADT, M., WATSON, R. & TOLEMAN, M. (2004) Introductory Programming: What's happening today and will there be any students to teach tomorrow? Australian Computer Science Communications, 26, 277 - 284.

DE RAADT, M., TOLEMAN, M. & WATSON, R. (2004) Training strategic problem solvers. ACM SIGCSE Bulletin, 36, 48 - 51.

DE RAADT, M., TOLEMAN, M. & WATSON, R. (2006) Chick Sexing and Novice Programmers: Explicit Instruction of Problem Solving Strategies. Australian

Computer Science Communications, 28, 55 - 62.

DE RAADT, M. (2007) A Review of Australasian Investigations into Problem-Solving and the Novice Programmer. Computer Science Education, 17, 201 - 213.

(5)

Teaching Programming Strategies Explicitly to Novice Programmers Acknowledgments

Acknowledgments

I would like to thank my supervisors, Mark Toleman and Richard Watson, for the experience they shared, their enthusiasm in my work and, perhaps above all, their patience.

I thank my family, my wife Erica and my two children, Hannah and Isaac, for allowing me to spend time away to complete my research work and for encouraging me to keep going and get the job done.

I thank the CSEd community for taking my ideas seriously and showing me the value of research in this area.

Thanks to Simon for his proofing services. Simon is a published author and leading figure of the CSEd community.

Thanks also to Peter Dunn for his assistance on statistics matters.

(6)

Table of Contents Teaching Programming Strategies Explicitly to Novice Programmers

Page vi

Table of Contents

Abstract ... ii

Certification of Dissertation ... iii

Publications ... iv

Acknowledgments ... v

Table of Contents ... vi

Glossary ... viii

1. Introduction ... 1

1.1 Motivation ... 1

1.2 Aims ... 2

1.3 Dissertation Structure ... 4

2. Problem Solving and Novice Programmers ... 5

2.1 A Brief History of Programming Instruction ... 5

2.2 Recent teaching in Australian and New Zealand ... 7

2.3 Aspects of Novice Instruction ... 9

2.4 Explicit Programming Strategies ... 20

2.5 Need for Further Research ... 22

3. Experimental Methodology ... 24

3.1 Scope of Experimentation ... 24

3.2 Experimental Approach ... 25

3.3 Research Questions ... 28

3.4 Overview of Experimentation ... 29

4. Goal/Plan Analysis of Programs created by Novices with No Explicit Strategy Instruction ... 30

Overview ... 30

4.1 Introduction ... 30

4.2 Research Questions ... 32

4.3 The Experimental Problem ... 33

4.4 Methodology ... 36

4.5 Results ... 40

4.6 Discussion ... 43

4.7 Implications ... 44

5. Experts and Explicit Strategies ... 46

Overview ... 46

(7)

Teaching Programming Strategies Explicitly to Novice Programmers Table of Contents

5.2 Research Questions ... 48

5.3 The Problems... 48

5.4 Methodology ... 50

5.5 Results ... 54

5.6 Discussion ... 57

5.7 Implications ... 58

6. Incorporating Strategies Explicitly into an Artificial Curriculum ... 60

Overview... 60

6.1 Introduction ... 60

6.2 Research Questions ... 62

6.3 Description of Curricula ... 62

6.4 Methodology ... 67

6.5 Results ... 69

6.6 Discussion ... 77

6.7 Implications ... 79

7. Teaching and Assessing Programming Strategies Explicitly in an Actual Setting ... 81

Overview... 81

7.1 Introduction ... 81

7.2 Research Questions ... 83

7.3 Integrating Strategy Instruction into Written Materials, Lectures, Tutorials and Practical Classes ... 84

7.4 Assessing Strategy Skill in Assignments and Examinations ... 93

7.5 Methodology ... 100

7.6 Results ... 102

7.7 Discussion ... 106

7.8 Implications ... 108

8. Findings and Contribution of this Study ... 109

8.1 Findings of this Study ... 109

8.2 Contribution ... 113

8.3 Future Work ... 114

References ... 116

(8)

Glossary Teaching Programming Strategies Explicitly to Novice Programmers

Page viii

Glossary

The following terms are used throughout this dissertation. They are presented here to clarify their meaning. The terms are described and explored more deeply in Chapter 2 with references to sources. The terms are presented in alphabetic order.

Comprehension

In the context of programming, comprehension is the ability to read and understand code or program related information. This may involve simulating execution of a program to manually compute a result.

Course

A single period of instruction, usually contained within a semester. Equivalent to the terms unit, paper or subject used in some institutions.  Curriculum

Teaching materials, assessment items and method of delivery, related to a single course (see above).

Expert

A programmer who writes programs on a regular or daily basis. For the purposes of this dissertation it is not important when a novice programmer (see below) becomes an expert is not critical, as comparisons are made only between programmers at the extremes of this scale.

Explicit Instruction

Instruction where the the instructor openly describes, usually in some documented form, what the student is to learn and how to go about that learning.

Generation

In the context or programming, generation involves the creation of code or program related information, potentially implementing a solution to a problem.

Goal

An identified part of a solution that needs to be achieved for a programming problem.

Implicit Instruction

Instruction within a scenario where a student is expected to undertake learning without being given a full context for what it is they are to learn or how.

Knowledge

See Programming Knowledge below.  Novice

A programmer learning how to program for the first time. In this dissertation

novices are students undertaking a first course (see above) in programming.

Plan

(9)

Teaching Programming Strategies Explicitly to Novice Programmers Glossary

achieving a goal (see above) within a solution to a programming problem. Plans are normally contained in the tacit knowledge of experts.

Problem Solving

A mechanism for achieving a solution to a programming problem. Within the scope of this document, problem solving is not intended to be interpreted more generally.

Programming Knowledge

A programmer‟s understanding and potential to apply the syntax and

semantics of a programming language and any related language features.  Programming Strategy

A general term for a range of programming problem solving approaches including plans (see above), patterns, algorithms and other methodologies. A

programming strategy is an abstracted method for applying programming

knowledge to solve a problem.  Strategy

(10)

Teaching Programming Strategies Explicitly to Novice Programmers

References

Related documents

Mitigating and controlling MIC requires a good understanding of the underlying mechanisms involved in the process. This work presents a mechanistic model and a

Rainfall predictability at a seasonal lead time (of 2-3 months) is relatively high in EA, providing an opportunity to support risk management. South Asia has

In view of this situation, we use a more sim- ple method which combines PAA piecewise linear represen- tation and fitting errors methods to extract pattern features (Piecewise

In the present study, we isolated six genes – hesC , alx1 , tbr , ets1 , gcm and cyp1 – from a cidaroid, Prionocidaris baculosa , and examined their expression patterns and functions

( 2014 ) found that WM training resulted in de- creased frontoparietal activation during performance of a low WM load task in healthy older adults. A ‘ youth-like ’ brain

An angel of the Lord came to the Magi in a dream and warned them of King Herod’s plan, and they went home in a different direction.. An angel of the Lord warned Joseph of King

Testing predictions in both samples allows us to estab- lish (a) the generalizability of our hypotheses to a large representative sample of retirees, and (b) the direction

When cadmium chloride was given together with humic acids, (group Cd + HA), Cd levels decreased in all investigated tissues by 39.6%, 34.2% and 80.8% in kidney, liver and