Year 1 - Python - Architects
JSON Content Structure
{
"programName": "The Python Digital Architect Program",
"moduleID": "PY-1.3",
"moduleTitle": "The Object-Oriented Game Architect",
"moduleDescription": "Transition from procedural programming to the powerful Object-Oriented Programming (OOP) paradigm. Learn to design and build scalable, complex games by structuring code into classes and objects, culminating in a complete Arkanoid-style game.",
"capstoneProject": "A complete, playable Arkanoid game built with an object-oriented architecture, featuring a paddle, a ball, and multiple bricks as distinct classes. Includes scoring, lives, and a \"Game Over\" state.",
"technologiesUsed": [
"Python 3.x",
"Pygame",
"Python debugger (pdb)",
"VS Code debugging tools",
"pytest",
"git"
],
"coreConcepts": [
"Object-Oriented Programming (OOP)",
"Classes and Objects",
"__init__ method and attributes",
"Methods (behavior)",
"Encapsulation",
"Managing lists of objects",
"Advanced collision detection (object-to-object, object-to-list)",
"Game state management (e.g., playing, game over)",
"Scoring systems"
],
"blueprints": [
{
"blueprintID": "PY-1.3-BP1",
"blueprintTitle": "The First Object: Architecting the Paddle",
"coreObjective": "Understand the limitations of using dictionaries for game objects and refactor a procedurally-controlled paddle into a self-contained Paddle class using OOP principles.",
"technologiesUsed": [
"Python 3.x",
"Pygame"
],
"coreConcepts": [
"Object-Oriented Programming (OOP)",
"Classes and Objects",
"__init__ method and attributes",
"Encapsulation"
],
"lessonKnowledge": "Students will be able to define a Python class, create an instance of that class (an object), and initialize its attributes (like position and size) using the __init__ method.",
"previousLessonKnowledge": "Students can represent a game entity like a paddle using a Python dictionary and can update its state based on keyboard input within the main game loop."
},
{
"blueprintID": "PY-1.3-BP2",
"blueprintTitle": "Bringing Objects to Life: The Bouncing Ball",
"coreObjective": "Create a Ball class with methods that define its behavior, such as moving and bouncing, and implement collision detection between two distinct objects (the Ball and the Paddle).",
"technologiesUsed": [
"Python 3.x",
"Pygame"
],
"coreConcepts": [
"Methods (behavior)",
"Object-to-object collision detection",
"Encapsulation"
],
"lessonKnowledge": "Students will be able to add methods to a class to control an object's behavior and logic, and they will be able to check for collisions between two object instances.",
"previousLessonKnowledge": "Students have created a simple Paddle class with attributes and can instantiate it."
},
{
"blueprintID": "PY-1.3-BP3",
"blueprintTitle": "Building the Wall: Managing Multiple Bricks",
"coreObjective": "Design a Brick class and efficiently create and manage a large number of Brick objects by storing them in a list, then render the entire collection to the screen.",
"technologiesUsed": [
"Python 3.x",
"Pygame"
],
"coreConcepts": [
"Managing lists of objects",
"Class instantiation in loops"
],
"lessonKnowledge": "Students will know how to programmatically generate multiple instances of a class, store them in a list, and iterate over that list to perform actions on each object, like drawing it.",
"previousLessonKnowledge": "Students have created two interacting classes (Paddle, Ball) with attributes and methods."
},
{
"blueprintID": "PY-1.3-BP4",
"blueprintTitle": "The Great Demolition: Ball vs. Bricks",
"coreObjective": "Implement collision logic between a single object (the Ball) and a list of objects (the Bricks), and dynamically modify the list by removing bricks when they are hit.",
"technologiesUsed": [
"Python 3.x",
"Pygame"
],
"coreConcepts": [
"Advanced collision detection (object-to-list)",
"Modifying lists during iteration"
],
"lessonKnowledge": "Students will be able to write a loop that checks for collision between one object and every object in a list, and they will learn how to safely remove elements from a list based on game events.",
"previousLessonKnowledge": "Students can create and manage a list of Brick objects."
},
{
"blueprintID": "PY-1.3-BP5",
"blueprintTitle": "The Rules of the Game: State, Scoring, and Lives",
"coreObjective": "Integrate core game mechanics by implementing a scoring system that updates when bricks are destroyed, a lives system, and a game state manager to handle 'playing' and 'game over' conditions.",
"technologiesUsed": [
"Python 3.x",
"Pygame"
],
"coreConcepts": [
"Game state management",
"Scoring systems"
],
"lessonKnowledge": "Students will be able to use variables to track and display score and lives, and control the overall flow of the game, such as stopping the game and showing a 'Game Over' message.",
"previousLessonKnowledge": "Students have a working game prototype where the ball can collide with and destroy bricks."
},
{
"blueprintID": "PY-1.3-BP6",
"blueprintTitle": "Capstone Assembly: The Complete Arkanoid Architect",
"coreObjective": "Assemble all previously built components into a final, polished, and playable Arkanoid game, including adding start/end screens, sound effects, and refactoring code for clarity and efficiency.",
"technologiesUsed": [
"Python 3.x",
"Pygame",
"VS Code debugging tools",
"git"
],
"coreConcepts": [
"Project integration",
"Code refactoring",
"Debugging"
],
"lessonKnowledge": "Students will have a complete, well-structured, object-oriented game project that demonstrates their understanding of all module concepts, ready for sharing or further development.",
"previousLessonKnowledge": "All individual game components (Paddle, Ball, Bricks, scoring, lives, game state) are functional."
}
]
}