References: Computational Thinking and Debugging for Physical Computing¶
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.