Comprehension First: Evaluating a Novel Pedagogy and Tutoring System for Program Tracing in CS1
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Little Languages for Little Robots
Little Languages for Little Robots Matthew C. Jadud Brooke N. Chenoweth Jacob Schleter University of Kent Canterbury Indiana University Gibson High School Canterbury, UK Bloomington Fort Branch, IN [email protected] Bloomington, IN [email protected] ABSTRACT where students learn by building personally meaningful With serendipity as our muse, we have created tools that artifacts in the world. allow students to author languages of their own design for robots of their own construction. In developing a Scheme 2. JACKLL: A NEW LANGUAGE compiler for the LEGO Mindstorm we realized that there In building up to the evolution of Jackll and the philoso- is great educational potential in the design and creation phies its creation embodies, we feel it is appropriate to of new languages for small robotics kits. As a side effect first introduce the LEGO Mindstorm, the target for our of bringing Scheme and the Mindstorm together in a cre- Scheme compiler, and situate Jackll with respect to other ative context, we have begun an exploration of teaching languages intended for beginner programmers. language design that is fundamentally different from the treatment of the subject in traditional literature. 2.1 What is the LEGO Mindstorm? The LEGO Mindstorm Robotics Invention System is a 1. INTRODUCTION commercial product from the LEGO Group that provides Jacob Schleter, a rising senior at Gibson High School, Fort an inexpensive, reconfigurable platform for exploring robotics. Branch, Indiana, took part in the Indiana University Col- It comes standard with two motors, two touch sensors, one lege of Arts and Sciences Summer Research Experience for light sensor, and hundreds of pieces for assembling all sorts six weeks during the summer of 2002. -
How Modern Learning Resources Fail Conversational Programmers April Y
Mismatch of Expectations: How Modern Learning Resources Fail Conversational Programmers April Y. Wang1, Ryan Mitts1, Philip J. Guo2, and Parmit K. Chilana1 1Computing Science 2Design Lab Simon Fraser University UC San Diego Burnaby, BC Canada La Jolla, CA USA {ayw7, rmitts, pchilana}@sfu.ca [email protected] ABSTRACT Conversational programmers represent a class of learners variety of learners, such as computer science (CS) students who are not required to write any code, yet try to learn pro- [17,28,53], end-user programmers [14,15,30,32] and profes- gramming to improve their participation in technical con- sional programmers [1,3,13]. A large focus of these projects versations. We carried out interviews with 23 conversation- has been on improving learners’ understanding of program- al programmers to better understand the challenges they ming syntax and logic and facilitating interaction with fea- face in technical conversations, what resources they choose ture-rich programming environments as these are known to to learn programming, how they perceive the learning pro- present key challenges for new learners. cess, and to what extent learning programming actually Unfortunately, most of what we know about the programming helps them. Among our key findings, we found that conver- learning process and the challenges that learners face is based sational programmers often did not know where to even on studies of students in the classroom [53] or professionals in begin the learning process and ended up using formal and industry [1]. Only recently have we started seeing studies into informal learning resources that focus largely on program- informal learning processes among non-traditional popula- ming syntax and logic. -
How to Design Co-Programs
JFP, 15 pages, 2021. c Cambridge University Press 2021 1 doi:10.1017/xxxxx EDUCATIONMATTERS How to Design Co-Programs JEREMY GIBBONS Department of Computer Science, University of Oxford e-mail: [email protected] Abstract The observation that program structure follows data structure is a key lesson in introductory pro- gramming: good hints for possible program designs can be found by considering the structure of the data concerned. In particular, this lesson is a core message of the influential textbook “How to Design Programs” by Felleisen, Findler, Flatt, and Krishnamurthi. However, that book discusses using only the structure of input data for guiding program design, typically leading towards structurally recur- sive programs. We argue that novice programmers should also be taught to consider the structure of output data, leading them also towards structurally corecursive programs. 1 Introduction Where do programs come from? This mystery can be an obstacle to novice programmers, who can become overwhelmed by the design choices presented by a blank sheet of paper, or an empty editor window— where does one start? A good place to start, we tell them, is by analyzing the structure of the data that the program is to consume. For example, if the program h is to process a list of values, one may start by analyzing the structure of that list. Either the list is empty ([]), or it is non-empty (a : x) with a head (a) and a tail (x). This provides a candidate program structure: h [ ] = ::: h (a : x) = ::: a ::: x ::: where for the empty list some result must simply be chosen, and for a non-empty list the result depends on the head a and tail x. -
The Computer Clubhouse: Helping Youth Develop Fluency with New Media
The Computer Clubhouse: Helping Youth Develop Fluency with New Media Mitchel Resnick The Media Laboratory Massachusetts Institute of Technology Cambridge, MA 02140 [email protected] http://www.media.rnit.edu/~mres/ Natalie Rusk Science Museum of Minnesota St. Paul, MN55101 [email protected] Abstract: The gap between the technological haves and have-nots is widening, leading to dangerous economic and cultural riftsin our society. But access to technology alone is not enough to bridge this gap. This paper describes a new model of a learning community, called the Computer Clubhouse, that breaks away from the traditional computer lab. At the Clubhouse, inner-city youth become designers and creators-not just consumers-of computer-based products. The paper describes four core principles of the Clubhouse educational approach-and discusses how the Clubhouse helps prepare today's youth for life and work in tomorrow's world. Introduction Ever since the personal computer was invented in the late 1970s, there have been concerns about inequities in access to this new technology [Piller, 1992]. Over the years, the gap between the technological haves and have nots has widened, leading to dangerous economic and cultural rifts in our society. In an effort to narrow these rifts, some groups have worked to acquire computers for inner-city schools. Other groups have opened community-access centers, recognizing that schools are not the only (or necessarily the best) place for learning to occur. At these community-access centers, members of inner-city communities (youth and adults alike) can use computers at little or no charge. -
Proceedings of the 8Th European Lisp Symposium Goldsmiths, University of London, April 20-21, 2015 Julian Padget (Ed.) Sponsors
Proceedings of the 8th European Lisp Symposium Goldsmiths, University of London, April 20-21, 2015 Julian Padget (ed.) Sponsors We gratefully acknowledge the support given to the 8th European Lisp Symposium by the following sponsors: WWWLISPWORKSCOM i Organization Programme Committee Julian Padget – University of Bath, UK (chair) Giuseppe Attardi — University of Pisa, Italy Sacha Chua — Toronto, Canada Stephen Eglen — University of Cambridge, UK Marc Feeley — University of Montreal, Canada Matthew Flatt — University of Utah, USA Rainer Joswig — Hamburg, Germany Nick Levine — RavenPack, Spain Henry Lieberman — MIT, USA Christian Queinnec — University Pierre et Marie Curie, Paris 6, France Robert Strandh — University of Bordeaux, France Edmund Weitz — University of Applied Sciences, Hamburg, Germany Local Organization Christophe Rhodes – Goldsmiths, University of London, UK (chair) Richard Lewis – Goldsmiths, University of London, UK Shivi Hotwani – Goldsmiths, University of London, UK Didier Verna – EPITA Research and Development Laboratory, France ii Contents Acknowledgments i Messages from the chairs v Invited contributions Quicklisp: On Beyond Beta 2 Zach Beane µKanren: Running the Little Things Backwards 3 Bodil Stokke Escaping the Heap 4 Ahmon Dancy Unwanted Memory Retention 5 Martin Cracauer Peer-reviewed papers Efficient Applicative Programming Environments for Computer Vision Applications 7 Benjamin Seppke and Leonie Dreschler-Fischer Keyboard? How quaint. Visual Dataflow Implemented in Lisp 15 Donald Fisk P2R: Implementation of -
Accessible Tools and Curricula for K-12 Computer Science Education
Accessible Tools and Curricula for K-12 Computer Science Education White paper from the Accessible Computer Science Education Fall Workshop (Draft for Review) November 17-19, 2020 Earl Huff, Clemson University Varsha Koushik, University of Colorado Richard E. Ladner, University of Washington Stephanie Ludi, University of North Texas Lauren Milne, Macalester College Aboubakar Mountapmbeme, University of North Texas Margaret Perkoff, University of Colorado Andreas Stefik, University of Nevada, Las Vegas Introduction Ladner Computer science is rapidly becoming an integral part of the K-12 school curriculum in the United States (US) and other countries. This white paper will focus on the US because we understand K-12 education better than in other countries. Since 1984, computer science has been part of the curriculum in schools that offered AP Computer Science A (CSA). This introduction to programming was originally taught using Pascal, then moved to C++ in 1999, and then Java in 2003. Since 2007, there has been a concerted effort by the National Science Foundation to bring computer science education to a much broader audience and to all levels in K-12. This includes all students regardless of gender, ethnicity, race, or disability. The effort began with Exploring Computer Science (ECS) which was a gentler introduction to computer science at the high school level. Shortly thereafter, the idea of an AP Computer Science Principles (CSP) course arose that was to be a gentler introduction to computer science than AP CSA with a college level equivalent, introductory computer science for non-majors. In 2016, AP CSP became a reality with 43,780 students taking the exam in spring 2017 and two years later that number rose to 94,361. -
Adolescent Mothers' Meaning Making and Mindset I
MEANING MAKING AND MINDSET IN YOUNG MOTHERHOOD i “I Think Different Now”: Adolescent Mothers’ Meaning Making and Mindset in the Transition to Parenthood Dissertation submitted by Anne Bentley Waddoups, M.A. In partial fulfillment of the requirements for the degree of Doctor of Philosophy in Child Study and Human Development Eliot-Pearson Department of Child Study and Human Development Tufts University August 2015 Dissertation Committee members: M. Ann Easterbrooks, Ph.D. (Chair) Jayanthi Mistry, Ph.D. Natalie Rusk, Ph.D. Gilda A. Morelli, Ph.D. MEANING MAKING AND MINDSET IN YOUNG MOTHERHOOD i Abstract Using a meaning making lens and a qualitative methodology, this dissertation study sought to explore transformative meaning making and implicit beliefs of parenting among a sample of 40 adolescent mothers participating in a home visiting program during their transition to parenthood. Given the high attrition rate for interventions serving adolescent moms, the study also explored the alignments between meaning making and home visiting program participation. Through iterative coding and theme analysis, this investigation revealed that participants’ beliefs about parenting evolve as they transition from pregnancy to parenting. They engage in meaning making throughout the process, which leads to scripts of change in three areas: improvements in relationships, changes in life outlook, and changes to self. Two groups emerged on either end of the spectrum of meaning making. High meaning-making transformers tended to remain actively enrolled in the intervention while the low meaning-making remainers all dropped out by the second year. An analysis of implicit beliefs about parenting, or meta-parenting mindset, identified three groups of participants: fixed theorists, incremental theorists, and mixed theorists. -
Essentials of Compilation an Incremental Approach
Essentials of Compilation An Incremental Approach Jeremy G. Siek, Ryan R. Newton Indiana University with contributions from: Carl Factora Andre Kuhlenschmidt Michael M. Vitousek Michael Vollmer Ryan Scott Cameron Swords April 2, 2019 ii This book is dedicated to the programming language wonks at Indiana University. iv Contents 1 Preliminaries 5 1.1 Abstract Syntax Trees and S-expressions . .5 1.2 Grammars . .7 1.3 Pattern Matching . .9 1.4 Recursion . 10 1.5 Interpreters . 12 1.6 Example Compiler: a Partial Evaluator . 14 2 Integers and Variables 17 2.1 The R1 Language . 17 2.2 The x86 Assembly Language . 20 2.3 Planning the trip to x86 via the C0 language . 24 2.3.1 The C0 Intermediate Language . 27 2.3.2 The dialects of x86 . 28 2.4 Uniquify Variables . 28 2.5 Remove Complex Operators and Operands . 30 2.6 Explicate Control . 31 2.7 Uncover Locals . 32 2.8 Select Instructions . 32 2.9 Assign Homes . 33 2.10 Patch Instructions . 34 2.11 Print x86 . 35 3 Register Allocation 37 3.1 Registers and Calling Conventions . 38 3.2 Liveness Analysis . 39 3.3 Building the Interference Graph . 40 3.4 Graph Coloring via Sudoku . 42 3.5 Print x86 and Conventions for Registers . 48 v vi CONTENTS 3.6 Challenge: Move Biasing∗ .................... 48 4 Booleans and Control Flow 53 4.1 The R2 Language . 54 4.2 Type Checking R2 Programs . 55 4.3 Shrink the R2 Language . 58 4.4 XOR, Comparisons, and Control Flow in x86 . 58 4.5 The C1 Intermediate Language . -
A Python Implementation for Racket
PyonR: A Python Implementation for Racket Pedro Alexandre Henriques Palma Ramos Thesis to obtain the Master of Science Degree in Information Systems and Computer Engineering Supervisor: António Paulo Teles de Menezes Correia Leitão Examination Committee Chairperson: Prof. Dr. José Manuel da Costa Alves Marques Supervisor: Prof. Dr. António Paulo Teles de Menezes Correia Leitão Member of the Committee: Prof. Dr. João Coelho Garcia October 2014 ii Agradecimentos Agradec¸o... Em primeiro lugar ao Prof. Antonio´ Leitao,˜ por me ter dado a oportunidade de participar no projecto Rosetta com esta tese de mestrado, por todos os sabios´ conselhos e pelos momentos de discussao˜ e elucidac¸ao˜ que se proporcionaram ao longo deste trabalho. Aos meus pais excepcionais e a` minha mana preferida, por me terem aturado e suportado ao longo destes quase 23 anos e sobretudo pelo incondicional apoio durante estes 5 anos de formac¸ao˜ superior. Ao pessoal do Grupo de Arquitectura e Computac¸ao˜ (Hugo Correia, Sara Proenc¸a, Francisco Freire, Pedro Alfaiate, Bruno Ferreira, Guilherme Ferreira, Inesˆ Caetano e Carmo Cardoso), por todas as sug- estoes˜ e pelo inestimavel´ feedback em artigos e apresentac¸oes.˜ Aos amigos em Tomar (Rodrigo Carrao,˜ Hugo Matos, Andre´ Marques e Rui Santos) e em Lisboa (Diogo da Silva, Nuno Silva, Pedro Engana, Kaguedes, Clara Paiva e Odemira), por terem estado pre- sentes, duma forma ou doutra, nos essenciais momentos de lazer. A` Fundac¸ao˜ para a Cienciaˆ e Tecnologia (FCT) e ao INESC-ID pelo financiamento e acolhimento atraves´ da atribuic¸ao˜ de uma bolsa de investigac¸ao˜ no ambitoˆ dos contratos Pest-OE/EEI/LA0021/2013 e PTDC/ATP-AQI/5224/2012. -
Efficient Applicative Programming Environments for Computer Vision
Efficient Applicative Programming Environments for Computer Vision Applications Integration and Use of the VIGRA Library in Racket Benjamin Seppke Leonie Dreschler-Fischer University of Hamburg University of Hamburg Dept. Informatics Dept. Informatics Vogt-Kölln-Str. 30 Vogt-Kölln-Str. 30 22527 Hamburg, Germany 22527 Hamburg, Germany [email protected] [email protected] ABSTRACT 1. INTRODUCTION Modern software development approaches, like agile soft- Although applicative programming languages have a long ware engineering, require adequate tools and languages to tradition, they still do not belong to the scrap heap. In- support the development in a clearly structured way. At stead, they have proven to support state-of-the-art devel- best, they shall provide a steep learning curve as well as opment approaches by means of an interactive development interactive development environments. In the field of com- cycle, genericity and simplicity. The influence of applicative puter vision, there is a major interest for both, general re- programming paradigms is even observable in modern lan- search and education e.g. of undergraduate students. Here, guages, like Python, Dart and Go. However, there are some one often has to choose between understandable but compa- research areas, which are computationally of high costs and rably slow applicative programming languages, like Racket are thus currently less supported by applicative program- and fast but unintuitive imperative languages, like C/C++. ming languages. In this paper we present a system, which combines the best of each approaches with respect to common tasks in com- In this paper, we select the research field of computer vision puter vision, the applicative language Racket and the VI- and show how to connect applicative languages to a generic GRA C++ library. -
Kent Academic Repository Full Text Document (Pdf)
Kent Academic Repository Full text document (pdf) Citation for published version Chitil, Olaf (2009) Functional Programming. In: Wah, Benjamin W., ed. Encyclopedia of Computer Science and Engineering. John Wiley & Sons, Hoboken, NJ, pp. 1334-1344. ISBN 978-0-471-38393-2. DOI Link to record in KAR https://kar.kent.ac.uk/24064/ Document Version UNSPECIFIED Copyright & reuse Content in the Kent Academic Repository is made available for research purposes. Unless otherwise stated all content is protected by copyright and in the absence of an open licence (eg Creative Commons), permissions for further reuse of content should be sought from the publisher, author or other copyright holder. Versions of research The version in the Kent Academic Repository may differ from the final published version. Users are advised to check http://kar.kent.ac.uk for the status of the paper. Users should always cite the published version of record. Enquiries For any further enquiries regarding the licence status of this document, please contact: [email protected] If you believe this document infringes copyright then please contact the KAR admin team with the take-down information provided at http://kar.kent.ac.uk/contact.html Functional Programming Olaf Chitil University of Kent, United Kingdom Abstract Functional programming is a programming paradigm like object-oriented pro- gramming and logic programming. Functional programming comprises both a spe- cific programming style and a class of programming languages that encourage and support this programming style. Functional programming enables the programmer to describe an algorithm on a high-level, in terms of the problem domain, without having to deal with machine-related details. -
Introduction to the Literature on Programming Language Design Gary T
Computer Science Technical Reports Computer Science 7-1999 Introduction to the Literature On Programming Language Design Gary T. Leavens Iowa State University Follow this and additional works at: http://lib.dr.iastate.edu/cs_techreports Part of the Programming Languages and Compilers Commons Recommended Citation Leavens, Gary T., "Introduction to the Literature On Programming Language Design" (1999). Computer Science Technical Reports. 59. http://lib.dr.iastate.edu/cs_techreports/59 This Article is brought to you for free and open access by the Computer Science at Iowa State University Digital Repository. It has been accepted for inclusion in Computer Science Technical Reports by an authorized administrator of Iowa State University Digital Repository. For more information, please contact [email protected]. Introduction to the Literature On Programming Language Design Abstract This is an introduction to the literature on programming language design and related topics. It is intended to cite the most important work, and to provide a place for students to start a literature search. Keywords programming languages, semantics, type systems, polymorphism, type theory, data abstraction, functional programming, object-oriented programming, logic programming, declarative programming, parallel and distributed programming languages Disciplines Programming Languages and Compilers This article is available at Iowa State University Digital Repository: http://lib.dr.iastate.edu/cs_techreports/59 Intro duction to the Literature On Programming Language Design Gary T. Leavens TR 93-01c Jan. 1993, revised Jan. 1994, Feb. 1996, and July 1999 Keywords: programming languages, semantics, typ e systems, p olymorphism, typ e theory, data abstrac- tion, functional programming, ob ject-oriented programming, logic programming, declarative programming, parallel and distributed programming languages.