Attendance and participation are required. The class will primarily consist of roundtable discussions in which everyone must participate by summarizing their own progress and providing feedback and suggestions to other students. On select days, I will meet individually with teams to provide more detailed feedback. Missing classes and/or not participating in discussion will affect your grade.
Each team must submit a specification document. Your specification document will outline, as specifically and concisely as possible, exactly what you plan to accomplish over the course of the semester. It will provide a brief description of the project. a list of goals, a high level design, a list of deliverables, a list of who will be responsible for each deliverable, and a timeline for completing your deliverables. Your goals will be fairly general. For example, a goal might be "enable software to upload data to a server". However, each goal will likely translate into several deliverables. For example, the previous goal might require the following deliverables: (1) a protocol for communication with server; (2) implementation and testing of server; (3) logic/algorithm for client-side fault tolerance; (4) implementation and testing of client.
Your timeline and deliverables are very important! During your status reviews I will ask you to demonstrate your completed deliverables and your grade will be based upon whether you are on-track.
Each team member must keep a web page that outlines his/her progress on the project. Your documentation will include descriptions of what you have completed as well as summaries of any research you have done regarding the project. For example, if you spend 2 hours researching a particular technology on the web you should include links to relevant web sites, research papers, or technical documentation you find.
You must update your web page every week. You will have two status reviews during which I will evaluate your web pages and ask you to demonstrate your completed deliverables. I will provide you with feedback and a grade. Your grade will be based upon the quality and completeness of your work.
Each team must prepare a midterm presentation. Your midterm presentation will provide a summary of your progress, detail which of your deliverables have been completed, outline any challenges you had to overcome in completing them, discuss any changes or refinements to your overall project goals, and outline any necessary changes to your remaining timeline. The presentation should last roughly 30 minutes and every team member must deliver part of the presentation. We will devote at least one class period to discussing the guidelines for this kind of presentation. In addition, you are required to give a practice talk that will enable me to give you feedback on the content and delivery of your presentation.
Each team is required to prepare a final presentation and demonstration, submit a final report, and provide access to fully documented code and documentation (including instructions for installing and running the software). Your final presentation will be similar to your midterm presentation and we will discuss detailed requirements in class. Your final report will, at minimum, reiterate your original goals, outline your design, outline your implementation decisions, and discuss any other interesting challenges your overcame or decisions you made.