PV192 Assignments 2014

1 Implementation of fgrep with -i (case insensitive), -r (recursive), and -n (prefixed with line numbers) in Ada language. The goal is to get the basic comprehension of Ada as a preparation for Ada-specific tasking later in the class. Ada 30.3.2014
2 Implement semaphore and synchronizing thread barrier using Java signaling primitives (wait, notify, notifyAll). Java 16.3.2014
3 Implement a Java-based echo server, which accepts UDP and TCP connections on a list of ports given on the command line (given as udp:portnum1, tcp:portnum2, etc. The echo server means that the server replies back the same data that was received on the input. Server sterminates after the user sends Q+Enter into the command line (the Enter is to ease development of Java readout from terminal). This assignment is designed to practice correct termination of threaded programs. Java 6.4.2014
4 Using Java language, implement web harvestor, which looks for pattern provided on the command line. Another command line parameters are: (1) total number of read pages, after which the harverstor stops further search, (2) limit on number of connections to a specific HTTP serve. The harvestor will have GUI which displays (1) headers of currently read web pages, (2) URL and the given line of pages where pattern match succeeds Implement a custom dynamic thread pool executor which increases number of core threads as soon as occupancy of the queue increases above 75% and shuts down the threads as soon occupancy of the queue drops below 25%. Goal of this work is work with GUIs from multiple threads and to understand Executors, Callables, Thread Pools, etc. Java 20.4.2014