Results 1 - 10
of
19
Six Learning Barriers in End-User Programming Systems
- IEEE SYMP. ON VLHCC
, 2004
"... As programming skills increase in demand and utility, the learnability of end-user programming systems is of utmost importance. However, research on learning barriers in programming systems has primarily focused on languages, overlooking potential barriers in the environment and accompanying librari ..."
Abstract
-
Cited by 46 (12 self)
- Add to MetaCart
As programming skills increase in demand and utility, the learnability of end-user programming systems is of utmost importance. However, research on learning barriers in programming systems has primarily focused on languages, overlooking potential barriers in the environment and accompanying libraries. To address this, a study of beginning programmers learning Visual Basic.NET was performed. This identified six types of barriers: design, selection, coordination, use, understanding, and information. These barriers inspire a new metaphor of computation, which provides a more learner-centric view of programming system design.
Through the Looking Glass: Teaching CS0 with Alice
- SIGCSE Bulletin
, 2007
"... This work analyzes the advantages and disadvantages of using the novice programming environment Alice in the CS0 classroom. We consider both general aspects as well as specifics drawn from the authors ’ experiences using Alice in the classroom over the course of the last academic year. ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
This work analyzes the advantages and disadvantages of using the novice programming environment Alice in the CS0 classroom. We consider both general aspects as well as specifics drawn from the authors ’ experiences using Alice in the classroom over the course of the last academic year.
Citrus: A Language and Toolkit for Simplifying the Creation of Structured Editors for Code and Data
- UIST'05
, 2005
"... Direct-manipulation editors for structured data are increasingly common. While such editors can greatly simplify the creation of structured data, there are few tools to simplify the creation of the editors themselves. This paper presents Citrus, a new programming language and user interface toolkit ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
Direct-manipulation editors for structured data are increasingly common. While such editors can greatly simplify the creation of structured data, there are few tools to simplify the creation of the editors themselves. This paper presents Citrus, a new programming language and user interface toolkit designed for this purpose. Citrus offers language-level support for constraints, restrictions and change notifications on primitive and aggregate data, mechanisms for automatically creating, removing, and reusing views as data changes, a library of widgets, layouts and behaviors for defining interactive views, and two comprehensive interactive editors as an interface to the language and toolkit itself. Together, these features support the creation of editors for a large class of data and code.
Objects: Visualization of Behavior and State
, 2003
"... Animated program visualization can be used to support innovative instructional methods for teaching beginners about objects, their behavior, and state. In this paper, we present a discussion of methods that define object behavior and character (class)-level state variables that track state changes f ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
Animated program visualization can be used to support innovative instructional methods for teaching beginners about objects, their behavior, and state. In this paper, we present a discussion of methods that define object behavior and character (class)-level state variables that track state changes for 3D animated objects in small virtual worlds. We have found that character-level methods provide a means to demonstrate inheritance. Examples of worlds and program code used in instructional materials are provided.
The State of the Art in End-User Software Engineering
"... Most programs today are written not by professional software developers, but by people with expertise in other domains working towards goals for which they need computational support. For example, a teacher might write a grading spreadsheet to save time grading, or an interaction designer might use ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
Most programs today are written not by professional software developers, but by people with expertise in other domains working towards goals for which they need computational support. For example, a teacher might write a grading spreadsheet to save time grading, or an interaction designer might use an interface builder to test some user interface design ideas. Although these end-user programmers may not have the same goals as professional developers, they do face many of the same software engineering challenges, including understanding their requirements, as well as making decisions about design, reuse, integration, testing, and debugging. This article summarizes and classifies research on these activities, defining the area of End-User Software Engineering (EUSE) and related terminology. The article then discusses empirical research about end-user software engineering activities and the technologies designed to support them. The article also addresses several crosscutting issues in the design of EUSE tools, including the roles of risk, reward, and domain complexity, and self-efficacy
Estimation of Probabilities from Sparse Data for the Language Model Component of a Speech Recognizer
- IEEE Trans. ASSP-35
, 1987
"... Abstract. Based on our experience using active learning methods to teach object-oriented software design we propose a game-based approach to take the classroom experience into a virtual environment. The different pedagogical approaches that our active method supports, have motivated us to tailor an ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Abstract. Based on our experience using active learning methods to teach object-oriented software design we propose a game-based approach to take the classroom experience into a virtual environment. The different pedagogical approaches that our active method supports, have motivated us to tailor an architecture that supports the creation of different variations of role-play environments, ranging from open-ended trial and error approaches to highly constrained settings where students can not get very far from the solution. We also describe a prototype that instantiates this architecture called ViRPlay3D2. Key words: Game-based learning, object-oriented design, role-play 1
Designing a Flexible and Supportive Direct-Manipulation Programming Environment
, 2004
"... An important part of helping learners detect, repair and avoid software errors is providing semantic support for learners while they manipulate their code. Unfortunately, usability aspects of both textual and direct-manipulation environments limit their ability to provide such support. Preliminary f ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
An important part of helping learners detect, repair and avoid software errors is providing semantic support for learners while they manipulate their code. Unfortunately, usability aspects of both textual and direct-manipulation environments limit their ability to provide such support. Preliminary findings from exploratory studies are discussed, and several design requirements for a more flexible and supportive programming environment are identified.
The Design of an Asynchronous Web-Based Project Review System to Support Studio-Based Learning in Computing Education
"... Learning computer science is no longer simply a matter of learning computer programming. Indeed, modern day computing jobs demand design, communication, and collaborative skills as well. In order to address this need and make computing education more engaging, motivating, and community-oriented, we ..."
Abstract
- Add to MetaCart
Learning computer science is no longer simply a matter of learning computer programming. Indeed, modern day computing jobs demand design, communication, and collaborative skills as well. In order to address this need and make computing education more engaging, motivating, and community-oriented, we have been exploring a “studio based ” approach in which students (a) construct computational solutions to problems that have many possible solution strategies, and then (b) present their solutions to their peers and instructors for feedback and discussion. In the fall of 2007, we implemented this approach in a pre-CS 1 course by requiring students to present their solutions to five course programming projects in face-to-face review sessions. Interview, and observational data collected in this course pointed out several practical and logistical problems surrounding the face-to-face review sessions that diminished their educational effectiveness. To address these problems, we describe the preliminary design of a novel asynchronous web-based project review system to support and augment face-to-face studiobased review sessions. This system, which is being iteratively designed and implemented in 2008, will provide a foundation for future empirical research into the effectiveness of studio-based approaches in computing education. 1.
Human Factors Affecting Dependability in End-User Programming
, 2005
"... Human factors affecting the dependability of end user's programs are discussed in the context of controlled and observational studies of both professional and end-user programmers. These factors include the influence of the types of behaviors that end users wish to implement, end user's fundamental ..."
Abstract
- Add to MetaCart
Human factors affecting the dependability of end user's programs are discussed in the context of controlled and observational studies of both professional and end-user programmers. These factors include the influence of the types of behaviors that end users wish to implement, end user's fundamental cognitive biases, barriers in the languages, environments, libraries, and other tools used by end users, and end users' difficulties with understanding their code's meaning and execution.

