Introducing Computational Thinking in K-12 Education: Historical, Epistemological, Pedagogical, Cognitive, and Affective Aspects Michael Lodi

Total Page:16

File Type:pdf, Size:1020Kb

Introducing Computational Thinking in K-12 Education: Historical, Epistemological, Pedagogical, Cognitive, and Affective Aspects Michael Lodi Introducing Computational Thinking in K-12 Education: Historical, Epistemological, Pedagogical, Cognitive, and Affective Aspects Michael Lodi To cite this version: Michael Lodi. Introducing Computational Thinking in K-12 Education: Historical, Epistemological, Pedagogical, Cognitive, and Affective Aspects. Computers and Society [cs.CY]. Dipartimento diIn- formatica - Scienza e Ingegneria, Alma Mater Studiorum - Università di Bologna, 2020. English. tel-02981951 HAL Id: tel-02981951 https://hal.inria.fr/tel-02981951 Submitted on 28 Oct 2020 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Copyright Alma Mater Studiorum · Universit`adi Bologna PhD program in COMPUTER SCIENCE AND ENGINEERING INTRODUCING COMPUTATIONAL THINKING IN K-12 EDUCATION: HISTORICAL, EPISTEMOLOGICAL, PEDAGOGICAL, COGNITIVE, AND AFFECTIVE ASPECTS Presented by: MICHAEL LODI Dep. of Computer Science and Engineering INRIA Focus team PhD program coordinator: Supervisor: Prof. DAVIDE SANGIORGI Prof.SIMONE MARTINI © Michael Lodi, 2020 Licence: Unless otherwise authorized by the author, the thesis may be freely consulted and a copy may be saved and printed for strictly personal study, research and teaching purposes, with express prohibition of any direct or indirect commercial use. All other rights on the material are reserved. This is an authors' pre-print version of the work. It is posted here for your personal use. Not for redistribution. The definitive version was published by Universit`adi Bologna. DOI: 10.6092/unibo/amsdottorato/9188 http://amsdottorato:unibo:it/9188/ Contents Contents i Abstract vii Publications by the Author ix Terminology xiii Introduction1 I Literature Review 15 1 CS in K-12 Education 17 1.1 The Importance of CS in Society and in Schools................ 17 1.2 CS in School Curricula............................. 19 1.3 Other Initiatives................................. 20 1.3.1 Code.org................................. 21 1.4 The Situation in Italy.............................. 21 1.4.1 The Italian School System....................... 21 1.4.2 CS in the Curriculum.......................... 22 1.4.3 Teacher Training............................ 23 1.4.4 Recent Developments.......................... 23 1.4.5 The \Programma il Futuro" Project.................. 24 1.5 Conclusions................................... 25 2 Computational Thinking and Coding 27 2.1 Computational Thinking............................. 27 2.2 Five Definitions of CT.............................. 28 2.2.1 Common Aspects............................ 30 2.3 Misconceptions about CT definitions...................... 33 2.4 Coding...................................... 34 2.5 Conclusions................................... 36 i ii CONTENTS 3 Pedagogy 37 3.1 Learning Theories and Paradigms........................ 37 3.1.1 Behaviorism............................... 37 3.1.2 Cognitivism............................... 39 3.1.3 Constructivism.............................. 40 3.1.4 Humanism................................ 44 3.2 Constructionism................................. 44 3.2.1 Situating Constructionism........................ 45 3.2.2 Constructionism vs. Instructionism................... 45 3.3 Creative Learning................................ 46 3.4 Conclusions................................... 49 4 Transfer 51 4.1 Transfer of Learning............................... 51 4.2 Transfer and HOTS............................... 53 4.3 Current Pedagogical Research on Transfer................... 55 4.3.1 Transfer and Learning Approaches................... 57 4.4 Transfer and CS Education........................... 57 4.4.1 A Recent Meta-Review......................... 61 4.5 Conclusions................................... 61 5 Implicit theories 63 5.1 Mindset Theory................................. 63 5.1.1 Mindset Effects............................. 64 5.1.2 Mindset Interventions.......................... 64 5.1.3 Teachers' Mindset............................ 65 5.1.4 Critics and Responses.......................... 65 5.2 Growth Mindset in Computer Science..................... 66 5.3 Conclusions................................... 68 II History, Epistemology and Pedagogy 69 6 CT from Papert to Wing 71 6.1 Introduction................................... 71 6.2 Prehistory.................................... 72 6.3 Papert's Computational Thinking, in Context................. 74 6.4 The Digital Discontinuity............................ 78 6.5 Views, Misinterpretations, Perspectives..................... 79 6.5.1 Wing's CT................................ 80 6.5.2 Papert's CT............................... 83 6.6 Conclusions................................... 84 CONTENTS iii 7 A Curriculum Proposal 87 7.1 Context, Process and Background of the Proposal............... 87 7.1.1 Writing and Revision Process...................... 87 7.1.2 Other Curriculum in Europe...................... 88 7.2 A Core Informatics Curriculum......................... 89 7.2.1 Area of Algorithms........................... 90 7.2.2 Area of Programming.......................... 91 7.2.3 Area of Data and Information...................... 92 7.2.4 Area of Digital Creativity........................ 93 7.2.5 Area of Digital Awareness........................ 93 7.3 Conclusions and Future Perspective....................... 94 8 Learning CT in a Constructive Way 97 8.1 Constructionism and Learning to Program................... 97 8.2 What Does It Mean to Learn Programming?.................. 98 8.2.1 Notional Machines........................... 101 8.2.2 Misconceptions............................. 102 8.3 Educational Programming Languages...................... 104 8.3.1 LOGO.................................. 104 8.3.2 Smalltalk................................. 106 8.3.3 Boxer.................................. 107 8.3.4 BASIC, Pascal.............................. 107 8.3.5 Scheme, Racket............................. 108 8.3.6 Visual Programming Languages..................... 109 8.3.7 Stride.................................. 113 8.3.8 Common features............................ 114 8.4 (CS) Unplugged................................. 115 8.4.1 Applying CS Unplugged......................... 117 8.4.2 CS Unplugged, Constructivism and Constructionism.......... 118 8.4.3 Unplugged and transfer of CT skills.................. 120 8.5 Learning to Program in Teams......................... 121 8.5.1 Iterative Software Development..................... 121 8.6 Conclusions................................... 122 9 Unplugged and Plugged for Primary School 125 9.1 Principles.................................... 125 9.2 Activities..................................... 126 9.2.1 Domo: a \Computational" Butler................... 126 9.2.2 Activity with Scratch.......................... 128 9.3 Conclusion.................................... 132 iv CONTENTS III Teachers' Conceptions 135 10 Sentiment About PiF Project 137 10.1 Participation Data................................ 137 10.2 Project Monitoring............................... 138 10.2.1 Data Collection............................. 138 10.2.2 Quantitative Data Analysis....................... 138 10.2.3 Qualitative Data Analysis........................ 139 10.3 Conclusions and Future Perspectives...................... 144 11 Conceptions About CT and Coding 145 11.1 Purpose of the Study.............................. 146 11.2 Related Work.................................. 146 11.3 Methods..................................... 147 11.3.1 Instrument................................ 147 11.3.2 Sample Description........................... 148 11.3.3 Procedures................................ 150 11.4 Technology and Preparation Perceptions.................... 151 11.4.1 Q2 and Q3: Technology and Computational Thinking......... 151 11.4.2 Q4 and Q5: Teachers' Preparation................... 153 11.5 Q1: Teachers' Definition of CT......................... 153 11.5.1 Categories................................ 153 11.5.2 Analysis of Category Distribution.................... 156 11.5.3 Analysis of Answer Values Distribution................. 157 11.5.4 Conceptions and Misconceptions Regarding CT............ 159 11.6 Conceptions on Coding............................. 160 11.6.1 Q6 - Coding is. ............................. 160 11.6.2 Q7 - Is coding different from writing programs?............ 163 11.6.3 Q8 - The difference between coding and writing programs is. .... 164 11.6.4 Joint Distribution of Q6 and Q8.................... 168 11.7 Conclusions and Further Work......................... 169 IV Implicit Theories 171 12 CS Does Not Automatically Foster GM 173 12.1 Introduction................................... 173 12.2 The Study.................................... 175 12.2.1 Participants............................... 175 12.2.2 Methods................................. 175 12.3 Results...................................... 178 12.3.1 Quantitative Analysis.......................... 178 12.3.2 Qualitative Analysis........................... 182 12.4 Discussion, Conclusions, and Further Work................... 182 CONTENTS
Recommended publications
  • Python 3 – Turtle Graphics Today's Lecture Logo and Turtle Graphics
    Today’s lecture The Turtle graphics package Brief history Basic commands Drawing shapes on screen Python 3 – Turtle graphics Lecture 25 – COMPSCI111/111G SS 2018 1 2 Logo and Turtle graphics The Turtle package In 1967, Seymour Papert and Wally Feurzeig created an Some functions are part of Python’s core libraries, in interpretive programming language called Logo. other words they are ‘built-in’ Papert added commands to Logo so that he could control a print() turtle robot, which drew shaped on paper, from his computer input() Turtle graphics is now part of Python float() Using the Turtle involves instructing the turtle to move on the Other functions need to be imported into your screen and draw lines to create the desired shape Python program The turtle module needs to be imported at the start of any Python program that uses it: import turtle 3 4 Basic Turtle commands Turtle example Using the Python interpreter in IDLE to demonstrate how to There are four basic turtle commands use Turtle graphics turtle.forward(x) First, import the turtle package Moves turtle forward in direction it is facing by x steps turtle.back(x) Moves turtle backward from its facing direction by x steps >>> import turtle turtle.left(x) >>> Turns the turtle x degrees counterclockwise turtle.right(x) Turns the turtle x degrees clockwise 5 6 Turtle example Algorithm We are going to draw a right-angled triangle 90° Important information: The turtle appears as an icon draw a line x-axis (0,0) Initial position: (0, 0) 180° 0° Turn 90 degrees left (anti-clockwise) Initial direction: East (0°) Colour: black draw a line Line width: 1 pixel y-axis Turn 135 degrees left (anti-clockwise) Pen: down (ready to draw) 270° 7 8 draw a line 90degree Turtle example Turtle example Initial direction: 0 Step 1: Draw a line Note how the turtle is now facing upward after being turned 90 degrees left >>> import turtle >>> import turtle >>> >>> >>> turtle.forward(200) >>> turtle.forward(200) >>> >>> turtle.left(90) 1.
    [Show full text]
  • Compiler Error Messages Considered Unhelpful: the Landscape of Text-Based Programming Error Message Research
    Working Group Report ITiCSE-WGR ’19, July 15–17, 2019, Aberdeen, Scotland Uk Compiler Error Messages Considered Unhelpful: The Landscape of Text-Based Programming Error Message Research Brett A. Becker∗ Paul Denny∗ Raymond Pettit∗ University College Dublin University of Auckland University of Virginia Dublin, Ireland Auckland, New Zealand Charlottesville, Virginia, USA [email protected] [email protected] [email protected] Durell Bouchard Dennis J. Bouvier Brian Harrington Roanoke College Southern Illinois University Edwardsville University of Toronto Scarborough Roanoke, Virgina, USA Edwardsville, Illinois, USA Scarborough, Ontario, Canada [email protected] [email protected] [email protected] Amir Kamil Amey Karkare Chris McDonald University of Michigan Indian Institute of Technology Kanpur University of Western Australia Ann Arbor, Michigan, USA Kanpur, India Perth, Australia [email protected] [email protected] [email protected] Peter-Michael Osera Janice L. Pearce James Prather Grinnell College Berea College Abilene Christian University Grinnell, Iowa, USA Berea, Kentucky, USA Abilene, Texas, USA [email protected] [email protected] [email protected] ABSTRACT of evidence supporting each one (historical, anecdotal, and empiri- Diagnostic messages generated by compilers and interpreters such cal). This work can serve as a starting point for those who wish to as syntax error messages have been researched for over half of a conduct research on compiler error messages, runtime errors, and century. Unfortunately, these messages which include error, warn- warnings. We also make the bibtex file of our 300+ reference corpus ing, and run-time messages, present substantial difficulty and could publicly available.
    [Show full text]
  • 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.
    [Show full text]
  • An Exploration of Artistic and Technological Symmetry
    An Exploration of Artistic and Technological Symmetry Artemis Papert Abstract In this interview, biologist, artist, and shiatsu healer Artemis Papert describes how computational thinking can help people organize their thoughts in a more formal way. She discusses TurtleArt, a software that allows both children and adults to create two-dimensional static art images using geometry and coding as a medium. TurtleArt not only bridges the worlds of math and art, but is also easy to learn. She concludes by reading an excerpt from the article, “Teaching Children Thinking”— written in 1971 by her father Seymour Papert—as a still relevant starting point for where technology is heading. You’re known as an artist and a healer, can you tell us how your career unfolded and how these two areas of talent emerged? I’ve always liked drawing and painting since ever I can remember. I might have gone to art school had I been born in a different family, but I was born in a family of academics. So, it felt like academia was the thing to do. My mother worked with Jean Piaget and my father was a mathematician who also came to work with Jean Piaget because Piaget wanted to understand how children understand numbers. And he thought it would be a good thing to have mathematicians in his team—so that’s how my parents met and how I came along. I always wanted to become a biologist. Back then, I was young and naïve and wanted to save the Antarctica, and the Rain Forest … My career as a biologist didn’t quite evolve as I had hoped it would.
    [Show full text]
  • Panel: NSF-Sponsored Innovative Approaches to Undergraduate Computer Science
    Panel: NSF-Sponsored Innovative Approaches to Undergraduate Computer Science Stephen Bloch (Adelphi University) Amruth Kumar (Ramapo College) Stanislav Kurkovsky (Central CT State University) Clif Kussmaul (Muhlenberg College) Matt Dickerson (Middlebury College), moderator Project Web site(s) Intervention Delivery Supervision Program http://programbydesign.org curriculum with supporting in class; software normally active, but can be by Design http://picturingprograms.org IDE, libraries, & texts and textbook are done other ways Stephen Bloch http://www.ccs.neu.edu/home/ free downloads matthias/HtDP2e/ or web-based NSF awards 0010064 http://racket-lang.org & 0618543 http://wescheme.org Problets http://www.problets.org in- or after-class problem- applet in none - teacher not needed, Amruth Kumar solving exercises on a browser although some adopters use programming concepts it in active mode too NSF award 0817187 Mobile Game http://www.mgdcs.com/ in-class or take-home PC passive - teacher as Development programming projects facilitator to answer Qs Stan Kurkovsky NSF award DUE-0941348 POGIL http://pogil.org in-class activity paper or web passive - teacher as Clif Kussmaul http://cspogil.org facilitator to answer Qs NSF award TUES 1044679 Project Course(s) Language(s) Focus Program Middle school, Usually Scheme-like teaching problem-solving process, by pre-AP CS in HS, languages leading into Java; particularly test-driven DesignStephen CS0, CS1, CS2 has also been done in Python, development and use of data Bloch in college ML, Java, Scala, ... types to guide coding & testing Problets AP-CS, CS I, CS 2. C, C++, Java, C# code tracing, debugging, Amruth Kumar also as refresher or expression evaluation, to switch languages predicting program state in other courses Mobile Game AP-CS, CS1, CS2 Java core OO programming; DevelopmentSt intro to advanced subjects an Kurkovsky such as AI, networks, security POGILClif CS1, CS2, SE, etc.
    [Show full text]
  • Final Shift for Call/Cc: Direct Implementation of Shift and Reset
    Final Shift for Call/cc: Direct Implementation of Shift and Reset Martin Gasbichler Michael Sperber Universitat¨ Tubingen¨ fgasbichl,[email protected] Abstract JxKρ = λk:(k (ρ x)) 0 0 We present a direct implementation of the shift and reset con- Jλx:MKρ = λk:k (λv:λk :(JMK)(ρ[x 7! v]) k ) trol operators in the Scheme 48 system. The new implementation JE1 E2Kρ = λk:JE1Kρ (λ f :JE2Kρ (λa: f a k) improves upon the traditional technique of simulating shift and reset via call/cc. Typical applications of these operators exhibit Figure 1. Continuation semantics space savings and a significant overall performance gain. Our tech- nique is based upon the popular incremental stack/heap strategy for representing continuations. We present implementation details as well as some benchmark measurements for typical applications. this transformation has a direct counterpart as a semantic specifica- tion of the λ calculus; Figure 1 shows such a semantic specification for the bare λ calculus: each ρ is an environment mapping variables Categories and Subject Descriptors to values, and each k is a continuation—a function from values to values. An abstraction denotes a function from an environment to a D.3.3 [Programming Languages]: Language Constructs and Fea- function accepting an argument and a continuation. tures—Control structures In the context of the semantics, the rule for call/cc is this: General Terms Jcall=cc EKρ = λk:JEKρ (λ f : f (λv:λk0:k v) k) Languages, Performance Call=cc E evaluates E and calls the result f ; it then applies f to an Keywords escape function which discards the continuation k0 passed to it and replaces it by the continuation k of the call=cc expression.
    [Show full text]
  • The Next 700 Semantics: a Research Challenge Shriram Krishnamurthi Brown University [email protected] Benjamin S
    The Next 700 Semantics: A Research Challenge Shriram Krishnamurthi Brown University [email protected] Benjamin S. Lerner Northeastern University [email protected] Liam Elberty Unaffiliated Abstract Modern systems consist of large numbers of languages, frameworks, libraries, APIs, and more. Each has characteristic behavior and data. Capturing these in semantics is valuable not only for understanding them but also essential for formal treatment (such as proofs). Unfortunately, most of these systems are defined primarily through implementations, which means the semantics needs to be learned. We describe the problem of learning a semantics, provide a structuring process that is of potential value, and also outline our failed attempts at achieving this so far. 2012 ACM Subject Classification Software and its engineering → General programming languages; Software and its engineering → Language features; Software and its engineering → Semantics; Software and its engineering → Formal language definitions Keywords and phrases Programming languages, desugaring, semantics, testing Digital Object Identifier 10.4230/LIPIcs.SNAPL.2019.9 Funding This work was partially supported by the US National Science Foundation and Brown University while all authors were at Brown University. Acknowledgements The authors thank Eugene Charniak and Kevin Knight for useful conversations. The reviewers provided useful feedback that improved the presentation. © Shriram Krishnamurthi and Benjamin S. Lerner and Liam Elberty; licensed under Creative Commons License CC-BY 3rd Summit on Advances in Programming Languages (SNAPL 2019). Editors: Benjamin S. Lerner, Rastislav Bodík, and Shriram Krishnamurthi; Article No. 9; pp. 9:1–9:14 Leibniz International Proceedings in Informatics Schloss Dagstuhl – Leibniz-Zentrum für Informatik, Dagstuhl Publishing, Germany 9:2 The Next 700 Semantics: A Research Challenge 1 Motivation Semantics is central to the trade of programming language researchers and practitioners.
    [Show full text]
  • 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
    [Show full text]
  • Practical Ruby Projects: Practical Ruby Projects Ideas for the Eclectic Programmer
    CYAN YELLOW MAGENTA BLACK PANTONE 123 C BOOKS FOR PROFESSIONALS BY PROFESSIONALS® THE EXPERT’S VOICE® IN OPEN SOURCE Companion eBook Available Practical Ruby Projects: Projects Ruby Practical Ideas for the Eclectic Programmer Dear Reader, You’ve learned the basics of Ruby, and you’re ready to move on to the next level— trying out advanced techniques, mastering best practices, and exploring Ruby’s full potential. With this book you’ll learn by experience while you tackle an exciting series of varied but always practical programming projects. What is an eclectic programmer, you ask? He or she is an inquisitive thinker Practical who likes to play around with new concepts, a person who is project-oriented and enjoys coding, a person who doesn’t mind some technical depth folded in with creative excursions, and a person who is always looking for fresh ideas. This book is a little different from other computer books. It is meant to be entertaining, exciting, and intellectually challenging. Inside you’ll find a collec- tion of diverse projects, ranging from the creative to the practical, written as a nod to all the great Rubyists I’ve been privileged to know. Each chapter dives into Ruby Projects new topics and approaches meant to exercise your programming muscles. You’ll start by building a cross-platform music environment, progress to drawing animations using scalable vector graphics, and then move on to prac- tical problem solving using simulation. In addition, you’ll implement your own turn-based strategy game and build a Mac-native RubyCocoa interface to it.
    [Show full text]
  • Viewpoint Do We Really Need Computational Thinking?
    viewpoints VDOI:10.1145/3231587 Enrico Nardelli Viewpoint Do We Really Need Computational Thinking? Considering the expression “computational thinking” as an entry point to understand why the fundamental contribution of computing to science is the shift from solving problems to having problems solved. CONFESS UPFRONT, the title of this Viewpoint is meant to attract readers’ attention. As a com- puter scientist, I am convinced we need the concept of compu- Itational thinking, interpreted as “being able to think like a computer scientist and being able to apply this competence to every field of human endeavor.” The focus of this Viewpoint is to dis- cuss to what extent we need the expres- sion “computational thinking” (CT). The term was already known through the work of Seymour Papert,13 many com- putational scientists,5 and a recent pa- per15 clarifies both its historical devel- opment and intellectual roots. After the widely cited Communications Viewpoint by Jeannette Wing,19 and thanks to her role at NSF,6 an extensive discussion opened with hundreds of subsequent papers dissecting the expression. There is not yet a commonly agreed definition of CT—what I consider in this View- Wing discussed CT to argue it is im- Forsythe, a former ACM president and point is whether we really need a defini- portant every student is taught “how one of the founding fathers of computer tion and for which goal. a computer scientist thinks,”19 which science education in academia, in 1968 To anticipate the conclusion, we I interpret to mean it is important to wrote: “The most valuable acquisition probably need the expression as an in- teach computer science to every stu- in a scientific or technical education are strument, as a shorthand reference to dent.
    [Show full text]
  • 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.
    [Show full text]
  • Integrating Language Arts and Computational Thinking: A
    Integrating Language Arts and Computational Thinking: A Reflection on the Importance of Gossip by Glen Bull, University of Virginia According to Cynthia Solomon, Seymour Papert went to Europe in the summer of 1966 and returned with the initial specifications for the computing language Logo (Personal Communication, 2018). Logo is notable as the first computing language designed specifically for children. Solomon and Papert collaborated with Wally Feurzeig to develop an initial implementation of the computing language, which they began testing with children in local schools the following year. At the time, Papert was codirector of the MIT Artificial Intelligence Laboratory. Artificial intelligence (AI) is the science of creating computer programs that can replicate the performance of humans. An important aspect of AI is interpretation of human language. Therefore, not surprisingly, an important aspect of Logo is its capability to process words and sentences. Feurzeig originated the name of the language, Logo, the Greek word for word. Papert summarized this work in Mindstorms: Children, Computers, and Powerful Ideas, published in 1980. Papert introduced the term “computational thinking” in Mindstorms. He also described the use of Logo by middle school students to generate “computer poetry.” The students created syntactic structures that generated sentences in the process of exploring the way in which language works. Background Like many others, I was influenced by the vision that Papert outlined in Mindstorms. Texas Instruments donated 10 TI 99/4 microcomputers with Logo that I used to offer an initial course, Teaching With Logo, at the University of Virginia in fall 1980. The TI microcomputer had a fraction of the power of today’s personal computers.
    [Show full text]