Grade Check Num Lab1a Web Page (2pts) Lab1a Obj. Model (4pts) Lab1a ADT (4pts) Lab1a Total (10pts) Lab1 OM (2pts) Lab1 ADT (2pts) Lab1 IMP (6pts) Lab1 Total (10pts) Lab1 Notes lab2 Design (2 pts) lab2 Docs (2 pts) lab2 Readme (1 pt) lab2 Imp (5 pts) Lab2 (10pts) Lab 2 Notes Lab3 OM (2pts) Lab3 Docs (2pts) Lab3 Imp (6pts) Lab3 Tot (10 pts) Lab3 Notes Lab4 URL (0, -1, or -2) Lab4 Complexity (3pts) Lab4 Runs (5pts) Lab4 Docs (2pts) Lab4 Readme (1pt) Lab 4 Total (11pts) Total Lab Points Earned Total Lab Points Available Total Lab Percentage
1 2 4 4 10 2 1.5 6 9.5
2 2 1 3 8 How long does it take for the Producer to ask if the Monitor resource is full? Could the Monitor resource become not full in that time? Should the producer care? Consumer should be automated, not user dependent in this lab. 2 2 6 10
0 1 5 2 1 9 46.5 51 91.00
2 2 4 4 10 2 2 6 5 5 days late 1 2 1 1 5 Lab uses no Monitor or synchronization. Producer and Consumer commented out in applet.


0





0 20 51 39.00
3 2 4 4 10 2 2 6 10
2 2 1 5 10 Good Job. You say tomato, I say tomato... 2 2 6 10 I'm very impressed. 0 3 5 2 1 11 51 51 100.00
4 2 4 4 10 2 2 6 10
2 2 1 5 10 Good Job. Give the monkey a bannana. 2 2 6 10
0 2 5 2 1 10 50 51 98.00
5 2 4 4 10 2 1.5 5.5 9
2 2 1 5 10 Good Job. Pandas and Monkeys and Rabbits, oh my! 2 1.5
3.5 No ADT for MyThread class. 0 3 5 2 1 11 43.5 51 85.00
6 2 4 4 10 2 2 6 10




0



0

0 0 0 0 0 20 51 39.00
7 2 3 4 9 0 0 0 0
2 2 1 5 10 Good Job. Let widgets abound. 2 2 6 10
0 2 5 2 1 10 39 51 76.00
8 2 3 4 9 2 2 6 10
2 2 1 4 9 The producer appears to only be able to produce one item at a time. Shouldn't there be able to be more hamburgers waiting if the dog sleeps longer? It appears that this was contrived so the graphics worked out. 2 2 6 10 Also, make sure to use proper naming conventions for class names (TitleCase) and variable names and methods (modifiedTitleCase). 0 3 5 2 1 11 49 51 96.00
9 2 4 4 10 2 2 5 9
2 2 1 4 9 Avoid too many synhronized methods. notify or notifyAll should only be called from the methods that modify the critical resource. Otherwise, it could wake up a producer or consumer thread at the wrong time. 2 2 6 10 Make sure to use proper naming conventions for class names. (TitleCase). 0 3 5 2 1 11 49 51 96.00
10 2 0 4 6 0 2 3 4.5 1 day late



0 notifyAll should be the last thing done in a monitor method whenever possible. It should NEVER come before the call to the wait() method. You should not use notify, but rather use notifyAll. You should only use notifyAll once in a method. There is a GREAT disparity between your client wait time and the wait time of the cab. I assume this was so there would never be more than one client waiting (for graphical reasons). 2 2 6 10
0 1 1 2 1 5 25.5 51 50.00
11 2 4 2 8 2 2 6 10
2 2 1 3.5 8.5 The idea is that the producer trys to produce an item and sleeps for a period (not depending on if it is the current thread) and then repeats the process. The consumer, attempts to consume and item and sleeps for a time and then repeats the process. The monitor, controls access to the shared resource insuring that if it is empty, nothing can be consumed and if it is full, nothing can be placed in it. Also, use notifyAll rather than notify. notifyAll will let All waiting threads know it is ok to try. The thread scheduler will then pick a thread to wake up. notify says to notify only a single thread. If it it cannot run for some reason, nothing gets woken up. 2 2 5 9 Any client that closes, will close the server as well. Then, the other clients cannot connect. Server should stay up until closed manually. 0 3 5 2 1 11 46.5 51 91.00
12 2 4 4 10 2 2 6 10
2 2 1 4 9 notifyAll should be the last thing done in a monitor method whenever possible. It should NEVER come before the call to the wait() method. 2 2 6 10
0 2 5 2 1 10 49 51 96.00
13 2 4 4 10 2 2 6 10
2 1 1 5 6.75 6 days late. No javadocs. 2 2 6 10
0 3 5 2 1 11 47.75 51 94.00
14 2 4 4 10 2 2 6 10
2 2 1 5 10 Good Job. Bombs Away. 2 2 6 10 Very nice. 0 3 5 2 1 11 51 51 100.00
15 2 3 3 8 2 2 3 7
2 2 1 2.5 7.5 Incorrect use of wait() since monitor performs no check on data. Data is simply a single string with no possibility of being many produced strings. 2 2 5.5 9.5 Wrong directions on how to quit without taking test. Told to type “done” when “quit” is in code. Also, make sure to use proper naming conventions for class names (TitleCase) and variable names and methods (modifiedTitleCase). 0 0.5 5 2 1 8.5 40.5 51 79.00
16 2 3 4 9 2 2 5 4.5 5 days late 2 2 1 3 8 2 days late. need to fix that bug. 1 2 6 9 Pre and Post conditions. 0 0 5 2 1 8 38.5 51 75.00
17 2 3 3 8 2 2 3 7
2 2 1 4 9 Avoid too many synhronized methods. notifyAll should only be called from the methods that modify the critical resource. Otherwise, it could wake up a producer or consumer thread at the wrong time. (don't use notify, use notifyAll instead). 2 2 6 10
0 2 5 2 1 10 44 51 86.00
18 2 4 4 10 2 2 6 10
2 2 1 3.5 8.5 java.lang.NumberFormatException: For input string: "". Because of this, the simulation does not run correctly.


0
0 3 5 2 1 11 39.5 51 77.00
19 2 4 4 10 2 2 6 10
2 2 1 5 10 Good Job. Rabbits, Rabbits, everywhere. 2 2 6 10
0 3 5 2 1 11 51 51 100.00
20 2 4 4 10 2 2 0 4
2 2 1 5 10
2 2 6 10
0 1 2 2 1 6 40 51 78.00
21 2 4 4 10 2 2 6 10
2 2 1 4 9 The consumer should be able to consume an item from the critical resource as soon as it arrives rather than having to wait until it fills up. The idea is that the monitor simply tells the producer or consumer to wait depending on if the critical resource is full or empty, respectively. 2 2 5.5 9.5 Very annoying leaving all those windows on my desktop with no way to close them. I had to ctrl-c out of each window. Also, make sure to use proper naming conventions for class names (TitleCase) and variable names and methods (modifiedTitleCase). 0 2 5 2 1 10 48.5 51 95.00
22 0 0 0 0 1 0 3 4 13 days late. No pre or post conditions. 0 2 1 2.5 5.5 Object model was from lab1a. Use of Monitor way off. The consume and suppy methods need to be in the Monitor and must be synchronized. They are the methods that need to use wait() and notifyAll().


0





0 9.5 51 19.00