0%

Book Description

Computing education is in enormous demand. Many students (both children and adult) are realizing that they will need programming in the future. This book presents the argument that they are not all going to use programming in the same way and for the same purposes. What do we mean when we talk about teaching everyone to program? When we target a broad audience, should we have the same goals as computer science education for professional software developers? How do we design computing education that works for everyone? This book proposes use of a learner-centered design approach to create computing education for a broad audience. It considers several reasons for teaching computing to everyone and how the different reasons lead to different choices about learning goals and teaching methods. The book reviews the history of the idea that programming isn’t just for the professional software developer. It uses research studies on teaching computing in liberal arts programs, to graphic designers, to high school teachers, in order to explore the idea that computer science for everyone requires us to re-think how we teach and what we teach. The conclusion describes how we might create computing education for everyone.

Table of Contents

  1. Cover
  2. Half title
  3. Synthesis Lectures on Human-Centered Informatics
  4. Copyright
  5. Title
  6. Abstract
  7. Dedication
  8. Contents
  9. Preface
  10. Acknowledgments
  11. 1 What Does Computing for Everyone Mean?
    1. 1.1 Defining Terms: Computing Education, Computer Science, and Programming
    2. 1.2 Why Should Everyone Learn Computing?
    3. 1.2.1 Jobs
    4. 1.2.2 Learn About Their World
    5. 1.2.3 Computational Thinking
    6. 1.2.4 Computational Literacy
    7. 1.2.5 Productivity
    8. 1.2.6 Broadening Participation
    9. 1.3 How Do We Teach Computer Science Now?
    10. 1.3.1 Perspectives of Computer Science Teachers
    11. 1.3.2 Teaching for Software Development Expertise
    12. 1.3.3 Expertise and Authenticity are Socially Determined
    13. 1.3.4 The Inverse Lake Wobegon Effect
    14. 1.4 How Should We Teach Computing for Everyone?
    15. 1.4.1 Learner-Centered Design
    16. 1.4.2 Example: Computational Media at Georgia Tech
    17. 1.5 Overview of the Book
  12. 2 The Challenges of Learning Programming
    1. 2.1 The Rainfall Problem: Programming is Harder Than We Thought
    2. 2.2 Multi-Institutional, Multi-National Studies
    3. 2.3 Measuring Computer Science Knowledge
    4. 2.4 How Learning Works
    5. 2.4.1 Assimilation and Accomodation
    6. 2.4.2 Transfer of Knowledge
    7. 2.5 Why Do Students Learn Less Computer Science Than We Expect?
    8. 2.5.1 What Makes Learning Computer Science Different
    9. 2.5.2 Developing a Notional Machine
    10. 2.6 Increasing the Value of Learning Computing
    11. 2.6.1 Situated Learning
    12. 2.6.2 Expectancy-Value Theory
    13. 2.7 What Makes Learning Programming Hard
  13. 3 Computational Thinking and Using Programming to Learn
    1. 3.1 Computers and the World of the Future
    2. 3.2 Computational Thinking
    3. 3.3 Programming as a Tool for Learning
    4. 3.3.1 Smalltalk and Boxer
    5. 3.3.2 Students Building Software to Learn
    6. 3.4 Programming and Problem-Solving Skills
    7. 3.5 Learning Programming to Learn Mathematics and Science
    8. 3.6 Learning About Computer Science When Developing Computational Literacy
    9. 3.7 Summary: Synergy Between Computing and Other Domains
  14. 4 Media Computation and Contextualized Computing Education
    1. 4.1 Teaching One Course For All
    2. 4.1.1 What’s Wrong with One Course?
    3. 4.2 The Design and Development of Media Computation
    4. 4.2.1 Scaffolding in Media Computation
    5. 4.2.2 Offering the First Media Computation Courses
    6. 4.3 Impact of Media Computation
    7. 4.3.1 Impact Within Georgia Tech
    8. 4.3.2 Impact Outside Georgia Tech
    9. 4.3.3 Why Does Media Computation Work, and Where Doesn’t it?
    10. 4.4 A Second Course in Media Computation
    11. 4.5 Design of a Computing Course for Non-Computer Science Majors
  15. 5 Adults as Computing Learners
    1. 5.1 Graphic and Web Designers as End-User Programmers
    2. 5.1.1 Helping Graphic Designers
    3. 5.1.2 Starting From the Learning Challenges
    4. 5.2 The Needs of Computing Teachers as Computing Learners
    5. 5.2.1 Adults Learning Computer Science Online
    6. 5.2.2 What High School Computer Science Teachers Need to Succeed
    7. 5.2.3 Developing the Identity of a Computer Science Teacher
    8. 5.2.4 Developing Online Teacher Education
    9. 5.3 Designing Computing Education for Adults
  16. 6 Learner-Centered Computing Education for Computer Science Majors
    1. 6.1 Multiple Introductory Courses are Useful
    2. 6.2 The “Geek Gene”
    3. 6.2.1 Teaching to Address Differences
    4. 6.2.2 Diverse and Effective Teaching Methods
    5. 6.3 Creating Face-Saving Paths Into Computer Science
    6. 6.4 More Than One Kind of Computer Science
    7. 6.4.1 Threads
    8. 6.4.2 How Computer Science Students Make Choices
    9. 6.5 Context Helps Computer Science Majors, Too
    10. 6.6 The Need for Greater Exploration in Computing Education
  17. 7 Steps Toward Computing for Everyone
    1. 7.1 Revisiting Why Everyone Should Learn Computing
    2. 7.2 Teaching Computing in Elementary School
    3. 7.2.1 Why Not Teach Computing in Elementary School
    4. 7.2.2 Why Teach Computing in Elementary School
    5. 7.2.3 Research Questions for Teaching Computing in Elementary School
    6. 7.3 Teaching Computing in Secondary School
    7. 7.3.1 Research Questions for Teaching Computing in Secondary School
    8. 7.4 Teaching Computing to Undergraduates
    9. 7.4.1 Improve Teaching About Computing
    10. 7.4.2 Improve the Tools of Computing
    11. 7.4.3 Create More Researchers in Computing Education
    12. 7.5 Conclusion: Learner-Centered Design of Computing Education
  18. Bibliography
  19. Author’s Biography
  20. Index
3.236.143.154