2,029 research outputs found

    Modelling recursion

    Get PDF
    The purpose of my research is to examine and explore the ways that undergraduate students understand the concept of recursion. In order to do this, I have designed computer-based software, which provides students with a virtual and interactive environment where they can explore the concept of recursion, and demonstrate and develop their knowledge of recursion through active engagement. I have designed this computer-based software environment with the aim of investigating how students think about recursion. My approach is to design digital tools to facilitate students' understanding of recursion and to expose that thinking. My research investigates students' understanding of the hidden layers and inherent complexity of recursion, including how they apply it within relevant contexts. The software design embedded the idea of functional abstraction around two basic principles of: 'functioning' and 'functionality'. The functionality principle focuses on what recursion achieve, and the functioning dimension concerns how recursion is operationalised. I wanted to answer the following crucial question: How does the recursive thinking of university students evolve through using carefully designed digital tools? In the process of exploring this main question, other questions emerged: 1. Do students understand the difference between recursion and iteration? 2. How is tail and embedded recursion understood by the students? 3. To what extent does prior knowledge of the concept of iteration influence students' understanding of tail and embedded recursion? 4. Why is it important to have a clear understanding of the control passing mechanisms in order to understand recursion? 5. What is the role of functional abstraction in both, the design of computer-based tools and the students' understanding of recursion? 6. How are students' mental models of recursion shaped by their engagement with computer-based tools? From a functional abstraction point of view almost all previous research into the concept of recursion has focused on the functionality dimension. Typically, it has focused on procedures for the calculation of the factorial of a natural number, and students were tested to see if they are able to work out the values of the a function recursively (Wiedenbeck, 1988; Anazi and Uesato, 1982) or if they are able to recognize a recursive structure (Sooriamurthi, 2001; Kurland and Pea, 1985). Also, I invented the Animative Visualisation in the Domain of Abstraction (AVDA) which combines the functioning and functionality principles regarding the concept of recursion. In the AVDA environment, students are given the opportunity to explore the hidden layers and the complicated behaviour of the control passing mechanisms of the concept of recursion. In addition, most of the textbooks in mathematics and computer sciences usually fail to explain how to use recursion to solve a problem. Although it is also true that text books do not typically explain how to use iteration to solve problems, students are able to draw on to facilitate solving iterative problems (Pirolli et al, 1988). My approach is inspired by how recursion can be found in everyday life and in real world phenomena, such as fractal-shaped objects like trees and spirals. This research strictly adheres to a Design Based Research methodology (DBR), which is founded on the principle of the cycle of designing, testing (observing the students' experiments with the design), analysing, and modifying (Barab and Squire, 2004; Cobb and diSessa, 2003). My study was implemented throughout three iterations. The results showed that in the AVDA (Animative Visualisation in the Domain of Abstraction) environment students' thinking about the concept of recursion changed significantly. In the AVDA environment they were able to see and experience the complicated control passing mechanism of the tail and embedded recursion, referred to a delegatory control passing. This complicated control passing mechanism is a kind of generalization of flow in the iterative procedures, which is discussed later in the thesis. My results show that, to model a spiral, students prefer to use iterative techniques, rather than tail recursion. The AVDA environment helped students to appreciate the delegatory control passing for tail recursive procedures. However, they still demonstrated difficulties in understanding embedded recursive procedures in modelling binary and ternary trees, particularly regarding the transition of flow between recursive calls. Based on the results of my research, I have devised a model of the evolution of students' mental model of recursion which I have called – the quasi-pyramid model. This model was derived from applying functional abstraction including both functionality and functioning principles. Pedagogic implications are discussed. For example, the teaching of recursion might adopt 'animative' visualization, which is of vitally important for students' understanding of latent layers of recursion

    Introductory programming: a systematic literature review

    Get PDF
    As computing becomes a mainstream discipline embedded in the school curriculum and acts as an enabler for an increasing range of academic disciplines in higher education, the literature on introductory programming is growing. Although there have been several reviews that focus on specific aspects of introductory programming, there has been no broad overview of the literature exploring recent trends across the breadth of introductory programming. This paper is the report of an ITiCSE working group that conducted a systematic review in order to gain an overview of the introductory programming literature. Partitioning the literature into papers addressing the student, teaching, the curriculum, and assessment, we explore trends, highlight advances in knowledge over the past 15 years, and indicate possible directions for future research

    Open data and the academy: an evaluation of CKAN for research data management

    Get PDF
    This paper offers a full and critical evaluation of the open source CKAN software (http://ckan.org) for use as a Research Data Management (RDM) tool within a university environment. It presents a case study of CKAN's implementation and use at the University of Lincoln, UK, and highlights its strengths and current weaknesses as an institutional Research Data Management tool. The author draws on his prior experience of implementing a mixed media Digital Asset Management system (DAM), Institutional Repository (IR) and institutional Web Content Management System (CMS), to offer an outline proposal for how CKAN can be used effectively for data analysis, storage and publishing in academia. This will be of interest to researchers, data librarians, and developers, who are responsible for the implementation of institutional RDM infrastructure. This paper is presented as part of the dissemination activities of the Jisc-funded Orbital project (http://orbital.blogs.lincoln.ac.uk

    Proceedings of the Second Program Visualization Workshop, 2002

    Get PDF
    The Program Visualization Workshops aim to bring together researchers who design and construct program visualizations and, above all, educators who use and evaluate visualizations in their teaching. The first workshop took place in July 2000 at Porvoo, Finland. The second workshop was held in cooperation with ACM SIGCSE and took place at HornstrupCentret, Denmark in June 2002, immediately following the ITiCSE 2002 Conference in Aarhus, Denmark

    Visual and Textual Programming Languages: A Systematic Review of the Literature

    Get PDF
    It is well documented, and has been the topic of much research, that Computer Science courses tend to have higher than average drop out rates at third level. This is a problem that needs to be addressed with urgency but also caution. The required number of Computer Science graduates is growing every year but the number of graduates is not meeting this demand and one way that this problem can be alleviated is to encourage students at an early age towards studying Computer Science courses. This paper presents a systematic literature review on the role of visual and textual programming languages when learning to program, particularly as a first programming language. The approach is systematic, in that a structured search of electronic resources has been conducted, and the results are presented and quantitatively analysed. This study will give insight into whether or not the current approaches to teaching young learners programming are viable, and examines what we can do to increase the interest and retention of these students as they progress through their education.Comment: 18 pages (including 2 bibliography pages), 3 figure

    Kohti automaattisia vihjeitä visuaalisessa algoritmisimulaatiossa

    Get PDF
    Visual Algorithm Simulation (VAS) exercise is an interactive application, which teaches an algorithm or a data structure. The exercise shows the student a visual representation of a data structure with initial data. The student imitates the execution of the algorithm by interacting with the visual representation. The student's solution is graded automatically. A misconception about the algorithm being learned can manifest itself as systematic errors, which can be modelled as a new algorithm. It is assumed that a VAS exercise, which could detect automatically a misconception and give corrective feedback would further support learning. This thesis includes a literature review on algorithm misconceptions and an empirical study. Four VAS exercises of OpenDSA e-textbook are reviewed by their program code: Evaluating a postfix expression, Build heap, Quicksort, and Dijkstra's algorithm. A dataset of 1430 Build heap VAS submissions is analysed manually with ad-hoc software. The submissions are then automatically classified based on the misconceptions found. The main result extends the set of known misconceptions of the Build-heap VAS exercise. 52 percent of the submissions were correct, 17 percent were misconceptions and the rest 31 percent had a lo0gical explanation. 95 per cent of submissions classified as misconception have multiple explanations with heap size of 10. The thesis presents a Python software, which can automatically classify the known misconceptions. Theory on how to generate VAS inputs, which support detection of misconceptions is discussed. The theory is applied by improving the input generation of Dijkstra's algorithm exercise. The thesis concludes that studying misconceptions in the VAS exercises of OpenDSA currently requires exercise-dependent work. Not all OpenDSA VAS exercises record enough data for later analysis. Moreover, the player and analysis software must be written separately for each exercise. There is need to develop the OpenDSA related software libraries to produce detailed exercise recordings. It should be studied how the heap size in the Build-heap exercise affects detection of misconceptions.Visuaalinen algoritmisimulaatiotehtävä (VAS-tehtävä) on vuorovaikutteinen sovellus, joka opettaa algoritmin tai tietorakenteen. Tehtävä näyttää opiskelijalle kuvan tietorakenteesta lähtödatalla. Opiskelija mukailee algoritmin suoritusta vuorovaikuttamalla kuvaesityksen kanssa. Opiskelijan ratkaisu arvostellaan automaattisesti. Väärinkäsitys VAS-tehtävässä on opiskelijan järjestelmällinen väärinymmärrys, joka voidaan kuvata algoritmilla. On oletus, että VAS-tehtävä, joka tunnistaisi automaattisesti väärinkäsityksen ja antaisi korjaavaa palautetta, tukisi oppimista entisestään. Tämä opinnäytetyö sisältää kirjallisuustutkimuksen algoritmien väärinkäsityksistä sekä empiirisen tutkimuksen. Sähköisen OpenDSA-kirjan neljä VAS-tehtävää on tutkittu niiden ohjelmakoodiltaan: Postfix-lausekkeen evaluointi, binäärikeon rakentaminen, pikajärjestäminen ja Dijkstran algoritmi. Tietoaineisto, jossa on 1430 tallennetta Binäärikeon rakentaminen -tehtävästä, on analysoitu käsin tätä varten kehitetyllä ohjelmalla. Tallenteet on sitten automaattisesti luokiteltu löydettyjen väärinkäsitysten perusteella. Työn päätulos laajentaa binäärikeon rakentaminen -tehtävän väärinkäsityksien joukkoa. 52 prosenttia tehtäväpalautuksista oli oikein, 17 prosenttia väärinkäsityksiä ja loput 31 prosenttia voidaan selittää loogisesti. 95 prosentilla niistä palautuksista, jotka luokiteltiin väärinkäsitykseksi, oli useampi yhtä hyvä selitys, kun keon koko oli 10. Työ esittää Python-ohjelman, joka voi automaattisesti luokitella tunnettuja väärinkäsityksiä. Työ esittää myös teoriaa, kuinka tuottaa VAS-tehtävien lähtödataa siten, että se tukisi väärinkäsitysten tunnistamista. Teoriaa on sovellettu parantam alla Dijkstran algoritmi -tehtävän syötteen tuottamista. Johtopäätöksenä OpenDSA:n VAS-tehtävien väärinkäsitysten tutkiminen vaatii nykyisellään tehtäväkohtaista työtä. Kaikki OpenDSA:n VAS-tehtävät eivät tallenna riittävästi dataa myöhempää analyysiä varten. Lisäksi tehtävätoistin ja analyysiohjelma pitää kirjoittaa erikseen joka tehtävälle. On tarve kehittää OpenDSA:n ohjelmakirjastoja tuottamaan yksityiskohtaisia tehtävätallenteita. Binäärikeon rakentaminen -tehtävässä pitäisi tutkia keon koon vaikutusta väärinkäsitysten tunnistamiseen
    • …
    corecore