2,029 research outputs found
Modelling recursion
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
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
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
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
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
Recommended from our members
Effectiveness of landmark analysis for establishing locality in p2p networks
Locality to other nodes on a peer-to-peer overlay network can be established by means of a set of landmarks shared among the participating nodes. Each node independently collects a set of latency measures to landmark nodes, which are used as a multi-dimensional feature vector. Each peer node uses the feature vector to generate a unique scalar index which is correlated to its topological locality. A popular dimensionality reduction technique is the space filling Hilbert’s curve, as it possesses good locality
preserving properties. However, there exists little comparison between Hilbert’s curve and other techniques for dimensionality reduction. This work carries out a quantitative analysis of their properties. Linear and non-linear techniques for scaling the landmark vectors to a single dimension are investigated. Hilbert’s curve, Sammon’s mapping and Principal Component Analysis
have been used to generate a 1d space with locality preserving properties. This work provides empirical evidence to support the use of Hilbert’s curve in the context of locality preservation when generating peer identifiers by means of landmark vector analysis. A comparative analysis is carried out with an artificial 2d network model and with a realistic network topology model
with a typical power-law distribution of node connectivity in the Internet. Nearest neighbour analysis confirms Hilbert’s curve to be very effective in both artificial and realistic network topologies. Nevertheless, the results in the realistic network model show that there is scope for improvements and better techniques to preserve locality information are required
Kohti automaattisia vihjeitä visuaalisessa algoritmisimulaatiossa
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
- …