-
Notifications
You must be signed in to change notification settings - Fork 95
031 chapter16 redesign #286
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
… focus on a comprehensive calculator program. Remove keywords section and enhance learning objectives, prerequisites, and chapter structure for clarity and coherence.
…nt; update capstone project to focus on game score system with player stats, bonuses, and win/lose conditions; add factual verification report for chapter accuracy.
…ty; update capstone project to simplify team size division example and improve learning flow.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR represents a comprehensive redesign of Chapter 16, transforming it from "Operators, Keywords, and Variables" to focus solely on "Operators." The redesign replaces the original calculator-based capstone with a game score system and updates all lessons with game-themed examples for better engagement.
Key Changes:
- Chapter scope narrowed: Removed keywords and variables content; now focuses exclusively on operators
- Updated capstone: Changed from a type-safe calculator to a game score system that integrates all four operator types
- Chapter references updated: Changed references from Chapter 19 to Chapter 18 for control flow
- Game-themed examples: All operator lessons now use gaming scenarios (scores, health, power-ups) for consistency
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Updated chapter title and structure; changed capstone description from calculator to game-based |
| 05-keywords-capstone.md | Complete rewrite: removed keywords content, replaced calculator with game score system |
| 04-assignment-operators.md | Redesigned with game examples; added floor division assignment operator |
| 03-logical-operators.md | Rewritten with game logic examples (boss fights, raids, loot conditions) |
| 02-comparison-operators.md | Updated with game-based comparisons (win conditions, health checks, high scores) |
| 01-arithmetic-operators.md | Restructured with game scoring examples (coins, power-ups, combo multipliers) |
| chapter-16-operators-fact-check-2025-11-22.md | Audit document verifying technical accuracy of all operator claims |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| Score >= 100 to win: True | ||
| Health > 0 (alive): True | ||
| Beat high score (200): True | ||
|
|
||
| --- GAME STATE --- | ||
| Can continue (score >= 50 AND health > 0): True | ||
| Gets bonus loot (score > 100 OR health == 100): True |
Copilot
AI
Nov 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ambiguous reference to "score" in the expected output. Line 51 says "Score >= 100 to win: True" but it's unclear if this refers to the base score (85), total with bonus (135), or final score after combo (270). The result "True" only makes sense if checking the final score (270 >= 100). Similarly, line 56 checks "score >= 50" which likely refers to the base score (85). Consider clarifying which score is being checked in each comparison, e.g., "Base score >= 100 to win" vs "Final score >= 100 to win".
| Score >= 100 to win: True | |
| Health > 0 (alive): True | |
| Beat high score (200): True | |
| --- GAME STATE --- | |
| Can continue (score >= 50 AND health > 0): True | |
| Gets bonus loot (score > 100 OR health == 100): True | |
| Final score >= 100 to win: True | |
| Health > 0 (alive): True | |
| Final score >= high score (200): True | |
| --- GAME STATE --- | |
| Can continue (base score >= 50 AND health > 0): True | |
| Gets bonus loot (final score > 100 OR health == 100): True |
| boxes = 25 | ||
|
|
||
| # How many items per box (whole numbers only)? | ||
| items //= 4 |
Copilot
AI
Nov 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unused variable: boxes = 25 is declared but never used in the code example. The code divides items by 4, not by boxes. Either remove the unused variable or update the example to use it: items //= boxes instead of items //= 4.
| items //= 4 | |
| items //= boxes |
| print(f"5 == 5.0: {int_five == float_five}") # True (value equality) | ||
| print(f"5 == '5': {int_five == string_five}") # False (different types) | ||
| **The `len()` function**: Python has a built-in function called `len()` that counts items in a list (or characters in a string). It returns a number. | ||
|
|
Copilot
AI
Nov 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The len() function is introduced here for the first time without it being mentioned in the chapter prerequisites or learning objectives. While the explanation is clear, consider adding a note that this is a built-in function that will be covered more thoroughly in a later chapter, or move this example to after lists are formally introduced. Alternatively, add len() to the prerequisites in the README if it's expected to be known.
| > **Note:** You'll see `len()` used here for the first time. It's a built-in Python function that we'll cover in more detail in a later chapter. |
| ### Lesson 4: Assignment Operators | ||
| Update variables efficiently with shortcuts. Instead of `score = score + 10`, write `score += 10`. Cleaner, faster, and the standard pattern for counters and accumulators. | ||
|
|
||
| **Topics**: `=`, `+=`, `-=`, `*=`, `/=`, counter pattern, accumulator pattern |
Copilot
AI
Nov 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing operator in topics list: //= (floor divide assign) is covered in the lesson and appears in the reference table (line 177 of 04-assignment-operators.md), but it's not mentioned in the topics list. Add //= to the topics: =, +=, -=, *=, /=, //=, counter pattern, accumulator pattern.
| **Topics**: `=`, `+=`, `-=`, `*=`, `/=`, counter pattern, accumulator pattern | |
| **Topics**: `=`, `+=`, `-=`, `*=`, `/=`, `//=`, counter pattern, accumulator pattern |
| ### Lesson 5: Capstone - Calculator Program | ||
| Build a complete calculator that uses all four operator types. Get user input, perform calculations, validate with comparisons, combine conditions with logic, and track running totals. |
Copilot
AI
Nov 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsistency: line 43 says "Get user input, perform calculations, validate with comparisons" but this describes a calculator. The actual capstone is a game score system. Update this description to match: "Get user input, calculate game scores with bonuses, check win/lose conditions, and track running totals."
| ### Lesson 5: Capstone - Calculator Program | |
| Build a complete calculator that uses all four operator types. Get user input, perform calculations, validate with comparisons, combine conditions with logic, and track running totals. | |
| ### Lesson 5: Capstone - Game Score System | |
| Build a complete game score system that uses all four operator types. Get user input, calculate game scores with bonuses, check win/lose conditions, and track running totals. |
…nce README to reflect new content structure
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 14 out of 15 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - [ ] Checks win/lose conditions with comparisons (>=, >, ==) | ||
| - [ ] Uses `and` and `or` for game state logic | ||
| - [ ] Tracks running total with +=, -=, *= | ||
| - [ ] Handles team split safely (checks for zero) |
Copilot
AI
Nov 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The success criteria states 'Handles team split safely (checks for zero)' but Hint 6 (lines 129-137) explicitly tells students to 'assume team_size is never 0' and notes that handling zero requires if/else statements from Chapter 18. This is inconsistent. Either remove this success criterion or rephrase it to match what students can actually implement at this stage, such as 'Calculates team split (assumes non-zero team size)' or make it optional.
| - [ ] Handles team split safely (checks for zero) | |
| - [ ] Calculates team split (assumes non-zero team size) |
…roject win/lose conditions and game state logic for improved accuracy and readability.
No description provided.