Bower Computer Science Education Literature Review Csta

3,645 views

Published on

Review of Computer Science Education literature

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,645
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
49
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • This review doesn’t cover how to teach specific topics. Relates educational principles & theories relevant to CSE as presented in the literature. Is definitely not personal opinions about how to teach CS – it is a general orientation to and roadmap through some of the CSE literature. Please excuse patronising tone – it’s a habit!
  • * Assimilation: do-while loop after learning for loop * Accommodation: learning about integer division as it relates to CSE: 17/3 <= 5
  • If any of these processes are not executed then meaningful learning cannot occur and the learner will be forced to rote learn information and commit each piece to memory. The implication for teaching and learning computing is that students must be engaged, material must be appropriately pitched and tasks must involve reformulation of the material if an understanding framework is to be developed.
  • Levels of processing: Revisiting tasks frequently, deep learning, prioritising important tasks. Dual code: cater to both auditory and visual learning styles Transfer Appropriate Processing: relevant, practical learning tasks – eg teach design skills through projects Parallel Distributed Processing: (effectively, like computer!) therefore no need to address each component of memory separately Limited Capacity Processors: Overloading is detrimental! Tactics to assist: chunking assists storage and recall.
  • Retroactive Inhibition: One type of loop should not be taught until the other has been thoroughly learnt Proactive Inhibition: Learning a second language interferes with learning new language. However it should be noted that there are often times when one learning experience supports another. For instance, the learning of a first programming language can greatly assist in the learning of a second programming language (retroactive facilitation). At the same time as the learning of the second language can enrich the understanding of the first (proactive facilitation). The key is providing adequate and well timed learning opportunities for students to compare and contrast concepts so that they understand the differences and appreciate the similarities of ideas being presented – maximising facilitation and reducing the possibility of inhibition.
  • Different forms of scaffolding may be appropriate in different circumstances. Landa’s (1976) Algo-Heuristic Theory identifies classes of problems where it is necessary to execute operations in a well structured, predefined sequence (algorithmic problems) and also classes of problems for which precise and unambiguous sets of instructions cannot be formulated (creative or heuristic problems). Landa (1976) also describes semi-algorithmic and semi-heuristic problems, processes and instructions, the point being that the level of prescription in the scaffolding needs to be appropriately matched to the problem. A key idea behind Landa’s theory (and scaffolding generally) is that students ought to be taught not only subject matter but the underlying algorithms and heuristics of experts as well. An extension of this is that they also have to be encouraged to create algorithms and heuristics on their own, which introduces them to the cognitive operations, algorithms and heuristics which make up general methods of thinking; a rich exercise in metacognition [1] . [1] Metacognition can be defined as “knowledge about one’s own learning, or knowing how to learn and monitoring one’s own learning behaviours to determine the degree of progress and strategies needed for accomplishing instructional goals.” (Slavin, 1994, p. 232)
  • Rist (1989) identifies that only once a relevant problem solving schema has been developed can students perform forward problem solving approaches from problem statement to goal solution. In the absence of such a forward moving plan, students must go about creating (a simplified) plan in a backwards fashion, starting with the goal solution. Only once a programmer has developed the relevant problem solving schema for a situation can they retrieve the plan to efficiently solve other problems. In order to assist students to develop problem solving Porter and Calder (2004) have suggested a pattern based support mechanism in the form of a control flow diagram. Interestingly pilot tests have proved unsuccessful. Once again a case of CS trying to use the abstracted model before students are ready.
  • 2. McGill and Volet (1997) propose a conceptual framework for analysing computing thinking. Model integrates programming knowledges and cognitive psychology knowledges diagnosing deficiencies in the programming knowledge Framework for comprehensive instructional design To demonstrate these benefits, McGill and Volet (1997) apply this framework to a previous experimental study (Volet, 1991). Their application allowed them to identify that Volet’s (1991) approach of an explicit planning strategy for algorithm development in conjunction with modelling, coaching, and collaborative-learning activities had significantly positive effects on students’ procedural-conceptual and strategic/conditional and procedural-syntactic knowledge but not upon students’ declarative-syntactic and declarative-conceptual knowledge [1] . [1] It was argued that students' development of declarative-syntactic and declarative-conceptual knowledge were not significantly affected because these are skills that students can learn via independent study of written materials and is not dependent on the educational approach.
  • Cognitive emphasis. Ie cognitive processes and cognitive models. Several cognitive processes and models in literature, 3 that are relevant across sub-domains will be presented here. 1. Ahanori (2000) presents a computing specific model that describes the level of student abstraction: Programming Language oriented thinking (low level abstraction, ‘action’ based) to Program Oriented Thinking (‘process’ based, where reference to a programming language is required, but not necessarily a specific one) to Programming-Free Thinking (high level abstraction, ‘object’ based).
  • 3. Pervasive and applicable to all computing subjects. novice programmers to overcome comprehension problems caused by the hidden, unmarked actions and side effects of visually unmarked processes the notional machine needs to be simple and supported with some kind of concrete tool which allows the model to be observed. Verified. Eg Mayer, 1989.
  • Many different studies addressing this topic, huge array of factors considered. Brief summaries of some studies presented here.
  • Alan & Kolesar found that 53% of students who completed CS0 received an A grade in CS1 as compared to only 26% A grades for students who undertook a previous course in BASIC
  • Alan & Kolesar found that 53% of students who completed CS0 received an A grade in CS1 as compared to only 26% A grades for students who undertook a previous course in BASIC
  • Further to Kurland’s comments: expertise “must rest on a foundation of knowledge about computers, a programming language or languages, programming tools and resources, and ideally theory and formal methods” (Robins et al, 2003) Fay and Mayer “syntax-independent access theory” that planning (‘schematic’ and ‘strategic’) knowledge in programming can be learned independently of the ‘syntactic’ and ‘semantic’ knowledge. 10 years to develop true expertise
  • Difficulty for novices is that all of these are addressed simultaneously -> isolating domains provides assistance
  • Natural Language Reasoning - where a student's natural language understanding of a term or concept is incorrectly substituted for a programming language construct Independent Computer Reasoning - where students assume that the computer will automatically take actions or that it will understand what to do Alternative and incomplete reasoning - where an alternative model of reasoning is applied to the programming context (such as algebraic reasoning or mechanical process reasoning from a physical domain) or a programming language concept is incompletely formed. Operational Errors easier to identify, conceptions more important to address
  • Novices and experts have similar SSK – people are used to providing algorithmic descriptions of how to solve problems from their every day life. However novices only possess fragmented PK, which leads them to create speculative solutions (or ‘patches’) to overcome stumbling blocks (or ‘impasses’).
  • Ultimately lecturer must use their expertise to choose most appropriate approach. Eg introduce concepts through lectures or labs? Haberman and Kolikants’ (2001) research indicated that students who were first introduced to concepts using their tailored laboratory activities performed significantly better on a task involving the prediction of output for small sequences of Pascal code than those who first learnt the concepts in the classroom.
  • In an experiment involving 44 beginning computer science pupils, Hendrix et al (2000) found that using Graphical Representation of Algorithms, Structures and Processes (GRASP) software to augment code with a Control Structure Diagram allowed students to more rapidly and correctly respond to test items relating to fundamental control flow of the program. Applin (2001) conducted an experiment involving 42 first year students enrolled in an introductory programming course that investigated the effect of setting assignments that requiring students to write specialised modules that are part of well developed prewritten programs rather than writing programs from scratch. The rationale for such a methodology is drawn from English language and foreign language classrooms that posit ‘the more students read the better they will write’. The analogy for Computer Science Education is that being exposed to well-written programs would cause students to write higher quality programs by the end of the course. Applin’s (2001) study confirmed that providing this scaffolding significantly improved student grades in the final examination.
  • While beginners who were offered object diagram support did have higher average performance and those who used object diagrams in follow up tests did have a higher average score as a group compared to those who didn’t, the results were not significant at a 5% level. Also, Thomas et al. (2004) found that in future tests object diagrams were used less by students who entered the course with no formal programming background in a follow up assessment that did not contain object diagram support, which may indicate their lack of perceived merit. In fact, for students who did have a background in programming and constructed their object diagrams in this follow up assessment actually recorded a lower average score than those who did not (though not significantly so). Offering students choice is important when deploying scaffolding.
  • ‘ algo-heuristic’ approaches, which deconstruct the conscious and especially unconscious mental processes that underlie expert learning and thinking in any domain Breeze virtual classrooms Screen recording of demonstrations
  • Not every stage is required, but provides a thorough sieve for instructors to use as a checklist. Rist that suggests “programming expertise is partly represented by a knowledge base of pattern-like chunks, which consist of problems, their solutions and associated information. Given a problem, the expert programmer can retrieve an appropriate solution schema from his memory.”
  • Metacognition can be defined as “knowledge about one’s own learning, or knowing how to learn and monitoring one’s own learning behaviours to determine the degree of progress and strategies needed for accomplishing instructional goals.” (Slavin, 1994, p. 232)
  • In order to develop cognitive flexibility, Spiro, Feltovitch and Coulson stress the importance of constructed knowledge. Learners need to be encouraged to reformulate subject matter into their own representations. This allows students to develop an appreciation of the interconnectedness of complex domains as opposed to trying to compartmentalise the subject matter.
  • CFT focuses on the nature of learning in complex and ill-structured domains. In his research Mendes applied Cognitive Flexibility Theory to teach the Hypermedia and Multimedia half of a Web Engineering course over the years 2000 to 2003. He reports a high level of achievement as a result of using these techniques to instruction. However, in his research he did not experimentally compare the cohort to a control group, which poses a potential area for further investigation.
  • Robins et al. (2003, p. 156) describes recent shifts in educational practices which are tending towards “a focus not on the instructor teaching, but on the student learning, and effective communication between teacher and student. The goal is to foster ‘deep’ learning of principles and skills, and to create independent, reflective, life-long learners. The methods involve clearly stated course goals and objectives, stimulating the students’ interest and involvement with the course, actively engaging students with the course material, and appropriate assessment and feedback.”
  • The final area of instructional design that will briefly be addressed in this section is that of course structure. Research by Bower and Richards (2004) found that the majority of student difficulties reported by students in an Introduction to Object Oriented Programming Unit related to how the course was structured rather than the actual material covered or the lecturers capabilities. For scope and sequencing refer to Reigeluth, 1980.
  • This section presents accounts of successful approaches to teaching computing that build upon the theoretical design elements forementioned.
  • Discovery learning: faculty pose critical thinking questions and then students are encouraged to discover the answer for themselves, engendering a deeper understanding of concepts and helping them become life-long-learners. About process education: While no formal scientific comparison to standard approaches is made, Smith (1996) points out that “Employers seek individuals who excel as: i) quick learners, ii) critical thinkers, iii) problem solvers, iv) communicators, v) professionals knowledgeable in their field, vi) team players, vii) self starters and viii) creative thinkers” (p 165). His approach addresses all of these qualities. A diametric shift in teacher mindset and great care with the logistics of implementation would be required for a unit to implemented using a Process Education approach, but the outcomes if successful appear fruitful.
  • And the list can go on and on….
  • There are many implications for teaching and learning that can be drawn from this review. Rather than summarise them in this section the process of drawing conclusions will be left to the reader (a task in higher order thinking!) Advantages of Conducting research: Forces academics to drill down into the teaching process and deconstruct what they are doing Allows action to be based upon scientific evidence rather than basing practices on “folk pedagogy”. Relatively undeveloped field – scope to conduct valuable research Advantages of reviewing literature: provide a better understanding of the learner, their cognitive processes and how to form them provide inspiration for instructional approaches provide checklists (sieves) with which to compare instructional design Buck and Stucki (2000) similarly advise of the danger of teaching according to one’s own understanding, without regard to established models of cognitive development. They note that the many teachers have “an inclination to recapitulate the systems development process because that is the order in which we have learned to apply our craft” (p.76). Brent Wilson from the University of Colorado encapsulates this in his paper “The Postmodern Paradigm” (1998) w here he recommends not throwing away the taxonomies entirely but rather to admit the tentativeness of any conceptual scheme applied to content and thus recommends offering holistic, information-rich experiences, that are flexible enough to integrate opportunities for mastery of un-analysed content. This is sensible advice. With such a myriad of data and recommendations from such an experienced body of Education professionals it is easy for lecturers to fall into the role of “information assimilator”. But let me challenge you all to be “accommodators”! All of the theories presented are merely tools and in no way replace the magic of inspiring students, of positive energy, and of exiting activities. Rasala (2000) points out that the delight of construction, the satisfaction of expanding personal thinking abilities, the possibility of creating beautiful graphics and powerful applications are the dimensions that excite Computer Science students and attract them to the field in the first place. While educational theories are useful for teachers to understand, it is important not to forget that when distilled to its base elements, the primary goal of Computer Science Education is to participate in the joy of learning. With this as a driving force behind our motivation to educate, success is inevitable.
  • Bower Computer Science Education Literature Review Csta

    1. 1. Teaching and Learning Computing A Review of the Literature Matt Bower [email_address]
    2. 2. What this discussion covers… <ul><li>Cognitive Processes and Models in Computing Thinking </li></ul><ul><li>What types of students are more likely to succeed in CS? </li></ul><ul><li>Novices versus Experts </li></ul><ul><li>Identifying Student Difficulties </li></ul><ul><li>Elements of Instructional Design </li></ul><ul><li>Tying it all together </li></ul>
    3. 3. Some General Educational Theories <ul><li>Constructivism : </li></ul><ul><ul><li>“ learners must individually discover and transform complex information, checking new information against old rules and revising them when they no longer work” (Slavin, 1994, p. 199). </li></ul></ul><ul><ul><li>“ constructivist classrooms are often viewed as problem-solving environments manifest through three C’s: context, construction and collaboration”. (Murnane and Warner, 2001) </li></ul></ul><ul><ul><li>With constructivism the learning process becomes one of: </li></ul></ul><ul><ul><ul><li>assimilation – fitting new objects into existing schemes by which we view our world (classification, abstraction) </li></ul></ul></ul><ul><ul><ul><li>accommodation – adjusting existing schemes to explain the way new objects relate to our world (cognitive disequalibrium) </li></ul></ul></ul>
    4. 4. General Educational Theories <ul><li>Information Processing Theories </li></ul><ul><ul><li>Requirements of meaningful learning: </li></ul></ul><ul><ul><ul><li>reception – the learner must pay attention to the input in order for it to enter short term memory </li></ul></ul></ul><ul><ul><ul><li>availability – the learner must possess prerequisite knowledge in memory in order to assimilate new concepts </li></ul></ul></ul><ul><ul><ul><li>activation – the learner must actively use the new information in conjunction with prerequisite knowledge in order to connect the new material to existing schema. (Mayer, 1989) </li></ul></ul></ul>Environment stimulus Sensory Perception Short Term Memory Long Term Memory response
    5. 5. General Educational Theories <ul><li>Information Processing Theories (cont) </li></ul><ul><ul><li>Levels-of-Processing Theory – the recall of a stimulus from memory is dependent upon the amount of mental processing that it receives </li></ul></ul><ul><ul><li>Dual Code Theory of Memory – information that is presented both visually and verbally is recalled better than information represented using only one medium </li></ul></ul><ul><ul><li>Transfer-Appropriate Processing – the strength and durability of memory depends on the similarity between the conditions under which the material was learned and those under which it is called for </li></ul></ul><ul><ul><li>Parallel Distributed Processing – information is processed simultaneously with different parts of the memory system (sensory register, short term memory and long term memory) operating on the same information at the same time </li></ul></ul><ul><ul><li>Limited Capacity Processors – optimal learning occurs when the limits of people’s information processing capabilities are not exceeded. </li></ul></ul>
    6. 6. General Educational Theories <ul><li>Information Processing Theories (cont) </li></ul><ul><ul><li>Types of interference: </li></ul></ul><ul><ul><ul><li>retroactive inhibition – when “previously learned information is lost because it is mixed up with new and somewhat similar information” </li></ul></ul></ul><ul><ul><ul><li>proactive inhibition - when “learning one set of information interferes with learning of later information” (Slavin, 1994) </li></ul></ul></ul>
    7. 7. General Educational Theories <ul><li>Scaffolding </li></ul><ul><ul><li>Vygotsky (1978) identified the ‘Zone of Proximal Development’ as those tasks that a learner cannot complete unassisted but can complete with some support. </li></ul></ul><ul><ul><li>‘ Scaffolding’ is the provision of high level support (cues, heuristics, hints, examples) during initial phases of learning and gradually remove that support as the learner grows in competence. </li></ul></ul>
    8. 8. <ul><li>Bloom’s Taxonomy applied to the computing domain </li></ul><ul><li>(Table taken from Porter and Calder, 2004) </li></ul>Processes and Models in Computing Thinking 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
    9. 9. Processes and Models in Computing Thinking <ul><li>A taxonomy of computing processes (Bower, 2008) </li></ul>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
    10. 10. Processes and Models in Computing Thinking <ul><li>A two dimensional adaptation of Anderson & Krathwohls’ model for computing (Fuller et al, 2007) </li></ul>Interpreting Create Apply None Remember Understand Analyse Evaluate
    11. 11. Processes and Models in Computing Thinking <ul><li>McGill and Volet (1997) </li></ul>Declarative Knowledge Procedural Knowledge Syntactic Knowledge 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. Conceptual Knowledge 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.
    12. 12. Processes and Models in Computing Thinking <ul><li>Ahanori (2000) presents an application of the Actions-Process-Object Model to abstraction in learning to program. </li></ul><ul><li>Recommends hiding data structure implementations initially so students can experiment with the data structure operations – providing an abstraction barrier. </li></ul>Low Abstraction Level High Programming-Language Oriented Thinking Programming Oriented Thinking Program-Free Thinking Programming Context Thinking
    13. 13. Processes and Models in Computing Thinking <ul><li>Notional Machine (du Boulay et al. 1989) </li></ul><ul><ul><li>Visability through commentary </li></ul></ul><ul><ul><li>Simplicity through </li></ul></ul><ul><ul><ul><li>functional simplicity (operations require minimal instructions to specify) </li></ul></ul></ul><ul><ul><ul><li>logical simplicity (problems posed to students are of contained scale) </li></ul></ul></ul><ul><ul><ul><li>syntactic simplicity (the rules for writing instructions are accessible and uniform). </li></ul></ul></ul>
    14. 14. Student attributes leading to succeed in CS <ul><li>Wilson and Shrock (2001): </li></ul><ul><ul><ul><li>comfort level in the course </li></ul></ul></ul><ul><ul><ul><li>math background </li></ul></ul></ul><ul><ul><ul><li>attribution of success to luck </li></ul></ul></ul><ul><ul><ul><li>formal class in programming </li></ul></ul></ul><ul><ul><ul><li>history of computer games (-ve) </li></ul></ul></ul><ul><li>+ve effect of prior programming course supported </li></ul><ul><ul><ul><li>University courses better than High School (Morrison & Newman, 2001) </li></ul></ul></ul><ul><ul><ul><li>More prior languages implies greater effect (Markam, 2000) </li></ul></ul></ul>
    15. 15. Student attributes leading to succeed in CS <ul><li>Targetted prior course in problem solving more beneficial than prior programming course (Alan & Kolesar, 1996) </li></ul><ul><li>Mathematical-logical ability predicts success in computer science (Byrne & Lyon, 2001; Alstrum, 1996). </li></ul><ul><li>Mayer et al. (1996): </li></ul><ul><ul><ul><li>logical reasoning ability and visual ability were predictive </li></ul></ul></ul><ul><ul><ul><li>general verbal ability and arithmetic computation ability were not </li></ul></ul></ul>
    16. 16. Student attributes leading to succeed in CS <ul><li>Learning Styles </li></ul><ul><ul><li>Felder-Silverman learning styles analysed by Thomas et al. (2002): </li></ul></ul><ul><ul><ul><li>reflective learners (learn through independent reflection) outperformed active learners (learn by experimentation) </li></ul></ul></ul><ul><ul><ul><li>verbal learners (prefer written or spoken instruction) scored higher than visual learners (prefer pictures and diagrams). </li></ul></ul></ul><ul><ul><li>Ross et al. (2001) found students with an ordering preference for ‘sequential’ learning outperformed those with a ‘random’ learning style </li></ul></ul>
    17. 17. Student attributes leading to succeed in CS <ul><li>Field Dependence/Independence </li></ul><ul><ul><ul><li>Field Independent thinking: &quot;perceiving part of a field as discrete from its surrounds … perceiving analytically” (Witkin et al., 1977) </li></ul></ul></ul><ul><ul><ul><li>Some reachers have concluded Field Independent thinkers perform better in computer science, especially in design tasks (ref. Chou, 2003; Gibbs, 2000) </li></ul></ul></ul><ul><li>Perkins et al. (1989) identified </li></ul><ul><ul><ul><li>‘ movers’, who use feedback about errors effectively and keep trying, experimenting, and modifying their code </li></ul></ul></ul><ul><ul><ul><li>‘ stoppers’, who are frustrated by mistakes/errors and when confronted with a problem are likely to simply stop </li></ul></ul></ul><ul><ul><ul><li>Movers (but not extreme movers) outperform stoppers </li></ul></ul></ul>
    18. 18. Novices versus Experts <ul><li>Attributes of novice programmers (Winslow, 1996) : </li></ul><ul><ul><li>surface, fragile and superficially organised knowledge </li></ul></ul><ul><ul><li>lack of detailed mental models </li></ul></ul><ul><ul><li>failure to apply relevant knowledge or appropriate problem solving strategies </li></ul></ul><ul><ul><li>approach programming ‘line-by-line’ rather than using meaningful program chunks or structures </li></ul></ul><ul><ul><li>lack planning and testing skills </li></ul></ul>
    19. 19. Novices Versus Experts <ul><li>Attributes of Experts: </li></ul><ul><ul><li>efficiently organised and specialised knowledge schemas </li></ul></ul><ul><ul><li>organise knowledge according to functional characteristics (eg, the nature of underlying algorithms) rather than superficial details (eg, language syntax) </li></ul></ul><ul><ul><li>draw upon both general problem solving strategies (such as divide and conquer) as well as specialised strategies </li></ul></ul><ul><ul><li>use specialist schemas and a top-down, breadth-first approaches in order to efficiently decompose and understand programs </li></ul></ul><ul><ul><li>flexible in their approach to comprehending programs and willingness to abandon questionable hypotheses. </li></ul></ul><ul><ul><ul><li>(Mayrhauser & Vans, 1994, cited in Robins et al, 2003) </li></ul></ul></ul>
    20. 20. Novices versus Experts <ul><li>The catch… </li></ul><ul><ul><li>development of expertise requires novices to abstract their knowledge beyond the local, concrete representations they hold, versus… </li></ul></ul><ul><ul><li>“ the thinking skills we hope to develop and transfer out of programming depend upon student attaining certain proficiencies in programming” (Kurland et al, 1989) </li></ul></ul><ul><li>Introductory programming courses focus on ‘programming knowledge’ far more than they focus on ‘programming strategies’. (Robins et al, 2003) </li></ul><ul><li>evidence for &quot;syntax-independent access theory&quot; of learning computing (Fay & Mayer, 1994) </li></ul>
    21. 21. Identifying Student Difficulties <ul><li>Five overlapping and inextricably linked sources of difficulty when learning programming: </li></ul><ul><ul><ul><li>general orientation (what programs are for and what can be done with them) </li></ul></ul></ul><ul><ul><ul><li>the notional machine (a model of the computer as it relates to executing programs) </li></ul></ul></ul><ul><ul><ul><li>notation (the syntax and semantics of a particular programming language) </li></ul></ul></ul><ul><ul><ul><li>structures (schemas and plans) </li></ul></ul></ul><ul><ul><ul><li>pragmatics (the skills of planning, developing, testing, debugging and so on). </li></ul></ul></ul><ul><li> Du Boulay (1989) </li></ul>
    22. 22. Identifying Student Difficulties <ul><li>&quot;HCI conception“ model of student errors </li></ul>(Rath & Brown, 1995) Syntactic Error Algorithmic Error Natural Language Reasoning Independent Computer Reasoning Operational Errors Conceptions Alternative and Incomplete Reasoning
    23. 23. Identifying Student Difficulties <ul><li>Various research has found: </li></ul><ul><ul><li>program planning rather than specific language features presents the main source of difficulty to students for example, (Winslow, 1996; Rist, 1995) </li></ul></ul><ul><ul><li>Confounding between Step-by-Step natural language Knowledge (SSK) and Programming Knowledge (PK) is the major source of novice programming difficulty, accounting for between 47% and 67% of errors, depending on the domain. (Bonar & Soloway, 1989) </li></ul></ul><ul><ul><li>Mathematical-logical reasoning causes more student difficulty than other aspects of computer science (Alstrum, 1996) </li></ul></ul>
    24. 24. Identifying Student Difficulties <ul><li>Detailed deconstruction of plan composition difficulties: </li></ul><ul><ul><li>Summarisation problem - only the primary function of a plan is considered, implications and secondary aspects may be ignored. </li></ul></ul><ul><ul><li>Optimisation problem - optimisation may be attempted inappropriately. </li></ul></ul><ul><ul><li>Previous-experience problem - prior experience may be applied inappropriately </li></ul></ul><ul><ul><li>Specialisation problem - abstract plans may not be adapted to specific situations. </li></ul></ul><ul><ul><li>Natural-language problem - inappropriate analogies may be drawn from natural language. </li></ul></ul><ul><ul><li>Interpretation problem - ‘implicit specification’ can be left out, or ‘filled in’ only when appropriate plans can be easily retrieved. </li></ul></ul><ul><ul><li>Boundary problem - when adapting a plan to specific situations boundary points may be set inappropriately. </li></ul></ul><ul><ul><li>Unexpected cases problem - uncommon, unlikely, and boundary cases may not be considered. </li></ul></ul><ul><ul><li>Cognitive load problem - minor but significant parts of plans may be omitted, or plan interactions overlooked. (Spohrer & Soloway, 1989) </li></ul></ul>
    25. 25. Instructional Design (ID) <ul><li>“ Instructional Design” is the term used to describe the process of planning and constructing educational resources and activities to promote learning </li></ul><ul><li>Some elements of instructional design: </li></ul><ul><ul><li>Scaffolding </li></ul></ul><ul><ul><li>Teaching Problem Solving </li></ul></ul><ul><ul><li>Theory Into Practice </li></ul></ul>
    26. 26. ID - Introduce new concepts <ul><li>Gagne’s (1985) Conditions of Learning Model for unfamiliar concepts: </li></ul><ul><li>(1) gaining attention (reception) (2) informing learners of the objective (expectancy) (3) stimulating recall of prior learning (retrieval) (4) presenting the stimulus (selective perception) (5) providing learning guidance (semantic encoding) (6) eliciting performance (responding) (7) providing feedback (reinforcement) (8) assessing performance (retrieval) (9) enhancing retention and transfer (generalization) </li></ul><ul><li>Through to Carroll’s Minimalism for familiar domains/self-directed learners: “minimising the amount of reading and other passive forms of training by allowing users to fill in the gaps themselves” </li></ul>
    27. 27. ID - Scaffolding <ul><li>Myriad of approaches to scaffolding </li></ul><ul><li>Research approach to investigating efficacy reveals that it can be effective… </li></ul>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)
    28. 28. ID - Scaffolding <ul><li>Or ineffective… </li></ul>Partially completed Object Diagram and Question (Thomas et al., 2004, p. 251)
    29. 29. ID – Behaviour Modelling <ul><li>Skilled programmers need to be fast adapters, inquisitive, critical thinkers, realistic and in many respects jack-of-all-trades (Hunt & Thomas, 2000) </li></ul><ul><li>“ Modelling” offers Computer Science educators the capacity to impart attitudes, thought processes, problem solving techniques and mechanical skills. </li></ul><ul><li>Expert Modelling offers students a “Cognitive Apprenticeship” through which these behaviours can be portrayed and subsequently adopted by learners (Collins et al, 1991) </li></ul><ul><li>Commentary based ‘algo-heuristic’ approaches are effective in supporting expert modelling (Landa, 1976) </li></ul><ul><li>Research supports the efficacy of expert modelling approaches (eg, Chau, 2001) </li></ul>
    30. 30. ID - Teaching problem solving <ul><li>Gagne’s (1985) hierarchy of psychological capabilities for problem solving: </li></ul><ul><ul><ul><li>discrimination learning (distinguishing between various objects) </li></ul></ul></ul><ul><ul><ul><li>concept learning (objects matched to concept classes) </li></ul></ul></ul><ul><ul><ul><li>defined concepts (learning classification rules or definitions) </li></ul></ul></ul><ul><ul><ul><li>rule learning (responding to classes or relationships), and </li></ul></ul></ul><ul><ul><ul><li>higher order rule learning (combining rules in order to solve a problem). </li></ul></ul></ul><ul><ul><li>Students must master lower level prerequisite skills before they can advance to the next higher level </li></ul></ul>
    31. 31. ID – Teaching Problem Solving <ul><li>An heuristic for teaching problem solving: </li></ul><ul><ul><li>Providing a representative example of a type of problem </li></ul></ul><ul><ul><li>Providing a definition and description </li></ul></ul><ul><ul><li>Specifying a pattern name </li></ul></ul><ul><ul><li>Identifying similar patterns and similar problems </li></ul></ul><ul><ul><li>Comparing to other types of solutions </li></ul></ul><ul><ul><li>Identifying typical uses of the pattern </li></ul></ul><ul><ul><li>Highlighting common mistakes and difficulties </li></ul></ul><ul><ul><li>Pattern composing (for problems whose solutions may be composed of several problems) </li></ul></ul><ul><ul><li>Practicing the modification of pattern related solutions to solve alternative problems. </li></ul></ul><ul><ul><li>(Muller, Haberman & Averbuch, 2004) </li></ul></ul>
    32. 32. ID – Teaching Problem Solving <ul><li>Schonfield’s (1985) problem solving model in the mathematical domain: </li></ul><ul><ul><ul><li>Resources (such as axioms, formulae, and standard procedures) </li></ul></ul></ul><ul><ul><ul><li>Hueristics (strategies such as inductive search, analogy and backward reasoning) </li></ul></ul></ul><ul><ul><ul><li>Control (monitoring decisions taken by the problem solver during the problem solving process). </li></ul></ul></ul><ul><ul><li>Ginat (2001) proposes ‘self-explanation’ activities to develop control skills metacognitively </li></ul></ul>
    33. 33. ID – Teaching Problem Solving <ul><li>Making strategies explicit (Ginat, 2002) </li></ul><ul><ul><li>(Example Problem: Determine an efficient approach to deciding whether a particular number makes up the 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 number 5 makes up the majority.) </li></ul></ul><ul><ul><li>‘ Top-down’ solution: count the frequency of numbers stored in a data structure, calculate the maximum frequencies, count the number of elements in the list, determine if the maximum frequency is greater than half the number of elements. </li></ul></ul><ul><ul><li>‘ Range Decomposition’ solution: find the majority element of subsets of the data and then apply rules based on these results to determine the overall majority element, if it exists. </li></ul></ul>
    34. 34. ID – Teaching Problem Solving <ul><li>(continued…) Making strategies explicit (Ginat, 2002) </li></ul><ul><ul><li>(Problem: Determine an efficient approach to deciding 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 number 5 makes up the majority. </li></ul></ul><ul><ul><li>‘ Element Decomposition’ solution: convert the integers into binary numbers and determine the majority element for each binary digit. Then a second linear pass of the original integer set would determine if the number composed of the majority elements from the binary digits was in fact a majority element. </li></ul></ul><ul><ul><li>‘ Inductive Decomposition’ solution: remove pairs of different elements from the set until there is only one (repeated) number left, or there is a set of three different numbers. </li></ul></ul>
    35. 35. ID – Developing Critical Thinking <ul><li>Spiro, Feltovitch and Coulsons’ (1988) Cognitive Flexibility Theory: “the ability to spontaneously restructure one's knowledge, in many ways, in adaptive response to radically changing situational demands...This is a function of both the way knowledge is represented (e.g., along multiple rather single conceptual dimensions) and the processes that operate on those mental representations (e.g., processes of schema assembly rather than intact schema retrieval).“ </li></ul>
    36. 36. ID – Developing Critical Thinking <ul><li>Basic principles of CFT: </li></ul><ul><ul><li>Instruction should reflect the complexity that faces industry practitioners rather than treating domain problems as simple linear decision making processes. This emphasises inter-connectedness and avoids oversimplification. </li></ul></ul><ul><ul><li>Instruction should be based on multiple cases to allow learners to abstract between examples. </li></ul></ul><ul><ul><li>Cases should be context-dependent to allow learners to acquire a deeper appreciation of the subtleties affecting decision making and more easily apply expertise in practice. </li></ul></ul><ul><li>Mendes (2003) reports success applying CFT for teaching Web Engineering. </li></ul>
    37. 37. ID – Promoting Deep Learning <ul><li>&quot;... we learn: 10% of what we read 20% of what we hear 30% of what we see 50% of what we both see and hear 70% of what we discuss 80% of what we experience 95% of what we teach someone else.“ </li></ul><ul><li>(Glasser, 1990) </li></ul>
    38. 38. ID - Promoting Deep Learning <ul><li>Knowles’ (1984) Andragogic theory of adult learning: </li></ul><ul><ul><ul><li>Effective adult learning must be relevancy oriented. </li></ul></ul></ul><ul><ul><ul><li>Adults are self directed learners and need to be free to control their learning experience. </li></ul></ul></ul><ul><ul><ul><li>Experience is the main foundation for learning activities for adults. </li></ul></ul></ul><ul><ul><ul><li>Adults are practically oriented learners. </li></ul></ul></ul><ul><ul><ul><li>Adult learners are goal oriented. </li></ul></ul></ul><ul><ul><li>Andragogy implies </li></ul></ul><ul><ul><ul><li>designing instructional approaches that are task-oriented as opposed to involving direct memorisation, and </li></ul></ul></ul><ul><ul><ul><li>establishing a problem-centred rather than content-oriented focus to courseware. </li></ul></ul></ul>
    39. 39. ID – Promoting Deep Learning <ul><li>Skemp (1976): </li></ul><ul><ul><li>‘ problem-centred’ rather than ‘answer-centred’ </li></ul></ul><ul><ul><li>allows learners to develop a ‘relational’ understanding (knowing both what to do and why) as opposed to an ‘instrumental’ understanding (rules without reasons) </li></ul></ul><ul><li>Carroll’s (1998) Minimalist approach to ID: </li></ul><ul><ul><li>deployment of project based learning as quickly as possible </li></ul></ul><ul><ul><li>relevant activities to promote active engagement </li></ul></ul><ul><ul><li>mistakes as providing the basis for rich learning activities </li></ul></ul>
    40. 40. ID - Scope, Sequencing and Spacing <ul><li>Scope: the amount of novel conceptual material introduced in a learning episode </li></ul><ul><ul><li>must take information processing capacities and level of ability of students into account </li></ul></ul><ul><li>Sequencing: </li></ul><ul><ul><li>Topical (forsters constructivism) </li></ul></ul><ul><ul><li>Spiralling (fosters abstraction) </li></ul></ul><ul><li>Spacing: spreading out instruction and activities in smaller chunks over a longer time frame </li></ul><ul><ul><li>“ one of the most dependable and replicable phenomena in experimental psychology …with little evidence of widespread application” (Dempster, 1998) </li></ul></ul>
    41. 41. Theory Into Practice <ul><li>Sydney University has experimented with Problem Based Learning approaches to teaching programming Kay et al., 2000) </li></ul><ul><ul><li>open ended, authentic, substantial problems which drive learning </li></ul></ul><ul><ul><li>explicit teaching and assessment of generic and metacognitive skills, and </li></ul></ul><ul><ul><li>collaborative learning in groups. </li></ul></ul><ul><ul><li>Example: “implementing a supermarket checkout queue simulator” used as context for </li></ul></ul><ul><ul><ul><li>develop metacognitive (steps taken to solve the problem, delegation of time) </li></ul></ul></ul><ul><ul><ul><li>subject of groupwork (externalising knowledge, developing collaborative skills) </li></ul></ul></ul><ul><ul><li>mean examination mark improved from 63% to 91% over the two year period, increased levels of student satisfaction. </li></ul></ul>
    42. 42. Theory Into Practice <ul><li>constructivist learning through groupwork analysis tasks: </li></ul><ul><ul><li>Code walkthroughs </li></ul></ul><ul><ul><li>Group code writing tasks </li></ul></ul><ul><ul><li>Group code debugging tasks </li></ul></ul><ul><ul><li>Lecture note reconstruction tasks (students listen to a mini-lecture, attempt to construct a summary by memory and then meet in groups to improve their summaries) </li></ul></ul><ul><li>Van Gorp and Grissom (2001) </li></ul>
    43. 43. Theory Into Practice <ul><li>Synthesising Techniques… </li></ul><ul><ul><li>A Data Structures Course: </li></ul></ul><ul><ul><ul><li>Bloom’s taxonomy to the setting of lesson objectives </li></ul></ul></ul><ul><ul><ul><li>Kolb Learning Cycle and Felder’s Learning Styles to determine instructional approach </li></ul></ul></ul><ul><ul><ul><li>Cooperative Learning principles to drive group-work assignments. ( Howard, Carver & Lane, 1996) </li></ul></ul></ul><ul><ul><li>“ Process Education” approach: </li></ul></ul><ul><ul><ul><li>closed computer laboratory sessions </li></ul></ul></ul><ul><ul><ul><li>team projects </li></ul></ul></ul><ul><ul><ul><li>journals, reports, presentations </li></ul></ul></ul><ul><ul><ul><li>discovery learning, developing life long learners </li></ul></ul></ul><ul><ul><ul><li>flexible teacher role (leader, assessor, facilitator, evaluator) </li></ul></ul></ul><ul><ul><ul><li>(Smith, 1996) </li></ul></ul></ul>
    44. 44. Theory Into Practice <ul><li>And yet other principles: </li></ul><ul><ul><li>real time data across a variety of sciences as a way to improve motivation and interest (Tesser et al, 2000) </li></ul></ul><ul><ul><li>Pre-quizzes as ‘Advanced Organisers’ to bring required prerequisite knowledge to working memory, provide distributed practice and promote automaticity </li></ul></ul>
    45. 45. Wrap Up <ul><li>Numerous benefits of research approaches to Computer Science Education </li></ul><ul><li>However, designing over-systematised approaches to instruction that are based on research findings alone can be sub-optimal </li></ul><ul><li>Embrace the challenge and richness of theoretically grounded educational and research! </li></ul>
    46. 46. Questions? <ul><li>[email_address] </li></ul>
    47. 47. References <ul><li>Aharoni, D. (2000) Cogito, Ergo sum! cognitive processes of students dealing with data structures. Proceedings of the thirty-first SIGCSE technical symposium on Computer science education , p. 26-30. </li></ul><ul><li>Allan, V. H. and Kolesar, M. V. (1996) Teaching Computer Science: A Problem Solving Approach that Works. In, Call of the North, NECC '96. Proceedings of the Annual National Educational Computing Conference (17th, Minneapolis, Minnesota, June 11-13, 1996) , p. 2-9. </li></ul><ul><li>Almstrum, V. L. (1996) Investigating Student Difficulties with Mathematical Logic. In Teaching and Learning Formal Methods , (Eds, Dean, C. N. and Hinchey, M. G.) London: Academic Press, p. 131-160. </li></ul><ul><li>Applin, A. G. (2001) Second language acquisition and CS1. In, Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education , p. 174-178. </li></ul><ul><li>Bower, M. (2008 ). A Taxonomy of Task Types in Computing. Proceedings of the 13th annual SIGCSE conference on Innovation and technology in computer science education (ITiCSE08), pp. 281-285, Madrid, Spain: ACM Press </li></ul><ul><li>Bonar, J. and Soloway, E. (1989) Preprogramming Knowledge: A Major Source of Misconceptions in Novice Programmers. In Studying the Novice Programmer , (Eds, Soloway, E. and Spoher, J. C.) Hillsdale, NJ: Lawrence Erlbaum, p. 325-353. </li></ul><ul><li>Byrne, P. and Lyons, G. (2001) The effect of student attributes on success in programming. SIGCSE Bull., 33(3), p. 49-52. </li></ul><ul><li>Chou, H. W. (2001) Influences of cognitive style and training method on training effectiveness. Computers & Education, 37(1). </li></ul><ul><li>du Boulay, B., O'Shea, T. and Monk, J. (1989) The black box inside the glass box: presenting computing concepts to novices. In Studying the Novice Programmer , (Eds, Soloway, E. and Spoher, J. C.) Hillsdale, NJ: Lawrence Erlbaum, p. 431-446. </li></ul><ul><li>Fay, A. L. and Mayer, R. E. (1994) Benefits of Teaching Design Skills Before Teaching Logo Computer Programming: Evidence for Syntax Independent Learning. Journal of Educational Computing Research, v11(3), p. 187-210. </li></ul><ul><li>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). Developing a computer science-specific learning taxonomy. Working group reports on ITiCSE on Innovation and technology in computer science education, ITiCSE-WGR '07, pp. 152-170, ACM Press </li></ul><ul><li>Gibbs, D. C. (2000) The effect of a constructivist learning environment for field-dependent/independent students on achievement in introductory computer programming. In, Proceedings of the thirty-first SIGCSE technical symposium on Computer Science Education , p. 207-211. </li></ul><ul><li>Ginat, D. (2001) Metacognitive awareness utilized for learning control elements in algorithmic problem solving. SIGCSE Bull., 33(3), p. 81-84. </li></ul>
    48. 48. References <ul><li>Ginat, D. (2002) On varying perspectives of problem decomposition. In, Proceedings of the 33rd SIGCSE technical symposium on Computer science education , p. 331-335. </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul><ul><li>Porter, R. and Calder, P. (2004) Patterns in Learning to Program - An Experiment? In, Proc. Sixth Australasian Computing Education Conference (ACE2004) , p. 193-199. </li></ul><ul><li>Robins, A., Roundtree, J. and Roundtree, N. (2003) Learning and Teaching Programming: A Review and Discussion. Computer Science Education, 13(2), p. 137-172. </li></ul>
    49. 49. References <ul><li>Rath, A. and Brown, D. E. (1995) Conceptions of Human-Computer Interaction: A Model for Understanding Student Errors. Journal of Educational Computing Research, 12(4), p. 395-409. </li></ul><ul><li>Rist, R. S. (1995) Program Structure and Design. Cognitive Science, 19, p. 507-562. </li></ul><ul><li>Ross, J. L., Drysdale, M. T. B. and Schultz, R. A. (2001) Cognitive Learning Styles and Academic Performance in Two Postsecondary Computer Application Courses. Journal of Research on Technology in Education, 33(4). </li></ul><ul><li>Smith, P. D. (1996) A Process Education Approach To Teaching Computer Science. In: Association of Small Computer Users in Education (ASCUE) Summer Conference Proceedings (29th, North Myrtle Beach, SC, June 9-13, 1996) , p. 11. </li></ul><ul><li>Spohrer, J. C. and Soloway, E. (1989) Novice Mistakes: are the folk wisdoms correct? In Studying the Novice Programmer , (Eds, Soloway, E. and Spoher, J. C.) Hillsdale, NJ: Lawrence Erlbaum, p. 401-416. </li></ul><ul><li>Thomas, L., Ratcliffe, M. and Thomasson, B. (2004) Scaffolding with object diagrams in first year programming classes: some unexpected results. In Proceedings of the 35th SIGCSE technical symposium on Computer science education , ACM Press, p. 250-254. </li></ul><ul><li>Thomas, L., Ratcliffe, M., Woodbury, J. and Jarman, E. (2002) Learning styles and performance in the introductory programming sequence. In, Proceedings of the 33rd SIGCSE technical symposium on Computer science education , p. 33-37. </li></ul><ul><li>Van Gorp, M. J. and Grissom, S. (2001) An Empirical Evaluation of Using Constructive Classroom Activities to Teach Introductory Programming. Computer Science Education, 11(3), p. 247-260. </li></ul><ul><li>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 Education , p. 184-188. </li></ul><ul><li>Winslow, L. E. (1996) Programming pedagogy - A psychological overview. SIGCSE Bull., 28, p. 17-22. </li></ul><ul><li>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. Review of Educational Research, 47, p. 1-64. </li></ul>

    ×