bower computer science education literature review csta

33
Teaching and Learning Teaching and Learning Computing Computing A Review of the A Review of the Literature Literature Matt Bower [email protected]

Upload: mbower

Post on 28-Jan-2015

108 views

Category:

Documents


4 download

DESCRIPTION

Review of Computer Science Education literature

TRANSCRIPT

Page 1: Bower Computer Science Education Literature Review Csta

Teaching and Learning Teaching and Learning ComputingComputing

A Review of the LiteratureA Review of the Literature

Matt Bower

[email protected]

Page 2: Bower Computer Science Education Literature Review Csta

What this discussion covers…What this discussion covers…Cognitive Processes and Models in Computing ThinkingWhat types of students are more likely to succeed in CS?Novices versus ExpertsIdentifying Student DifficultiesElements of Instructional DesignTying it all together

Page 3: Bower Computer Science Education Literature Review Csta

Bloom’s Taxonomy applied to the computing domainBloom’s Taxonomy applied to the computing domain

(Table taken from Porter and Calder, 2004)(Table taken from Porter and Calder, 2004)

Bloom’s categories Learning to Program

Knowledge Tools, constructs, syntax

Comprehension Relating concepts

Application Flow, semantics

Analysis Understanding the problem

Synthesis Create the solution

Evaluation Assess other options

Processes and Models in Computing ThinkingProcesses and Models in Computing Thinking

Page 4: Bower Computer Science Education Literature Review Csta

1. Declarative tasks

2. Comprehension tasks

3. Debugging tasks

4. Prediction tasks

5. Provide-an-example tasks

6. Provide-a-model tasks

7. Evaluate tasks

8. Meet-a-Design-Specification tasks

9. Solve-a-problem tasks

10. Self-reflect tasks

Processes and Models in Computing ThinkingProcesses and Models in Computing Thinking

A taxonomy of computing processes (Bower, 2008)A taxonomy of computing processes (Bower, 2008)

Page 5: Bower Computer Science Education Literature Review Csta

Processes and Models in Computing ThinkingProcesses and Models in Computing Thinking

A two dimensional adaptation of Anderson & A two dimensional adaptation of Anderson & Krathwohls’ model for computing (Fuller et al, 2007)Krathwohls’ model for computing (Fuller et al, 2007)

Create

Apply

None

Remember Understand Analyse Evaluate

Interpreting

Page 6: Bower Computer Science Education Literature Review Csta

Processes and Models in Computing ThinkingProcesses and Models in Computing Thinking

McGill and Volet (1997)McGill and Volet (1997)

Declarative Knowledge Procedural Knowledge

SyntacticKnowledge

1. Declarative-Syntactic Knowledge:

Knowledge of syntactic facts related to a particular language, such as: Knowing that a semicolon is needed to end each statement in Pascal.

2. Procedural-Syntactic Knowledge:

Ability to apply rules of syntax when programming, such as the ability to write a syntactically correct REPEAT statement in Pascal.

ConceptualKnowledge

3. Declarative-Conceptual Knowledge:

Understanding of and ability to explain the semantics of the actions that take place as a program executes, such as the ability to explain what a fragment of pseudocode does.

4. Procedural-Conceptual Knowledge:

Ability to design solutions to programming problems, such as the ability to design a procedure to compute the mean of some data.

5. Strategic/Conditional Knowledge: The ability to design, code, and test a program to solve a novel problem.

Page 7: Bower Computer Science Education Literature Review Csta

Processes and Models in Computing ThinkingProcesses and Models in Computing Thinking

Ahanori (2000) presents an Ahanori (2000) presents an application of the Actions-application of the Actions-Process-Object Model to Process-Object Model to abstraction in learning to abstraction in learning to program.program.

Recommends hiding data Recommends hiding data structure implementations structure implementations initially so students can initially so students can experiment with the data experiment with the data structure operations – providing structure operations – providing an abstraction barrier.an abstraction barrier.

Low Abstraction Level High

Program

ming-Language

Oriented T

hinking

Program

ming

Oriented T

hinking

Program

-Free

Thinking

Programming Context Thinking

Page 8: Bower Computer Science Education Literature Review Csta

Processes and Models in Computing ThinkingProcesses and Models in Computing Thinking

Notional Machine (du Boulay et al. 1989)Notional Machine (du Boulay et al. 1989)

– VisabilityVisability through commentary through commentary

– SimplicitySimplicity through through functional simplicityfunctional simplicity (operations require minimal (operations require minimal instructions to specify)instructions to specify)

logical simplicitylogical simplicity (problems posed to students are of (problems posed to students are of contained scale)contained scale)

syntactic simplicitysyntactic simplicity (the rules for writing instructions are (the rules for writing instructions are accessible and uniform). accessible and uniform).

Page 9: Bower Computer Science Education Literature Review Csta

Student attributes leading to succeed in CSStudent attributes leading to succeed in CS

Wilson and Shrock (2001):Wilson and Shrock (2001):comfort level in the coursecomfort level in the course

math backgroundmath background

attribution of success to luckattribution of success to luck

formal class in programmingformal class in programming

history of computer games (-ve)history of computer games (-ve)

+ve effect of prior programming course supported+ve effect of prior programming course supportedUniversity courses better than High School (Morrison & Newman, University courses better than High School (Morrison & Newman, 2001) 2001)

More prior languages implies greater effect (Markam, 2000) More prior languages implies greater effect (Markam, 2000)

Page 10: Bower Computer Science Education Literature Review Csta

Student attributes leading to succeed in CSStudent attributes leading to succeed in CS

Targetted prior course in problem solving more Targetted prior course in problem solving more beneficial than prior programming coursebeneficial than prior programming course(Alan & Kolesar, 1996)(Alan & Kolesar, 1996)

Mathematical-logical ability predicts success in Mathematical-logical ability predicts success in computer science (Byrne & Lyon, 2001; Alstrum, computer science (Byrne & Lyon, 2001; Alstrum, 1996). 1996).

Mayer et al. (1996):Mayer et al. (1996):logical reasoning ability and visual ability were predictive logical reasoning ability and visual ability were predictive general verbal ability and arithmetic computation ability general verbal ability and arithmetic computation ability were notwere not

Page 11: Bower Computer Science Education Literature Review Csta

Student attributes leading to succeed in CSStudent attributes leading to succeed in CS

Learning StylesLearning Styles– Felder-Silverman learning styles analysed by Thomas et Felder-Silverman learning styles analysed by Thomas et

al. (2002):al. (2002):reflective learners (learn through independent reflection) reflective learners (learn through independent reflection) outperformed active learners (learn by experimentation)outperformed active learners (learn by experimentation)

verbal learners (prefer written or spoken instruction) scored verbal learners (prefer written or spoken instruction) scored higher than visual learners (prefer pictures and diagrams). higher than visual learners (prefer pictures and diagrams).

– Ross et al. (2001) found students with an ordering Ross et al. (2001) found students with an ordering preference for ‘sequential’ learning outperformed those preference for ‘sequential’ learning outperformed those with a ‘random’ learning style with a ‘random’ learning style

Page 12: Bower Computer Science Education Literature Review Csta

Student attributes leading to succeed in CSStudent attributes leading to succeed in CS

Field Dependence/IndependenceField Dependence/IndependenceField Independent thinking: "perceiving part of a field as discrete Field Independent thinking: "perceiving part of a field as discrete from its surrounds … perceiving analytically” (Witkin et al., from its surrounds … perceiving analytically” (Witkin et al., 1977)1977)

Some reachers have concluded Field Independent thinkers Some reachers have concluded Field Independent thinkers perform better in computer science, especially in design tasks perform better in computer science, especially in design tasks (ref. Chou, 2003; Gibbs, 2000)(ref. Chou, 2003; Gibbs, 2000)

Perkins et al. (1989) identified Perkins et al. (1989) identified ‘‘movers’, who use feedback about errors effectively and keep movers’, who use feedback about errors effectively and keep trying, experimenting, and modifying their code trying, experimenting, and modifying their code

‘‘stoppers’, who are frustrated by mistakes/errors and when stoppers’, who are frustrated by mistakes/errors and when confronted with a problem are likely to simply stopconfronted with a problem are likely to simply stop

Movers (but Movers (but notnot extreme movers) outperform stoppers extreme movers) outperform stoppers

Page 13: Bower Computer Science Education Literature Review Csta

Novices versus ExpertsNovices versus Experts

Attributes of novice programmers (Winslow, Attributes of novice programmers (Winslow, 1996) :1996) :

1.1. surface, fragile and superficially organised surface, fragile and superficially organised knowledgeknowledge

2.2. lack of detailed mental modelslack of detailed mental models

3.3. failure to apply relevant knowledge or appropriate failure to apply relevant knowledge or appropriate problem solving strategiesproblem solving strategies

4.4. approach programming ‘line-by-line’ rather than approach programming ‘line-by-line’ rather than using meaningful program chunks or structuresusing meaningful program chunks or structures

5.5. lack planning and testing skillslack planning and testing skills

Page 14: Bower Computer Science Education Literature Review Csta

Novices Versus ExpertsNovices Versus ExpertsAttributes of Experts:Attributes of Experts:

1.1. efficiently organised and specialised knowledge schemasefficiently organised and specialised knowledge schemas2.2. organise knowledge according to functional characteristics organise knowledge according to functional characteristics

(eg, the nature of underlying algorithms) rather than (eg, the nature of underlying algorithms) rather than superficial details (eg, language syntax)superficial details (eg, language syntax)

3.3. draw upon both general problem solving strategies (such as draw upon both general problem solving strategies (such as divide and conquer) as well as specialised strategiesdivide and conquer) as well as specialised strategies

4.4. use specialist schemas and a top-down, breadth-first use specialist schemas and a top-down, breadth-first approaches in order to efficiently decompose and understand approaches in order to efficiently decompose and understand programsprograms

5.5. flexible in their approach to comprehending programs and flexible in their approach to comprehending programs and willingness to abandon questionable hypotheses.willingness to abandon questionable hypotheses.

(Mayrhauser & Vans, 1994, cited in Robins et al, (Mayrhauser & Vans, 1994, cited in Robins et al, 2003)2003)

Page 15: Bower Computer Science Education Literature Review Csta

Novices versus ExpertsNovices versus ExpertsThe catch…The catch…– development of expertise requires novices to abstract their development of expertise requires novices to abstract their

knowledge beyond the local, concrete representations they knowledge beyond the local, concrete representations they hold, versus…hold, versus…

– ““the thinking skills we hope to develop and transfer out of the thinking skills we hope to develop and transfer out of programming depend upon student attaining certain programming depend upon student attaining certain proficiencies in programming” (Kurland et al, 1989)proficiencies in programming” (Kurland et al, 1989)

Introductory programming courses focus on Introductory programming courses focus on ‘programming knowledge’ far more than they focus on ‘programming knowledge’ far more than they focus on ‘programming strategies’. (Robins et al, 2003) ‘programming strategies’. (Robins et al, 2003)

evidence for "syntax-independent access theory" of evidence for "syntax-independent access theory" of learning computing (Fay & Mayer, 1994)learning computing (Fay & Mayer, 1994)

Page 16: Bower Computer Science Education Literature Review Csta

Identifying Student DifficultiesIdentifying Student Difficulties

Five overlapping and inextricably linked sources Five overlapping and inextricably linked sources of difficulty when learning programming:of difficulty when learning programming:

1.1. general orientationgeneral orientation (what programs are for and what can (what programs are for and what can be done with them)be done with them)

2.2. the the notional machinenotional machine (a model of the computer as it (a model of the computer as it relates to executing programs)relates to executing programs)

3.3. notationnotation (the syntax and semantics of a particular (the syntax and semantics of a particular programming language)programming language)

4.4. structuresstructures (schemas and plans)(schemas and plans)

5.5. pragmaticspragmatics (the skills of planning, developing, testing, (the skills of planning, developing, testing, debugging and so on). debugging and so on).

Du Boulay Du Boulay (1989)(1989)

Page 17: Bower Computer Science Education Literature Review Csta

Identifying Student DifficultiesIdentifying Student Difficulties

"HCI conception“ model of student errors "HCI conception“ model of student errors

Syntactic Error

Algorithmic Error

Natural Language Reasoning Independent

Computer Reasoning

Operational Errors

Conceptions

Alternative and Incomplete Reasoning

(Rath & Brown, 1995)(Rath & Brown, 1995)

Page 18: Bower Computer Science Education Literature Review Csta

Identifying Student DifficultiesIdentifying Student Difficulties

Various research has found:Various research has found:– program planning rather than specific language program planning rather than specific language

features presents the main source of difficulty to features presents the main source of difficulty to students for example, (Winslow, 1996; Rist, 1995)students for example, (Winslow, 1996; Rist, 1995)

– Confounding between Step-by-Step natural language Confounding between Step-by-Step natural language Knowledge (SSK) and Programming Knowledge (PK) Knowledge (SSK) and Programming Knowledge (PK) is the major source of novice programming difficulty, is the major source of novice programming difficulty, accounting for between 47% and 67% of errors, accounting for between 47% and 67% of errors, depending on the domain. (Bonar & Soloway, 1989) depending on the domain. (Bonar & Soloway, 1989)

– Mathematical-logical reasoning causes more student Mathematical-logical reasoning causes more student difficulty than other aspects of computer science difficulty than other aspects of computer science (Alstrum, 1996) (Alstrum, 1996)

Page 19: Bower Computer Science Education Literature Review Csta

Identifying Student DifficultiesIdentifying Student DifficultiesDetailed deconstruction of plan composition difficulties:Detailed deconstruction of plan composition difficulties:

– Summarisation problemSummarisation problem - only the primary function of a plan is considered, - only the primary function of a plan is considered, implications and secondary aspects may be ignored.implications and secondary aspects may be ignored.

– Optimisation problemOptimisation problem - optimisation may be attempted inappropriately. - optimisation may be attempted inappropriately.– Previous-experiencePrevious-experience problemproblem - prior experience may be applied - prior experience may be applied

inappropriatelyinappropriately– Specialisation problemSpecialisation problem - abstract plans may not be adapted to specific - abstract plans may not be adapted to specific

situations.situations.– Natural-language problemNatural-language problem - inappropriate analogies may be drawn from - inappropriate analogies may be drawn from

natural language.natural language.– Interpretation problemInterpretation problem - ‘implicit specification’ can be left out, or ‘filled in’ - ‘implicit specification’ can be left out, or ‘filled in’

only when appropriate plans can be easily retrieved.only when appropriate plans can be easily retrieved.– Boundary problemBoundary problem - when adapting a plan to specific situations boundary - when adapting a plan to specific situations boundary

points may be set inappropriately.points may be set inappropriately.– Unexpected cases problemUnexpected cases problem - uncommon, unlikely, and boundary cases may - uncommon, unlikely, and boundary cases may

not be considered.not be considered.– Cognitive load problemCognitive load problem - minor but significant parts of plans may be omitted, - minor but significant parts of plans may be omitted,

or plan interactions overlooked.or plan interactions overlooked.

(Spohrer & (Spohrer & Soloway, 1989)Soloway, 1989)

Page 20: Bower Computer Science Education Literature Review Csta

Instructional Design (ID)Instructional Design (ID)

““Instructional Design” is the term used to describe the Instructional Design” is the term used to describe the process of planning and constructing educational process of planning and constructing educational resources and activities to promote learningresources and activities to promote learning

Some elements of instructional design:Some elements of instructional design:

– Scaffolding– Teaching Problem Solving– Theory Into Practice

Page 21: Bower Computer Science Education Literature Review Csta

ID - ScaffoldingID - ScaffoldingMyriad of approaches to scaffoldingMyriad of approaches to scaffoldingResearch approach to investigating efficacy reveals that it Research approach to investigating efficacy reveals that it can be effective…can be effective…

Control Structure Diagrams (Hendrix et al, 2000)

import java.awt.*;

public class SkeletonCode {

public static void main(String[ ] args){

int j = number_to_beat;

// insert code here…

}

}

Providing skeleton code (Applin, 2001)

Page 22: Bower Computer Science Education Literature Review Csta

ID - ScaffoldingID - Scaffolding

Or ineffective…Or ineffective…

Partially completed Object Diagram and Question (Thomas et al., 2004, p. 251)

Page 23: Bower Computer Science Education Literature Review Csta

ID – Teaching Problem SolvingID – Teaching Problem Solving

An heuristic for teaching problem solving:An heuristic for teaching problem solving:

1.1. Providing a representative example of a type of problemProviding a representative example of a type of problem2.2. Providing a definition and descriptionProviding a definition and description3.3. Specifying a pattern nameSpecifying a pattern name4.4. Identifying similar patterns and similar problemsIdentifying similar patterns and similar problems5.5. Comparing to other types of solutionsComparing to other types of solutions6.6. Identifying typical uses of the patternIdentifying typical uses of the pattern7.7. Highlighting common mistakes and difficultiesHighlighting common mistakes and difficulties8.8. Pattern composing (for problems whose solutions may be Pattern composing (for problems whose solutions may be

composed of several problems) composed of several problems) 9.9. Practicing the modification of pattern related solutions to solve Practicing the modification of pattern related solutions to solve

alternative problems. alternative problems.

(Muller, Haberman & Averbuch, (Muller, Haberman & Averbuch, 2004)2004)

Page 24: Bower Computer Science Education Literature Review Csta

ID – Teaching Problem SolvingID – Teaching Problem SolvingMaking strategies explicit (Ginat, 2002)Making strategies explicit (Ginat, 2002) (Example Problem:(Example Problem: Determine an efficient approach Determine an efficient approach

to deciding whether a particular number makes up the to deciding whether a particular number makes up the majority of a large set of numbers. So for a small set majority of a large set of numbers. So for a small set of numbers such as {5, 3, 6, 5, 5, 9, 12, 5, 5} the of numbers such as {5, 3, 6, 5, 5, 9, 12, 5, 5} the number 5 makes up the majority.) number 5 makes up the majority.)

– ‘‘Top-down’ solution:Top-down’ solution: count the frequency of count the frequency of numbers stored in a data structure, calculate the numbers stored in a data structure, calculate the maximum frequencies, count the number of elements maximum frequencies, count the number of elements in the list, determine if the maximum frequency is in the list, determine if the maximum frequency is greater than half the number of elements.greater than half the number of elements.

– ‘‘Range Decomposition’ solution:Range Decomposition’ solution: find the majority find the majority element of subsets of the data and then apply rules element of subsets of the data and then apply rules based on these results to determine the overall based on these results to determine the overall majority element, if it exists.majority element, if it exists.

Page 25: Bower Computer Science Education Literature Review Csta

ID – Teaching Problem SolvingID – Teaching Problem Solving(continued…) Making strategies explicit (Ginat, 2002)(continued…) Making strategies explicit (Ginat, 2002)– (Problem: (Problem: Determine an efficient approach to deciding Determine an efficient approach to deciding

whether a particular number makes up the majority of a whether a particular number makes up the majority of a large set of numbers. Eg, for {5, 3, 6, 5, 5, 9, 12, 5, 5} the large set of numbers. Eg, for {5, 3, 6, 5, 5, 9, 12, 5, 5} the number 5 makes up the majority. number 5 makes up the majority.

– ‘‘Element Decomposition’ solution:Element Decomposition’ solution: convert the integers convert the integers into binary numbers and determine the majority element for into binary numbers and determine the majority element for each binary digit. Then a second linear pass of the original each binary digit. Then a second linear pass of the original integer set would determine if the number composed of the integer set would determine if the number composed of the majority elements from the binary digits was in fact a majority elements from the binary digits was in fact a majority element.majority element.

– ‘‘Inductive Decomposition’ solution:Inductive Decomposition’ solution: remove pairs of remove pairs of different elements from the set until there is only one different elements from the set until there is only one (repeated) number left, or there is a set of three different (repeated) number left, or there is a set of three different numbers.numbers.

Page 26: Bower Computer Science Education Literature Review Csta

Theory Into PracticeTheory Into PracticeSydney University has experimented with Problem Sydney University has experimented with Problem Based Learning approaches to teaching programming Based Learning approaches to teaching programming Kay et al., 2000)Kay et al., 2000)1.1. open ended, authentic, substantial problems which drive open ended, authentic, substantial problems which drive

learninglearning2.2. explicit teaching and assessment of generic and metacognitive explicit teaching and assessment of generic and metacognitive

skills, andskills, and3.3. collaborative learning in groups.collaborative learning in groups.

– Example: “implementing a supermarket checkout queue Example: “implementing a supermarket checkout queue simulator” used as context for simulator” used as context for

develop metacognitive (steps taken to solve the problem, develop metacognitive (steps taken to solve the problem, delegation of time)delegation of time)subject of groupwork (externalising knowledge, developing subject of groupwork (externalising knowledge, developing collaborative skills) collaborative skills)

– mean examination mark improved from 63% to 91% over the mean examination mark improved from 63% to 91% over the two year period, increased levels of student satisfaction.two year period, increased levels of student satisfaction.

Page 27: Bower Computer Science Education Literature Review Csta

Theory Into PracticeTheory Into Practice

constructivist learning through groupwork constructivist learning through groupwork analysis tasks:analysis tasks:– Code walkthroughsCode walkthroughs– Group code writing tasksGroup code writing tasks– Group code debugging tasksGroup code debugging tasks– Lecture note reconstruction tasks (students listen to a Lecture note reconstruction tasks (students listen to a

mini-lecture, attempt to construct a summary by mini-lecture, attempt to construct a summary by memory and then meet in groups to improve their memory and then meet in groups to improve their summaries)summaries)

Van Gorp and Grissom Van Gorp and Grissom (2001)(2001)

Page 28: Bower Computer Science Education Literature Review Csta

Theory Into PracticeTheory Into PracticeSynthesising Techniques…Synthesising Techniques…

– A Data Structures Course: A Data Structures Course: Bloom’s taxonomy to the setting of lesson objectivesBloom’s taxonomy to the setting of lesson objectivesKolb Learning Cycle and Felder’s Learning Styles to determine Kolb Learning Cycle and Felder’s Learning Styles to determine instructional approach instructional approach Cooperative Learning principles to drive group-work Cooperative Learning principles to drive group-work assignments. assignments.

( Howard, Carver & Lane, ( Howard, Carver & Lane, 1996) 1996)

– ““Process Education” approach:Process Education” approach:closed computer laboratory sessionsclosed computer laboratory sessionsteam projects team projects journals, reports, presentationsjournals, reports, presentationsdiscovery learning, developing life long learnersdiscovery learning, developing life long learnersflexible teacher role (leader, assessor, facilitator, evaluator)flexible teacher role (leader, assessor, facilitator, evaluator)

(Smith, 1996)(Smith, 1996)

Page 29: Bower Computer Science Education Literature Review Csta

Wrap UpWrap Up

Numerous benefits of research approaches to Computer Science Education

However, designing over-systematised approaches to instruction that are based on research findings alone can be sub-optimal

Embrace the challenge and richness of theoretically grounded educational and research!

Page 30: Bower Computer Science Education Literature Review Csta

Questions?Questions?

[email protected]@mq.edu.au

Page 31: Bower Computer Science Education Literature Review Csta

ReferencesReferencesAharoni, D. (2000) Cogito, Ergo sum! cognitive processes of students dealing with data structures. Aharoni, D. (2000) Cogito, Ergo sum! cognitive processes of students dealing with data structures. Proceedings of the thirty-first SIGCSE Proceedings of the thirty-first SIGCSE technical symposium on Computer science educationtechnical symposium on Computer science education, p. 26-30., p. 26-30.

Allan, V. H. and Kolesar, M. V. (1996) Teaching Computer Science: A Problem Solving Approach that Works. In, Allan, V. H. and Kolesar, M. V. (1996) Teaching Computer Science: A Problem Solving Approach that Works. In, Call of the North, NECC Call of the North, NECC '96. Proceedings of the Annual National Educational Computing Conference (17th, Minneapolis, Minnesota, June 11-13, 1996)'96. Proceedings of the Annual National Educational Computing Conference (17th, Minneapolis, Minnesota, June 11-13, 1996), p. 2-9., p. 2-9.

Almstrum, V. L. (1996) Investigating Student Difficulties with Mathematical Logic. In Almstrum, V. L. (1996) Investigating Student Difficulties with Mathematical Logic. In Teaching and Learning Formal MethodsTeaching and Learning Formal Methods, (Eds, Dean, , (Eds, Dean, C. N. and Hinchey, M. G.) London:C. N. and Hinchey, M. G.) London: Academic Press, p. 131-160.Academic Press, p. 131-160.

Applin, A. G. (2001) Second language acquisition and CS1. In, Applin, A. G. (2001) Second language acquisition and CS1. In, Proceedings of the thirty-second SIGCSE technical symposium on Proceedings of the thirty-second SIGCSE technical symposium on Computer Science EducationComputer Science Education, p. 174-178., p. 174-178.

Bower, M. (2008Bower, M. (2008). A Taxonomy of Task Types in Computing.). A Taxonomy of Task Types in Computing. Proceedings of the 13th annual SIGCSE conference on Innovation and Proceedings of the 13th annual SIGCSE conference on Innovation and technology in computer science education (ITiCSE08), pp. 281-285, Madrid, Spain: ACM Presstechnology in computer science education (ITiCSE08), pp. 281-285, Madrid, Spain: ACM Press

Bonar, J. and Soloway, E. (1989) Preprogramming Knowledge: A Major Source of Misconceptions in Novice Programmers. In Bonar, J. and Soloway, E. (1989) Preprogramming Knowledge: A Major Source of Misconceptions in Novice Programmers. In Studying Studying the Novice Programmerthe Novice Programmer, (Eds, Soloway, E. and Spoher, J. C.) Hillsdale, NJ:, (Eds, Soloway, E. and Spoher, J. C.) Hillsdale, NJ: Lawrence Erlbaum, p. 325-353.Lawrence Erlbaum, p. 325-353.

Byrne, P. and Lyons, G. (2001) The effect of student attributes on success in programming. Byrne, P. and Lyons, G. (2001) The effect of student attributes on success in programming. SIGCSE Bull.,SIGCSE Bull., 33(3), p. 49-52. 33(3), p. 49-52.

Chou, H. W. (2001) Influences of cognitive style and training method on training effectiveness. Chou, H. W. (2001) Influences of cognitive style and training method on training effectiveness. Computers & Education,Computers & Education, 37(1). 37(1).

du Boulay, B., O'Shea, T. and Monk, J. (1989) The black box inside the glass box: presenting computing concepts to novices. In du Boulay, B., O'Shea, T. and Monk, J. (1989) The black box inside the glass box: presenting computing concepts to novices. In Studying Studying the Novice Programmerthe Novice Programmer, (Eds, Soloway, E. and Spoher, J. C.) Hillsdale, NJ:, (Eds, Soloway, E. and Spoher, J. C.) Hillsdale, NJ: Lawrence Erlbaum, p. 431-446.Lawrence Erlbaum, p. 431-446.

Fay, A. L. and Mayer, R. E. (1994) Benefits of Teaching Design Skills Before Teaching Logo Computer Programming: Evidence for Fay, A. L. and Mayer, R. E. (1994) Benefits of Teaching Design Skills Before Teaching Logo Computer Programming: Evidence for Syntax Independent Learning. Syntax Independent Learning. Journal of Educational Computing Research,Journal of Educational Computing Research, v11(3), p. 187-210. v11(3), p. 187-210.

Fuller, U., Johnson C. G., Ahoniemi, T., Cukierman, D., Hernán-Losada, I., Jackova, J., Lahtinen, E., Lewis, T. L., McGee-Thompson, D., Fuller, U., Johnson C. G., Ahoniemi, T., Cukierman, D., Hernán-Losada, I., Jackova, J., Lahtinen, E., Lewis, T. L., McGee-Thompson, D., Riedesel, C., Thompson, E. (2007). Riedesel, C., Thompson, E. (2007). Developing a computer science-specific learning taxonomy.Developing a computer science-specific learning taxonomy. Working group reports on ITiCSE on Working group reports on ITiCSE on Innovation and technology in computer science education, ITiCSE-WGR '07, pp. 152-170, ACM PressInnovation and technology in computer science education, ITiCSE-WGR '07, pp. 152-170, ACM Press

Gibbs, D. C. (2000) The effect of a constructivist learning environment for field-dependent/independent students on achievement in Gibbs, D. C. (2000) The effect of a constructivist learning environment for field-dependent/independent students on achievement in introductory computer programming. In, introductory computer programming. In, Proceedings of the thirty-first SIGCSE technical symposium on Computer Science EducationProceedings of the thirty-first SIGCSE technical symposium on Computer Science Education, p. , p. 207-211.207-211.

Ginat, D. (2001) Metacognitive awareness utilized for learning control elements in algorithmic problem solving. Ginat, D. (2001) Metacognitive awareness utilized for learning control elements in algorithmic problem solving. SIGCSE Bull.,SIGCSE Bull., 33(3), p. 81- 33(3), p. 81-84.84.

Page 32: Bower Computer Science Education Literature Review Csta

ReferencesReferences Ginat, D. (2002) On varying perspectives of problem decomposition. In, Proceedings of the 33rd SIGCSE technical symposium on

Computer science education, p. 331-335. Haberman, B. and Kolikant, Y. (2001) Activating “black boxes” instead of opening “zipper” - a method of teaching novices basic CS

concepts. SIGCSE Bull., 33(3), p. 41-44. Hendrix, T. D., II, J. H. C., Maghsoodloo, S. and McKinney, M. L. (2000) Do visualizations improve program comprehensibility?

experiments with control structure diagrams for Java. In Proceedings of the thirty-first SIGCSE technical symposium on Computer science education, ACM Press, p. 382-386.

Howard, R. A., Carver, C. A. and Lane, W. D. (1996) Felder's learning styles, Bloom's taxonomy, and the Kolb learning cycle: tying it all together in the CS2 course. In, Proceedings of the twenty-seventh SIGCSE technical symposium on Computer science education, p. 227-231.

Kay, J., Barg, M., Fekete, A., Greening, T., Hollands, O., Kingston, J. H. and Crawford, K. (2000) Problem-Based Learning for Foundation Computer Science Courses. Computer Science Education, 10(2), p. 109-128.

Kurland, D., Pea, R., Clement, C. and Mawby, R. (1989) A Study of the Development of Programming Ability and Thinking Skills in high School Students. In Studying the Novice Programmer, (Eds, Soloway, E. and Spoher, J. C.) Hillsdale, NJ: Lawrence Erlbaum, p. 83-112.

Mayer, R. E. (1989) The Psychology of How Novices Learn Computer Programming. In Studying the Novice Programmer, (Eds, Soloway, E. and Spoher, J. C.) Hillsdale, NJ: Lawrence Erlbaum, p. 129-159.

McGill, T. J. and Volet, S. E. (1997) A Conceptual Framework for Analyzing Students' Knowledge of Programming. Journal of Research on Computing in Education, 29(3), p. 276-297.

Morrison, M. and Newman, T. S. (2001) A study of the impact of student background and preparedness on outcomes in CS I. In Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education, ACM Press, p. 179--183.

Muller, O., Haberman, B. and Averbuch, H. (2004) (An almost) pedagogical pattern for pattern-based problem-solving instruction. In Proceedings of the 9th annual SIGCSE conference on Innovation and technology in computer science education, ACM Press, p. 102-106.

Porter, R. and Calder, P. (2004) Patterns in Learning to Program - An Experiment? In, Proc. Sixth Australasian Computing Education Conference (ACE2004), p. 193-199.

Robins, A., Roundtree, J. and Roundtree, N. (2003) Learning and Teaching Programming: A Review and Discussion. Computer Science Education, 13(2), p. 137-172.

Page 33: Bower Computer Science Education Literature Review Csta

ReferencesReferences Rath, A. and Brown, D. E. (1995) Conceptions of Human-Computer Interaction: A Model for Understanding Student Errors. Rath, A. and Brown, D. E. (1995) Conceptions of Human-Computer Interaction: A Model for Understanding Student Errors. Journal of Journal of

Educational Computing Research,Educational Computing Research, 12(4), p. 395-409. 12(4), p. 395-409. Rist, R. S. (1995) Program Structure and Design. Rist, R. S. (1995) Program Structure and Design. Cognitive Science,Cognitive Science, 19, p. 507-562. 19, p. 507-562. Ross, J. L., Drysdale, M. T. B. and Schultz, R. A. (2001) Cognitive Learning Styles and Academic Performance in Two Postsecondary Ross, J. L., Drysdale, M. T. B. and Schultz, R. A. (2001) Cognitive Learning Styles and Academic Performance in Two Postsecondary

Computer Application Courses. Computer Application Courses. Journal of Research on Technology in Education,Journal of Research on Technology in Education, 33(4). 33(4). Smith, P. D. (1996) A Process Education Approach To Teaching Computer Science. Smith, P. D. (1996) A Process Education Approach To Teaching Computer Science. In: Association of Small Computer Users in In: Association of Small Computer Users in

Education (ASCUE) Summer Conference Proceedings (29th, North Myrtle Beach, SC, June 9-13, 1996)Education (ASCUE) Summer Conference Proceedings (29th, North Myrtle Beach, SC, June 9-13, 1996), p. 11., p. 11. Spohrer, J. C. and Soloway, E. (1989) Novice Mistakes: are the folk wisdoms correct? In Spohrer, J. C. and Soloway, E. (1989) Novice Mistakes: are the folk wisdoms correct? In Studying the Novice ProgrammerStudying the Novice Programmer, (Eds, , (Eds,

Soloway, E. and Spoher, J. C.) Hillsdale, NJ:Soloway, E. and Spoher, J. C.) Hillsdale, NJ: Lawrence Erlbaum, p. 401-416.Lawrence Erlbaum, p. 401-416. Thomas, L., Ratcliffe, M. and Thomasson, B. (2004) Scaffolding with object diagrams in first year programming classes: some Thomas, L., Ratcliffe, M. and Thomasson, B. (2004) Scaffolding with object diagrams in first year programming classes: some

unexpected results. In unexpected results. In Proceedings of the 35th SIGCSE technical symposium on Computer science educationProceedings of the 35th SIGCSE technical symposium on Computer science education, ACM Press, p. 250-254., ACM Press, p. 250-254. Thomas, L., Ratcliffe, M., Woodbury, J. and Jarman, E. (2002) Learning styles and performance in the introductory programming Thomas, L., Ratcliffe, M., Woodbury, J. and Jarman, E. (2002) Learning styles and performance in the introductory programming

sequence. In, sequence. In, Proceedings of the 33rd SIGCSE technical symposium on Computer science educationProceedings of the 33rd SIGCSE technical symposium on Computer science education, p. 33-37., p. 33-37. Van Gorp, M. J. and Grissom, S. (2001) An Empirical Evaluation of Using Constructive Classroom Activities to Teach Introductory Van Gorp, M. J. and Grissom, S. (2001) An Empirical Evaluation of Using Constructive Classroom Activities to Teach Introductory

Programming. Programming. Computer Science Education,Computer Science Education, 11(3), p. 247-260. 11(3), p. 247-260. Wilson, B. C. and Shrock, S. (2001) Contributing to success in an introductory computer science course: a study of twelve factors. In, Wilson, B. C. and Shrock, S. (2001) Contributing to success in an introductory computer science course: a study of twelve factors. In,

Proceedings of the thirty-second SIGCSE technical symposium on Computer Science EducationProceedings of the thirty-second SIGCSE technical symposium on Computer Science Education, p. 184-188., p. 184-188. Winslow, L. E. (1996) Programming pedagogy - A psychological overview. Winslow, L. E. (1996) Programming pedagogy - A psychological overview. SIGCSE Bull.,SIGCSE Bull., 28, p. 17-22. 28, p. 17-22. Witkin, H. A., Moore, C. A., Goodenough, D. R. and Cox, P. W. (1977) Field-dependent and field-independent cognitive styles and their Witkin, H. A., Moore, C. A., Goodenough, D. R. and Cox, P. W. (1977) Field-dependent and field-independent cognitive styles and their

educational implications. educational implications. Review of Educational Research,Review of Educational Research, 47, p. 1-64. 47, p. 1-64.