Topic Description Code Review Focus Met Unmet
Control Structures        
Iteration Use loops for game object arrays, animation frames for, forEach, while loops
Conditionals Implement collision detection, state transitions if/else, nested conditions
Nested Conditions Complex game logic (e.g., power-up + collision + direction) Multi-level conditionals
Data Types        
Numbers Position, velocity, score tracking Numeric properties
Strings Character names, sprite paths, game states String manipulation
Booleans Flags (isJumping, isPaused, isVulnerable) Boolean logic
Arrays Game object collections, level data Array operations
Objects (JSON) Configuration objects, sprite data Object literals
Operators        
Mathematical Physics calculations (gravity, velocity, collision) +, -, *, / in physics
String Operations Path concatenation, text display Template literals, concatenation
Boolean Expressions Compound conditions in game logic &&, \|\|, !

Here are some code runners for each lesson:

Code Runner Challenge

Classes and methods

View IPYNB Source
%%js

// CODE_RUNNER: Classes and methods
class Cat {
    constructor(name) {
        this.name = name;
        this.hunger = 100; // 100 = full, 0 = starving
    }

    eat() {
        this.hunger = Math.min(100, this.hunger + 30);
        console.log(this.name + " eats some food. Hunger: " + this.hunger);
    }

    meow() {
        if (this.hunger < 40) {
            console.log(this.name + " meows loudly... they're hungry!");
        } else {
            console.log(this.name + " meows contentedly.");
        }
    }
}

let myCat = new Cat("Whiskers");
myCat.meow(); // contentedly
myCat.hunger = 20;
myCat.meow(); // loudly/hungry
myCat.eat();  // hunger restored
Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

Code Runner Challenge

Strings

View IPYNB Source
%%js

// CODE_RUNNER: Strings

// Create three strings of varying lengths
let string1 = "Hello";
let string2 = "JavaScript";
let string3 = "Programming";

// Find and print the length of each string
console.log("Lengths:");
console.log(`"${string1}" has length: ${string1.length}`);
console.log(`"${string2}" has length: ${string2.length}`);
console.log(`"${string3}" has length: ${string3.length}`);

// Find and print first and last character of each string
console.log("\nFirst and Last Characters:");
console.log(`"${string1}": first='${string1[0]}', last='${string1[string1.length-1]}'`);
console.log(`"${string2}": first='${string2[0]}', last='${string2[string2.length-1]}'`);
console.log(`"${string3}": first='${string3[0]}', last='${string3[string3.length-1]}'`);

// Concatenate all three strings into a sentence
let sentence = string1 + " " + string2 + " " + string3;
console.log("\nConcatenated sentence:");
console.log(sentence);
Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

Code Runner Challenge

Math operations

View IPYNB Source
%%js

// CODE_RUNNER: Math operations
const y = [15]
    for(let num in y){if (y % 5 === 0) {console.log(y + " is divisible by 5 and odd")} else (console.log(y + " is not divisible by 5"))}

    const a = 4 * 3;
const b = 11 * 2;
const sum = 8 * 4;

console.log(a + b + sum)
Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

Code Runner Challenge

JSON Data structures

View IPYNB Source
%%js

// CODE_RUNNER: JSON Data structures

// 1. Create a JavaScript object named `resume` with the following properties:
const resume = {
    fullName: "Rohan Sharma", // Add your full name
    email: "rohansharma15017@gmail.com",    // Add your email
    education: "Grade 9", // Add your grade
    address: {     // Nested object
        city: "San Diego",
        state: "California",
        country: "United States of America"
    },
    skills: ["Managing JSON objects", "Coding in Javascript", "Playing Lacrosse"]     // Array of strings
};
// 2. Access and display properties for full name, email, and city using dot notation. Look at section 1.
console.log(resume.fullName);
console.log(resume.address.city);
// 3. Convert the `resume` JavaScript object into a JSON string and store it in a variable named `jsonString`, then log the JSON string to the console. Look at Section 3.
const jsonString = JSON.stringify(resume);
console.log(jsonString);
// 4. Parse the JSON string back into a JavaScript object and store it in a variable named `parsedResume`, then log the object to the console. Look at Section 3.
const parsedResume = JSON.parse(jsonString);
console.log(parsedResume);



Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

Code Runner Challenge

Data abstraction

View IPYNB Source
%%js
// CODE_RUNNER: Data abstraction
function calculator(num1, num2, operator) {
    let result;

    if (operator === "+") {
        result = num1 + num2;
    } else if (operator === "-") {
        result = num1 - num2;
    } else if (operator === "*") {
        result = num1 * num2;
    } else if (operator === "/") {
        result = num1 / num2;
    } else {
        result = "Invalid operator";
    }
const nothing = 0

    for (let i = 0; i < 3; i++) {
        nothing += 0;
    }

    return result;
}

console.log(calculator(10, 5, "+"));
console.log(calculator(10, 5, "-"));
console.log(calculator(10, 5, "*"));
console.log(calculator(10, 5, "/"));
Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

Code Runner Challenge

Iterations

View IPYNB Source
%%js

// CODE_RUNNER: Iterations

let fruits = ["Heart Shaped Herb", "Yami Yami no Mi", "Gomu Gomu no Mi", "Monkey D. Luffy"];

for (let i = 0; i < fruits.length; i++) {
    console.log(fruits[i]);
}

for (let i = 0; i < fruits.length; i++) {
    if (i % 2 === 0) {console.log (fruits[i] + " is technically an odd fruit in the iteration");
    }
}

for (let i = 0; i < fruits.length; i++) {
    if (i === 3) {console.log (fruits[i] + " is not a fruit," + fruits[i] + " is a character!")}
    
    else {console.log (fruits[i] + " is just a fruit :(")}
    
}
Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

Code Runner Challenge

Arrays

View IPYNB Source
%%js

// CODE_RUNNER: Arrays

// TODO: Write your code here for Exercise 3
// Create the numbers array
// Loop through and print each number
// Print each number multiplied by 2
// Calculate and print the sum
console.log ("Normal numbers")
console.log()

const NUMBER = [10, 25, 30, 15, 20]
for(let num of NUMBER) {console.log (num)}
console.log()
console.log("Doubled numbers")
console.log()
for(let num of NUMBER) {console.log (num * 2)}
console.log()
console.log("sum")
console.log()
let sum = 0;
for (let num of NUMBER) {
  sum += num;
}
console.log(sum)



Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...