Yliopiston etusivulle Suomeksi På svenska In English
Helsingin yliopisto Tietojenkäsittelytieteen laitos
 

Tietojenkäsittelytieteen laitos

Suomeksi In English Project

Concurrent programming, Autumn 2006, Project 1 (16 pp)

The team project has three separate parts (A, B and C). Each team will do two of them. Everyone will do part A, and one of parts B or C.

Both parts have the same weight (8 pp).

It is smart to fully participate in the work for both parts. Of course you can distribute the work, but the intent is for all students in the group to learn equally. You carry the responsibility!

The report contents is defined in the study circle description and the deadline to return it is on the course schedule page. Project may be returned late, but you will then be penalised for it 12.5% (of max pp's) per day. For example, if the project is 30 hours late, you will lose 4 pp (25% of 16 pp) from your final grade for the project. Start the project early, work hard for it and finish it early!

Project parts

  1. Design and implement two (2) practice problems, one for each topic selected for you. Please notice, that even though implementing practice problems is relatively easy, coming up with a good practice problem is not. Use appropriate time for planning before you jump into implementation.
     
  2. Design and implement a small concurrent program. Programming is done using BACI C-- or BACI Pascal. You can select your self the sub-project area from the text book (see Attachment C [BenA 06]): problem 4, 5, 7, 10, 11, 19 or 25. Each problem can be worked on by at most 4 study circles. Please consult the instructor on your chosen problem area.
  3. Accepted concurrent program project contains at least the following:
    1. Problem description
    2. Explanation for selected solution method and granularity of used concurrency
    3. Algorithmic solution and explanations why it is correct
    4. Solution source code
    5. Executable program as attachement, with sufficient user instructions. It must be very easy to execute it.
       
  4. Learn to use one of the following methods to utilize concurrency in Java programs:
    1. Threads and critical section control with them
    2. Semaphores
    3. Monitors
    4. RMI
    5. JavaSpaces
    6. Java Message Service

Each problem can be worked on by at most 4 study circles. Please consult the instructor on your chosen problem area.

The study circle will do independent study to find out how that method works and where it can be applied to. A report, suitable to other students in this course, is given and it should contain at least the following:

  1. Main objective and application area for the method
  2. The basic idea of selected method
  3. Similarities and differences of this method as compared to the similar basic method given in lectures
  4. At least two use examples (dining philosophers, sleeping barber, etc) for the method. Each example is fully documented.
  5. A very detailed user manual that would allow anyone who has passed out Java Programming course to implement and execute the examples given above. The idea is to use these examples as study material in later courses.

Part A topic areas are selected in random by the instructor, based on mostly when your study circle formation notice arrives. You may select your self the topic areas for parts B and C. Please mail suggestions to the instructor. If there are too many proposals for the same topic area for part B or C, then priority is given to the suggestions arriving first.



Teemu Kerola 17.11.2006 13:30