HOMEWORK

Assigned on Wednesday.

This page will be updated weekly.

LINK: How to submit Homework

WEEK 01

Homework: Due Monday 18/05/20

Note: There's nothing to submit for this week's homework. Just be sure to have it done before class on Tuesday.

  1. FreeCodeCamp Functions (5-15 minutes -- one lesson only)
  2. Reading:

Optional

WEEK 02

Homework: Due Wednesday 27/05/20

(we will step through the homework submission process together at the start of next lesson)

  1. 99 Bottles of Beer (30-90 minutes)

    starter-code > Homework-1 > 99-bottles-of-beer

  2. Fizzbuzz (60 min)

    starter-code > Homework-1 > fizzbuzz

    1. Construct a for loop that iterates through and console.logs the numbers 1 - 100.
    2. Add an if/else statement that logs the string "fizz" if the value being iterated over is divisible by 3; otherwise, log the value.
    3. Add an else if clause that logs the string "buzz" if the value being iterated over is divisible by 5.
    4. Add an additional else if clause that logs the string "fizzbuzz" if the value being iterated over is divisible by both 3 and 5. (Hint: Test your code after adding this; your program may require additional changes in order to work correctly.)
  3. Random address generator (30-60 min)

    starter-code > Homework-1 > random-address-generator

WEEK 03

Homework: Due Monday 01/06/20

  1. Functions-practice (60min)

    starter-code > Homework-2 > functions-practice

    • Attempt as many questions as you can. If you're stuck, move on to the next one and don't spend an excessive amount of time on them.
  2. Transmogrifier (30-60 min)

    starter-code > Homework-2 > transmogrifier

Optional

  • Madlibs (60 min)

    starter-code > Homework-2 > z_BONUS-madlibs

    We haven't covered all of the concepts necessary to complete this project, but we will pick them up over the next few weeks. Identify syntax in the code that you recognize, and research any code you encounter that you don't understand. This project will be due in a few weeks, so if you're looking for a preview of upcoming content, this will give you a head start.


Optional CSS refresher

Using Simple CSS Selectors quiz (Khan Academy) -- use hint/explanation links if you're not sure

WEEK 04

Homework: Reading and Familiarisation before Slackbot Lab

  1. Prepare for the Slack bot lab (Wednesday 03/06)
    • Read about Hubot (45 min)
    • Interact with the bots in our class Slack organisation (30 min)

      (only works in DMs with these bots.)

      • @slackbot
        • Direct message with a question
      • giphy
        • Type /giphy and a space, followed by a word.
        • giphy responds with an animated GIF related to that word.
    • Read the Project 1 description and start thinking about what you'd like your bot to do. (30 min)

      (We will configure our computers and start building bots in class next week, so no need to start coding yet.)


Homework: Due Monday 08/06/20

  1. Slack bot
    • Finish your Slack bot
    • Push your code to a GitHub Enterprise repo that includes:
      • the JS code for your bot
      • updates to the default README.md file that describe what your bot is capable of and how a user can interact with it
    • Send Wilson the URL for your repo

      Note: You will not push your Slack bot code to the Homework repo

  2. Outline and create objects (15-30 min)

    starter-code > Homework-3 > object-homework

  3. Convert between JavaScript objects and JSON (30-60 min)

    starter-code > Homework-3 > json-homework folder

  4. Reading

Optional exploration

    Visual Studio Code settings

    You can change custom settings in the Visual Studio Code editor by editing a JSON file. Open and view this file by pressing command+shift+P (Mac) or Ctrl+Shift+P (Windows/Linux) to open the Command Bar, type settings, and then in the list displayed, click Preferences: Open Settings (JSON).

    The document that opens allows you to add custom settings to override the VS Code defaults. Read through the Visual Studio Code default settings documentation, and then customize at least two settings with your own values. Save your changes, restart the editor, and verify that the changes you made are reflected in the editor.

    If you're having trouble choosing a rule to explore, check out the following:

    • editor.rulers
    • editor.tabSize
    • editor.wordWrap
WEEK 05

Homework: Due Monday 15/06/20

  1. Daft Punk Soundboard (45mins)

    Homework-4 > daft-punk

  2. jQuery Append Exercise (60mins)

    Homework-4 > jquery-create-append-homework

  3. Customizable survey form (60mins - 90mins)

    Homework-4 > survey-form

  4. Reading:
WEEK 06

Homework: Due Monday 22/06/20

  1. Current Weather (60-90 min)

    Homework-5 > ajax-lab

    Be sure to store your API keys and app key in js/keys.js, NOT injs/main.js.

  2. Dice (30-60 min)

    Homework-5 >dice-lab

    • Create an app where every time the user hits the "Roll Dice" button, the screen randomly updates each of the two images to display an image of a die corresponding to the value rolled.
    • Specific instructions in the js > app.js folder
  3. Download and install Postman (15 min)

  4. Pre-work for Project 2: Feedr (2 hours)

    (Final project due Monday 29/06/20)

  5. Project 2 (Feedr)

    Working code for an API call that returns data from one of your news sources, and draft code to extract data and add it to the DOM

    NOTE: This is a milestone to help you ensure that you don't fall behind on this project, but you don't need to submit anything for Project 2 until the final deadline of Monday 29/06/20.

  6. Suggested Reading

NOTE: The Project 2 tasks are milestones that are meant to help you make incremental progress on a larger project, but do not include work that you must submit as weekly homework. I strongly encourage you to complete these tasks by the deadline to avoid getting overwhelmed during the lab. I am also happy to review and discuss your work on your projects at any point.

WEEK 07

Homework: Due Tuesday 29/07/20

  1. Project 2 (Feedr)

    Completed project due

    • Send Wilson the URL for your fork of the Feedr repo on GitHub
    • Ensure that your API keys are stored only in keys.js before pushing to GitHub
WEEK 08

Homework: Due Tuesday 29/07/20

  1. starter-code > HOMEWORK-6 > person-module

    Build a module that creates people objects by following the steps in the app.js file.

  2. starter-code > HOMEWORK-6 > iife-exercise

    Build a function that logs the value of a counter variable, using both the let and var keywords. A classic JavaScript brain teaser.

  3. Final project
    • Read the project overview.
    • Come up with a basic idea for your final project. Create an outline/project description that details how your project will meet each of the project requirements.
    • Create a list of possible APIs to use.
    • Bring your project outline and API list to class on Monday.
  4. Final project milestone

    Pseudocode of basic features & draft of HTML/CSS code

    NOTE: This is a milestone to help you ensure that you don't fall behind on this project, but you don't need to submit anything for your final project until you present it during the last class on Wednesday 20/07/20.


Optional

  • Firebase Web Codelab

    This tutorial guides you through building a web application with Firebase. This is a preview of what we'll be doing in class next week.

  • Reading
WEEK 09

Homework: Due Thursday 11/21

Homework: Suggested progress by Tuesday 11/19

  1. Final project milestone

    Final HTML/CSS code, draft of basic API functionality and DOM manipulation code

    Note: This is a milestone toward getting your final project done on time, but you don't need to demonstrate anything for your final project until the last class on Thursday 11/21. Meeting this milestone by next week will enable you to take advantage of the lab time in next Tuesday's class to continue building out and troubleshooting your JS.