Results 1 - 10
of
14
Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers
- ACM COMPUT. SURV
, 2005
"... Since the early 1960’s, researchers have built a number of programming languages and environments with the intention of making programming accessible to a larger number of people. This article presents a taxonomy of languages and environments designed to make programming more accessible to novice pr ..."
Abstract
-
Cited by 61 (2 self)
- Add to MetaCart
Since the early 1960’s, researchers have built a number of programming languages and environments with the intention of making programming accessible to a larger number of people. This article presents a taxonomy of languages and environments designed to make programming more accessible to novice programmers of all ages. The systems are organized by their primary goal, either to teach programming or to use programming to empower their users, and then, by each system’s authors ’ approach, to making learning to program easier for novice programmers. The article explains all categories in the taxonomy, provides a brief description of the systems in each category, and suggests some avenues for future work in novice programming environments and languages.
Usability issues in the design of novice programming systems
, 1996
"... This research was partially sponsored by NCCOSC under Contract No. N66001-94-C-6037, Arpa OrderNo. B326, and partially by NSF under grant number IRI-9319969. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official poli- ..."
Abstract
-
Cited by 50 (17 self)
- Add to MetaCart
This research was partially sponsored by NCCOSC under Contract No. N66001-94-C-6037, Arpa OrderNo. B326, and partially by NSF under grant number IRI-9319969. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official poli-cies, either expressed or implied, of the U.S. Government.
Using HCI techniques to design a more usable programming system
, 2002
"... A programming system is the user interface between the programmer and the computer. Programming is a notoriously difficult activity, and some of this difficulty can be attributed to the user interface as opposed to other factors. Historically, the designs of programming languages and tools have not ..."
Abstract
-
Cited by 34 (6 self)
- Add to MetaCart
A programming system is the user interface between the programmer and the computer. Programming is a notoriously difficult activity, and some of this difficulty can be attributed to the user interface as opposed to other factors. Historically, the designs of programming languages and tools have not emphasized usability. This paper describes the process we used to design HANDS, a new programming system for children that focuses on usability, where HCI knowledge, principles, and methods guided all design decisions. The features of HANDS are presented along with their motivations from prior empirical research on programmers and new studies conducted by the authors. HANDS is an event-based language that features a concrete model for computation, provides operators that match the
Using a Flowchart Simulator in an Introductory Programming Course
"... Right From the Start is a project at Western Kentucky University designed to provide novice students with a foundation for later programming study through a series of interactive design tasks involving fundamental logic structures. To support this goal, the instructional tool Visual has been develop ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Right From the Start is a project at Western Kentucky University designed to provide novice students with a foundation for later programming study through a series of interactive design tasks involving fundamental logic structures. To support this goal, the instructional tool Visual has been developed and used in classroom settings. (To obtain copies of the Visual software and related support materials for academic use, visit
Lowering the Barriers to Programming:
"... a survey of programming environments and languages for novice programmers ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
a survey of programming environments and languages for novice programmers
A methodology for analyzing the temporal evolution of novice programs based on semantic components
- In Proceedings of the 2006 ACM International Computing Education Research Workshop ACM
, 2006
"... Empirical studies of novice programming typically rely on code solutions or test responses as the basis of their analyses. While such data can provide insight into novice programming knowledge, they say little about the programming processes in which novices engage. For those interested in improving ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Empirical studies of novice programming typically rely on code solutions or test responses as the basis of their analyses. While such data can provide insight into novice programming knowledge, they say little about the programming processes in which novices engage. For those interested in improving novice programming environments, a key research question arises: How can we collect and analyze data on novice programming that will enable us (a) to analyze and compare the programming processes promoted by alternative novice programming environments, and (b) ultimately to build better novice programming environments? To address this question, we have collected a large video corpus of novices as they construct code solutions in various versions of ALVIS Live! [14], a novice programming environment. Through detailed post-hoc analyses of our video corpus, we have developed a methodology for compiling the moment-by-moment evolution of novice code solutions. Based on an analysis of an ideal code solution’s key semantic components, our methodology enables one to document, on a second-by-second basis, (a) what part of a code solution a programmer is focusing on, and (b) where the semantic feedback provided by the programming environment is helping. Although it is time and labor intensive, our methodology provides researchers with a standard set of data and representations for comparing the programming processes promoted by alternative programming environments.
Exploring Didactic Models for Programming
, 1998
"... Models for teaching programming have been suggested in the literature. Interviews of teachers indicate that they normally do not relate to such models. Since referring explicitly to didactic models in teaching may improve learning, using models seems preferable. Models concerning learning and teachi ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Models for teaching programming have been suggested in the literature. Interviews of teachers indicate that they normally do not relate to such models. Since referring explicitly to didactic models in teaching may improve learning, using models seems preferable. Models concerning learning and teaching are suggested in the paper. 1. Introduction High failure rates in many introductory programming courses may be symptoms of the limited research having been invested in the area. While pedagogical research has provided theories of learning and teaching that are useful in informatics education, each subject requires specific teaching practices (Stodolsky, 1988), and these have to be based on the subject itself. Concerning learning of programming, Booth (1992), in a qualitative study of how university students, found that students' competence could be described in four advancing stages. Spohrer and Soloway's (1986) studied student-generated programs, and found that learners had more troub...
Adaptive, Engaging, and Explanatory Visualization in a C Programming Course
- ED-MEDIA'2004 - World Conference on Educational Multimedia, Hypermedia and Telecommunications
, 2004
"... ..."
Subsetability as a New Cognitive Dimension
- Proceedings of PPIG 18
, 2006
"... Abstract. Subsetability is the ability to decompose programming languages and environments into a hierarchy of subsets, each of which can be used by students to create complete, meaningful computer programs. This paper argues that a programming language/environment's subsetability positively affects ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Abstract. Subsetability is the ability to decompose programming languages and environments into a hierarchy of subsets, each of which can be used by students to create complete, meaningful computer programs. This paper argues that a programming language/environment's subsetability positively affects its learnability and teachability. The argument is supported by citing relevant theoretical research, little of which is grounded in empirical studies. Then the paper goes on to argue that subsetability may be a new "cognitive dimension of notational systems, " as defined by Green and Blackwell. It does so by analyzing subsetability in terms of Blackwell's criteria for dealing with new cognitive dimensions. 1
Kara, Finite State Machines, and the Case for Programming as Part of General Education
, 2001
"... As a major evolutionary step in computer technology, users have come to rely on ready-made application software, rather than writing their own programs. If computer users no longer program, does it follow that the art of programming should only be taught to computing professionals? We argue the case ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
As a major evolutionary step in computer technology, users have come to rely on ready-made application software, rather than writing their own programs. If computer users no longer program, does it follow that the art of programming should only be taught to computing professionals? We argue the case for programming as a component of general education. Not because of any direct utilitarian benefit, but in order to gain a personal experience as to what it means, and what it takes, to specify processes that evolve over time. An analogy to mathematics education shows that schools teach the concept of "proof", although in daily life people use mathematical formulas without knowledge of their proof. Programming practiced as an educational exercise, free from utilitarian constraints, is best learned in a toy environment, designed to illustrate selected concepts in the simplest possible setting. As an example, we present the programming system Kara based on the concept of finite state machine...

