A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | AE | AF | AG | AH | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | |||||||||||||||||||||||||||||||||||
2 | Student ID | Assignment 1: Dining Philosophers | Assignment 2: Hamming Codes | Assignment 3: TCP-Chat | Assignment 4: RMI-Chat | Assignment 5: RSA | Assignment 6 - Antme | 1.1 | 1.2 | 1.3 | 1.4 | 2.1 | 2.2 | 2.3 | 3.1 | 3.2 | 3.3 | 3.4 | 4.1 | 4.2 | 4.3 | 4.4 | 5.1 | 5.2 | 5.3 | 5.4 | SUM | Exam grade (out of 90) | Course grade | ||||||
3 | Grade | Comment | Grade | Comment | Grade | Comment | Grade | Comment | Grade | Comment | Grade | 4 | 3 | 8 | 3 | 8 | 10 | 2 | 4 | 4 | 8 | 4 | 8 | 4 | 4 | 4 | 4 | 3 | 8 | 5 | 98 | 90 | w/ assignments | ||
4 | 10140 | 24 | Method is not fully deadlock-free, "synchronized (left) { synchronized (right) {" alone can still cause deadlock | 30 | |||||||||||||||||||||||||||||||
5 | 11428 | 24 | see 10140 (above) | 30 | 30 | nice solution, minor issue: the delete method would need synchronization as well | 30 | 4 | 3 | 8 | 0 | 8 | 10 | 1 | 4 | 4 | 8 | 4 | 6 | 2 | 2 | 0 | 0 | 3 | 8 | 2 | 77 | 25.66666667 | 26.31666667 | ||||||
6 | 11200 | 30 | Solution with monitor is nice | 30 | the switch solution is funny :) | 31 | Good documentation + nice GUI | 31 | nice test, thread safe | 30 | works, good tests + discussion of other threats | 31 | 3.5 | 2 | 8 | 2.5 | 8 | 10 | 2 | 4 | 4 | 8 | 4 | 8 | 2 | 3 | 2 | 4 | 3 | 8 | 2 | 88 | 29.33333333 | 29.76666667 | |
7 | 11578 | 30 | see 11200 (above) | 30 | 31 | see above | 31 | see 11200 | 30 | see above | 31 | 4 | 3 | 8 | 3 | 8 | 10 | 2 | 4 | 4 | 8 | 4 | 5 | 4 | 4 | 4 | 4 | 3 | 8 | 3 | 93 | 31 | 31 | ||
8 | 11295 | 27 | Very good output and description. In the code, note that making the chopstick acquiring synchronized for each philosopher is not enough to avoid deadlocks, it just means that no two threads can execute this method for the same philosopher synchronous (but for different philosophers they can!). | 31 | Nice GUI | 31 | Good documentation + nice GUI | 31 | nice documentation, thread safe | 31 | Very good documentation | 4 | 3 | 8 | 2 | 8 | 10 | 2 | 4 | 3 | 8 | 4 | 8 | 4 | 4 | 2 | 4 | 3 | 8 | 5 | 94 | 31.33333333 | 31 | ||
9 | 9453 | 27 | see 11295 (above) | 31 | 31 | see above | 31 | see 11295 | 31 | see above | 2 | 3 | 7 | 0 | 8 | 2 | 1 | 4 | 2.5 | 8 | 4 | 8 | 4 | 4 | 4 | 4 | 1.5 | 5.5 | 2 | 74.5 | 24.83333333 | 26.225 | |||
10 | 11131 | 30 | Concise solution | 30 | 31 | Nice GUI | 29 | nice solution, minor issue: seems not thread safe (what happens if two clients join at exactly the same time?) | 30 | good discussion of security issues | 29 | 3 | 3 | 8 | 2.5 | 8 | 4 | 2 | 4 | 4 | 8 | 4 | 6 | 4 | 4 | 4 | 4 | 3 | 8 | 5 | 88.5 | 29.5 | 30 | ||
11 | 11120 | 30 | see 11131 (above) | 30 | 31 | see above | 29 | see 11131 | 30 | see above | 29 | 0 | 3 | 8 | 2 | 5 | 1 | 2 | 4 | 4 | 8 | 4 | 3 | 4 | 4 | 4 | 4 | 3 | 8 | 2 | 73 | 24.33333333 | 26.21666667 | ||
12 | 11246 | 31 | Extensive solution including GUI + nice theoretical analysis | 31 | Extensive documentation + GUI | 31 | Extensive documentation + GUI. Minor issue, why does it show in the chat messages the address of the receiving client, not of the sender? Regarding synchronizing the broadcast method, I don't think that is needed, since in the broadcast operation no data structures are modified (?) | . | 4 | 3 | 8 | 2 | 8 | 10 | 2 | 4 | 3 | 8 | 3.5 | 0 | 1.5 | 4 | 4 | 0 | 0 | 8 | 2 | 75 | 25 | 25.9 | |||||
13 | 5279 | 24 | Synchronization on single acquisitions is not enough, the access two both chopsticks together has to be made atomic in order to avoid deadlocks | - | - | . | 1 | 1.5 | 0 | 0 | 2 | 2 | 0.5 | 3 | 4 | 0 | 0 | 0 | 0 | 2 | 2 | 0 | 0 | 2 | 0 | 20 | 6.666666667 | 7 | |||||||
14 | 10416 | 30 | Elegant solution with handedness | 30 | - | . | 0 | 3 | 8 | 0 | 0 | 5 | 0.5 | 2.5 | 4 | 8 | 2 | 8 | 0.5 | 0.5 | 0 | 0 | 0 | 5.5 | 2 | 49.5 | 16.5 | 17 | |||||||
15 | 10331 | 30 | see 10416 (above) | 30 | - | . | |||||||||||||||||||||||||||||
16 | 11590 | 29 | Concise solution, just the explanation how deadlocks are prevented is a bit vague. The key question is "how can the chopsticks be obtained without leading to deadlocks?" | 30 | 31 | Nice GUI | 29 | nice discussion, minor thing: client registration seems not thread-safe (what if two clients join at exactly the same time?) | 29 | Nice solution, but the explanation is a little short. Also, no discussion of other threats than decryption (what about man-in-the-middle, traffic analysis, ...? | 1.5 | 3 | 8 | 0 | 5 | 2 | 0.5 | 4 | 3.5 | 8 | 2.5 | 6 | 0 | 2.5 | 0 | 4 | 3 | 5.5 | 2 | 61 | 20.33333333 | 22.7 | |||
17 | 11032 | 24 | Synchronizing the acquireBoth() is not enough, as that just means that no two threads can execute the method for the same philosophers. But they still can for different philosophers! | 30 | Minor comment: The meaning of the terms "encode" and "decode" is the other way around | - | 30 | see 11428 | 30 | 3 | 3 | 5 | 2.5 | 6 | 9 | 2 | 4 | 4 | 8 | 3 | 6 | 4 | 3 | 2.5 | 0 | 3 | 6.5 | 2 | 76.5 | 25.5 | 26.175 | ||||
18 | 11175 | 28 | Works good, but note that your solution wastes some free resources (=chopsticks), e.g. if philosopher 1, 2 and 3 decide to eat (in this order), 3 cannot eat as the same time as 1, because the queue requires him to wait for 2 to eat first | - | - | . | 30 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||
19 | 11089 | 28 | see 11175 (above) | 30 | 31 | see 11590 | 29 | see 11590 | 29 | see 3 above | 30 | 2 | 3 | 8 | 2.5 | 8 | 9 | 2 | 4 | 4 | 9 | 4 | 8 | 4 | 4 | 3.5 | 0 | 3 | 8 | 2 | 88 | 29.33333333 | 29.55 | ||
20 | 10483 | 24 | see email | 30 | 31 | Works nice, a solution to the buffering problem might be to buffer messages from the ListenFromServer class in the Client class, and only display them as long as the user has not pressed another key since the last "Enter" (has not started to type a new message again) | 30 | thread safety unclear. What might happen if two clients join exactly at the same time? | 28 | It seems the solution works only if both clients and servers run on the same machine. To extend it to several machines, keys would need to be sent over the network? | 1.5 | 3 | 4 | 0 | 5 | 6.5 | 0.5 | 3 | 4 | 8 | 3 | 8 | 4 | 2.5 | 1 | 1 | 3 | 8 | 2 | 68 | 22.66666667 | 24.15 | |||
21 | 8774 | 0 | 3 | 4 | 1 | 5 | 0 | 0 | 4 | 2 | 8 | 3 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 33 | 11 | 11 | ||||||||||||
22 | 7462 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||
23 | 10389 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||
24 | 10050112 | 2 | 3 | 8 | 0 | 5 | 10 | 1.5 | 4 | 3.5 | 8 | 2.5 | 8 | 3 | 3 | 0 | 0 | 3 | 8 | 1 | 73.5 | 24.5 | 24.5 | ||||||||||||
25 | |||||||||||||||||||||||||||||||||||
26 | |||||||||||||||||||||||||||||||||||
27 | |||||||||||||||||||||||||||||||||||
28 | |||||||||||||||||||||||||||||||||||
29 | |||||||||||||||||||||||||||||||||||
30 | |||||||||||||||||||||||||||||||||||
31 | |||||||||||||||||||||||||||||||||||
32 | |||||||||||||||||||||||||||||||||||
33 | |||||||||||||||||||||||||||||||||||
34 | |||||||||||||||||||||||||||||||||||
35 | |||||||||||||||||||||||||||||||||||
36 | |||||||||||||||||||||||||||||||||||
37 | |||||||||||||||||||||||||||||||||||
38 | |||||||||||||||||||||||||||||||||||
39 | |||||||||||||||||||||||||||||||||||
40 | |||||||||||||||||||||||||||||||||||
41 | |||||||||||||||||||||||||||||||||||
42 | |||||||||||||||||||||||||||||||||||
43 | |||||||||||||||||||||||||||||||||||
44 | |||||||||||||||||||||||||||||||||||
45 | |||||||||||||||||||||||||||||||||||
46 | |||||||||||||||||||||||||||||||||||
47 | |||||||||||||||||||||||||||||||||||
48 | |||||||||||||||||||||||||||||||||||
49 | |||||||||||||||||||||||||||||||||||
50 | |||||||||||||||||||||||||||||||||||
51 | |||||||||||||||||||||||||||||||||||
52 | |||||||||||||||||||||||||||||||||||
53 | |||||||||||||||||||||||||||||||||||
54 | |||||||||||||||||||||||||||||||||||
55 | |||||||||||||||||||||||||||||||||||
56 | |||||||||||||||||||||||||||||||||||
57 | |||||||||||||||||||||||||||||||||||
58 | |||||||||||||||||||||||||||||||||||
59 | |||||||||||||||||||||||||||||||||||
60 | |||||||||||||||||||||||||||||||||||
61 | |||||||||||||||||||||||||||||||||||
62 | |||||||||||||||||||||||||||||||||||
63 | |||||||||||||||||||||||||||||||||||
64 | |||||||||||||||||||||||||||||||||||
65 | |||||||||||||||||||||||||||||||||||
66 | |||||||||||||||||||||||||||||||||||
67 | |||||||||||||||||||||||||||||||||||
68 | |||||||||||||||||||||||||||||||||||
69 | |||||||||||||||||||||||||||||||||||
70 | |||||||||||||||||||||||||||||||||||
71 | |||||||||||||||||||||||||||||||||||
72 | |||||||||||||||||||||||||||||||||||
73 | |||||||||||||||||||||||||||||||||||
74 | |||||||||||||||||||||||||||||||||||
75 | |||||||||||||||||||||||||||||||||||
76 | |||||||||||||||||||||||||||||||||||
77 | |||||||||||||||||||||||||||||||||||
78 | |||||||||||||||||||||||||||||||||||
79 | |||||||||||||||||||||||||||||||||||
80 | |||||||||||||||||||||||||||||||||||
81 | |||||||||||||||||||||||||||||||||||
82 | |||||||||||||||||||||||||||||||||||
83 | |||||||||||||||||||||||||||||||||||
84 | |||||||||||||||||||||||||||||||||||
85 | |||||||||||||||||||||||||||||||||||
86 | |||||||||||||||||||||||||||||||||||
87 | |||||||||||||||||||||||||||||||||||
88 | |||||||||||||||||||||||||||||||||||
89 | |||||||||||||||||||||||||||||||||||
90 | |||||||||||||||||||||||||||||||||||
91 | |||||||||||||||||||||||||||||||||||
92 | |||||||||||||||||||||||||||||||||||
93 | |||||||||||||||||||||||||||||||||||
94 | |||||||||||||||||||||||||||||||||||
95 | |||||||||||||||||||||||||||||||||||
96 | |||||||||||||||||||||||||||||||||||
97 | |||||||||||||||||||||||||||||||||||
98 | |||||||||||||||||||||||||||||||||||
99 | |||||||||||||||||||||||||||||||||||
100 |