CSSE Objectives
A JavaScript game project demonstrating core Computer Science concepts including Object-Oriented Programming, inheritance, control structures, data types, and API integration. Built using a custom game engine, it features interactive gameplay, Canvas rendering, keyboard input, and state management. The project follows software engineering practices such as version control, debugging, testing, and documentation, and is aligned with CS111 learning objectives.
| Learning Objective | What It Means | How It’s Applied |
|---|---|---|
| Object-Oriented Programming | Organizing code using classes and objects. | Used to create game characters, enemies, and reusable systems. |
| Writing Classes | Creating blueprints for objects with properties and methods. | Create classes like Player and Enemy. |
| Methods & Parameters | Functions inside classes that can accept data. | Example: move(direction, speed) |
| Instantiation & Objects | Creating usable objects from classes. | Example: const player = new Player() |
| Inheritance (Basic) | One class can inherit features from another class. | Example: class Enemy extends Character |
| Method Overriding | Replacing a parent class method with a custom version. | Override update() or draw(). |
| Constructor Chaining | Using parent constructors inside child classes. | Example: super(data) |
| Control Structures | Logic that controls program flow. | Used with loops and conditional statements. |
| Iteration | Repeating code using loops. | Example: for and while loops. |
| Conditionals | Running code only if conditions are true. | Example: if (health <= 0) |
| Nested Conditions | Conditions placed inside other conditions. | Used for advanced game logic checks. |
| Data Types | Different kinds of data used in programming. | Includes numbers, strings, booleans, arrays, and objects. |
| Numbers | Numeric values used in calculations. | Used for score, speed, damage, and position values. |
| Strings | Text values stored in code. | Used for names, dialogue, and labels. |
| Booleans | True or false values. | Example: isAlive = true |
| Arrays | Lists that store multiple values. | Used to store enemies, bullets, or items. |
| Objects (JSON) | Structured data using key-value pairs. | Used for game configuration and settings. |
| Operators | Symbols used for calculations and comparisons. | Examples: +, -, === |
| Mathematical | Performing arithmetic calculations. | Used for movement, collision, and scoring systems. |
| String Operations | Manipulating and combining text. | Example: "Score: " + points |
| Boolean Expressions | Expressions that evaluate to true or false. | Used in game decision-making logic. |
| Input/Output | Receiving user input and displaying results. | Used for controls, menus, and game feedback. |
| Keyboard Input | Detecting keyboard interactions. | Used for player movement and controls. |
| Canvas Rendering | Drawing graphics onto the screen. | Used to render game characters and backgrounds. |
| GameEnv Configuration | Setting up the game environment and settings. | Used to configure levels, objects, and gameplay values. |