2,676 research outputs found
An Editor for Helping Novices to Learn Standard ML
This paper describes a novel editor intended as an aid in the learning of the functional programming language Standard ML. A common technique used by novices is programming by analogy whereby students refer to similar programs that they have written before or have seen in the course literature and use these programs as a basis to write a new program. We present a novel editor for ML which supports programming by analogy by providing a collection of editing commands that transform old programs into new ones. Each command makes changes to an isolated part of the program. These changes are propagated to the rest of the program using analogical techniques. We observed a group of novice ML students to determine the most common programming errors in learning ML and restrict our editor such that it is impossible to commit these errors. In this way, students encounter fewer bugs and so their rate of learning increases. Our editor, C Y NTHIA, has been implemented and is due to be tested on st..
An ML Editor based on Proofs-as-Programs
. C Y NTHIA is a novel editor for the functional programming language ML in which each function definition is represented as the proof of a simple specification. Users of C Y NTHIA edit programs by applying sequences of high-level editing commands to existing programs. These commands make changes to the proof representation from which a new program is then extracted. The use of proofs is a sound framework for analysing ML programs and giving useful feedback about errors. Amongst the properties analysed within C Y NTHIA at present is termination. C Y NTHIA has been successfully used in the teaching of ML in two courses at Napier University. 1 Introduction Current programming environments for novice functional programming (FP) are inadequate. This paper describes ways of using mechanised theorem proving to improve the situation, in the context of the language ML [9]. ML is a stronglytyped FP language with type inference [4]. ML incorporates extensive use of pattern match..
Use of proofs-as-programs to build an anology-based functional program editor
This thesis presents a novel application of the technique known as proofs-as-programs.
Proofs-as-programs defines a correspondence between proofs in a constructive logic
and functional programs. By using this correspondence, a functional program may be
represented directly as the proof of a specification and so the program may be analysed within this proof framework. CʸNTHIA is a program editor for the functional
language ML which uses proofs-as-programs to analyse users' programs as they are
written. So that the user requires no knowledge of proof theory, the underlying proof
representation is completely hidden.
The proof framework allows programs written in CʸNTHIA to be checked to be
syntactically correct, well-typed, well-defined and terminating.
CʸNTHIA also embodies the idea of programming by analogy — rather than starting
from scratch, users always begin with an existing function definition. They then apply
a sequence of high-level editing commands which transform this starting definition into
the one required. These commands preserve correctness and also increase programming
efficiency by automating commonly occurring steps.
The design and implementation of CʸNTHIA is described and its role as a novice
programming environment is investigated. Use by experts is possible but only a sub-set of ML is currently supported. Two major trials of CʸNTHIA have shown that
CʸNTHIA is well-suited as a teaching tool. Users of CʸNTHIA make fewer programming errors and the feedback facilities of CʸNTHIA mean that it is easier to
track down the source of errors when they do occur
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
Lessons learned from supplementing archaeological museum exhibitions with virtual reality
Archaeological excavations provide us with important clues about the past. Excavated artefacts represent an important connection to civilisations that no longer exist and help us understand some of their customs, traditions and common practices. With the help of academics and practitioners from various disciplines the results of archaeological excavations can be analysed and a body of knowledge about the corresponding society can be created and shared with members of the general public. Museums have traditionally served the purpose of communicating this knowledge and backing it up with the help of the excavated artefacts. Many museum visitors, however, find it difficult to develop a coherent understanding of the corresponding society only based on the artefacts and annotations showed in museums. Effective modern techniques that have high potential in helping museum visitors with better understanding of the past are 3D reconstruction and Virtual Reality. 3D reconstruction offers a cost effective way of recreating historical settlements in a computer-generated virtual environment, while Virtual Reality helps with immersing people into such environments and reaching a high degree of realism. With the help of these technologies it becomes possible to relive history, imagine yourself being a part of the reconstructed society and learn about its culture firsthand. The combination of 3D reconstruction and Virtual Reality \anton{represents} a very powerful learning tool, however this tool has been rarely used in a museum setting and its correct use has not been properly investigated. In this paper we present a study into using Virtual Reality in itinerant archaeological exhibitions. We discuss the lessons we have learned from developing an interactive Virtual Reality simulation of the Neolithic settlement of La Draga. These lessons feature our analysis of qualitative and quantitative feedback of museum visitors, as well as what we have learned from analysing their navigation and interaction patterns
An Intelligent Debugging Tutor For Novice Computer Science Students
Debugging is a necessary aspect of computer science that can be difficult for novices and experienced programmers alike. This skill is mainly self-taught and is generally gained through trial and error, perhaps with some assistance from a professor or other expert figure. Novices encountering their first software defects may have few avenues open to them depending on the environment in which they are learning to program. The evident problem here is that the potential for a student to become stuck, frustrated, and/or losing confidence in their ability to pursue computer science is great. For a student to be successful when working professionally or progressing through academia they need to be able to function independently; trusting their own knowledge on par or above that of others so that their productivity does not rely on the knowledge of someone else. In order to solve this problem an Intelligent Tutoring System for teaching debugging skills to the novice utilizing Case Based Reasoning, Static Program Slicing, and the student\u27s preferred learning style was proposed. Case acquisition and automatic Exercise Generation were also explored. The system built for this research program was evaluated using novice students at the College and High School levels. Results of this evaluation produced statistically significant results at the p\u3c.05 and p\u3c.01 levels, with generated exercises exhibiting significance at the p\u3c.01 level. These results prove that the methodology chosen is a valid approach for the problem described, that the system does in fact teach students how to debug programs, and that the system is capable of successfully generating exercises on the fly
mage: Fluid Moves Between Code and Graphical Work in Computational Notebooks
We aim to increase the flexibility at which a data worker can choose the
right tool for the job, regardless of whether the tool is a code library or an
interactive graphical user interface (GUI). To achieve this flexibility, we
extend computational notebooks with a new API mage, which supports tools that
can represent themselves as both code and GUI as needed. We discuss the design
of mage as well as design opportunities in the space of flexible code/GUI tools
for data work. To understand tooling needs, we conduct a study with nine
professional practitioners and elicit their feedback on mage and potential
areas for flexible code/GUI tooling. We then implement six client tools for
mage that illustrate the main themes of our study findings. Finally, we discuss
open challenges in providing flexible code/GUI interactions for data workers
Exploring a technology-facilitated part-complete solution method for learning computer programming
Learning to program is now a requirement in many courses of study in such areas as computer science, information technology, information systems, multimedia. engineering, and science. However, research indicates that many students have great difficulties in learning to program and this results in high failure rates and high levels of withdrawal from academic courses. It is accepted that programming is an intrinsically difficult subject however the teaching and learning methods used in many programming courses have changed little over the years. The literature indicates the importance of reducing the cognitive load that students experience when learning programming and that one method that has potential to do this uses part-complete program solutions. This study sought to explore a technology supported part-complete solution method (TSPCSM) for the learning of computer programming. A teaching and learning framework for programming was developed and a technology supported “COde Restucturing Tool” CORT, was then designed around the learning framework and developed to support the part-complete solution method and provide a suitable learning environment. A quasi-experimental research design framework was utilised in the study which used both qualitative and quantitative research methods. A series of programming problems was developed for CORT and an experiment was undertaken with students who were studying introductory programming. Experimental and control groups were utilised in the experiment which took place over a 14 week semester at an Australian university The data were analysed and they provided rich information concerning three research questions relating to the part-complete solution method (PCSM) through CORT: how students engaged with CORT; how CORT supported the learning process; and how CORT impacted upon their learning outcomes. Results from the study indicated that the PCSM within CORT imposed a low cognitive load on students; provided high levels of cognitive support; strong scaffolding for learning; and students engaged well with the system and generally used a thoughtful and considered strategy to solving programming problems. No differences in learning achievement were found between the experimental and control groups, however other findings indicated that the students who used the PCSM within CORT required significantly less time and less help than the control group and the students who benefited most from the use of CORT appeared to have well developed mental models of program execution, More research is clearly needed to further explore the best ways to implement CORT so that learning advantages can be gained e solution method and provide a suitable learning environment. A quasi-experimental research design framework was utilised in the study which used both qualitative and quantitative research methods. A series of programming problems was developed for CORT and an experiment was undertaken with students who were studying introductory programming. Experimental and control groups were utilised in the experiment which took place over a 14 week semester at an Australian university The data were analysed and they provided rich information concerning three research questions relating to the part-complete solution method (PCSM) through CORT: how students engaged with CORT; how CORT supported the learning process; and how CORT impacted upon their learning outcomes. Results from the study indicated that the PCSM within CORT imposed a low cognitive load on students; provided high levels of cognitive support; strong scaffolding for learning; and students engaged well with the system and generally used a thoughtful and considered strategy to solving programming problems. No differences in learning achievement were found between the experimental and control groups, however other findings indicated that the students who used the PCSM within CORT required significantly less time and less help than the control group and the students who benefited most from the use of CORT appeared to have well developed mental models of program execution, More research is clearly needed to further explore the best ways to implement CORT so that learning advantages can be gained to solving programming problems. No differences in learning achievement were found between the experimental and control groups, however other findings indicated that the students who used the PCSM within CORT required significantly less time and less help than the control grou
Recent Advances in Artificial Intelligence-Assisted Ultrasound Scanning
Funded by the Spanish Ministry of Economic Affairs and Digital Transformation (Project MIA.2021.M02.0005 TARTAGLIA, from the Recovery, Resilience, and Transformation Plan financed by the European Union through Next Generation EU funds). TARTAGLIA takes place under the R&D Missions in Artificial Intelligence program, which is part of the Spain Digital 2025 Agenda and the Spanish National Artificial Intelligence Strategy.Ultrasound (US) is a flexible imaging modality used globally as a first-line medical exam procedure in many different clinical cases. It benefits from the continued evolution of ultrasonic technologies and a well-established US-based digital health system. Nevertheless, its diagnostic performance still presents challenges due to the inherent characteristics of US imaging, such as manual operation and significant operator dependence. Artificial intelligence (AI) has proven to recognize complicated scan patterns and provide quantitative assessments for imaging data. Therefore, AI technology has the potential to help physicians get more accurate and repeatable outcomes in the US. In this article, we review the recent advances in AI-assisted US scanning. We have identified the main areas where AI is being used to facilitate US scanning, such as standard plane recognition and organ identification, the extraction of standard clinical planes from 3D US volumes, and the scanning guidance of US acquisitions performed by humans or robots. In general, the lack of standardization and reference datasets in this field makes it difficult to perform comparative studies among the different proposed methods. More open-access repositories of large US datasets with detailed information about the acquisition are needed to facilitate the development of this very active research field, which is expected to have a very positive impact on US imaging.Depto. de Estructura de la Materia, Física Térmica y ElectrónicaFac. de Ciencias FísicasTRUEMinistry of Economic Affairs and Digital Transformation from the Recovery, Resilience, and Transformation PlanNext Generation EU fundspu
- …