278 research outputs found
Recommended from our members
APT: A principled design for an animated view of program execution for novice programmers
This thesis is concerned with the principled design of a computational environment which depicts an animated view of program execution for novice programmers. We assert that a principled animated view of program execution should benefit novice programmers by: (i) helping students conceptualize what is happening when programs are executed; (ii) simplifying debugging through the presentation of bugs in a manner which the novice will understand; (iii) reducing program development time.
The design is based on principles which have been extracted from three areas: (i) the problems that novices encounter when learning a programming language; (ii) the general design principles for computer systems; and (iii) systems which present a view of program execution.
The design principles have been embodied in three 'canned stepper displays for Prolog, Lisp and 6502 Assembler. These prototypes, called APT-0 (Animated Program Tracer), demonstrate that the design principles can be broadly applied to procedural and declarative; low and high level languages. Protocol data was collected from subjects using the prototypes in order to check the direction of the research and to suggest improvements in the design. These improvements have been incorporated in a real implementation of APT for Prolog.
This principled approach embodied by APT provides two important facilities which have previously not been available, firstly a means of demonstrating dynamic programming concepts such as variable binding, recursion, and backtracking, and secondly a debugging tool which allows novices to step through their own code watching the virtual machine in action. This moves towards simplifying the novice's debugging environment by supplying program execution information in a form that the novice can easily assimilate.
An experiment into the misconceptions novices hold concerning the execution of Prolog programs shows that the order of database search, and the concepts of variable binding, unification and backtracking are poorly understood. A further experiment was conducted which looked at the effect that APT had on the ability of novice Prolog programmers to understand the execution of Prolog programs. This demonstrated that the performance of subjects significantly increased after being shown demonstrations of the execution of Prolog programs on APT, while the control group who saw no demonstration showed no improvement.
The experimental evidence demonstrates the potential of APT, and the principled approach which it embodies, to communicate run-time information to novice programmers, increasing their understanding of the dynamic aspects of the Prolog interpreter.
APT, uses an object centred representation, is built on top of a Prolog interpreter and environment, and is implemented in Common Lisp and Zeta Lisp and runs on the Symbolics 3600 range of machines
Teaching programming at a distance: the Internet software visualization laboratory
This paper describes recent developments in our approach to teaching computer programming in the context of a part-time Masters course taught at a distance. Within our course, students are sent a pack which contains integrated text, software and video course material, using a uniform graphical representation to tell a consistent story of how the programming language works. The students communicate with their tutors over the phone and through surface mail.
Through our empirical studies and experience teaching the course we have identified four current problems: (i) students' difficulty mapping between the graphical representations used in the course and the programs to which they relate, (ii) the lack of a conversational context for tutor help provided over the telephone, (iii) helping students who due to their other commitments tend to study at 'unsociable' hours, and (iv) providing software for the constantly changing and expanding range of platforms and operating systems used by students.
We hope to alleviate these problems through our Internet Software Visualization Laboratory (ISVL), which supports individual exploration, and both synchronous and asynchronous communication. As a single user, students are aided by the extra mappings provided between the graphical representations used in the course and their computer programs, overcoming the problems of the original notation. ISVL can also be used as a synchronous communication medium whereby one of the users (generally the tutor) can provide an annotated demonstration of a program and its execution, a far richer alternative to technical discussions over the telephone. Finally, ISVL can be used to support asynchronous communication, helping students who work at unsociable hours by allowing the tutor to prepare short educational movies for them to view when convenient. The ISVL environment runs on a conventional web browser and is therefore platform independent, has modest hardware and bandwidth requirements, and is easy to distribute and maintain. Our planned experiments with ISVL will allow us to investigate ways in which new technology can be most appropriately applied in the service of distance education
Recommended from our members
An application of formal semantics to student modelling : an investigation in the domain of teaching Prolog
This thesis reports on research undertaken in an exploration of the use of formal semantics for student modelling in intelligent tutoring systems. The domain chosen was that of tutoring programming languages and within that domain Prolog was selected to be the target language for this exploration. The problem considered is one of how to analyse students' errors at a level which allows diagnosis to be more flexible and meaningful than is possible with the 'mal-rules' and 'bugcatalogue' approach of existing systems. The ideas put forward by Robin Milner [1980] in his Calculus of Communicating Systems (CCS) form the basis of the formalism which is proposed as a solution to this problem. Based on the findings of an empirical investigation, novices' misconceptions of control flow in Prolog was defined as a suitable area in which to explore the application of this solution. A selection of Prolog programs used in that investigation was formally described in terms of CCS. These formal descriptions were used by a production rule system to generate a number of the incomplete or faulty models of Prolog execution which were identified in the first empirical study. In a second empirical study, a machine-analysis tool, designed to be part of a diagnostic tutoring module, used these models to diagnose students' misconceptions of Prolog control flow. This initial application of CCS to student modelling showed that the models of Prolog execution generated by the system could be used successfully to detect students' misunderstandings. Results from the research reported here indicate that the use of formal semantics to model programming languages has a useful contribution to make to the task of student modelling
Recommended from our members
Multiple Viewpoints for Tutoring Systems.
This thesis investigates the issue of how a tutoring system, intelligent or otherwise, may be designed to utilise multiple viewpoints on the domain being tutored, and what benefits may accrue from this. The issue was relevant to earlier systems, such as WHY (Stevens et al. 1979) and STEAMER (Hollan et al. 1984).
The relevant literature is reviewed, and criteria which must be met by our implementation of viewpoints are established. Viewpoints are conceptualised as pre-defined structures which can be represented in a tutoring system with the potential to increase its effectiveness and adaptability. A formalism is proposed where inferences are drawn from a model by a range of operators. The application of this combination to problems and goals is to be described heuristically. This formulation is then related to the educational philosophy of Cognitive Apprenticeship. The formalism is tested and refined in a protocol analysis study which leads to the definition of three classes of operators.
The viewpoint structure is used to produce a detailed formulation of the domain of Prolog debugging for novices, with the goal that students should learn how different bugs may be localised using different viewpoints. Three models of execution are defined, based on those described by Bundy et al. (1985). These are mapped onto a restricted catalogue of bugs by specifying a number of conventions which produce a simplified and consistent domain suited to the needs of novices.
VIPER, a tutoring system which can itself accomplish and explain the relevant domain tasks, is described. VIPER is based on a meta-interpreter which produces detailed execution histories which are then analysed. An evaluation of VIPER is reported, with generally favourable results.
VIPER is discussed in relation to the research goals, the usefulness of Cognitive Apprenticeship in supporting such a design, and possible future work. This discussion exemplifies the use of established student modeling techniques, the implementation of other viewpoints on Prolog, and the application of the design strategy to other domains. Claims are made in relation to the formulation of viewpoints, the architecture of VIPER, and the relevance of Cognitive Apprenticeship to the use of multiple viewpoints
Recognising the design decisions in Prolog programs as a prelude to critiquing
This thesis presents an approach by which an automated teaching system can
analyse the design of novices' Prolog programs for tutorial critiquing. Existing
methodologies for tutorial analysis of programs focus on the kind of small pro¬
gramming examples that are used only in the early stages of teaching. If an
automated teaching system is to be widely useful, it must cover a substantial
amount of the teaching syllabus, and a critiquing system must be able to analyse
and critique programs written during the later stages of the syllabus.The work is motivated by a study of students' Prolog programs which were
written as assessed exercises towards the end of their course. These programs
all work (in some sense), yet they reveal a wide range of design (laws (bodges)
for which some form of tutoring would be useful. They present problems for any
automated analysis in terms of the size of the programs, the number of individual
decisions that must be made to create each program and the range of correct
and incorrect decisions that may be made in each case.This study identifies two areas in the analysis of students' program in which
further work is needed. Existing work has focussed only on the design and
implementation decisions that relate closely to the programming language. That
is not sufficient for these slightly more advanced programs, for which decisions in
the problem domain must also be recognised. Existing work has focussed on the
different ways to implement code, but in these programs the students also make
decisions about which data structures are to be used. These decisions must also
be part of an analysis.The thesis provides an approach which represents both decisions in the domain
of the problem being solved and decisions about how to implement them in
Prolog. Decisions in the problem domain are represented by tasks (for code)
and by domain objects (for data structures). Decisions that are specific to the
Prolog implementation are represented by prototypes which encapsulate standard
programming techniques (for code) and by a polymorphic data type language (for
data structures). Issues in devising these representations are discussed.An analysis-by synthesis approach is used for code recognition. This is aug¬
mented by a procedure called "clausal split" which isolates novel or poorly de¬
signed parts of an implementation. Following an incomplete analysis of the
program by synthesis, the results of this analysis provide the basis for making
inferences about the parts of the program that have not been understood. For
analysing data structures, a type inference mechanism is combined with inference
about the parts of domain objects. Inferred data type information is also used
to limit search, both for synthesis and analysis.An architecture using this approach has been implemented. The success of the
architecture is assessed on student's programs. From this assessment it is clear
that much further work remains to be done, but the results are hopeful
Enhanced JavaScript learning using code quality tools and a rule-based system in the FLIP Exploratory Learning Environment
The ‘FLIP Learning’ (Flexible, Intelligent and Personalised Learning) is an Exploratory Learning Environment (ELE) for teaching elementary programming to beginners using JavaScript. This paper presents the subsystem that is used to generate individualised real-time support to students depending on their initial misconceptions. The subsystem is intended to be used primarily in the early stages of student engagement in order to help them overcome the constraints of their Zone of Proximal Development (ZPD) with minimal assistance from teachers
- …