Fundamentals (Paid)
  • 🚀Course Overview
  • Course Logistics
    • 🏫Course Methodology
      • 🧩Course Components
      • 💬Community Channels
      • 🎲Course Projects
    • 💻Required Hardware and Software
      • ☝️Required Software 1
      • ✌️Required Software 2
      • 👍Recommended Setup
    • 🗓️Schedule
    • 💡Tips and Tricks
      • 📒Coding Strategies
      • 🛠️Tooling Pro Tips
    • 🎓Post-Course
      • 🎓LinkedIn Certificates
      • 🚂Bootcamp Admission Criteria
  • 1: Introduction
    • 1.1: What is Coding?
    • 1.2: Web Browsers
    • 1.3: Command Line
    • Additional Resources 1
  • 2: Basic Data Manipulation
    • 2: Operators and Expressions
      • 2.1: Arithmetic Operators | Mathematical Expressions
      • 2.2: Assignment Operators | Variables
    • 2.3: Our First Program
    • Additional Resources 2
  • 3: Structuring and Debugging Code
    • 3.1: Functions
    • 3.2: Errors
    • Additional Resources 3
  • 4: Conditional Logic
    • 4.1: Intro to Logic
    • 4.2: Pseudo-Code, Boolean Or
    • 4.3: Boolean AND, NOT
    • 4.4: Input Validation
    • Additional Resources 4
  • 5: Managing State and Input Validation
    • 5.1: Program Lifecycle and State
    • 5.2: Program State for Game Modes
    • Additional Resources 5
  • 6: Arrays and Iteration
    • 6.1: Arrays
    • 6.2: Loops
    • 6.3: Loops with Arrays
    • Additional Resources 6
  • 7: Version Control
    • 7.1: Git
    • Additional Resources 7
  • 8: GitHub
    • 8.1: Intro to GitHub
    • 8.2: GitHub Fork and Clone
    • 8.3: GitHub Pull Request
    • 8.4: GitHub Repo Browsing
    • 8.5: Deployment
    • Additional Resources 8
  • 9: JavaScript Objects
    • 9.1: JavaScript Objects
    • 9.2: Card Deck Generation with Loops
  • 10: Advanced
    • 10.1 HTML
    • 10.2: CSS
    • 10.3: The Document Object Model
    • 10.4: DOM Manipulation
    • 10.5: Advanced Debugging with Sources Tab
  • 11: POST COURSE EXERCISES
    • DOM
    • Further Readings
  • In-Class Exercises
    • Day 2: Basic File and Data Manipulation
    • Day 3: Functions
    • Day 4: If Statements, Boolean Or, Boolean And
    • Day 5: Program State
    • Day 6: Scissors Paper Stone Redux
    • Day 7: Loops
    • Day 8: Arrays and Loops
    • Day 9: Beat That Redux
    • Day 10: Moar Cards / Chat Bot
    • Day 11: Blackjack Redux, DOM
  • Projects
    • Project 1: Scissors Paper Stone
      • Project 1: Scissors Paper Stone (Part 1)
      • Project 1: Scissors Paper Stone (Part 2)
    • Project 2: Beat That!
    • Project 3: Blackjack
  • Past Projects
    • Drawing With Emojis
    • Guess the Word
Powered by GitBook
On this page
  • Objectives
  • Code Review
  • 1. Run Partner's Code
  • 2. Read Partner's Code
  • 3. Edit Partner's Code
  • 4. Discuss
  • Improve Project Together
  • 1. Fix Errors
  • 2. Add Features
  • 3. Comfortable
  1. In-Class Exercises

Day 6: Scissors Paper Stone Redux

Objectives

  1. Play partner's game on your machine.

  2. Read partner's code.

  3. Edit and discuss code together.

  4. Improve each other's projects.

Code Review

On days when projects are due, we will review each others' code in groups of 2 or 3 during class. If there is a group of 3, the triplet will do individual code review together so that everyone gets to review someone else's code, then split into 2 groups for pairing.

1. Run Partner's Code

Open the code in the browser and test it. What does it do? If you're not sure what it does look inside script.js to see.

2. Read Partner's Code

Read the code:

  1. How does it work?

  2. Does it have any obvious errors?

  3. Does it implement something that you were trying to do?

  4. Does it implement a feature that you haven't started yet? How does the code work?

Code Review Reflection Questions

While you are reading, note down the answers to the following questions: No need to be comprehensive, but pick out parts of the code you found notable.

  1. Note a line of code (or multiple lines) that you think works well. This could be the logic of the code, or just a well-named variable. Explain why it works well.

  2. Note a line of code (or multiple lines) that you thought was unclear or you can't figure out. How would you explain why is it unclear or hard to figure out?

  3. Note a line of code (or multiple lines) where you found a bug. Why is it a bug? Do you have a solution?

3. Edit Partner's Code

It may be helpful to make changes to the code to help you understand it better. Write some console.log that would help you figure out what the code does. Break the code in a certain way to prove how it works or doesn't work.

4. Discuss

Once both partners are done with #1-4, discuss what you saw. Read out and review together the answers to the 3 questions you wrote down from above.

Improve Project Together

You'll be pair programming on one person's project at a time.

The driver will be the person who is _not_** working on their own code.**

Once done with one person's code, send the code to your pair (it's their project) via a community channel code snippet. Switch to work on the other person's code.

Work on the game in the following order:

1. Fix Errors

If there are any errors or bugs in a project, pair to fix those problems.

2. Add Features

If there were any features you wanted to implement but couldn't, use this time to pair-program your desired features, or anything else you'd like to see in your game.

If you have nothing else to add, here are some ideas:

A) Multi Game - Guess the Word

Your pair will turn the Scissors Paper Stone game into a Multi game app. Add a mode for a new "guess the secret word" game. The user will type in "word game" (or any secret phrase of your choice) to switch to this mode.

B) Dice Game

3. Comfortable

PreviousDay 5: Program StateNextDay 7: Loops

Last updated 8 months ago

The game itself will be the same as the game in the code example in

Add a third mode to the super game, a guess the dice roll game. The user will enter "dice game" to switch to this mode. (The dice game is the same dice game as the original basic version in ).

Continue to add to the Scissors Paper Stone game. Complete the or features that haven't been implemented yet.

4.1
4.1
version 2 more comfortable
version 1 more comfortable