Results 11 - 20
of
38
An Exploration of Programming by Demonstration in the Domain of Novice Programming
, 1998
"... Learning to program is hard. Novice programmers have difficulty translating a task's specification into behaviour for the computer that will achieve the task, and translating way the computer should behave into instructions that will make the computer achieve that behaviour. Novices are hindered ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
Learning to program is hard. Novice programmers have difficulty translating a task's specification into behaviour for the computer that will achieve the task, and translating way the computer should behave into instructions that will make the computer achieve that behaviour. Novices are hindered in both these steps because they lack a good model of the way the computer carries out the instructions in a program. This thesis presents an environment designed to provide novices with a good model of the way a computer carries out a program, and to support them as they learn to program in an imperative language. The environment makes the underlying state and operation of the computer and program explicit. The environment allows the novice to program by demonstrating how the computer should behave. The environment then shows them the instructions that would make the computer behave that way. The thesis presents two models as the basis for the environment: a model of computation, and a model of programming. The model of computation uses a coherent set of analogies from the real world to explain the way a computer carries out a program. The model of programming extends the model of computation to include programming using Programming by Demonstration. The thesis also presents two prototypes of the environment, and an exploration of the models and environment using the prototypes. The thesis presents many issues for a Programming by Demonstration environment for novices that this exploration shed light on. Acknowledgements None of this would have been possible without the following people and institutions: Pondy, who was a better supervisor than I could ever have hoped for. I want to thank him particularly for his guidance and support, for making me explai...
Software Visualization and Yosemite National Park
- In Proceedings of the TwentyFifth Annual Hawaii International Conference on System Sciences
, 1992
"... As software systems grow in size and complexity, so does the difficulty of understanding and maintaining them. Research in software understanding attempts to mitigate this problem by making various aspects of software development more visible, accessible, and comprehensible. In this paper we propose ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
As software systems grow in size and complexity, so does the difficulty of understanding and maintaining them. Research in software understanding attempts to mitigate this problem by making various aspects of software development more visible, accessible, and comprehensible. In this paper we propose a hypertext-based approach to software visualization in which navigation in software-space is modeled after physical navigation in Yosemite National Park. Physical navigation capabilities are mapped into the domain of software development, where a user of a softwareproject visualization system navigates among interrelated units of information. We use the metaphor to define a set of requirements for the visualization system. We define linguistic constructs for a navigation language to be used in software-world. We discuss practical implications of implementing the visualization system. 1 Introduction An inherent problem of software development and maintenance is the amount and complexity o...
Teaching Java with the BlueJ environment
- In Ascilite
, 2000
"... BlueJ is a visual programming environment designed to teach objectoriented programming, using Java as the implementation language. BlueJ allows students to concentrate on solving programming problems without becoming distracted by the mechanics of compiling and executing Java programs. This paper re ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
BlueJ is a visual programming environment designed to teach objectoriented programming, using Java as the implementation language. BlueJ allows students to concentrate on solving programming problems without becoming distracted by the mechanics of compiling and executing Java programs. This paper reports on the first use of BlueJ to teach Java to an introductory programming class, in a computing degree in 1999. Several mechanisms were put in place to help students with any problems they encountered. Surveys and interviews were used to collect data on student backgrounds, perceptions and attitudes towards BlueJ. In spite of some problems encountered with installing and running the software, students who participated in the study generally found that BlueJ was helpful in learning Java.
Using the Programming Walkthrough to Aid in Programming Language Design
, 1994
"... The programming walkthrough is a method for assessing how easy or hard... ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
The programming walkthrough is a method for assessing how easy or hard...
Automatic Problem Description from Model Program for Knowledge-based Programming Tutor
- In Proc. 1st Joint Conference on Intelligent Technology
, 1991
"... Knowledge-based programming tutors are supposed to analyze the students' programs using knowledge of the concepts of programming language, skills to build programs, misconceptions of novice programmers, and information about the programs to be analyzed. The last one provides the programming tutor wi ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Knowledge-based programming tutors are supposed to analyze the students' programs using knowledge of the concepts of programming language, skills to build programs, misconceptions of novice programmers, and information about the programs to be analyzed. The last one provides the programming tutor with the intentions of programmers, and this allows the tutor to do an intention-based diagnosis(Johnson86). This is given to the system in the form of a problem description by human instructors. However, it is very hard for instructors to write a problem description. For instructors, the simplest way to describe a problem may be to write a model program of that problem. This paper describes the system named GOES, a GOal Extraction System, which extracts the purposes (Goals) of a model program automatically.
AOPS: An Abstraction Oriented Programming System For Literate Programming
- Software Engineering Journal
, 1993
"... The practice of literate programming is not widespread because existing literate programming systems have some undesirable characteristics such as programming language and text processor dependence and lack of flexible tools for viewing and manipulation of the source file. This paper describes the l ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
The practice of literate programming is not widespread because existing literate programming systems have some undesirable characteristics such as programming language and text processor dependence and lack of flexible tools for viewing and manipulation of the source file. This paper describes the literate programming system AOPS (Abstraction Oriented Programming System) which addresses both of these problems. AOPS is programming language and text processor independent literate programming system. AOPS tools include a hypertext browser, a lister with the ability to select what is presented and what is suppressed, and a filter to extract the program code from the AOPS source file. AOPS introduces the notion of a phantom abstraction that enh...
Computer Science Teachers as Amateurs, Students and Researchers
- In Proceedings of the 5 th Baltic Sea Conference on Computing Education Research. (Koli
, 2005
"... Boyer coined the term "scholarship of teaching", but the term has become ambiguous. In this paper, I nominate my own three categorizations of university computing educators: amateurs, students, and researchers. Amateurs may be excellent with students, but they do not routinely engage in di ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Boyer coined the term "scholarship of teaching", but the term has become ambiguous. In this paper, I nominate my own three categorizations of university computing educators: amateurs, students, and researchers. Amateurs may be excellent with students, but they do not routinely engage in dialog with other teachers about teaching. Students embrace the general theories of education, and write papers about how they have reconstructed their teaching in accordance with those theories. Researchers are engaged in the development and dissemination of a disciplinespecific pedagogy. Researchers do not reject the general education literature, but neither do they simply accept it. Instead, that literature offers theories that may or may not be verified in the laboratory of their own class room. They are involved in a discipline-based research community that transcends institutional boundaries. I illustrate these categories with examples from my own teaching, as an amateur, student, and researcher. 1.
NATURAL LANGUAGE TUTORING AND THE NOVICE PROGRAMMER
, 2004
"... This dissertation was presented by H. Chad Lane It was defended on ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
This dissertation was presented by H. Chad Lane It was defended on
Authoring Interactive Behaviors for Multimedia
- Proc. 9th NEC Research Symposium
, 1998
"... The tools for authoring multimedia presentations start with sophisticated interactive tools like Director and ToolBook. However, to make the presentations truly interactive requires programming in "scripting languages." These languages have generally been difficult to learn for non-programmers. "Int ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
The tools for authoring multimedia presentations start with sophisticated interactive tools like Director and ToolBook. However, to make the presentations truly interactive requires programming in "scripting languages." These languages have generally been difficult to learn for non-programmers. "Interactive behaviors" allow users to click on, move, or otherwise interact with objects on the screen, as opposed to just watching the presentation like a TV show. Behaviors range from simply clicking on buttons or links, to sophisticated interactions with computerized characters. This paper presents a variety of ways we are studying to make authoring of these interactive behaviors more accessible to non-programmers. One approach is "demonstrational" techniques, where the author gives examples of the desired actions and results, and the system generates the code to perform the same actions at run time. Using demonstrational techniques has proven successful for specifying simple behaviors. To r...
Revealing the Programming Process – Using Videos to Unfold Basic Programming Techniques”, in preparation
"... The most important part of an introductory programming course is to teach the students a systematic approach to the development of computer programs. Revealing the programming process is an important part of this; however, textbooks do not address the issue – probably because the medium is unsuitabl ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
The most important part of an introductory programming course is to teach the students a systematic approach to the development of computer programs. Revealing the programming process is an important part of this; however, textbooks do not address the issue – probably because the medium is unsuitable for this kind of descriptions. We have found that videos in the form of narrated programming sessions are a simple, cheap, and efficient way of providing the revelation. We identify seven different elements of the programming process for which videos are a valuable communication media in order to enhance the learning process. Student feedback indicates both high learning outcome and superior learning potential compared to traditional class room teaching. Categories and Subject Descriptors

