ILLUSTRATED DEBUGGING GUIDE
Use with PDF Appendix F; answers are in Appendix E.
These fault files are deliberately broken or misleading.
Run them individually as instructed. Do not treat their failure as an install problem.

D01 - A missing bracket stops the instruction
  Fault observation: SyntaxError: '(' was never closed
  Repair observation: 25.0

D02 - A name must match the name you created
  Fault observation: NameError: name 'costs' is not defined
  Repair observation: 25.0

D03 - Text and numbers behave differently
  Fault observation: TypeError: can only concatenate str (not "int") to str
  Repair observation: 312.0

D04 - The third item has position two
  Fault observation: IndexError: list index out of range
  Repair observation: 200

D05 - A correct addition can still produce the wrong report
  Fault observation: 200
  Repair observation: 620

D06 - A join can repeat a campaign cost
  Fault observation: 600
  Repair observation: 300

D07 - JavaScript can join text when you expected addition
  Fault observation: 30012
  Repair observation: 312

D08 - Calculating inside a function does not return the answer
  Fault observation: undefined
  Repair observation: 25

Python: open one file in Thonny and use Run, or use python filename.py.
JavaScript: after learning Node, use node D07_fault.cjs and node D07_repair.cjs.
SQL: create a fresh practice database with D06_setup.sql, then run the two queries.
No example changes a production database or needs an internet connection.
