15-539 Week 3 Team Homeworks

Homework 3: Backend

Due Sunday 9/17 at 8AM. Review meetings Sunday 9/17 and Monday 9/18.

Instructions

  1. Give yourself a quick refresher on Django. We’ll be using the django-rest-framework.
  2. Complete individual assignment (see below).
  3. Coordinate with Scott to make sure your code is properly stored on Github with the appropriate development ops tools setup.
  4. Attend a homework review.

Assignments

Alec + Sean

Develop a proposal for what authentication we should use. Then implement a small demo that uses this form of authentication.

Please track only the following user information for now (we will add more later):

To approach this task, I’d recommend the following steps:

  1. Explore the available authentication methods on the authentication page of  django-rest-framework docs (see here).  
  2. Choose an authentication and write a ½ page proposal on why you’re using it.
  3. Send the proposal for Scott and Eddie for review.
  4. Implement a demo.

Note that this task does not include authorization. We need to know who is logged in, but not what they’re allowed to do (yet).

Arman + Matt

Build a Python3 class (backed by AWS S3) that supports uploading and retrieving files.

I’d recommend the following steps:

  1. Coordinate with Eddie to get access to AWS S3.
  2. Draft a skeleton Python class with proposed methods, and send to Scott + Eddie for review.
  3. Implement the class using the AWS SDK for Python3.

Maya

Learn django-rest-framework.org. Build a sample app of your choice to demo.

Nate

Refresh on Python and learn django-rest-framework.org.

Scott

Learn django-rest-framework.org. 

Ensure that development operations procedures are being followed.

Perform reviews specified in the above tasks.

Review File API design (detailed below).

Eddie

Design a very simple JSON based API specification for adding, removing, and updating files on our file storage service. Create a client side wrapper for the API and send that wrapper to the UXD/UXI teams.

Submission

Keep your work in a Github repository as you develop.  Start in skunkworks and then we'll move to a team repository soon after.

Include any code or documents you created in zip file and submit that to Autolab after your homework review meeting. If you worked as a partner, both partners should submit the same materials.

Homework 3: UX Design


Homework 3: Frontend/UXI

Meta: Time estimates

Go to the React + Redux intro session

This is scheduled for Friday 9/15 from 3-3:30pm in PH - A20A.

Set up Sublime Text for React development

Turns out that with the help of package management, this is fairly straightforward.

  1. Install Package Control by following the instructions here: https://packagecontrol.io/installation.
  2. Open the command palette. This is command+shift+p on Macs, and ctrl+shift+p on Windows.
  3. Start typing ‘Install’ and select the ‘Package Manager: Install Package’ option.
  4. Search for ‘Babel’ and install the package ‘Babel’.
  5. Done!

Do the React Tutorial

Do the React tutorial (making a Tic-Tac-Toe app). In your deliverable, place all code related to this in a tictactoe directory.

Watch the Redux intro course

Watch the Redux intro course at 1.5x speed. This should take 80 minutes.

Be sure to create an account on the site (you can use Github) and, as a deliverable, go to your account information and take a screenshot of your progress in the intro course.

React + Redux multiple choice app

The app should have the following components: radio button, option text, option (which is composed of a radio button and an option text component), question statement, question, section of questions, paginated sections (Implement as much as you can in in 2.5 hours).

Deliverables

Your zip file should contain the following:

Note that as usual, you may work with others, but any code you submit must be your own.

Delivery

We require two delivery methods for this homework

  1. Autolab (self-explanatory)
  2. On Github. Instructions:
  1. Clone the uxi-hw3 repository.
  2. Check out a new branch (i.e. git checkout -b <andrewid>)
  3. Add your code under the directory labeled with your andrewID.
  4. Commit
  5. Push


Homework 3: Autograder

Homework 3: Graphic Design

Homework 3: Textbook

Homework 3: Accessibility

Last week, we looked at the various pieces of legislation and the different guidelines that govern what accommodations are necessary for students with disabilities. This week, we are going to look at some specific disabilities, and formally document what our legal responsibility is to students with those conditions. We’d also like to start producing some ideas for how we can address these responsibilities in the context of our curriculum and content.

What I’d like for you all to do is each pick one of the following conditions that we may have to plan for (there should be one for each of you, use Slack to choose amongst yourselves):

What to Submit?:

This should be a reasonably quick homework assignment that I’d expect you to spend about three hours on. Where I’d hope you spend the majority of your time is coming up with clever suggestions on how to better structure our content for students with disabilities. Of course, don’t miss the obvious stuff, but be creative too!

Homework 3: Video Team

Homework 3: Media Team

Media Team Week 3 Homework

Last week, we curated sources of media (sounds, images, backgrounds, sprites, etc). This week, we are going to continue to collect more media, and also begin the process of organizing it into some kind of coherent structure that our other teams can use.

What I’d like you all to do is organize the media content into collections, where each collection contains media that fits together nicely and would make sense to be packaged together for a particular lesson, animation, exercise, or anything else we may need it for. For example, maybe you think a certain background, a few sprites, and a couple of sound clips would fit together as the building blocks to make a really cool platform-based game. Great! Group these things together in a folder, and include a short text file explaining how you think the contents of this collection fit together. Also include in your text file the licenses that apply to all of the media in your collection. So in the case of the platform game, we may have a directory structure that looks something like this

platform-game

        → sprites

                → sprite1.gif

                → sprite2.git

        → backgrounds

                → background.jpg

                → background-alternate.jpg

        → sounds

                → sound1.mp3

                → sound2.mp3

        info.txt     (contains a description of the collection, relevant license info)

Of course, this is flexible. Adapt it as you feel necessary for whatever ideas you may have. The idea here is just to have some collections of media readily available for our development teams to use when the time comes.

 

What to Submit?:  A zip file containing all of your organized collections.

This should be a reasonably quick homework assignment that I’d expect you guys to spend about three hours on. I’d expect at least five collections of media, but do what you can in the three hours you have. Don’t just stop once you hit five, but don’t spend ten hours on this either!

Homework 3: Extended Framework

Homework 3: CS Pedagogy & Competitive Analysis