15-539 Week 5 Team Homeworks

Homework 5: Backend

Small Tasks

Large Tasks

Homework 5: UX Design

IDE Team

Lesson Plan/Tutorial

Exercise Team

Teacher Portal Team

Homework 5: Frontend

Due: Monday, October 2nd, 11:59pm

Frontend Team Meeting

This is Sunday from 12:30-1:30pm, location TBD.

Prototype team

Please message me individually to determine next steps. Please fill out this when2meet by Thursday, noon, so we can schedule some super-quick sync-up meetings.

Training

We are almost done going through the stack! This week, there's only one new topic to learn. For a deliverable, submit a version of your multiple choice app that you've been working on with the addition of asynchronously loaded elements (using Fetch, of course).

To help bring together all the concepts we've learned so far, the second part of your hw5 training is to build an entirely new component, using the full stack! Divide yourselves into 2 teams and tackle the following high-priority components.

Timeline/Deliverables

General tips

Homework 5: Autograder

Homework 5: Graphic Design

Homework 5: Textbook

Assignment

Few things to remember:

What to submit:

Looking forward to your chapter!

Homework 5: Accessibility

Last week, you condensed our guidelines into a document that we can pass along to our other teams. We now have a basic outline for best practices when it comes to designing accessible web content.

This week, I’d like to expand on that a bit further. First, I’d like you to do some more research. Spend some time on this website researching how to make web content accessible. In particular, there are two sections that I think would be valuable to read:

I’d like you to thoroughly read these sources and take detailed notes. If you feel like you’ve read something that needs to be reflected in the course guidelines we wrote last week, take special care to make note of that so we can keep up-to-date documentation.

The first article is especially important. Right now, we have a rough set of guidelines. But I want to have a way to enforce that our content is actually accessible, not just give a loose set of rules to our developers that we hope they will follow. After reading the first article, I’d like you to find some time to meet briefly as a group to define a strategy we can follow to ensure that all of our content is accessible before it gets released. I’d like there to be one document for the entire group that we can go over at our next meeting.

What to Submit?

Homework 5: Video Team

Group work:

Individual work:

Homework 5: Media Team

Last week, you continued to organize our media content. This week, I’d like to expand on that a bit more, and also account for some logistical/administrative things related to how our team will operate.

One idea that I saw in a homework submission last week was to include in all of our folders a small writeup about where similar content could be found online. So for example, if you open up one of our folders looking for a sprite, and none of them are quite right, you have resources to search online for the exact media you need. I like this idea, and think that we should start to implement that this week.

On a more logistical note, we should also decide on standard file formats for different types of media. For example, should all of our backgrounds be PNG files? Should our sprites be GIFs? These may not be the most interesting questions but they are ones we need to answer. I have no experience in this area, so I am interested to hear your research about what best practices are for these sorts of things.

What to Submit?

Homework 5: Extended Framework

Due Monday October 2nd 11:59PM (via Autolab)

The great thing about web APIs is that they can bring a heavyweight punch to a small piece of code. For us, this means we can bring truly exciting content into our lessons without having to write a bunch of complicated code ourselves. This assignment aims to show you how using external APIs/extended frameworks can be a tool that makes learning more fun for students.

In the past few assignments, you have been working with data-centric APIs. This is great practice for learning APIs, but we want you to take it to the next level for this assignment. Now that you know how to use a web API, find one with a real WOW factor that would excite students, and use it to make an engaging Python lesson. A good way to engage students is to provide them with a small piece of code that they can edit, a "plugin function", that greatly changes what the output of an advanced program (the one using the API).

Ideally, the plugin function that students edit would be flexible enough so that a created/motivated student could make something different from their classmates, and maybe even get competitive with who can make the coolest plugin. Strive to make an app whose output is cool enough that students would want to stay after class to explore it further, to write it a different way, to keep write code for the fun of it. It's a tall order, but we should try to make assignments that don't just teach students how to code but teach them to love to code. Extended frameworks are a great way to make learning to code a lovable experience.

Here are some categories for exciting APIs that might help you get thinking about how to use APIs to build engaging experiences:

- Multimedia - how can we use video, sound, or images to engage students? Maybe they'd like to auto-tune their voice, make music, or add visual effects using something like deepart.io. Maybe even Snapchat filters!

- Natural Language Processing - Interactive experiments can be text-based too. Check out text to speech, speech to text, sentiment analysis, and translation APIs.

- Trends - Twitter hashtags? Trending Google searches? These APIs might still deal with raw data,  but they can be engaging because students can relate to current trends and events.

What to turn in:

Your deliverable should consist of 2 documents, in an "Extended Frameworks" directory within your zipped homework handin:

Unlike previous assignments, you won't only be graded on completion, we are also grading you on how engaging your activity is. Post in slack about APIs you plan to use so we can collaborate to find exciting ones, and to avoid duplicates.

Good luck, and have fun!

Homework 5: CS Pedagogy & Competitive Analysis