Please plan and organize as a team for the midterm software demonstration

You have a total of 25 minutes (or 30 minutes if your team has four members) for this demonstration. You will be evaluated by communication instructors and by teaching assistants based on the following guidelines.

You must demonstrate your storage server software on the lab computers using your own account (performing the demo from someone elses' account is not allowed.). Using your own laptop will result in a mark penalty. Our intention is to ensure all students have an equal playing field.

The basis of your software demonstration should be the storage server implemented according to Milestone 2. The midterm also requires functions implemented in Milestone 1, namely shell and logging. Please ensure those functions are up-to-date with the Milestone 2 specifications.

You are required to submit, at the start of your presentation, 2 grading rubrics. The TA Grading Rubric, submitted to the TA, must have the following areas completed in advance: Group Number; Student Names, UTORids (NOT the student number!), and the Attribution Table, clearly delineating which aspect of the code each team member was primarily responsible for. The CI Grading Rubric, submitted to the CI, must have the following areas filled-in in advance: Group Number, Student Names, and UTORids (example: jsmith12). Teams that have not filled-in both rubrics in advance will receive a two (2) mark penalty.

Please arrive 5 minutes earlier to your scheduled marking slot. You have 5 minutes before your midterm to set up your system (log in, verify code can run properly, etc.) and to get ready. If something goes wrong with the computer your are using during setup, notify the attending TA (i.e., the usher)  immediately (i.e., to change computer; this would be allowed, if the computer you are using is broken, but does not account for problems with your account, such as disk quota exceeded, login problems, etc.). Also, please note that you will be asked to re-start your servers at the beginning of the demo phase of the Midterm exam. We will only admit the groups being marked and the groups setting up for the next marking slot to the lab during the scheduled lab sessions of the midterm week. We expect that you promptly leave the lab after your demonstration is finished.

If you use your laptop instead of the lab machines, you will be assessed a two (2) mark penalty.

Should you arrive late, you may have to wait until the last group has been marked to not impact the marking slots of other groups.


Here is what to expect:

  1. Teams are given 56 minutes (or 7 - 8 minutes for teams with four members) to present an overview of what they have accomplished in the project to date. Each team must decide on a main point to emphasize and should account for the following areas in more or less detail: what you have built (requirements); how you have built it and why (design decisions); and whom you have built it for (user profile developed in your design document). Each team member must participate in the presentation, and the presentation should be delivered in an extemporaneous-prepared manner. For the presentation, each student may have one 3" x 5" index card with main points listed, but this card should be used only for main point reminders. Reading from a written text is strictly discouraged, as is delivering a memorized speech. No handouts or other forms of visual support are permitted for this presentation. 
  2. You are given 10 minutes to demonstrate the software based on the configuration information we present below. Note, each student is asked to perform the demonstration tasks in parallel. You are also expected to demonstrate the correct working of the below operations on the specified data. During the software demonstration you will be asked to change configuration files and the data of the census workload you execute. This involves modifying your client/server code (e.g., client.c), re-building and re-executing your storage server.
  3. You are given 10 minutes (or 12 minutes if your team has four members) to respond to basic questions covering your design, your implementation, the tutorial material, and the lecture material. Some sample questions are listed below. Questions will be addressed to individual group members who are expected to respond. Make sure you carefully fill in the attribution table on the TA grading rubric prior to your exam. We expect that every group member equally participates in the midterm (i.e., the initial overview, the actual demonstration, and the Q/A session).

Table, sample data, and operations

You will be demonstrating your project using a scenario where population information from the 2006 Canadian Census (mirror link) is stored in a table. You are given the table specification which you will have to include in a configuration file, the data that should initially be stored in the table, and a set of operations that you may be asked to perform. You should use the same mechanism you designed for bulk loading the census data in Milestone 2. Note: you will be asked to load the census data as part of your demonstration. If this process takes an excessive amount of time, you are allowed to load only the sample data below:

     TABLE: census

Key Value
Toronto 5113149
Vancouver 2116581
Calgary 1079310
Winnipeg 694668
Halifax 372858
Saguenay 151643

You will use your Milestone 1 client shell to perform standard operations from the client library. Your shell is expected to work and able to generate appropriate responses based on the possible return values from the client library (e.g., a segmentation fault is not an appropriate response.) You may be asked to perform other operations not possible with your shell, in which case you must be able to quickly modify the application code, rebuild it, and execute it again.

While you will be given 5 minutes to test your setup in the lab, you will start your demonstration from scratch. Therefore, excessively long setup time will negatively impact your performance and will be deducted from the above schedule, preventing you from completing all parts of the midterm.

In addition, we may ask that you demonstrate the building, the modification, and the compiling of your system. Be prepared to do that on the fly.

Here is a sample of operations you should be able to demo.

  • Print Winnipeg's population count.
  • Delete a nonexistent city (e.g., Shanghai) from the table. Show that this operation fails with the correct response from the shell.
  • Insert information about a new city (e.g., Paris).
  • Turn logging to disk on/off, restart your server, perform some operations and look at the log files.
  • Change server username/password on the client side (but not in server config) and show that authentication fails by printing an appropriate error message. Then update server config file and show that authentication succeeds. Make sure you are prepared to create a new hashed password on the fly.

You will be asked to demo other similar operations supported by your system according to the specifications of Milestone 2.

Sample Q&A Questions

The Q&A part of the midterm will touch on a variety of topics including questions about the project requirements, your design decisions, your experiences implementing the project, the software tools you used, and the lecture material.

Here are some of the questions you may be asked:

  • How does a client delete a record from a table?
  • How did you store the tables in main memory?
  • What difficulties did you have working on the code as a team?
  • What is the purpose of logging?
  • Explain how authentication works.

Demonstration slots

Date: Monday February 24th, 4:00pm - 6:00pm (PR 05-06)

Time slotDemo ADemo BDemo CDemo DDemo EDemo FDemo GDemo H
4:00 PM - 4:30 PMcd-001cd-002cd-003cd-008cd-020cd-021cd-022cd-027
4:30 PM - 5:00 PMcd-029cd-055cd-057cd-059cd-069cd-072cd-086cd-087
5:00 PM - 5:30 PMcd-092cd-093cd-095cd-096cd-098cd-099cd-100cd-104
5:30 PM - 6:00 PMcd-106cd-107cd-108cd-109cd-110cd-116cd-111-

Date: Wednesday February 26th, 2:00pm - 4:00pm (PR 07-08)

Time slotDemo ADemo BDemo CDemo DDemo EDemo FDemo GDemo H
2:00 PM - 2:30 PMcd-005cd-007cd-009cd-018cd-023cd-032cd-033cd-034
2:30 PM - 3:00 PMcd-035cd-036cd-037cd-039cd-040cd-041cd-042cd-043
3:00 PM - 3:30 PMcd-045cd-047cd-048cd-054cd-060cd-062cd-064cd-066
3:30 PM - 4:00 PMcd-070cd-074cd-085cd-088cd-105---

Date: Wednesday February 26th, 4:00pm - 6:00pm (PR 03-04)

Time slotDemo ADemo BDemo CDemo DDemo EDemo FDemo GDemo H
4:00 PM - 4:30 PMcd-010cd-011cd-012cd-013cd-014cd-015cd-016cd-025
4:30 PM - 5:00 PMcd-031cd-038cd-049cd-053cd-056cd-058cd-061cd-063
5:00 PM - 5:30 PMcd-065cd-080cd-081cd-082cd-084cd-089cd-090cd-094
5:30 PM - 6:00 PMcd-097cd-102cd-103cd-113cd-114cd-118--

Date: Thursday February 27th, 4:00pm - 6:00pm (PR 01-02)

Time slotDemo ADemo BDemo CDemo DDemo EDemo FDemo GDemo H
4:00 PM - 4:30 PMcd-091cd-004cd-006cd-017cd-019cd-024cd-026cd-028
4:30 PM - 5:00 PMcd-030cd-044cd-046cd-050cd-051cd-052cd-067cd-068
5:00 PM - 5:30 PMcd-071cd-073cd-075cd-076cd-077cd-078cd-079cd-083
5:30 PM - 6:00 PMcd-101cd-112cd-115cd-119----

Please arrive at the assigned room 5 minutes before your assigned time slot to quietly setup. A TA will receive you outside the lab. All your team members must be available for the demonstration.