Objective

Welcome to Sprint 2! In this sprint, we will build on your existing knowledge of tools like VSCode and GitHub.

By the end of this sprint, you should have a solid understanding of JavaScript fundamentals and be able to apply them to create and enhance games. You will also gain experience in working with pre-developed code and collaborating with your peers on a shared project.

The weeks of Sprint 2 start covering Object-Oriented Programming (OOP) in JavaScript with a game emphasis.

JavaScript for Gaming

Student teams will build up a series of lessons, adding them to our GitHub Pages portfolio_2025 project.

Part 1: Fundamentals of Programming

These basic lessons are concepts required to program in any language. These lessons will be focused on Jupyter Notebooks and publishing them to GitHub Pages.

  • Data Types
    • Variables
    • Booleans
    • Strings
    • Arrays
  • Operations and Control Flow
    • Mathematical Expressions
    • Logical Operators
    • Conditionals
    • Nested Conditionals
    • Iteration

Part 2: Concepts for Gaming

These concept lessons will start to use JavaScript as a Web programming language. Lessons will be published using Jupyter Notebooks, but assigned hacks will change a classroom-provided Web-based game.

  • Input and Output
    • HTML input
    • Document Object Model (DOM)
    • HTML output to DOM
  • Code Structure using Gaming Project
    • Data Abstractions / JSON Objects
    • Functions, calling and writing
    • Classes and Methods
    • Object Literals
    • Static Variables in Objects
    • Game Objects and Inheritance
  • Applying OOP to Game Development
    • Creating game objects (e.g., Player, Enemies, Items)
    • Animation of GameObjects using Sprites
    • Managing game loop and state with OOP
    • Implementing game mechanics using OOP principles

Grading / Issue Templates

Teacher and Self evaluation are critical to our success and improvements. Be sure to be prepared throughout the Sprint for a Checkpoint review.

Hard Skills Checkpoint

- [ ] Demonstrate understanding of JavaScript data types (variables, booleans, strings, arrays).
- [ ] Apply mathematical expressions and logical operators in JavaScript.
- [ ] Implement control flow using conditionals and loops.
- [ ] Manipulate the DOM using JavaScript for input and output.
- [ ] Use JSON objects for data abstraction.
- [ ] Use functions in JavaScript.
- [ ] Use classes and methods in JavaScript.
- [ ] Implement static variables and object literals.
- [ ] Apply OOP principles to create and manage new game objects.
- [ ] Change game mechanics using OOP principles.

Soft Skills Checkpoint

- [ ] Collaborate effectively with team members.
- [ ] Communicate progress and challenges clearly.
- [ ] Use version control (GitHub) to manage code changes.
- [ ] Use issues (GitHub) to track work and progress.
- [ ] Publish lessons and projects to GitHub Pages iteratively.
- [ ] Be prepared to speak and instruct on Teaching Day.
- [ ] Have clear outline of accomplishment on Live Review checkpoints.
- [ ] Demonstrate problem-solving and debugging skills.

Sprint Closeout

Below is a checklist used to support Sprint 2 completion, this is called a retrospective. These reviews will be done in teams or subteams together with Teacher or TA.

As you look at these items you should consider…

What went well during this sprint? What challenges did you face, and how did you overcome them? What could be improved for the next sprint? How did you collaborate with your team, and what could be improved in team dynamics?

Self-grade yourself on each item in the checklist (.09 of .1 is a typical max evaluation per line item). Your ability to self-evaluate and be retrospective will have a large impact on your final grade for the Sprint. Discuss your grades and links with the Team prior to the live review.

The Teacher and TA will require you to link items of accomplishments. These links are elements you can use to organize yourself during your Live Review.


| **Hard Skills**            | **Points**    | **Grade** | **Link(s)**  
|----------------------------|---------------|-----------|--------------|
| Fundamentals Lessons       | .1 * 5        |           |              |
| HTML Input and Output      | .1            |           |              |
| JSON Objects Definitions   | .1            |           |              |
| Animation and Sprites      | .1            |           |              |
| Game changes               | .1            |           |              | 
| Beyond Perfunctory         | .1            |           |              | 
| Total                      | 1             |           |              |


| **Soft Skill**             | **Points**    | **Grade** | **Link(s)**  |
|----------------------------|---------------|-----------|--------------|
| Work Habits (Analytics)    | .1 * 3        |           |              |
| Advocacy / Collaboration   | .1 * 3        |           |              |
| Teaching                   | .1 * 2        |           |              |
| Grading                    | .1 * 2        |           |              |
| Total                      | 1             |           |              |