Teaching Coding in K-12 Schools: Research and Application

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

This book contains highly effective ways to teach coding and computational thinking skills throughout primary and secondary schooling. It outlines a research informed path for students from birth to 18 years, identifying key skills and learning activities. Based on global perspectives and research at each stage, it outlines how these findings can be applied in the classroom.

Teaching coding to students in K-12 has been a skillset that has been debated across educational jurisdictions globally for some time. The book provides examples of schools that are teaching coding to students in engaging and relevant ways, delivering well thought out compulsory curriculums. Additionally, it provides examples of schools where coding is not mandated in the curriculum and is taught in an ad-hoc manner. Through the full discussion of all of these varied examples, the book presents both sides of the serious and ongoing debate in the field as to whether coding should be taught in an explicit way at all. The increasing school of thought that teaching coding is a skill that is already obsolete, and the focus should be on computational thinking is completely examined and presented. In this book, both sides of the argument, as well as the specific, meticulous research underlying each side, are given equal weight. The debate is a serious one and requires a clearly defined thematic response with evidence on all sides of the argument presented rationally. This book does just that. Created by carefully selected authors from around the world, it will be a highly studied research reference.

Author(s): Therese Keane, Andrew E. Fluck
Publisher: Springer
Year: 2023

Language: English
Pages: 419
City: Cham

Foreword
Contents
About the Editors and Contributors
Editors
Contributors
Chapter 1: Introduction: The Need for Programming and Computational Thinking from Early Childhood Education Through to Secondary Schooling
1.1 Early Childhood Education
1.2 Elementary/Primary School
1.3 High/Secondary School
1.4 Final Words from the Editors
Reference
Part I: Early Childhood Education
Chapter 2: Children (Aged 3–5 Years) Learning Mathematics Through Programming, Thinking and Doing, or Just Doing?
2.1 Introduction
2.2 Research on Young Children and Programming
2.3 The Role of the Preschool Teacher
2.4 Project: Learning Mathematics Through Programming
2.4.1 Designing the Activities
2.5 Thinking and Doing, or Just Doing?
2.6 Conclusion
References
Chapter 3: Teaching Coding in Kindergarten: Supporting Students’ Activity with Robot Coding Toys
3.1 Introduction
3.2 Local Vignette of Coding in Kindergarten
3.2.1 Tasks for Introducing a Robot Coding Toy: Learning Codes and Sequencing Codes
3.2.2 Debugging a Buggy Program: What Happened?
3.3 Key Findings
3.3.1 Design Elements for Robot Coding Toy Tasks
3.3.1.1 Introductory Tasks Focused on Context Proficiencies
3.3.1.2 Tasks for CT Strategies
3.3.1.3 Tasks for Play
3.3.2 Design Elements for Robot Coding Toy Instructional Practices
3.3.3 Design Elements for Leveraging or Supplementing the Robot Coding Toy’s Features
3.4 Evidence of Mastery
3.5 Facilitating Resources
References
Chapter 4: Programming Environments for the Development of Computational Thinking in Preschool Education: A Systematic Literature Review
4.1 Introduction
4.2 Methodology
4.2.1 Databases
4.2.2 Inclusion and Exclusion Criteria
4.2.3 Systematic Review Process
4.2.4 Data Analyses
4.3 Educational Programming Environments for Preschoolers
4.3.1 Logo Family Programming Environments
4.3.1.1 Roamers
4.3.1.2 Software Roamers
4.3.2 Visual Programming Environments
4.3.3 Commercial Programming Learning Environments for Entertainment Purposes
4.3.4 Physical Computing Environments
4.3.4.1 Educational Robotics Environments
4.3.5 Miscellaneous Unplugged Applications and Environments
4.4 Discussion
References
Part II: Elementary/Primary School
Chapter 5: Developing Computational Fluency via Multimedia Stories
5.1 Introduction
5.1.1 Becoming Fluent in a Language: The Role of Reading
5.2 Local School Context
5.2.1 The Longitudinal Research Project
5.3 The Role of Structured Activities in Developing Computational Fluency
5.3.1 The “Pass-It-On” Activity
5.4 Collected Data and Key Findings
5.5 Conclusions
5.6 Facilitating Diagram
5.7 Links
References
Chapter 6: Scaffolding Engagement with Educational Technologies to Develop Computational Thinking in Year 1 Girls
6.1 Introduction
6.2 Background
6.2.1 Coding and Young Children
6.2.2 Coding in the Australian School Context
6.3 Local Research Vignette
6.4 How This Was Applied in the Classroom
6.4.1 Micro:Bit
6.4.2 Makey Makey
6.4.3 Ozobots
6.4.4 Minecraft Education Edition
6.5 Key Findings and Discussion
6.5.1 How Was the Development of Computational Thinking Supported?
6.5.2 Embracing Connectivism as a Component of Computational Thinking
6.5.3 Wider Considerations for Success
6.5.4 Conclusion
References
Chapter 7: Enhancing Computational Thinking Through App Design in Primary Schools
7.1 Introduction
7.2 Literature Review
7.3 Vignettes
7.3.1 Vignette 1
7.3.2 Vignette 2
7.4 Reflection on the Example Projects
7.4.1 Problem Formulation
7.4.1.1 Computational Concepts
7.4.1.2 Computational Practices
7.4.1.3 Computational Perspectives
7.4.2 Solution Expression
7.4.2.1 Computational Concepts
7.4.2.2 Computational Practices
7.4.2.3 Computational Perspectives
7.4.3 Execution and Evaluation
7.4.3.1 Computational Concepts
7.4.3.2 Computational Practices
7.4.3.3 Computational Perspectives
7.5 Facilitating Diagram and Supporting Resources
7.6 Conclusion
References
Chapter 8: Program, Learn and Play: A Course of Extracurricular Activities in Scratch Programming for Students in Grades 3–6
8.1 Introduction
8.2 Results and Discussion
8.2.1 The Extracurricular Activity Course Objectives and Content
8.3 Domain-Specific Results of Mastering Module 1
8.4 Domain-Specific Results of Mastering Module 2
8.5 Domain-Specific Results of Mastering Module 3
8.6 Domain-Specific Results of Mastering Module 4
8.7 Professional Development of Teaching Staff
8.8 Methods of Conducting Extracurricular Activities with Schoolchildren
8.9 Conclusion
References
Chapter 9: Integrating Programming in Other Subjects at Primary Level: Tool, Glue or Ideation
9.1 Introduction
9.2 Programming in the Finnish Curriculum
9.2.1 Programming and Digital Competence
9.2.2 New Literacies Program
9.3 Reasons for Integration
9.4 Integrated Programming in Grades 1–6
9.4.1 Programming as a Tool
9.4.2 Programming as Glue
9.4.3 Programming as Ideation
9.5 Implementation Challenges
9.6 Final Words
References
Chapter 10: Introducing Programming Concepts Through the Bebras Tasks in the Primary Education
10.1 Introduction
10.2 The Overview of Research Conducted on the Bebras Tasks for Primary Students in Years 2019–2021
10.3 Programming Concepts in Short Bebras Tasks for Primary School
10.4 Examples of the Bebras Tasks Based on Programming Concepts
10.5 Conclusions
References
Chapter 11: Supporting Primary Students with Disabilities and Neurological Differences in Developing Digital Thinking Skills Through an Inclusive Game-Making Club
11.1 Introduction
11.2 A Brief Synthesis of the Literature on Game-Making Clubs
11.2.1 Supporting All Learners in Game Making
11.2.2 Game Making as Acts of Creativity and Self-Expression
11.2.3 Digital Thinking in the Australian Curriculum
11.3 Breaking Down Barriers Between Special and Mainstream Education: A Local Research Vignette
11.4 Key Findings and Implications for Schools
11.4.1 Managing Expectations When Setting Coding Goals
11.4.2 Supporting Challenges with Comprehension and Executive Function in Design Thinking
11.4.3 Systems Thinking for Game Design
11.4.4 Using Computational Thinking to Program Counters
11.4.5 Collaborating with Other Creators
11.5 Evidence for Assessing Mastery of Assessment
11.6 Conclusions
11.7 Resources
References
Chapter 12: Game Making and Coding Fluency in a Primary Computing Context
12.1 Introduction
12.2 Context
12.3 Game Making, Project-Based Learning and Inclusion
12.4 An Overview of Game Coding Tools
12.5 Research Vignette: Evolution of Design
12.6 Overview of the 3 M Game-Making Learning Design
12.7 Missions
12.8 Maps
12.9 Motivational Methods
12.10 Summary of 3 M Game-Making Model and Supporting Resources
12.10.1 Supporting Resource 1: Phaser and Glitch.com
12.10.2 Supporting Resource 2: 3 M and MakeCode Arcade
12.10.3 Supporting Resource 3: Other MakeCode Arcade Tutorials
12.11 Conclusion
References
Part III: Secondary/High School
Chapter 13: The Problem with Programming: An Overview
13.1 Introduction
13.1.1 Computational Thinking
13.1.2 Programming
13.2 Method
13.3 Results
13.3.1 Difficulties in Learning to Program
13.3.2 Thinking Skills
13.3.3 Programming Tools
13.4 Discussion
13.4.1 Limitations of the Study
13.5 Conclusion
References
Chapter 14: Expanding Teacher Capacity and Student Engagement in Digital Literacies in the Primary Classroom: An Informal Explorative Reflection
14.1 Introduction
14.1.1 The Case
14.2 Literature Review
14.2.1 An Australian Context
14.2.2 Digital Literacies Through Computational Thinking
14.2.3 Approaches to Learning
14.2.4 Professional Learning
14.2.4.1 Summary
14.3 Local Research Vignette
14.3.1 Curriculum Integration
14.3.2 Teacher Capacity
14.4 An Exploration of Teaching Activities
14.4.1 The Use of Blue-Bot in Year 1
14.4.1.1 Addressing the ICT Capabilities
14.4.2 Makey Makeys and Scratch in Year 4
14.4.2.1 Addressing the ICT Capabilities
14.5 Teacher Feedback and Recommendations
14.6 Conclusion
References
Chapter 15: Why and How to Teach Physical Computing: Research and Practice in Computer Science Education at Secondary Schools
15.1 Introduction
15.2 Computer Science Education in Switzerland
15.3 Physical Computing
15.3.1 Interaction Design Perspective on Physical Computing
15.3.1.1 Interactive Objects and Installations
15.3.1.2 Focus on Ideas and Intended Interaction
15.3.1.3 Tinkering and Prototyping
15.3.1.4 Project Description and Specification
15.3.2 Constructionist and Creative Learning with Physical Computing
15.3.3 Physical Computing in Schools
15.3.4 Implications for Computer Science Teaching
15.4 Tools for Constructionist Learning with Physical Computing
15.4.1 Hardware Decision: BBC micro:bit, Arduino or Raspberry Pi?
15.4.1.1 Microcontroller Boards
15.4.1.2 Mini Computers
15.4.2 Programming Environments
15.4.3 Art and Craft Supplies
15.5 A Triangle of Physical Computing
15.6 From Science to Practice
15.6.1 Research Framework: Educational Reconstruction for CS Education
15.6.2 Science Content: Key Concepts in Hardware/Software Co-design
15.6.3 Design Principles for Physical Computing Teaching
15.6.4 Exemplary Lesson Series
15.6.4.1 My Interactive Garden
15.6.4.2 LEGO Smart City
15.7 Summary and Conclusion
15.8 Supporting Resources
References
Chapter 16: Coding Across the Curriculum: Challenges for Non-specialist Teachers
16.1 Introduction
16.2 Project Description and Participants
16.3 Methods
16.4 Results
16.4.1 The Primary School
16.4.1.1 Extrinsic Challenges
16.4.1.1.1 Practicality of Implementation
16.4.1.2 Intrinsic Challenges
16.4.1.2.1 Teacher’s Ownership of the Intended Curriculum
16.4.1.2.2 Teacher’s Knowledge and Approaches
16.4.1.3 Impact on Student Narratives
16.4.2 The Secondary School
16.4.2.1 Extrinsic Challenges
16.4.2.1.1 Practicality of Implementation
16.4.2.1.2 Student Assessment
16.4.2.1.3 Time Management
16.4.2.2 Intrinsic Challenges
16.4.2.2.1 Teachers’ Knowledge and Understanding
16.4.2.3 Impact on Student Narratives
16.5 Discussion
16.5.1 Teaching Coding as an Interdisciplinary Activity
16.5.2 The Impact of the Learning Environment on Outcomes
16.6 Limitations
16.7 Conclusion
16.8 Supporting Resources
References
Chapter 17: Teaching High School Students Artificial Intelligence by Programming Chatbots
17.1 Introduction
17.2 Artificial Intelligence and Chatbots
17.2.1 Chatbots: Technology and Architecture
17.3 Teaching Basic Programming Concepts by Creating a Chatbot
17.3.1 Programming: Understanding the Learning Trajectories
17.3.2 Programming: A Pedagogical Perspective
17.4 Programming a Chatbot
17.4.1 Conversation Flow Level 1: Friendly Greetings
17.4.2 Conversation Flow Level 2: Decision-Making
17.4.3 Conversation Flow Level 3: Repetitive Tasks
17.5 Supporting Resources
17.6 Conclusion and Future Research Directions
References
Chapter 18: Teaching Coding and Computational Thinking with Model Train Robotics: Social Factors That Motivate Students to Learn Programming
18.1 Introduction
18.2 Implementing Computational Thinking: Teaching Coding Through Model Train Programming
18.3 Materials and Methods
18.4 Student Tasks
18.5 Research Outcomes: Predictors of Student Success
18.6 Motivation by Gender
18.7 Role of the Motivational Factors in Computational Practices
18.8 Future Prospects for Action Research
18.9 Conclusion
References
Chapter 19: Initial Steps in Teaching Python at Lower Secondary School Using the Platform Codeboard.io
19.1 Introduction
19.2 Literature Review
19.2.1 Python in Lower Secondary Schools in the Czech Republic
19.2.2 Review of Existing Studies on Implementing Python in Lower Secondary Schools
19.3 Findings
19.3.1 Teaching Design for Programming in Python
19.3.2 Key Findings from the Research Study
19.4 Evidence for Assessing Mastery of Achievement
19.5 Supporting Resources
Appendices
Appendix 19.1: Activities in Python in Lessons L1–L5 (Activity #2)
Appendix 19.2: Questionnaire “Show What You Have Learned” (Activity #2)
Appendix 19.3: A Final Questionnaire (at the End of Activity #3)
References
Chapter 20: Creating Mobile Applications with App Inventor Adopting Computational Action
20.1 Introduction
20.2 Research Methodology
20.3 Teaching Computing Through the Development of Mobile Applications
20.4 Application of the Course
20.5 Evaluation of the Course
20.5.1 Does the Course Increase Students’ Competencies?
20.5.2 Does the Pedagogical Strategy of the Course Promote an Enjoyable Experience That Facilitates Learning?
20.6 Key Findings
20.7 Facilitating Diagram and Links
References
Chapter 21: Learning Computational Thinking in Secondary School (Year 8) in Germany in International Comparison: Results from ICILS 2018
21.1 Introduction
21.2 Theory and Research on Teaching and Learning Computational Thinking in Germany in International Comparison
21.3 School Learning of Computational Thinking in Germany in International Comparison
21.4 Computational Thinking and Problem-Solving in Germany
21.5 Conclusion
References
Chapter 22: Computational Thinking in Pre-vocational Education: A Focus on Coding Unplugged
22.1 Introduction
22.2 Context
22.3 Two Cases: Experiences and Key Findings
22.4 Rubric for Assessing CT Skills
22.5 Lessons Learned
References
Chapter 23: A Case of Girls Building Robots or Robots Building the Girls?
23.1 Introduction
23.1.1 Perceptions of STEM Through the Lens of All-Girl Secondary Schools
23.1.2 Technologies Curriculum in Secondary Schools
23.1.3 Gender Disparity in Computing
23.2 Melbourne RoboCats Initiative
23.2.1 Context
23.2.2 The FIRST® Robotics Competition
23.2.3 About the RoboCats
23.2.4 Why the RoboCats?
23.3 The Basics of an FRC Robot
23.3.1 Software Development: LabVIEW Versus Java
23.3.2 Robot Controller
23.3.3 Robot Control: Programming Autonomous and Teleoperated Modes
23.4 Discussion
23.4.1 Supporting Resources
23.5 Conclusion
References
Chapter 24: Applying Hybrid Programming in High Schools: An Empirical Study Analysing Teachers’ Opinions
24.1 Introduction: From Visual to Textual Programming
24.2 Hybrid Programming: Literature Synthesis and Research Questions Used
24.3 Empirical Study
24.3.1 Method
24.3.2 Results and Discussion
24.3.2.1 First Research Question
24.3.2.2 Second Research Question
24.4 Closing Remarks
References
Chapter 25: Hybrid VR Programming: Extending the Notional Machine for C++
25.1 Vocational Education in Germany and Relevance of VR
25.2 Linking Up to Competence Research
25.3 Unreal Engine
25.3.1 Choice of the Engine
25.3.2 C++ Programming Language
25.3.3 Role of the Unreal Engine
25.3.4 Unreal Engine as a Hybrid Programming Environment
25.4 Notional Machines and Didactical Guidelines for Hybrid Programming Using Blueprints
25.4.1 Notional Machines
25.4.2 A Notional Machine for C++
25.4.3 Extending the Notional Machine for C++
25.4.4 Didactical Guidelines for Hybrid Programming Using Blueprints
25.4.4.1 Starting with Blueprint Functions
25.4.4.2 Use-Modify-Create and PRIMM
25.4.4.3 Events
25.4.4.4 Modularity with Blueprints: Control Flow and Code Tracing
25.5 Our First Curriculum Intervention
25.5.1 Learning Objectives
25.5.2 Technical Requirements
25.5.3 General Didactical Decisions and Methodological Considerations
25.5.4 Project Phases
25.5.4.1 Orientation
25.5.4.2 Planning
25.5.4.3 Implementation
25.5.4.4 Evaluation
25.5.4.5 Presentation
25.5.5 Next Steps
25.6 Conclusions
References
Chapter 26: Cognitive Influences on Learning Programming
26.1 Introduction
26.2 Cognitive Load
26.3 Intrinsic Cognitive Load
26.4 Germane Cognitive Load
26.5 Extraneous Cognitive Load
26.6 Cognitive Fit
26.7 Cognitive Walkthroughs
26.8 Conclusion
References
Chapter 27: Where Next for Coding in Schools?
27.1 The Story So Far
27.2 Personal Perspective
27.3 A General Framework for Learning Programming
27.4 Machine Learning in School Education
27.5 The Basics of Quantum Computing
27.6 Quantum Computing in School Education
27.7 Discussion and Conclusion
References
Index