HOMEWORK

Assigned on Wednesdays.
Due the following Sunday at 11:59pm.

This page will be updated weekly.

WEEK 01

Homework: Due Monday 9/17

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

  1. Complete units 1 and 2 from Codecademy's Learn the Command Line (ignore paid content) (30-60 minutes)
  2. FreeCodeCamp Functions (5-15 minutes)
  3. Reading:

Optional

WEEK 02

Homework: Due Monday 9/24

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

  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. Temperature converter (60-90 min)

    starter-code > Homework-1 > temp-converter

    1. Create a function that accepts a temperature value in Fahrenheit and converts it to Celsius.
    2. Create a second function that accepts a temperature value in Celsius and converts it to Fahrenheit.
  4. Read about Hubot (45 min)
  5. Interact with the bots in our class Slack organization (only works in DMs with these bots, or in channels that they are members of, such as #general) (30 min)
    • @slackbot
      • Direct message with a question
    • @heytaco
      • In a public channel, mention someone's @ name and the :taco: emoji to give them a taco (and a point!). You can give up to 5 tacos per day.
      • Direct message help to @heytaco to learn other commands to experiment with.
    • giphy
      • Type /giphy and a space, followed by a word
      • giphy responds with an animated GIF related to that word.
  6. Read the Project 1 description and start thinking about what you'd like your bot to do. (We will configure our computers and start building bots in class next week, so no need to start coding yet.) (30 min)
  7. Reading

Optional

  • Random address generator (30-60 min)

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

  • Madlibs

    starter-code > Homework-1 > 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.

WEEK 03

Homework: Due Sunday 9/30, 11:59pm

  1. Slack bot
    • Finish your Slack bot
    • Create a new GitHub Enterprise repo for your bot, including:
      • the JS code for your bot
      • updates to the default README.md file that documents what your bot is capable of and how to interact with it
    • Push your code to your repo, then use Slack to send Sasha a link to the repo
  2. Reading
WEEK 04

Homework: Due Sunday 10/7, 11:59pm

  1. Outline and create objects (30-60 min)

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

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

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

  3. Reading

Optional homework (requires creating elements and adding to DOM)

  1. Madlibs (30-60 min)

    Homework-4 >madlib-with-loops


Optional exploration

    Visual Studio Code settings

    The Visual Studio Code editor relies on a user-editable JSON file for custom settings. Open and view this file by pressing command+, (Mac) or Ctrl+, (Windows/Linux). The document that opens shows the default settings on the left, and allows you to add custom settings on the right to override the defaults. Read through the default settings and their descriptions on the left, and then customize at least two settings with your own values on the right side. Save your changes, restart the editor, and verify that the changes you made are reflected in the editor.

    Visual Studio Code settings documentation

WEEK 05

Homework: Due Sunday 10/14, 11:59pm

  1. Current weather lab (started in class) (60-90 min)

    Homework-4 > ajax-homework

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

  2. Customizable survey form (90 min-2 hours)

    Homework-4 > dom-homework

  3. 99 Bottles of Beer in the browser window (30-60 min)
    • Remember the 99 Bottles of Beer assignment? For this assignment, you'll be creating a website that programatically displays the lyrics to that song in the browser window.
    • You'll need to create both an HTML file and a JavaScript file.
    • In your HTML file, you'll want to have an unordered list (<ul>) that contains all of your lyrics.
    • Each line of the song should appear inside of a list item (<li>) within that unordered list.
    • Your JavaScript file should programatically append each line of the song to the page--no hard-coding lyrics in HTML!
    • Code this project using jQuery.
    • BONUS: Refactor your code to use vanilla JavaScript instead (preserving your original code in comments)
  4. Reading
WEEK 06

Homework: Due Sunday 10/21, 11:59pm

  1. Local Landscapes

    Homework-5

    Complete the Local Landscapes app we started in class.

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

    (Final project due Monday 11/5)

    • Read project overview
    • Research and choose APIs to use
    • Read API documentation for the APIs you've selected
  3. Reading: Eloquent JavaScript, Chapter 6: The Secret Life of Objects
WEEK 07

Homework: Due Monday 10/29

NOTE: None of this week's homework needs to be pushed to the Homework repo.

  1. Project 2 (Feedr)

    Pseudocode the basic API functionality & DOM manipulation 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 Project 2 until the final deadline of Monday 11/5.

  2. 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.
  3. Reading
WEEK 08

Homework: Due Monday 11/5

  1. Project 2 (Feedr)

    Completed project due

    • Send Sasha 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
  2. 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 the last class on Monday 11/19.