Don't Teach Coding. Lindsey D. Handley
Чтение книги онлайн.
Читать онлайн книгу Don't Teach Coding - Lindsey D. Handley страница 5
Library of Congress Cataloging-in-Publication Data
Names: Handley, Lindsey, author. | Foster, Stephen, 1985- author.
Title: Don't teach coding : until you read this book / Lindsey D. Handley, Stephen R. Foster.
Description: First edition. | Hoboken, NJ : Jossey-Bass/John Wiley & Sons, 2020. | Includes bibliographical references and index.
Identifiers: LCCN 2019055396 (print) | LCCN 2019055397 (ebook) | ISBN 9781119602620 (paperback) | ISBN 9781119602644 (adobe pdf) | ISBN 9781119602637 (epub)
Subjects: LCSH: Computer programming—Study and teaching.
Classification: LCC QA76.27 .H364 2020 (print) | LCC QA76.27 (ebook) | DDC 005.13—dc23
LC record available at https://lccn.loc.gov/2019055396 LC ebook record available at https://lccn.loc.gov/2019055397
Cover Design: Wiley
To our students, you taught us to teach.
To our teachers, you taught us to learn.
About the Authors
Dr. Stephen R. Foster is a researcher, author, and co-founder of multiple social enterprises with a mission to teach teachers how to teach coding. A fierce advocate for the power of coding to bring about worldwide change, he has himself coded to generate peer-reviewed scientific results, coded to build educational technology solutions for teachers and students, and coded to bootstrap educational startups and non-profit organizations out of thin air. All in all, these countless lines of code have all been in service of a single vision: to establish coding education as a basic human right across the globe. In short, he codes to teach coding.
Dr. Lindsey D. Handley is a researcher, entrepreneur, teacher, and author. For the last 10 years, the National Science Foundation has funded the research, design work, and the social enterprises that she operates. As a skilled coder, data scientist, and biochemist, she envisions a world in which we no longer suffer from a worldwide shortage of scientific fluency. To this end, she fights for the unification of science and education on two fronts: the use of science to improve education; and the improved teaching of science worldwide. In short, she applies science to design better ways of teaching science.
Together, they are the co-founders and leaders of ThoughtSTEM and MetaCoders.org – two social enterprises that have touched the lives of hundreds of thousands of beginning coders worldwide.
Acknowledgments
Thank you to the following people for taking time to read and provide feedback on earlier drafts: Dr. Jody Kelly, Dr. Shriram Krishnamurthi, Dr. Janet Siegmund, Kelly Foster, Matthew Butterick, and Allan Schougaard. Your contributions helped make this book what it is.
Thank you to the creators of Racket for their trailblazing work in language-oriented programming, without which we wouldn't have been able to design the programming languages for this book about programming languages.
Introduction
If there's one thing this book seeks to address, it is: What are programming languages?
It sounds simple, but answering this question deeply will require us to ask other questions: Why do we call them “languages”? Why are there so many? Why do people fluent in them get paid so much? How are they related to those other things we call “languages” (like English, Spanish, or American Sign Language)? Where do they come from? Where are they going? How do we learn them? What happens in your brain when you do?
And, above all:
How do we teach them?
Japan, Italy, England, and Finland are just a few of the countries that have begun to mandate coding education throughout K-12 public education. Computer science educational standards now exist in 22 U.S. states – two of which have passed legislation that requires coding education statewide from elementary to high school.
As the world embarks on a global change to its collective education systems, it is worth asking some basic questions.
Technically, this book is about what you should know before you start teaching (or learning) a programming language. But the book will also teach you a few simple languages in order to make headway on some of the deeper questions.
There is a structure that frames the four chapters in this book, each of which have five parts – five arcs that recur from chapter to chapter.
The Wizard's Tale is the only fictional arc of the book. At the beginning of each chapter, this narrative introduces the main ideas in a lighthearted way. Sometimes the truest things can only be said in fiction.
The pair of arcs called A Language Without and A Language Within are where you'll learn about coding – one language at a time. In A Language Without, we'll examine how the design of a language gives its users certain cognitive powers, and cognitive pitfalls. In A Language Within, you'll be given exercises to help you actually learn those languages (if you wish) – meditating on the gaining of those powers for yourself, while learning to avoid the pitfalls. The languages will increase in power and complexity as the book progresses – ending with the most powerful kind of programming languages: what computer scientists call “the Turing-complete languages.”
The arcs called Languages Without and Languages Within will “zoom out” – beyond you, beyond us, beyond this book, beyond the present day. In Languages Without, we'll piece together the epic story of language – literally, the story of stories themselves. It began before this book, indeed before the invention of writing and is still unfolding today. In Languages Within, we'll examine recent neuroscience about how the human brain processes language, how it acquires fluencies – and ultimately, how it earns the right to participate in that epic story of language that is unfolding all around us.
Human beings are linguistic creatures; and programming languages are one of the weirdest linguistic things we've done in the last few thousand years. The bigger our historical lens, the easier it is to see just how weirdly magical they are.
Who Is This Book For?
Mainly, this book is for K-12 teachers of coding, or any educated adult with an interest in the teaching and learning of programming languages. We assume no prior coding knowledge on the part of the reader, however.
This is because, increasingly often in the coming years, teachers who once taught