Blueprints for Module: Module1.2

Year 1 - Python - Architects

Blueprint IDBlueprint TitleAction
PY-1.2-BP1Setting the Stage: Your First Pygame Window
PY-1.2-BP2The Listener: Responding to Keyboard Commands
PY-1.2-BP3The Digital Pen: Drawing with Mouse Input
PY-1.2-BP4The Controlled Stylus: Movement and Drawing
PY-1.2-BP5The Control Panel: Adding Features and GUI Elements
PY-1.2-BP6The Inspector: Debugging and Refactoring
PY-1.2-BP7Capstone: The Fully Functional Etch A Sketch

Raw Module Blueprints Data:

Blueprints file content for module1.2

JSON Content Structure

JSON
{
  "programName": "The Python Digital Architect Program",
  "moduleID": "PY-1.2",
  "moduleTitle": "The Interactive Canvas",
  "moduleDescription": "Master event-driven programming by creating interactive graphics applications that respond to user keyboard and mouse inputs.",
  "capstoneProject": "A fully functional \"Etch A Sketch\" application with controls for movement, color change, line thickness, and clearing the screen.",
  "technologiesUsed": [
    "Python 3.x",
    "Pygame",
    "event handling libraries",
    "VS Code/IDE",
    "pytest",
    "git"
  ],
  "coreConcepts": [
    "event listeners",
    "callback functions",
    "user input handling",
    "state management",
    "animation",
    "GUI elements",
    "debugging event-based code"
  ],
  "blueprints": [
    {
      "blueprintID": "PY-1.2-BP1",
      "blueprintTitle": "Setting the Stage: Your First Pygame Window",
      "coreObjective": "Initialize Pygame, create a blank display window, and implement a basic event loop to handle the application quit event.",
      "technologiesUsed": [
        "Python 3.x",
        "Pygame",
        "VS Code/IDE"
      ],
      "coreConcepts": [
        "Event Loop",
        "Application Initialization",
        "Event Handling (QUIT)"
      ],
      "lessonKnowledge": "Students will understand the fundamental structure of a Pygame application, including initialization, creating a window, and running an event loop that listens for and responds to the user closing the window.",
      "previousLessonKnowledge": "Students should be proficient in basic Python syntax, including defining functions, using variables, and understanding program execution flow. They should have experience with an IDE like VS Code from the previous module."
    },
    {
      "blueprintID": "PY-1.2-BP2",
      "blueprintTitle": "The Listener: Responding to Keyboard Commands",
      "coreObjective": "Extend the event loop to detect and respond to specific keyboard presses, triggering actions within the application.",
      "technologiesUsed": [
        "Python 3.x",
        "Pygame"
      ],
      "coreConcepts": [
        "Event Listeners (KEYDOWN)",
        "User Input Handling (Keyboard)",
        "Conditional Logic in Event Loops"
      ],
      "lessonKnowledge": "Students will learn how to capture keyboard events, identify which key was pressed, and use conditional statements to execute different code blocks, such as changing the window's background color or printing messages to the console.",
      "previousLessonKnowledge": "Students must know how to create a basic Pygame window with an event loop (PY-1.2-BP1) and be comfortable with Python's if/else statements."
    },
    {
      "blueprintID": "PY-1.2-BP3",
      "blueprintTitle": "The Digital Pen: Drawing with Mouse Input",
      "coreObjective": "Implement event handlers for mouse button presses, releases, and movement to create a simple drawing application.",
      "technologiesUsed": [
        "Python 3.x",
        "Pygame"
      ],
      "coreConcepts": [
        "State Management",
        "Event Listeners (MOUSEBUTTONDOWN, MOUSEBUTTONUP, MOUSEMOTION)",
        "User Input Handling (Mouse)",
        "Coordinate Systems"
      ],
      "lessonKnowledge": "Students will learn to track the application's state (e.g., 'is_drawing') and use mouse event data (position, button status) to draw lines on the Pygame surface, introducing the core mechanic for the Etch A Sketch.",
      "previousLessonKnowledge": "Students should understand how to handle events within the Pygame loop (PY-1.2-BP2) and be familiar with using variables to store data."
    },
    {
      "blueprintID": "PY-1.2-BP4",
      "blueprintTitle": "The Controlled Stylus: Movement and Drawing",
      "coreObjective": "Combine keyboard input and drawing logic to create a controllable 'stylus' that moves and leaves a trail, mimicking the core functionality of an Etch A Sketch.",
      "technologiesUsed": [
        "Python 3.x",
        "Pygame"
      ],
      "coreConcepts": [
        "State Management (position, drawing status)",
        "Animation (simple movement)",
        "Combining Input Types"
      ],
      "lessonKnowledge": "Students will learn to manage and update an object's position based on keyboard events and continuously draw its path, creating a direct link between user input and persistent graphical output.",
      "previousLessonKnowledge": "Students must be able to handle both keyboard (PY-1.2-BP2) and mouse events (PY-1.2-BP3) and manage application state."
    },
    {
      "blueprintID": "PY-1.2-BP5",
      "blueprintTitle": "The Control Panel: Adding Features and GUI Elements",
      "coreObjective": "Enhance the drawing application by adding keyboard-based controls for changing color, adjusting line thickness, and clearing the screen.",
      "technologiesUsed": [
        "Python 3.x",
        "Pygame"
      ],
      "coreConcepts": [
        "GUI Elements (conceptual)",
        "Advanced State Management (color, thickness)",
        "Callback Functions (conceptual)"
      ],
      "lessonKnowledge": "Students will learn to manage multiple state variables and use specific key presses as a simple GUI to modify the drawing tool's properties, adding layers of functionality to their application.",
      "previousLessonKnowledge": "Students should have a working controllable drawing stylus from the previous blueprint (PY-1.2-BP4) and be comfortable managing its state."
    },
    {
      "blueprintID": "PY-1.2-BP6",
      "blueprintTitle": "The Inspector: Debugging and Refactoring",
      "coreObjective": "Learn to debug common issues in event-driven applications and refactor the existing code into a more organized, function-based structure.",
      "technologiesUsed": [
        "Python 3.x",
        "Pygame",
        "VS Code/IDE Debugger",
        "pytest"
      ],
      "coreConcepts": [
        "Debugging Event-Based Code",
        "Code Refactoring",
        "Modularity"
      ],
      "lessonKnowledge": "Students will gain skills in tracing program flow to find bugs related to state and events. They will also learn to structure their code using functions to improve readability and maintainability, preparing it for the final capstone project.",
      "previousLessonKnowledge": "Students must have completed the feature-rich drawing application from PY-1.2-BP5 and have a foundational understanding of Python functions."
    },
    {
      "blueprintID": "PY-1.2-BP7",
      "blueprintTitle": "Capstone: The Fully Functional Etch A Sketch",
      "coreObjective": "Integrate all learned concepts to build a complete Etch A Sketch application with controls for directional movement, color changes, and clearing the canvas.",
      "technologiesUsed": [
        "Python 3.x",
        "Pygame",
        "VS Code/IDE",
        "git"
      ],
      "coreConcepts": [
        "Event Listeners",
        "Callback Functions",
        "User Input Handling",
        "State Management",
        "GUI Elements"
      ],
      "lessonKnowledge": "Students will demonstrate mastery of the module's concepts by synthesizing their skills in event handling, state management, and code organization to build a polished, interactive, and fully functional graphical application from start to finish.",
      "previousLessonKnowledge": "Students must have a solid, refactored, and debugged codebase from PY-1.2-BP6 and a comprehensive understanding of all previous concepts in the module."
    }
  ]
}