76 research outputs found

    Comparing Small Programs for Equivalence: A Code Comprehension Task for Novice Programmers

    Get PDF
    Novice programmers should develop program comprehension skills as they learn to code so that they are able both to read and reason about code created by others, and to reflect on their code when writing, debugging or extending it. This work takes a little-explored perspective on the comprehension of small programs by asking students to decide if two code segments are equivalent or not in terms of carrying out the same computation. A variation of Euclid's algorithm, that extends the greatest common divisor calculation to more than two numbers, was chosen for this work, as it has an adequate level of complexity and its semantics are not obvious. Four program transformations of the original code were developed: two transformations were equivalent and two were not. 73.5% of students were able to identify correctly the four options and 75.5% provided good insights on the equivalent program flow to justify their choices. The overall task has a SOLO mean of 3.19, which indicates code equivalence is a suitable and approachable task to analyse program execution at novice level. In addition, the data analysis suggests that students' code-reading abilities beyond basic tracing may be generally underestimated and we should investigate how to bridge the potential gap between reasoning about program execution and extracting its purpose

    Learning Transfer in Novice Programmers: A Preliminary Study

    Get PDF
    Learning transfer refers to the ability to correctly apply learned skills, knowledge and behaviors to new situations or contexts. This paper explores novice programmers' transfer through the analysis of two related coding tasks completed by CS1 students as part of their assessment. The first task was a take-home practical and the second task was a lab practical exam; both tasks requested the implementation of a C function with an integer parameter from which the digits are to be extracted and operated on. The solution set generated from each task by a cohort of 255 CS1 students has been explored and classified in order to determine the extent of transfer from the practice task to the later assessment task. This classification shows 36.5% of students consolidated or extended the acquired skills and 13% at least partly; 38%, on the other hand, failed to recall their previous valid strategy or to devise a better one, and were unsuccessful in the second task. On the positive side, 9% of students devised a different and improved strategy in the exam, indicating additional learning had occurred in between the two tasks. Peer review of key coding tasks could improve transfer by forcing weaker students to compare and evaluate different design strategies

    Program Comprehension: Identifying Learning Trajectories for Novice Programmers

    Get PDF
    This working group asserts that Program Comprehension (PC) plays a critical part in the writing process. For example, this abstract is written from a basic draft that we have edited and revised until it clearly presents our idea. Similarly, a program is written in an incremental manner, with each step being tested, debugged and extended until the program achieves its goal. Novice programmers should develop their program comprehen- sion as they learn to code, so that they are able to read and reason about code while they are writing it. To foster such competencies our group has identified two main goals: (1) to collect and define learning activities that explicitly cover key components of program comprehension and (2) to define possible learning trajectories that will guide teachers using those learning activities in their CS0/CS1 or K-12 courses. [...

    Is iteration really easier to learn than recursion for CS1 students?

    No full text
    There is general consensus that recursion is difficult to learn, which may be meant to imply that novice students are more at ease with iteration --- probably a widespread perception of students themselves. However, three years of investigation in a context where recursion is introduced earlier than iteration, as well as control experiments for a standard imperative-first introduction to programming, have provided no evidence that students make more progress with iteration than they do with recursion. More specifically, by means of a pair of questionnaires devised for this purpose, two research questions have been addressed. First, do the students who learned recursion before iteration actually exhibit a stronger ability to deal with the latter? Second, do the students of the imperative-first path master iteration better than those of the recursion-earlier path

    Convex Minimization on a Grid and Applications

    No full text
    This artide discussesa discrete version of the convex minimization problem with applicationsto the efficient computation of proximity measures for pairs of convex polyhedra. Given a d-variate convex function and an isothetic grid of size O(nd) in \u211dd, which is supposed to be finite but not necessarily regular, we want to find the grid cell containing the minimum point. With this aim, we identify a dass of elementary subproblems, each resulting in the determination of a half-space in \u211dd, and show that the minimization problem can be solved by computing O(log n) half-spaces in the worst case for almost uniform grids of fixed dimension d and O(log n) half-planes in the average for arbitrary planar grids A major point is the potential of the approach to uniformly solve distance related problems for different configurations of a pair of convex bodies In this respect, the case of a bivariate function is of particular interest and leads to a fast algorithm for detecting collisions between two convex polyhedra in three dimensions. The collision algo-rithm runs in O(log2n) average time for polyhedra with O(n) vertices whose boundaries are suitably represented; more specifically, the 1-skeletons can be embedded into layered Directed Acyclic Graphs which require just O(n) storage. The article ends with a brief discussion of a few experimental results

    Learning transfer in novice programmers: A preliminary study

    No full text
    Learning transfer refers to the ability to correctly apply learned skills, knowledge and behaviors to new situations or contexts. This paper explores novice programmers’ transfer through the analysis of two related coding tasks completed by CS1 students as part of their assessment. The first task was a take-home practical and the second task was a lab practical exam; both tasks requested the implementation of a C function with an integer parameter from which the digits are to be extracted and operated on. The solution set generated from each task by a cohort of 255 CS1 students has been explored and classified in order to determine the extent of transfer from the practice task to the later assessment task.This classification shows 36.5% of students consolidated or extended the acquired skills and 13% at least partly; 38%, on the other hand, failed to recall their previous valid strategy or to devise a better one, and were unsuccessful in the second task. On the positive side, 9% of students devised a different and improved strategy in the exam, indicating additional learning had occurred in between the two tasks. Peer review of key coding tasks could improve transfer by forcing weaker students to compare and evaluate different design strategies.Cruz Izu, Claudio Mirol

    Numeri e Macchine: Un museo virtuale per apprendere la storia dell'informatica

    No full text
    Questo articolo si propone di illustrare il progetto e la realizzazione di un museo virtuale sulla storia dell\u2019informatica. ll lavoro nasce dall\u2019esperienza maturata negli allestimenti della mostra \u201cNumeri e Macchine\u201d a Udine e si inserisce in un momento di crescente attenzione per la radici storiche dell\u2019informatica. Infatti, in ambito scolastico e universitario ormai si riconosce che una riflessione in chiave storica pu\uf2 favorire un atteggiamento critico da parte dei sempre pi\uf9 numerosi utenti del computer. I vari aspetti del progetto sono stati affrontati facendo riferimento a due obiettivi principali. Da un lato si \ue8 inteso cogliere le potenzialit\ue0 offerte dalla multimedialit\ue0 e dall\u2019interattivit\ue0 al fine di sviluppare un ambiente di apprendimento che si caratterizzi per ricchezza di stimoli e per un coinvolgimento attivo del visitatore, attraverso azioni che vanno da semplici manipolazioni di oggetti fino alla sperimentazione di alcuni dispositivi di calcolo, contribuendo cos\uec a mantenere vivi interesse e motivazione anche nei giovani allievi. D\u2019altro lato si \ue8 cercato di realizzare un\u2019architettura che si presenti come un sistema aperto in grado di evolvere nel tempo, dotato quindi della flessibilit\ue0 necessaria a definire nuovi percorsi di visita, adattabili a diverse esigenze didattiche o divulgative. La versione corrente del museo virtuale, basata sugli strumenti DHTML e consultabile direttamente tramite browser, \ue8 disponibile su CD-ROM ed \ue8 stata utilizzata in alcune sperimentazioni didattiche

    A New Cell-Subdivision Approach to Plan Free Translations in Cluttered Environments

    No full text
    This paper presents a thorough discussion of the potential of a new cell-subdivision approach to plan translations of a convex polygon in a cluttered environment, where the focus is on planning simple motions on the basis of a fine-grained description of the workspace. A free path is planned in two main stages. The first stage exploits a plane-sweep paradigm in order to build a cell subdivision holding much relevant topological information on the free space and organizing a set of polygonal chains that approximate the boundaries of the configuration space obstacles. Then, the computations in the second stage are driven by an A* scheme designed to search the cell subdivision. During the search the bounding chains are subject to further refinements, but the cell graph is no longer modified. Among the remarkable features of the proposed technique we can mention: simple interface with the geometric modeler, based on two collision-detection primitives; small number of cells and adjacencies; incremental characterization of the free space. A few numerical results suggest that the new technique should be worth considering for applications, where appropriate; in particular, it seems to perform better than other approaches based on quadtrees. Moreover, it is quite interesting to observe that the cost of finding collision-free paths grows with the number of convex obstacles, whereas it is almost independent of the overall number of sides: we can interpret this result as supporting the choice of representing the obstacles decomposed into convex components. A succinct comparison between algorithmic and human intuitive path planning is also discussed in order to appraise the rate of redundant information processed by the algorithm, but we can also see that human planners behave significantly better only when the solutions are easy to find
    • …
    corecore