HOMEWORK

Below you will find homework assignments; these are assigned on Wednesday and due the following Monday. This page will be updated weekly.

WEEK 01

Homework: Due Monday, 9/11

  1. Finish the prework:
    1. Complete all three of the lessons in CodeAcademy's JavaScript Fundamentals track. (2-3 hours)
    2. Complete CodeSchool's Try Git exercise. This will introduce you to git and GitHub, two technologies we'll be using to store our code and collaborate with others during the course. (30-60 minutes)
  2. Complete units 1 and 2 from CodeAcademy's Learn the Command Line (ignore paid content) (30-60 minutes)
  3. Reading:

Optional

The Command Line Crash Course (2-3 hours)

WEEK 02

Homework: Due Monday, 9/18

  1. 99 Bottles of Beer (Homework-1 > 99-bottles-of-beer folder) (30-90 minutes)
  2. CodeAcademy Functions (30-60 minutes)
  3. Reading:

Optional

Start on Madlibs app (2-madlibs folder)

WEEK 03

Homework: Due Monday, 9/25

  1. Fizzbuzz (starter-code > Homework-2 > 5-fizzbuzz) (60 min)
    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.
  2. Temperature converter (starter-code > Homework-2 > 6-temp-converter) (60-90 min)
    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.
  3. Read about Hubot (45 min)
  4. 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
    • @plusplus
      • Add ++ after the @ name of a user to give them a point
      • Direct message help to @plusplus 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
  5. 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 Monday, so no need to start coding yet.) (30 min)
WEEK 04

Homework: Due Monday, 10/02

  1. Slack bot
    • Finish your Slack bot
    • Create a new GitHub repo for your bot, including:
      • the JS code for your bot
      • a readme 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 Nicole a link to the repo
  2. Outline and create objects (Homework-3 > 3-object-homework folder)
  3. Convert between JavaScript objects and JSON (Homework-3 > 4-json-homework folder)
  4. Reading:
WEEK 05

Homework: Due Monday, 10/09

  1. Madlibs (Homework-4 >madlib-with-loops folder)
  2. 99 Bottles of Beer in the browser window:
    • 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 vanilla JavaScript methods.
    • Then refactor your code to use jQuery instead (preserving your original code in comments)
  3. BONUS homework: Dice (Homework-4 >BONUS-dice folder)
    • Creating a page where every time the user hits the "Roll Dice" button, the screen randomly updates the two dice to display an image of a die corresponding to the value rolled.
    • Specific instructions in the js/app.js folder
  4. Reading:
WEEK 06

Homework: Due Monday, 10/16

  1. Homework-5 > 7-jquery-ajax-exercise (lab started in class) Be sure to remove your API keys and app keys from your code before pushing to GitHub
  2. Homework-5 > 8-jquery-homework (uses chaining, event delegation, and implicit iteration)
  3. Pre-work for Project 2: Feedr (Final project due Monday 10/30)
    • Read project overview
    • Research and choose APIs to use
    • Read API documentation for the APIs you've selected
  4. Reading:
WEEK 07

Homework: Due Monday, 10/23

  1. Complete the Local Landscapes app we started in class. (API documentation for photos/search)
    • Using the 500px API documentation, customize the search results for the app we created today to do the following:
      • Sort photo results by rating (highest rated first)
      • Return 28 photos instead of the default 20
    • Bonus: Display the current user’s information on the site after a successful login.
  2. Project 2 (Feedr): Pseudocode the basic API functionality & DOM manipulation code
  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.
  4. Reading:

NOTE: The Project 2 and Final Project tasks are milestones that are meant to help you make incremental progress on these large projects. Although this work will not be submitted to Nicole and Sasha, we strongly encourage you to complete these tasks by the deadline to avoid getting overwhelmed by work as the due dates approach. We are also happy to review and discuss your work on your projects at any point.

WEEK 08

Homework: Due Monday, 10/30

  • Project 2 (Feedr): Completed project due
  • Final project milestone: Pseudocode of basic features & draft of HTML/CSS code
WEEK 09

Homework: Due Monday, 11/06

  • Final project milestone: Final HTML/CSS code, draft of basic API functionality and DOM manipulation code