Style Guidelines

Your solution must adhere to the following Java Style Guidelines I have established for this course: Java Style Guidelines. Make certain that you following the guidance regarding documentation. Points will be deducted for any violations.

Microcloud Usage

Your demonstration must be run on at least seven independent hosts as described below in the grading script. The microcloud is available for your use. The following document provides a brief overview of the microcloud and lists the port range each student must use: Microcloud Port Assignments.

Demonstration Signup and Overview

You may sign up for your 30-minute demonstration appointment here: Demo Signup

  1. Carefully read the instructions at the top of the spreadsheet before making changes.
  2. Appointments will be 30 minutes in length.
  3. Because appointments will be longer they will be spread out over three days.
    1. Students who demo on Wednesday 3/23 will earn up to 3 points of extra credit for early completion. If you sign up for a Wednesday time you must be prepared to demonstrate your complete and final solution at that time. You will not be allowed to finish or make changes to your solution after your demo. You will also not be allowed to reschedule your appointment at the last minute if you aren’t ready. (I know this seems mean, and I’m sorry about that. But, the reason for this is that there is simply not time to allow folks to schedule more than one 30-minute appointment. Between Nikhil and I, we will be spending 17 hours 1-1 with students over three days. Please understand that we also need to eat, sleep, go to other meetings, etc during that time!)
    2. Students who demo on Friday 3/25 must still submit all code by Thursday 3/24 at 1pm. If you are not finished on Thursday you must use one of your extensions.
  4. If you have not yet met with Sami for interactive grading you must schedule with her for your Project 2 demo. The following students must meet with Sami:
    1. Jiayun, Anchit, Palak, Jiangfeng, Yiqi, Haoyu, Manas, Jake, Shulin, Patrick, Li
  5. If you are working on the Interoperability feature please schedule back-to-back appointments.
  6. You may meet via Zoom with Sami or Nikhil, or in person with Sami. Zoom sessions take place in the class Zoom, and in-person sessions take place in Harney 404.
  7. There will not be a formal class meeting on the demonstration day. Watch for announcements about an exercise that you will be expected to complete during the class period.

Grading Script

It is extremely important that you arrive on time to your demo session and that you are completely ready to begin your demonstration at your start time. This means that you should have at least seven terminal windows open and logged in to the hosts where you will demonstrate your solution. You should have the appropriate commands ready to execute so that all you must do when you start your session is hit enter to start the first part of the demonstration.

During your interactive grading session, you are expected to demonstrate at least the following functionality. You are welcome and encouraged to go beyond what is described.

  1. Basic Publish/Subscribe functionality - You must demonstrate this functionality with at least three producers and at least three consumers. The expected demonstration is as follows:
    1. Launch Broker and explain any configuration or other administrative setup required to, for example, specify the port on which it will listen, the topics that will be used, etc.
    2. Launch three instances of the Producer and explain any configuration required to, for example, specify the location of the Broker. Make sure to explain the data the Producer will publish and how you have defined the topics.
    3. Launch three instances of the pull-based Consumer and explain any configuration required to, for example, specify the location of the Broker, the starting point in the message stream, etc. Make sure to explain what the Consumer will do with the messages as it receives them.
      1. It is acceptable to launch the Consumer instances first, depending upon your implementation.
    4. Explain the communication path using program output saved to logs.
  2. Demonstrate the Additional Opportunity features. The specific demonstration will be based upon the features chosen. It is recommended that you either come to office hour or send me a demonstration proposal for any of the features you have implemented. I will provide you with feedback about whether your proposed demo will clearly demonstrate the feature.
  3. Be prepared to explain any of your code or answer any other instructor questions about your design and implementation. Meetings are 30-minutes in length to allow for significant discussion of your code.
    1. Make sure you are prepared to explain your communication protocol and your APIs.