Results 1 - 10
of
13
Learning and teaching programming: A review and discussion
- Computer Science Education
, 2003
"... In this paper we review the literature relating to the psychological/educational study of programming. We identify general trends comparing novice and expert programmers, programming knowledge and strategies, program generation and comprehension, and objectoriented versus procedural programming. (We ..."
Abstract
-
Cited by 54 (2 self)
- Add to MetaCart
In this paper we review the literature relating to the psychological/educational study of programming. We identify general trends comparing novice and expert programmers, programming knowledge and strategies, program generation and comprehension, and objectoriented versus procedural programming. (We do not cover research relating specifically to other programming styles.) The main focus of the review is on novice programming and topics relating to novice teaching and learning. Various problems experienced by novices are identified, including issues relating to basic program design, to algorithmic complexity in certain language features, to the ‘‘fragility’ ’ of novice knowledge, and so on. We summarise this material and suggest some practical implications for teachers. We suggest that a key issue that emerges is the distinction between effective and ineffective novices. What characterises effective novices? Is it possible to identify the specific deficits of ineffective novices and help them to become effective learners of programming? 1.
Design Patterns: An Essential Component of CS Curricula
"... The field of software design patterns has seen an explosion in interest in the last three years. Work to date has been on the recognition, cataloging, and finding of patterns with little attention to the use of patterns especially by students and practitioners not well-versed in object-oriented tech ..."
Abstract
-
Cited by 13 (1 self)
- Add to MetaCart
The field of software design patterns has seen an explosion in interest in the last three years. Work to date has been on the recognition, cataloging, and finding of patterns with little attention to the use of patterns especially by students and practitioners not well-versed in object-oriented technologies. This project addresses novice use directly yielding benefits for both the established pattern community and to students and educators new to the field. Although we do not claim that design patterns are Brooks' silver bullet [8], their use can help cope with the accidental complexity of software development and, we argue, their use is essential for a successful adoption of object-oriented techniques in academic computer science programs. This project addresses practical and pedagogical concerns of the computer science and software engineering communities by addressing the teaching and learning of patterns. In this paper we argue that design patterns are an essential programming and ...
Assessing the cognitive consequences of the object-oriented approach: a survey of empirical research on object-oriented design by individuals and teams. Interacting with Computers
, 1997
"... This paper presents a state-of-art review of empirical research on object-oriented (OO) design. Many claims about the cognitive benefits of the OO paradigm have been made by its advocates. These claims concern the ease of designing and reusing software at the individual level as well as the benefits ..."
Abstract
-
Cited by 12 (1 self)
- Add to MetaCart
This paper presents a state-of-art review of empirical research on object-oriented (OO) design. Many claims about the cognitive benefits of the OO paradigm have been made by its advocates. These claims concern the ease of designing and reusing software at the individual level as well as the benefits of this paradigm at the team level. Since these claims are cognitive in nature, its seems important to assess them empirically. After a brief presentation of the main concepts of the OO paradigm, the claims about the superiority of OO design are outlined.
Roles of variables in three programming paradigms
- Computer Science Education
"... Roles can be assigned to occurrences of variables in programs according to a small number of stereotypical patterns of use. Studies on explicitly teaching roles to novices learning programming have shown that roles are an excellent pedagogical tool for clarifying the structure and meaning of program ..."
Abstract
-
Cited by 5 (4 self)
- Add to MetaCart
Roles can be assigned to occurrences of variables in programs according to a small number of stereotypical patterns of use. Studies on explicitly teaching roles to novices learning programming have shown that roles are an excellent pedagogical tool for clarifying the structure and meaning of programs and that their use improves students ’ programming skills. This paper describes how roles can be applied in various programming paradigms and presents the results of three studies designed to test the understandability and acceptability of the role concept and of the individual roles in procedural, object-oriented and functional programming. Based on the results, two new roles and small modifications to the definitions of the original roles are suggested.
Teaching software design: A new approach to high school computer science. Paper presented at the annual meeting of the American Educational Research Association
- of the American Educational Research Association, Atlanta, GA. Retrieved November
, 1993
"... New approaches to teaching introductory computer science are sorely needed. Current instruction in programming has been shown to result in relatively poor understanding of the programming language under study, little development of problem solving skills, and little ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
New approaches to teaching introductory computer science are sorely needed. Current instruction in programming has been shown to result in relatively poor understanding of the programming language under study, little development of problem solving skills, and little
Internal Representation and Rule Development in Object-Oriented Design
- ACM TRANSACTIONS ON COMPUTER-HUMAN INTERACTION
, 1995
"... This article proposes a cognitive framework describing the software development process in object-oriented design (OOD) as building internal representations and developing rules. Rule development (method construction) is performed in two problem spaces: a rule space and an instance space. Rules are ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
This article proposes a cognitive framework describing the software development process in object-oriented design (OOD) as building internal representations and developing rules. Rule development (method construction) is performed in two problem spaces: a rule space and an instance space. Rules are generated, refined, and evaluated in the rule space by using three main cognitive operations: Infer, Derive, and Evoke. Cognitive activities in the instance space are called mental simulations and are used in conjunction with the Infer operation in the rule space. In an empirical study with college students, we induced different representations to the same problem by using problem isomorphs. Initially, subjects built a representation based on the problem description. As rule development proceeded, the initial internal representation and designed objects were refined, or changed if necessary, to correspond to knowledge gained during rule development. Differences in rule development processes among groups created final designs that are radically different in terms of their level of abstraction and potential reusability. The article concludes by discussing the implications of these results for object-oriented design.
How Do We Understand a System With (So) Many Diagrams? Cognitive Integration Processes in Diagrammatic Reasoning
, 1999
"... In order to understand diagrammatic reasoning with multiple diagrams, this study proposes a theoretical framework that focuses on the cognitive processes of perceptual and conceptual integration. The perceptual integration process involves establishing the interdependence between the relevant system ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
In order to understand diagrammatic reasoning with multiple diagrams, this study proposes a theoretical framework that focuses on the cognitive processes of perceptual and conceptual integration. The perceptual integration process involves establishing the interdependence between the relevant system elements that have been dispersed across multiple diagrams, while the conceptual integration process involves generating and refining hypotheses about the system by combining the higher level information inferred from the diagrams. This study applies the diagrammatic reasoning framework of a single diagram to assess the usability of multiple diagrams as an integral part of a system development methodology. We conducted an experiment that evaluated the effectiveness and the usability of design guidelines to aid problem solving with multiple diagrams. The results of the experimental study reveal that understanding a system represented by multiple diagrams involves a process of searching for r...
My program is correct but it doesnt run: A review of novice programming and a study of an introductory programming paper
, 2001
"... Contents 1.0 Introduction 2.0 Learning to program 2.1 Overview 2.1.1 Experts vs. novices 2.1.2 Knowledge vs. strategies 2.1.3 Comprehension vs. generation 2.1.4 Procedural vs. object--oriented 2.1.5 Other 2.2 Novice programmers 2.2.1 The task 2.2.2 Mental models and processes 2.2.3 Novic ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Contents 1.0 Introduction 2.0 Learning to program 2.1 Overview 2.1.1 Experts vs. novices 2.1.2 Knowledge vs. strategies 2.1.3 Comprehension vs. generation 2.1.4 Procedural vs. object--oriented 2.1.5 Other 2.2 Novice programmers 2.2.1 The task 2.2.2 Mental models and processes 2.2.3 Novice capabilities and behavior 2.2.4 Kinds of novice 2.3 Novice learning and teaching in CS1 2.3.1 Goals and progress 2.3.2 Course design and teaching methods 2.3.3 Alternative methods and curricula 2.4 Summary 3.0 A study of an introductory programming paper 3.1 The design of COMP103 3.1.1 Context 3.1.2 Lectures and knowledge 3.1.3 Laboratory sessions and strategy 3.1.4 Summary 3.2 The study 3.2.1 Background 3.2.2 Method 3.3 Results 3.3.1 Lab based problem tallies 3.3.2 Trends 3.3.3 Other observations 4.0 Discussion 4.1 Kinds of novice 4.2 Knowledge, strategies, and effective teaching and learning 4.3 A framework 5.0 Summary References
Compound mediation in software development: Using genre ecologies to study textual artifacts
- Fort Collins, CO: WAC Clearinghouse and Mind, Culture, and Activity. Retrieved January 3, 2006, from http://wac.colostate.edu/ books/selves%5Fsocieties
, 2003
"... Traditionally, technical communicators have seen the texts that they produce-- manuals, references, instructions-- as "bridging " or mediating between a worker and her tool. But field studies of workers indicate that the mediational relationship is much more complicated: Workers often draw ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Traditionally, technical communicators have seen the texts that they produce-- manuals, references, instructions-- as "bridging " or mediating between a worker and her tool. But field studies of workers indicate that the mediational relationship is much more complicated: Workers often draw simultaneously upon many different textual artifacts to mediate their work, including not only the official genres produced by technical communicators manuals but also ad hoc notes, comments, and improvisational drawings produced by the workers themselves. In this chapter, I theorize these instances of compound mediatiation by drawing on activity theory and genre theory. I describe an analytical framework, that of genre ecologies, that can be used to systematically investigate compound mediation within and across groups of workers. Unlike other analytical frameworks that have been used in studies of technology (such as distributed cognition's functional systems and contextual design's work models), the genre ecology framework highlights the interpretive and cultural-historical aspects of compound mediation that are so important in understanding the use of textual artifacts. The analytical framework is illustrated by an observational study
A.: Roles of variables in teaching
- Journal of Information Technology Education
"... Expert programmers possess schemas, abstractions of concrete experiences, which help them solve programming problems and lessen the load on their working memory during problem solving. Possession of schemas is a key difference between novices and experts, which is why instructors need to help studen ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Expert programmers possess schemas, abstractions of concrete experiences, which help them solve programming problems and lessen the load on their working memory during problem solving. Possession of schemas is a key difference between novices and experts, which is why instructors need to help students construct them. One recent tool for facilitating schema formation in introductory programming are roles of variables, which represent stereotypes of variable use in computer programs (Sajaniemi, 2002). For instance, a variable with the role STEPPER is assigned values in a systematic and predictable order (e.g. ascending integers 0, 1, 2,...), whereas a FIXED VALUE is a variable whose value does not change. Roles of variables embody expert programmers’ tacit knowledge on variable usage patterns, which can be made explicit and taught to novice programmers. A small set of roles covers the vast majority of variable use in introductorylevel programs. Prior results obtained through analysis of examination results and observation of students suggest that using roles of variables in introductory programming education can increase students ' skills in comprehending and constructing programs (Byckling & Sajaniemi, 2006; Sajaniemi & Kuittinen, 2005). Little has been published about the experiences of teachers in higher education who have adopted roles in their programming courses, or about the methods of instruction

