This document summarizes theories and research on teaching and learning computing. It covers cognitive processes and models, attributes of novice and expert programmers, identifying student difficulties, and elements of instructional design such as scaffolding, teaching problem solving, developing critical thinking, and promoting deep learning. Key findings include the importance of logical reasoning ability for success in computing, sources of difficulty for novices, and instructional approaches like expert modeling, scaffolding, and cognitive flexibility theory.
Bower Computer Science Education Literature Review Csta
1. Teaching and Learning Computing A Review of the Literature Matt Bower [email_address]
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
Notas del editor
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.