Semi-weekly response on Piazza (15pts)
Twice weekly, I expect you to engage with the Piazza site.
- Prior to class on Monday, post a response to the reading. This is not just a summary, but a critical reflection on what you read. What is the main idea being proposed in this reading, and what are its central points? What terms, concepts, ideas, techniques or arguments are unclear? What does this make you think of in your own life? If you had one question to ask the authors, what would you ask? [Addressing three or four of these points will earn a full grade.]
- By the end of day Friday (5:00pm), post an update to your response, based on the discussion in class. Did your understanding change? Do you think something differently from before?
Topic presentation (10pts)
Students will be assigned (in pairs) to lead a discussion about a course topic (i.e. a paper). Your role will be to summarize the reading(s) for the class on that day in a 20 minute presentation.
Class participation (15pts)
Each class will involve a substantial amount of discussion. Your role is to come to class prepared to engage with this discussion, and to provide thoughtful commentary. The responses you make on the course blog are a way of helping you to do this.
Assignments (30pts)
There are four assignments -- each geared toward helping you learn how to use networking technologies. Each programming assignment uses C# as a platform. Three of these assignments are "replication" assignments, where you replicate an idea from a tutorial provided by your labmates. In the other assignment, you work in a team of four to produce a tutorial for your fellow labmates.
Tutorial assignment (1 x 15 pts): You will work in a team of four to produce an in-class tutorial, and a webpage-based tutorial for a piece of technology. Both tutorials should cover how to create a simple "Hello World" program. In the CSCW world, there are two hello world programs: a chatting program, and a whiteboard program.
- In a chatting program, you allow two (and more) clients to connect together. The UI should have two text boxes: an output box where everyone's chats go, and an input box where someone can send something to the group.
- In a whiteboard program, you allow two (and more) clients to connect together. The UI should allow people to "paint" on the canvas together.
- Deliverables for this assignment:
- A 30-minute in-class tutorial. Your tutorial should discuss: (a) the underlying technology, and the assumptions that the system makes, (b) a demonstration of a whiteboard system (you may also demonstrate a spiffier one, but make sure you demonstrate at least a simple one), (c) a walk-through of the code in the whiteboard system -- in particular, the critical pieces that make that code work, and (d) a discussion of "gotchas" that you ran into.
- A webpage tutorial. This tutorial covers a lot of the same material as the tutorial, but instead of covering a whiteboard program example, covers a chatting program example. This should also include the source for the program.
- Meeting with Tony on the Monday prior. Materials should be zip packaged and brought to a short 15-30 minute meeting with Tony on the Monday prior to your in-class tutorial day. You should arrange for at least three team-members to be present at that meeting to review all of your materials. With Tony's approval, you will post the online tutorial via Piazza later that day.
- Each team-member will also submit a short one-paragraph report on the work/participation of all the other team members.
Replication assignments (3 x 5 pts): Based on the tutorial produced by your labmates, reproduce whiteboard system, and add your own personal twist to the assignment to demonstrate you understand the underlying technology. For example, this might include allowing for users to change the colour of their ink, to add shapes to the drawing, to allow for "live" drawing/typing, etc.
- Deliverables for these assignments:
- A short video posted to Piazza demonstrating your whiteboard system. Ensure that you have a second person to draw at the same time to demonstrate that your system works.
- Source code (only!) should be submitted to Tony in a zip package through Piazza.
- These are due on the Wednesday following the tutorial, prior to class.
Project (30pts) CPSC599W2013ProjectDetails
Play is a central part of human experience -- not just in a "game" form, but in our everyday interactions. When you make a joke, or play a prank on your friends... these are different forms of play. We are interested in play as a concept in this class because many kinds of play are affected by technology -- if technology is not designed right, then play devolves into something less interesting, or it does not allow for the right kinds of play. For example, Parten provides a typology of different kinds of play. If the system is laggy, it precludes certain types of interaction (and therefore, certain types of play).
Your project should involve some kind of play, or multiple types of play. There are two fundamental types of projects for this course: study and design. A study project involves examining one context of play, and understanding it -- this means conducting user research to understand the nature of play in that context. This type of project would generally involve exploring a particular type of game and how it is played. A design project involves actually designing or building a simple game. Here, I am looking for you to explore how to design to support a deep, meaningful type of play beyond parallel play. In Parten's terms, I am looking for actual cooperative play.
Deliverables for this project include: (a) a project proposal (due about 1/3 of the way through the term); (b) a midterm project presentation (due around the middle of the term); (c) a final project presentation (due at the end of the term), and (d) a final project paper (due at the last class). If there are materials (code, data, etc.), these should be handed in with the project paper.