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

Tietojenkäsittelytieteen laitos

Suomeksi In English Project

Concurrent programming, Autumn 2007, 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 Java. 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. Explanation on the advantages of the concurrent solution as compared to the serial solution (e.g., you can use linux command time).
    5. Solution source code
    6. Executable program as attachement, with sufficient user instructions. It must be very easy to execute it.
       
  4. Develope new and better instructional material for RIO students on one of the following concurrency methods
    1. Java threads and controling critical sections with them
      • starting point in Finnish, no starting point in English, have emphasis on critical section protection
    2. Java semaphores
      • starting point in Finnish, no starting point in English, notice different types of semaphores (private sempahores, baton passing, busy-wait, ...)
    3. Java monitors
      • starting point in Finnish, no starting point in English, notice especially condition variable implementation and different signaling semantics
    4. Java RMI
      • no starting point, a little bit more challenging project
    5. Java Message Service
      • no starting point, a little bit more challenging project
    6. BACI
      • use course www-info as starting point

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. You can use the possibly given starting material as you wish. A user manual, suitable to other students in this course, is given in TKTL RIO wiki and it should contain at least the following:

  1. Permission to the university to use the material for educational purposes and continuing development. So, the permission is (also) visible in this wiki user manual.
  2. The basic idea of selected method and similarities and differences of this method as compared to the similar basic method given in lectures
  3. At least two use examples for the method. Each use example should be very simple, but still educational. They should be fully documented. They should designed so that they would be easy to understand and use for the future students in this course.
  4. 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.

Implement the user manual in the university Confluence Wiki wiki.helsinki.fi as independent wiki (instructions below), that does not show and private information on the authors (like student number, soc. sec. number, or address). This wiki could them be attached (linked) as is to the Rio course wiki TKTL RIO as learning material for future students. Write the user manual in suitable manner, either in Finnish or in English.

Good user manual has at least the following features:

  • excellent language
  • target audience (students in this course) understand and comprehend it easily
  • it gets right to the point, but is still easy to read
  • examples are short, but still illustrative and easy to use
  • examples have sufficient comments but not too many
  • examples cover all special feature of the topic

In addition the the user manual, you should return a separate short (1/2 page) explananation on why this user manual is better than the earlier ones (if any).

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.

Creating your own wiki in the university Confluence Wiki:

  • Many of the wiki instructions are only in Finnish. Sorry.
  • Only one member of the study group does this (the space administrator) and she/he will then access rights to others in the team.
  • Open the wiki front page http://wiki.helsinki.fi/, read use guidelines (käyttösäännöt) and instructions and finally klick työkalu alueiden luomiseen.
  • The wikin space administrator gives her/his own hy-domain user-id and password.
  • Wiki Space Creator starts.
    • Give wiki name ("Space name") TKTLrioS07opNimi, where opNimi is some short form of your study group name. Notice taht the wiki name may not include blanks at this phase.
      • In the wiki description field ("Space description") give the full name of your study group.
      • Give wiki starting time as today. Leave ending time open.
      • Place the following people as your wiki users:
        • all memebers of your study group (hy-domain id's)
        • Rio-course instructor (kerola) and assistants (...)
      • Read Rules (käytön ohjeet) and put a check mark there
      • Klick"Create Space With Members" and your wiki is copmplete.
  • Wiki space administrator can now edit access rights by opening the wiki, clicking first Browse Space, then Space Admin, and finally Edit Permissions:
    • Give all members of your study group similar rights
    • Rio instructor should have at least View, Comments Create and Space Export&Admin (to evaluate and full use later on later on)
    • Rio assistants should have at least View and Comments Create (to be evaluate your wiki)
    • Do not give anobody else any access rights at this phase.
  • If you want to change the wiki name to have blanks, follow this instruction.
  • If you these wiki instructions lacking, please let the course instructor know about it (Thank you!).

Teemu Kerola 17.10.2007 14:31