256 research outputs found
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
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
Recommended from our members
Visual Programming in Prolog
A new, simple, complete visual formalism for programming in Prolog is presented. The formalism is shown to be equivalent to the standard textual notation for Prolog. We demonstrate some kinds of relationships and styles of programming that appear to be particularly lucid for novices when presented in the graphic notation, while other aspects of Prolog are identified that are clearer in the standard notation. The symbolism is proposed as a specialised complement, but not a replacement, for the traditional notation. The design of a computer interface called VPP is presented that supports visual programming in Prolog using the graphical notation. We discuss a prototype of VPP that has been implemented. We give examples to demonstrate how VPP has the capacity to allow users with little or no knowledge of Prolog to explore, understand, modify and create Prolog programs used to represent domain expertise in intelligent tutoring systems and interactive learning environments. We argue that the use of VPP may have advantages for beginners in the early stages of learning to program in Prolog, and may help to avoid certain misconceptions. We informally analyse the structure and properties of the notation from an abstract human-machine interaction viewpoint. An extension of the interpreter (dubbed VPE) designed for visualising Prolog execution spaces is presented. The limitations and possibilities for further work of both systems are identified and discussed
Preliminary report on the design of a constraint-based musical planner
This work described in this paper forms part of a wider research project, described in Holland (1989), to find ways of using artificial intelligence methods to encourage and facilitate music composition by musical novices. This paper focusses on the key component of a knowledge-based tutoring system under development to help novices learn to compose and analyse musically 'sensible' chord sequences. This key component is a constraint-based musical planner dubbed 'PLANC'. The musical planner (together with its set of musical 'plans') can be used to construct and analyse chord sequences in terms of musical strategies that can be understood and made use of by complete musical novices. PLANC can generate a class of musically 'interesting' chord sequences that include the chord sequences of many well known existing pieces of music, as well as generating a large space of new 'interesting' sequences. The design of the planner draws on a characterisation of creativity due to Johnson-Laird (1988). The planner is psychologically plausible , though not intended as a detailed cognitive model. An overview of the structure of PLANC is presented, and its suitability for use in a tutoring system is considered. The design of the planner is criticised. Each of the main components of PLANC is analysed: plan variables, constraints, value generators and methods. Much of the 'knowledge' used in PLANC consists of informal musical knowledge: three appendices analyse the different kinds of informal knowledge used. The applicability and value of similar constraint-based mechanisms in intelligent tutors in a wide range of other open-ended domains is considere
A techniques-based framework for domain-specific synthesis of simulation models
The formal specification community has produced many languages but few structured
design methods. Those which exist tend to be abstract, providing little guidance in
tackling problems in particular domains. One way of devising domain -specific design
methods is by reconstructing an example in the domain using the target method; then
generalising the design structures to cover a class of designs in the domain and finally
building an environment in which these structures may more easily be re- applied to new
problems. We demonstrate this approach using animal population dynamics models
as the domain and Prolog techniques as the target method.We have identified domain -specific techniques which use a parameterisation method
from techniques editing but which contain information specific to the population dynamics domain; we define a problem description language which uses concepts from
population dynamics; an interface which allows these concepts to be supplied; and
provide an automated system which bridges between population dynamics problem
description and the domain -specific techniques needed for model generation.TeMS - Techniques -based Model Synthesiser, is the system constructed as the main
instrument of our research. Because it is an embodiment of our views on the issues
addressed, we submitted TeMS to user evaluation by ecological modelling experts,
which produced material for a broad discussion of the system itself, its approach to
modelling and its potential uses on the ecological modelling scenario
- …