Assigned Wednesday, November 19
Due dates: Monday, December 8, 8pm for peer review; Wednesday, December 10 for in-class presentation & discussion; and Friday, December 12 for submission of final draft.
Create an interactive, web-based experience that uses server-side Python code and a JSON-style data structure to define a network of states that the user can move through by clicking hyperlinks.
Probably the simplest way to think about this would be as a "choose your own adventure" game, but you are welcome to apply this same pattern to any other context you can imagine being compatible with these techniques.
As with the midterm, remember that one objective of this course is to use hands-on engagement with the development of software as a way to help you develop a deeper understanding of what software is, what it does, and how it does. So your project concept should help you (and us) think about this.
Keep in mind all of our readings thus far, and think about how your project might function as example or evidence for those texts — i.e. something we might say that those theories apply to. But also, think about how your project and your process of making it can help you develop your own analysis and theories about how software functions, and perhaps demonstrate this understanding for others.
Initial planning, 3 parts. Due Monday, December 1, 8pm. I will provide individual feedback to you on this.
Write up a few sentences describing what you plan to do.
Begin to define your JSON data structure and include as much of this as you are able to complete.
Upload this to your Google Drive folder in a new folder called "Final concept".
Week 14 will be dedicated to in-class project work, with as much time for one-on-one help as possible.
As with the midterm, projects are due two days before presenting (see dates above) to give you all and me time to review each person's project before our in-class project discussion on that Wednesday.
Code review. I will again assign each of you as a "reviewer" for one person. You will be asked to pay closer attention to your "reviewee's" project, and to lead the discussion about it in class, by posing a discussion question about the project for the reviewee and the class to consider.
I will again assigned each of you a classmate whose work you need to have a look at before in-class presentations. The idea of code review is an important one in software development. Many organizations that develop software require any new code to go through a process of peer code review before that code is published live. Have a quick look at this article that offers a guide to doing code reviews. What we are doing here is not precisely a code review, but it's inspired by that idea. Find your code review assignment here.
Our class discussion will proceed as before. Please come to the front of the class and share your work from your Google Drive, so make sure everything is uploaded there, 2-4 slides as described below. Unfortunately presentations will have to be very short so you will only have about 5 minutes to present, followed by a brief open discussion. Please walk us through your slides, then run your code. You do not need to follow this format explicitly, but you may use the following as a guide:
Title and brief summary / intro. (3-5 sentences.) Tell us which option you chose and what your goal was for your project.
Context of demo. Tell us what we are about to see. Is this a fully-functional version? Did you only have time to imeplement a piece of what you initially set out to do? If so, what piece is this and how does it fit into your broader goals?
Technical achievement. Share at least one specific part of your project in some technical detail. It can be a loop, a conditional, an array, a function, or something else. What is the piece of code that you feel most proud or excited to have gotten working? Perhaps you want to include a bit of code on this slide and talk us through it.
Future work and questions. With more time, what would you do? What kind of feedback from the class would be helpful? Are you thinking about trying to continue this project into the final? If so, in what direction?
Run your code!
Please include a comment at the top of your code with:
"""
Your name
Course title & semester
Project title and date
"""
Your code should also include many comments throughout,
explaining what various parts are doing.
Upload your presentation as a PDF, along with your sketch directory to your Google Drive folder in a new folder called "Final".
After our in-class discussion, you will have until the end of the week to make any revisions, edits, or adjustments based on our class discussion (see dates above). If you do make any edits, you must upload these to Google Drive as a new folder titled "Final Edits", so I know that you are making edits and that you already submitted on time.