COMPSCI 677 Distributed and Operating Systems

Spring 2017

Programming Assignment 1: Angry Birds: Part Deux (Smarter Pigs Edition)

Due: 11:55pm, Wed March 8, 2017



  • A: The problem


  • B. Evaluation and Measurement

    1. Deploy at least 6 pigs. They can be setup on the same machine (different directories) or different machines. . You are free to develop your solution on any platform, but please ensure that your programs compile and run on the edlab machines (See note below).
    2. Conduct a few experiments to evaluate the behavior of your system under different scenarios. Change the speed of bird launches to study when pigs suceed and when they fail. Report any insights, if any, from your experiments, as to which startegies suceed the best. Change network delats and see how it impacts the behavior of your system.

  • C. What you will submit

  • When you have finished implementing the complete assignment as described above, you will submit your solution in the form of a zip file that you will upload into moodle.
  • Each program must work correctly and be documented. The zip file you upload to moodle should contain:
    1. An electronic copy of the output generated by running your program. Print informative messages when a pig receives and sends key messages and the score. Do not print multiple flooding messages since it will clutter your output.
    2. A seperate document of approximately two pages describing the overall program design, a description of "how it works", and design tradeoffs considered and made. Also describe possible improvements and extensions to your program (and sketch how they might be made). You also need to describe clearly how we can run your program - if we can't run it, we can't verify that it works.
    3. A program listing containing in-line documentation.
    4. A seperate description of the tests you ran on your program to convince yourself that it is indeed correct. Include the testing code you constructed, describe the tests, inputs and outputs of the tests (and how the output shows that the test was a success). Also describe any cases for which your program is known not to work correctly.
    5. Performance results: Include a results of experiments you ran.

  • D. Grading policy for all programming assignments

    1. Program Listing
        works correctly ------------- 50%
        in-line documentation -------- 15%
    2. Design Document
        quality of design and creativity ------------ 10%
        understandability of doc ------- 10%
    3. Use of github with checkin comments --- 5%
    4. Thoroughness of test cases and test output---------- 10%
  • Grades for late programs will be lowered 12 points per day late.

  • Note about edlab machines

  • Read more about edlab and how to access it here
  • Although it is not required that you develop your code on the edlab machines, we will run and test your solutions on the edlab machines. Testing your code on the edlab machines is a good way to ensure that we can run and grade your code. Remember, if we cant run it, we cant grade it.
  • There are no visiting hours for the edlab. You should all have remote access to the edlab machines. Please make sure you are able to log into and access your edlab accounts.
  • IMPORTANT - No submissions are to be made on edlab. Submit your solutions only via moodle.