Promoting Computer Literacy Through Programming Python

Total Page:16

File Type:pdf, Size:1020Kb

Promoting Computer Literacy Through Programming Python PROMOTING COMPUTER LITERACY THROUGH PROGRAMMING PYTHON by John Alexander Miller A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy (Education) in The University of Michigan 2004 Doctoral Committee: Professor Frederick Goodman, Chair Emeritus Professor Carl Berger Professor Jay Lemke Professor John Swales Copyright 2004 by John Alexander Miller The Joys of the Craft Why is programming fun? What delights may its practitioner expect as his reward? First is the sheer joy of making things. As the child delights in his mud pie, so the adult enjoys building things, especially things of his own design. I think this delight must be an image of God's delight in making things, a delight shown in the distinctness and newness of each leaf and each snowflake. Second is the pleasure of making things that are useful to other people. Deep within, we want others to use our work and to find it helpful. In this respect the programming system is not essentially different from the child's first clay pencil holder “for Daddy's office.” Third is the fascination of fashioning complex puzzle-like objects of interlocking moving parts and watching them work in subtle cycles, playing out the consequences of principles built in from the beginning. The programmed computer has all the fascination of the pinball machine or the jukebox mechanism, carried to the ultimate. Fourth is the joy of always learning, which springs from the nonrepeating nature of the task. In one way or another the problem is ever new, and its solver learns something: sometimes practical, sometimes theoretical, and sometimes both. Finally, there is the delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure thought- stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures. … Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be. Programming then is fun because it gratifies creative longings built deep within us and delights sensibilities we have in common with all men. (p. 7) Frederic Brooks, Jr. The Mythical Man-Month, 1975 DEDICATION Dedicated to my wife, Jane, and our children, Jessa and Jason. ii ACKNOWLEDGMENTS There were many people who encouraged me while I worked on this dissertation. First, I’d like to thank my parents, Mervil and Barbara Miller, who provided a loving, supportive and stable family environment conducive to intellectual pursuits. “A good beginning is half the battle.” I’d also like to thank Charles and Genevieve Peterson, who extended an essential educational career opportunity to me, and continue to bless me with caring support to my family as it grows. I would also like to thank the numerous students I had in my ESL classroom: their kindness, generosity and respect revealed to me the true joy of teaching. Next, I’d like to thank my advisor, Frederick Goodman, for his practical wisdom and guidance. With our every conversation, I come away enriched and refreshed from the depths of his memory and experiences. He is an educator’s educator, and I am honored to have had the opportunity to work so closely with him. I would also like to thank the other committee members, iii Carl Berger, Jay Lemke, and John Swales, for their suggestions and recommendations as the dissertation evolved. I would like to thank my colleagues at the Interactive Communications and Simulations group: Jeff Stanzler, Jeff Kupperman, Gary Weisserman, Roger Espinosa, Denise Conanan, Douglass Scott, Edgar Taylor, and Michael Fahy. Spending the early, heady days of the World Wide Web together engendered many stimulating and enjoyable conversations. I would also like to thank Gil Oswald for the time he took reviewing a draft of this manuscript, and for his gracious and thoughtful suggestions and feedback. Finally, I would like to thank my wife, Jane, who persevered knowing that I could indeed bring this dissertation to completion. iv TABLE OF CONTENTS Page DEDICATION .....................................................................................................ii ACKNOWLEDGMENTS....................................................................................iii LIST OF TABLES ..............................................................................................ix LIST OF FIGURES .............................................................................................x LIST OF APPENDICES.....................................................................................xi CHAPTER 1: COMPUTER LITERACY .............................................................1 1.0 Introduction...........................................................................................1 1.1 Literacies...............................................................................................4 1.2 Literacy Analogy.................................................................................10 1.3 Computer Literacy Conventions ........................................................11 Three kinds of signs .........................................................................15 Three pillars of literacy....................................................................17 Computer Fluency............................................................................20 Computer Literacy as the New Rhetoric.........................................22 Expressions and Representations....................................................27 1.4 Literacy enables learning ...................................................................31 1.5 Computer literacy in schools ..............................................................38 1.6 Issues surrounding the teaching of computer programming............43 What language should be taught? ...................................................44 How should Python be taught?........................................................45 CHAPTER 2: LEARNING PROGRAMMING..................................................47 2.0 Introduction.........................................................................................47 2.1 Programming steps.............................................................................48 Problem Definition ...........................................................................49 Algorithm Design ............................................................................49 Templates and patterns ..........................................................52 Working in teams.....................................................................52 Importance of planning and describing the algorithm...........53 Code Writing.....................................................................................55 v Three types of programming knowledge.................................55 Three types of cognitive knowledge ........................................58 Knowledge framework for teaching programming.................59 Debugging.........................................................................................64 Documentation..... ............................................................................66 2.2 Teaching Programming ......................................................................69 Programming not only for computer science majors ......................69 Connectionist teaching.....................................................................73 Evaluation strategies .......................................................................78 Cognitive effects of learning programming.....................................80 2.3 Introduction to Python........................................................................83 Advantages of Python: .....................................................................85 Disadvantages of Python: ................................................................87 Kinds of computer languages...........................................................88 General and domain-specific languages..........................................91 Styles of programming .....................................................................93 2.4 Computer Programming for ‘Everybody’ ...........................................96 2.5 Edu-sig newsgroup............................................................................105 CHAPTER 3: METHODS AND PROCEDURES ...........................................110 3.0 Introduction.......................................................................................110 3.1 Data profile .......................................................................................111 Poster participation........................................................................113 Thread Dynamics ..........................................................................114 3.2 Thread Selection Procedure..............................................................119 3.3 PhraseRate........................................................................................125 3.4 Pathfinder text graphs......................................................................128
Recommended publications
  • Comparison of Statistical Packages 1 Comparison of Statistical Packages
    Comparison of statistical packages 1 Comparison of statistical packages The following tables compare general and technical information for a number of statistical analysis packages. General information Basic information about each product (developer, license, user interface etc.). Price note [1] indicates that the price was promotional (so higher prices may apply to current purchases), and note [2] indicates that lower/penetration pricing is offered to academic purchasers (e.g. give-away editions of some products are bundled with some student textbooks on statistics). Product Example(s) Developer Latest version Cost (USD) Open Software Interface Written Scripting source license in languages ADaMSoft Marco Scarno May 5, 2012 Free Yes GNU GPL CLI/GUI Java Analyse-it Analyse-it $185–495 No Proprietary GUI VSN October 2009 >$150 Proprietary CLI ASReml No International Statistical $1095 Proprietary BMDP No Solutions Alan Heckert March 2005 Public CLI/GUI Dataplot Free Yes domain Centers for January 26, Public CLI/GUI Visual Disease 2011 domain Basic Epi Info Free Yes Control and Prevention IHS November student: $40 / acad: Proprietary CLI/GUI EViews No 2011 $425 / comm: $1075 Aptech October 2011 Proprietary CLI/GUI GAUSS No systems VSN July 2011 >$190 Proprietary CLI/GUI GenStat No International GraphPad GraphPad Feb. 2009 $595 Proprietary GUI No Prism Software, Inc. The gretl December 22, GNU GPL CLI/GUI C gretl Team 2011 Free Yes SAS Institute October, 2010 $1895 (commercial) Proprietary GUI/CLI JSL (JMP $29.95/$49.95 Scripting JMP No (student) $495 for Language) H.S. site licence Maplesoft March 28, 2012 $2275 (commercial), Proprietary CLI/GUI Maple No $99 (student) Wolfram 8.0.4, October $2,495 Proprietary CLI/GUI Research 2011 (Professional), $1095 (Education), Mathematica $140 (Student), No $69.95 (Student [3] annual license) [4] $295 (Personal) Comparison of statistical packages 2 The New releases Depends on many Proprietary CLI/GUI Java MATLAB No MathWorks twice per year things.
    [Show full text]
  • Introduction À SAS
    Logiciels Statistiques Programmation & Logiciels Statistiques Cours 7 Salim Lardjane - Université de Bretagne-Sud Autres logiciels statistiques Salim Lardjane - Université de Bretagne-Sud Logiciels libres • ADaMSoft : c’est un logiciel libre open source développé en Java et qui peut fonctionner sur toute plateforme où Java est disponible. • Les outils suivants sont disponibles sous ADaMSoft : Réseaux de Neurones Graphiques Algorithmes de Data Mining Salim Lardjane - Université de Bretagne-Sud Logiciels libres Régression linéaire Régression Logistique Méthodes de classification Arbres de décision Analyse discriminante ACP Analyse des correspondances Salim Lardjane - Université de Bretagne-Sud Logiciels libres • ADaMSoft peut accéder à des données de type • Texte • Excel • ODBC • MySQL • Postgressql • Oracle Salim Lardjane - Université de Bretagne-Sud Logiciels libres • ADMB : c’est un logiciel libre open source de modélisation non linéaire développé en C++ • ADMB implémente : Diverses méthodes de Monte-Carlo par Chaînes de Markov, ce qui le rend utile dans le cadre d’analyses bayésiennes Les modèles à effets aléatoires • Il est particulièrement utilisé en statistique environnementale Salim Lardjane - Université de Bretagne-Sud Logiciels libres • BFL (Bayesian Filtering Library) : C’est une bibliothèque C++ open source dédiée à l’estimation recursive bayésienne • BFL implémente : Le filtre de Kalman Les filtres particulaires Les méthodes de Monte-Carlo séquentielles Les filtres de mélange Salim Lardjane - Université de Bretagne-Sud Logiciels
    [Show full text]
  • Volume 3, Issue 2 Pythonpapers.Org Journal Information
    Volume 3, Issue 2 pythonpapers.org Journal Information The Python Papers ISSN: 1834-3147 Editors Co-Editors-in-Chief: Maurice Ling Tennessee Leeuwenburg Associate Editors: Guilherme Polo Guy Kloss Richard Jones Sarah Mount Stephanie Chong Referencing Information Articles from this edition of this journal may be referenced as follows: Author, “Title” (2007) The Python Papers, Volume N, Issue M, pp. m:n e.g. Maurice Ling, “Firebird Database Backup by Serialized Database Table Dump” (2007) The Python Papers, Volume 2, Issue 1, pp. 7:15. Copyright Information © Copyright 2007 The Python Papers and the individual authors This work is copyright under the Creative Commons 2.5 license subject to Attribution, Noncommercial and Share-Alike conditions. The full legal code may be found at http://creativecommons.org/licenses/byncsa/2.1/au/ The Python Papers was first published in 2006 in Melbourne, Australia. Referees An academic peer-review was performed on all academic articles. A list of reviewers will be published in each December issue. This has been done in order to ensure the anonymity of reviewers for each paper. Editorial Maurice Ling and Tennessee Leeuwenburg Tennessee> Readers may have noticed that we did not follow our usual publishing cycle, releasing this issue later in the year than usual. This reflects time taken to migrate The Python Papers to a new journal management system, as well as significant changes happening on the editorial committee. Maurice Ling is now Editor-In-Chief, but I am continuing my involvement by sharing this role as Co-Editor-In-Chief. This is due to the significant workload involved in the Editor-In- Chief role, requiring many hours of work to assemble each issue.
    [Show full text]