Skip to content

References: Computational Thinking and Debugging for Physical Computing

  1. Computational thinking - Wikipedia - Explains the four pillars of decomposition, pattern recognition, abstraction, and algorithm design popularized by Jeannette Wing as a general problem-solving skill, the exact framework this chapter's opening section builds on.

  2. Finite-state machine - Wikipedia - Covers how a system with a limited number of named states moves between them in response to triggering events, the formal model behind this chapter's Idle/Driving/Avoiding robot state machine example.

  3. Debugging - Wikipedia - Surveys methods for locating and fixing the cause of unexpected program or hardware behavior, including systematic root-cause isolation techniques that underpin this chapter's structured debugging process.

  4. The Pragmatic Programmer: Your Journey to Mastery (20th Anniversary Edition) - Andrew Hunt and David Thomas - Addison-Wesley - Credited with originating the "rubber duck debugging" story: explaining code aloud, line by line, to an inanimate listener, now the standard name and teaching device for this chapter's first debugging technique.

  5. Computer Science Unplugged: Off-Line Activities and Games for All Ages - Tim Bell, Ian H. Witten, and Mike Fellows - CS Unplugged Project, University of Canterbury - Credited with pioneering computer-free games that teach decomposition, pattern recognition, and abstraction to K-12 students before they see a line of code, the model this chapter's own analogies follow.

  6. Embedding computational thinking skills in our learning resources - Raspberry Pi Foundation - Introduces the Foundation's own computational thinking framework of decomposition, algorithms, patterns and generalization, and abstraction, directly connecting this chapter's four pillars to the organization behind the hardware this book teaches.

  7. What is Debugging in Software Engineering? - GeeksforGeeks - Lays out a six-step debugging process and ten root-cause strategies such as backtracking and cause elimination, giving students a more detailed walkthrough of the debugging workflow this chapter introduces.

  8. What is Pseudocode - A Complete Tutorial - GeeksforGeeks - Explains how to write clear pseudocode and compares it against algorithms and flowcharts with worked examples, reinforcing this chapter's introduction of pseudocode as a language-independent way to record an algorithm.

  9. Devices and Interrupts - MIT OpenCourseWare - Lecture material from MIT's Computation Structures course contrasting polling, where a program constantly checks a device, with interrupt-driven I/O, expanding on this chapter's polling-versus-interrupt comparison table.

  10. Finite State Machines Explained - freeCodeCamp - Introduces states, transitions, and events using an accessible coffee-machine analogy before touching formal automata theory, mirroring this chapter's own robot state machine of Idle, Driving, and Avoiding states.