๐Ÿงฐ

Software Engineering Practices

This page explains how planning, checklists, comments, mini-lessons, and project organization supported my game development.

Learning Objective Project Evidence Required Assessment Method
Planning Changes Section 1 explains how the game changed over time through new features and improvements. Review blog evidence and project history.
Checklists & Burndown Section 2 explains how homework and milestones connect to the final game. Portfolio and sprint review.
Mini-Lesson Documentation Section 3 explains blog-style explanations and code highlights used to teach game features. Portfolio review of explanations and examples.

โœ…

Specific Software Engineering Practices Requirements


1. Planning Changes

Requirement: Describe how the game changed over time through new features and improvements

Planning changes means showing how the project improved over time instead of appearing as one final version. My Peppa Pig Fighting Game started as a smaller game idea and then grew into a more complete project with extra gameplay systems, better organization, and more ways for the player to interact with the game.

// Example of a planned improvement: support either one-player or two-player gameplay
this.gameMode = config.gameMode ?? localStorage.getItem('peppaGameMode') ?? 'singlePlayer';

if (this.gameMode === 'twoPlayer') {
    this.classes.push({ class: Player, data: sprite_data_player2 });
} else {
    this.classes.push({ class: PeppaBossEnemy, data: sprite_data_enemy });
}

This proves the planning changes requirement because the page explains how the project gained new features and became more advanced through multiple improvements.

2. Checklists and Burndown

Requirement: Connect homework and milestones to the final game

Checklists and burndown show how the project was broken into smaller tasks. Instead of trying to finish the whole game at once, I connected individual homework topics and milestones to final game features. Each item helped complete part of the larger project.

Checklist Item Final Game Connection
Variables Health, score, cooldowns, coin count, player names, and positions.
Booleans Battle-ended flags, player attack requests, and laser ownership checks.
Functions Reusable gameplay methods like initialize(), updateHud(), and saveScore().
Conditionals Win/loss logic, mode checks, collision checks, and API/localStorage fallbacks.
Arrays Lists of lasers, coins, classes, and leaderboard entries.

This proves the checklists and burndown requirement because the portfolio connects class assignments and smaller milestones directly to final game systems.

3. Mini-Lesson Documentation

Requirement: Use blog-style explanations and code highlights to teach game features

Mini-lesson documentation means explaining the code in a way that teaches another person how the feature works. My project pages use headings, short explanations, code blocks, screenshots, and homework connections to explain important CS111 concepts through the game.

// Example mini-lesson idea: explain how a button/input changes output
button.addEventListener('click', () => {
    this.start();
});

// Example mini-lesson idea: explain how scores are displayed dynamically
item.textContent = `${entry.name}: ${entry.score}`;
leaderboardDiv.appendChild(item);

This proves the mini-lesson documentation requirement because the page does more than list projects. It explains what each project demonstrates and how the code connects to programming concepts.

๐Ÿ•น๏ธ

Additional Projects & CS111 Connections


Along with my Peppa Pig Fighting Game, I also built other projects that apply the same CS111 concepts in different ways. These include a calculator and a word game, which demonstrate how programming ideas like input, output, conditionals, strings, and DOM manipulation can be used across multiple applications.

โ–ถ Calculator Project   |   โ–ถ Word Game Project

๐Ÿงฎ Calculator โ€” Operators, Input, and Real-Time Output

The calculator project focuses on handling user input and performing mathematical operations. Each button represents an input event, and the program updates the display dynamically based on what the user presses.

Calculator screenshot

This project strengthens concepts like variables, operators, functions, conditionals, and DOM manipulation. It also shows how event-driven programming works in a web interface.

โŒจ๏ธ Word Game โ€” Strings, Accuracy, and Dynamic Feedback

The word game focuses on string handling and real-time feedback. The user types words or phrases, and the program compares their input to the expected text while calculating speed and accuracy.

Word game screenshot

Together, these projects show that I applied CS111 concepts across multiple types of programs, not just one game. This demonstrates a deeper understanding of programming concepts and how they can be reused in different contexts.


๐Ÿ“š

Homework Connections


These assignments connect directly to the concepts used in my game project. Each one helped build the skills needed for features like player movement, health systems, class design, conditionals, arrays of lasers, coins, localStorage, and API integration.

โ† Back to College Ready Blog