LMU ☀️ CMSI 355
COMPUTER NETWORKS
HOMEWORK #3 Due: 2019-04-25

Read, Watch, or Skim

I’ve selected some good materials to complement the lectures, problem sets, and programming projects; don’t skip them. (Short on time? Watch videos at 1.5x or faster.)

Please watch:

Please skim:

Please read:

Instructions

You may work in groups of three for this assignment, but the usual rules apply: do not split the work. Everyone in the group needs to proofread every short answer, and everyone in the group should look over and review all of the code.

You will be adding to repository you created earlier, ending up with the following structure:

  .
  ├── README.md
  ├── .gitignore
  ├── homework1
  │   └── Files for Homework 1
  ├── homework2
  │   └── Files for Homework 2
  └── homework3/
      ├── short-answer-problems.md
      └── littlektah/
          ├── app.js
          ├── (other files like package.json, etc.)
          └── public
              ├── littlektah.html
              ├── littlektah.css
              └── littlektah.js

Submit your work as a GitHub Pull Request. Make sure the PR is produced by 23:59 in the America/Los Angeles time zone on the due date. (You can produce the PR by doing all your work on a branch, then clicking the New Pull Request button in GitHub.) I will grade by commenting on your PR.

Project Setup

Since your GitHub repo was set up in an earlier assignment, there are only a few things you need to do for this one.

  1. Create the homework3 folder
  2. Add to your .gitignore as necessary. (Please don’t be that person who commits node_modules 😰)
  3. Continue by answering the problems and writing the assigned scripts below. Work on a branch and make a PR before submitting.

Make sure you use an IDE with a built-in linter or use VSCode or Atom with the proper plugins and linters. You are too experienced to be turning in un-linted code.

Short Answer Problems

Write the answers to the following in nice markdown format and submit in short-answer-problems.md

In Comer, 5th edition, do 6.20, 7.2, 7.8, 7.23, 13.8, 13.11, 18.12, 21.4-21.13, 23.2, 23.5, 23.22, 24.3, and 24.9.

A Multiplayer Zombie Avoidance Game

In the notes on WebSockets, we saw a little application called Party, in which multiple “players” mindlessly ran around a shared canvas, without purpose. Everyone in the party could see everyone else. WebSockets are fun.

For this assignment, extend the application to a game as follows:

You may enhance the game with beautiful artwork as time permits. I understand that this is a networking class, not a UI/UX course, but a little pride in your work, and a little practice, can’t hurt. Don’t go overboard though; get help from an artistically-minded fried if you like.

If you need some inspiration and perhaps some stealable code, check out:

Don’t forget to make use of office hours and even class time to ask questions if you get stuck.

What’s with the name?

The name “Little K'tah” is an homage to the famous K'tah, which you might want to play someday. The version you are writing is 2-d only, does not require a lobby, nor capabilities, nor levels.