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

Tietojenkäsittelytieteen laitos

Suomeksi In English Project

Concurrent Programming, Autumn 2009, 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 the 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.

    One problem (pr 1Ai) is returned at about mid-course, and the other at the end of the course. Practice problems must work in practice when clicked in browser. Project is returned basically as instructed, but a shorter version will do for now: team member names, authorization to use the problem, team member participation (40-140% each).
     
  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 1, 2, 3, 4, 5, 6, 7, 10, 11, 14, 19, 25 or 26), or use your own problem (specification approved in advance). Each problem can be worked on by at most 5 study circles. Please consult the instructor on your chosen problem area. Concurrent programs may be run on the departmental vera server. (vera.cs.helsinki.fi). Vera has 4 processors, each of which has 2 hyper-threaded processors, and so the operating system sees 8 processors. The executable programs can be stored todepartmental file server (fs) and then executed in vera (e.g.) with ssh.

  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.

    Project is returned as instructed.

  4. Develope new and better instructional material for RIO students on one of the following concurrency methods (check first existing guides in English if any)
    1. Java threads and controling critical sections with them
      • have emphasis on critical section protection
    2. Java semaphores
      • notice different types of semaphores (private sempahores, baton passing, busy-wait, ...)
    3. Java monitors
      • notice especially condition variable implementation and different signaling semantics
    4. Java RMI
    5. Java Message Service
    6. BACI

Each problem can be worked on by at most 4 study circles. Please consult the instructor on your chosen problem area. You can not do this project (C) unless you plan give the University the permission to use the material later on.

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 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 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 (see existing guides) in later courses.

Write the user manual in suitable manner (html or pdf), either in Finnish or in English. It should not have any private information on the authors (so, no student id numbers, soc. sec. numbers, or addresses).

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).

Project is returned as instructed. So, in your report, return with your project C at least:

  • The guide as a stand-alone pdf-document
    • with author names, but without student id's and other personal information
  • Possible attachments (e.g., ready-made program examples)
  • Explanation why this guide is better than those before
    • as a separate document, not as a part of the guide

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 (in case you want to use one):

  • 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 12.11.2009 18:43