Promoting Computer Literacy Through Programming Python

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

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    301 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us