References: Design, Testing, and AI-Assisted Development
-
Debugging - Wikipedia - Defines debugging as tracing defects in software or hardware to their causes, covering debuggers, logs, and profiling, plus the term's early history. It underpins the chapter's troubleshooting, debugging techniques, and systematic debugging sections.
-
Software testing - Wikipedia - Surveys testing methods, from black-box and white-box approaches to unit, integration, and system levels, and notes that testing shows problems but cannot prove correctness. It supports the chapter's hardware and integration testing.
-
Code review - Wikipedia - Describes having someone other than the author examine source code to catch defects, improve maintainability, and share knowledge. It supports the chapter's peer review, code walkthrough, and AI code review sections.
-
Debugging: The 9 Indispensable Rules (2002) - David J. Agans - AMACOM - Agans condensed troubleshooting into nine memorable rules, such as Quit Thinking and Look and Change One Thing at a Time. These rules give students a concrete routine for systematic debugging.
-
The Mythical Man-Month (Anniversary Edition) - Frederick P. Brooks Jr. - Addison-Wesley - Brooks coined the warning that adding staff to a late project makes it later and urged teams to plan to throw one away. Both ideas make student project planning and prototype-first thinking realistic.
-
Getting started with MicroPython on Raspberry Pi Pico - Raspberry Pi Documentation - Official guide to installing MicroPython by UF2 on Pico and Pico W, using the REPL, and finding the Pico SDK book and examples. It supports the chapter's hardware testing and troubleshooting.
-
unittest: Unit testing framework - Python Documentation - Explains test cases, assert methods, setUp and tearDown fixtures, and skipping tests. Students can apply the same ideas to check clock logic, such as time formatting, before loading it onto hardware.
-
MicroPython REPL - MicroPython Documentation - Describes the interactive prompt, Ctrl-C to interrupt a program, paste mode, and soft reset. These are the first tools students use to isolate faults while troubleshooting a clock one line at a time.
-
Using the USB Logic Analyzer with sigrok PulseView - SparkFun Learn - Walks through capturing digital signals, adjusting sample rate, measuring timing with cursors, and decoding serial protocols such as UART, I2C, and SPI. It supports the chapter's logic analyzer basics section.
-
Prompt engineering overview - Anthropic Documentation - Advises defining clear success criteria and testing results before refining a prompt, and links to prompting best practices and tutorials. It supports the chapter's guidance on writing prompts and checking AI-generated code.