Exercise 1: Set Up launch.json and Hit a Breakpoint — Possible Solution ==================================================================== STEPS ------------------------------ 1. Open a small script, for example: def greet(name): message = "Hello, " + name print(message) greet("Ada") 2. Click the Run & Debug icon in the Activity Bar (Chapter 1), then click "create a launch.json file" (or run "Debug: Add Configuration" from the Command Palette, Chapter 2). 3. VS Code offers a language-appropriate template. Accepting the default "Launch Current File" style configuration produces something like: { "version": "0.2.0", "configurations": [ { "name": "Launch Current File", "type": "python", "request": "launch", "program": "${file}" } ] } 4. Save it (this reuses the exact structure from this chapter's own launch.json example). 5. Click in the gutter next to the "print(message)" line — a red dot appears, marking a breakpoint. 6. Press F5. The debug session starts, and execution pauses exactly at the breakpointed line, BEFORE it runs — the line is highlighted, and the Variables panel shows "name" and "message" already set from the lines that ran before the breakpoint. WHY THIS WORKS AS AN ANSWER ------------------------------ Using "${file}" as the program path (rather than hardcoding a filename) reuses the chapter's own explanation directly — it always refers to whichever file is currently open and focused, making this one configuration reusable across different scripts without editing it each time. Confirming execution pauses AT the breakpoint (not after it, and not ignoring it) is the direct proof that F5 actually launched the program THROUGH the debugger — per this chapter's own warn-box, running the same file a normal way (like python script.py in a plain terminal) would execute straight through and completely ignore the breakpoint.