CS 202 Honors Fall 2012

Homework Assignment #3 : Due Monday 9/24 by 5 pm

This homework has two parts. In the first part, you'll use your creativity to design and implement your own interactive story with your own characters and plot. In the second part, you'll explore different web sites that can be used for recommending movies, songs, and books.

Part A: Create your Own Interactive Story (7 points + up to 2 points Extra Credit)

The purpose of this homework assignment is to implement an "interactive story" and draw the corresponding decision tree. An interactive story is an animated story in which the reader controls the future action, much like a Choose Your Own Adventure. As an example, you may want to take a look at this mystery.

Specification

You can implement any action or any story with any characters that you find interesting. Please avoid any offensive material. We wish we didn't need to have any specification other than "be creative and have some fun!" However, it seems to be useful for us to give you some guidelines so that your interactive story is sufficiently complex. You are welcome and encouraged to go beyond this minimum specification.

At a minimum, we expect that your interactive story will include:

  • At least three Sprites with scripts. You may either draw your own Sprites or import your own images (in .jpg or .gif format) to make Sprites. You can not use images that are included in Scratch, so be creative. Each Sprite must do more than simply "show" itself.
  • At least one of the Sprites must contain and show more than one costume.
  • You must use instruction blocks from at least the Motion, Looks, Sounds, and Control categories. You can use more block categories if you desire.
  • You must have at least four backgrounds other than white.
  • Your story must allow the user to make (at least) three decisions. That is, each time the program is run (regardless of how the user answers the questions), it must ask (at least) three questions. Each question must have two (or more) possible answers. Each answer should lead to some state with an associated script (it is okay if some combination of answers lead to the same state).
  • Your story must have at least six different possible endings or final states.

Hints

We expect that you will use the ask block to ask the user different questions. You'll then probably use the answer variable as part of a question in an if statement to control which instruction blocks execute depending on their answer.

We expect that you will use the broadcast and When I receive blocks to activate scripts across sprites. Remember to use good names for the broadcast and receive messages!

In your story, you may not use existing code that you find elsewhere, including the Scratch website. You may look at the behavior of existing Scratch projects for inspiration, but you should develop all of your code as a completely new project and not modify, re-mix, or build from any one else's code.

Decision Tree

Once you are done implementing your interactive story in Scratch, draw a decision tree (or flowchart) showing the choices and branches in your interactive story. One benefit of a decision tree is that someone can look at and quickly understand the basic behavior and structure of your Scratch program.

You must follow a few conventions when constructing your decision tree.

  • Your decision tree should begin with a box (or node) showing the Initial State of the story.
  • Each individual script in the program should correspond to one node in the decision tree. The name of the node should be the same as the name of the message that when received, activates that script.
  • Lines with arrows (or "edges") should be used to show how nodes are connected to one another.
  • In some cases, there will be only one edge going out of a node; this indicates that the user does not control what happens next.
  • In other cases, there will be multiple edges going out of a node; this indicates that the controls what happens next. Here, the edges must be labelled with the input the user gives for this action.
  • It is possible for different sequences of input to lead to the same node of the decision tree. In this case, a node will have multiple incoming edges.

We expect that you will create a very neatly drawn decision tree. You may draw the decision tree either by hand or with any software of your choice (e.g., Microsoft Word and Powerpoint both contain basic functionality to draw boxes with text and arrows). If your draw by hand, please do this as neatly as possible so we don't get a headache trying to read your decision tree.

Extra Credit (Optional)

For extra credit, you may share your interactive story with the class. You can obtain up to two points of extra credit.

To correctly share your picture, follow these steps carefully:

  1. Save your complete project.
  2. "Share" this project on the Scratch website by clicking "Share" and then selecting "Upload project to website". (Of course, you must be connected to the network to do this!)
  3. Use a web browser to go to the Scratch website and visit the gallery CS 202 Fall 12 HW 3. Click on the button on the right-side of the page saying "add my projects". In the pop-up box, select your project that you want to add and click "Accept".
  4. Verify that your project with the picture you like is showing up the gallery.

Part B: Exploring Recommendation Systems (3 points)

There are dozens of recommendation systems on the web for helping you to find a movie, book, or song that you might like. This part of your homework will give you the opportunity to explore and evaluate these current systems.

We recommend beginning by reading this New York Times Magazine article, If You Liked This, Sure to Love That, by Clive Thompson, 11/23/2008. The article is relatively easy to read, yet contains fascinating details about the Netflix competition and how these recommendation systems tend to work.

You will then explore three different movie recommendation systems:

In each case, you should browse the site, searching for a movie that you have not seen that looks like a something you would like to watch in the future. The main purpose is for you to experience the type of input each system requires and to see how good of a recommendation each of them makes.

Describe your experience in a short essay (between 500-1000 words). Your description should address the following points:

  1. Why do companies like Netflix want a good recommendation system? (You should be specific and mention more than one advantage!)
  2. What are some of the inherent weaknesses of recommendation systems based on past preferences? (Again, be specific and mention more than one weakness.)
  3. Describe your experience with each of the three recommendation systems. For each system, how did you browse to find a movie (e.g., what type of input, search terms, or keywords did you provide)? Which movie did you eventually find on each system? What did you like about using each site? What did you not like (or think could be improved)? Overall, would you recommend this site or use it again? Why or why not?
  4. Which of the three recommendation systems seems most similar to the approach used by Netflix? Why?

Please write your essay using an editor of your choice, save in format .pdf, .doc, or .docx, and submit the file through Learn@UW as described below.

Turning in your Homework

You should turn in this assignment through your Learn@UW account. If you hand draw your decision tree for Part A, you may turn in that drawing on paper in lecture Tuesday morning. Otherwise, all electronic files should be submitted to Learn@UW by 5 pm.
  1. Login into LearnUW : "learnuw.wisc.edu" using UW NetID and password.
  2. Click on the link "compsci202:Introduction to Computation" under student tab.
  3. Click the Dropbox option which is on Top-Left of your web page.
  4. Click the link to the corresponding HomeWork you need to upload. It directs you to a page where you can upload files.
  5. Upload the desired files and submit them. Your Scratch program will be saved in a file with the extension ".sb". For example, if you named your program "homework3", then you will see a file with the name "homework3.sb" that you should upload. Your write-up for Part A and B should be in a file (or two) with an extension of ".pdf".
If you have any questions about how to do this, please don't hesitate to ask. We don't want you to get stuck on steps like handing in your homework.

Menu

Fall 2012
Time: TuTh 9:30-10:45
Room: 1325 CS
Lab: 1370 CS (1st floor)


Instructor:
Prof Andrea Arpaci-Dusseau

Office Hours
TuTh 10:45-12:00
Office:
7375 Computer Sciences
Email: dusseau "at" cs.wisc.edu


Teaching Assistant:
Benjamin Bramble
Lab Hours (CS 1370)
Wed 2:00-4:00


Teaching Assistant:
Sharad Punuganti
Lab Hours (CS 1370)
Thu 1:30-3:30

  • CS202 Home
  • TAs and Lab Hours
  • Lecture Schedule w/ Slides
  • Grading
  • Homeworks
  • Projects
  • Exams
  • Scratch Examples
  • Readings
  • Computing Resources
  • Outreach Opportunity
  • Interesting Links
  • Scratch
  • UW Computer Sciences Dept