Rinnakkaisohjelmointi, Syksy 2008
Concurrent programming, Autumn 2008
Tämä kurssin aikataulu- ja sisältösivu päivittyy aina tarpeen tullen eli
siis aika usein. Tarkkailkaa tätä sivua ainakin viikoittain kurssin aikana.
Kurssin sisältö voi jonkin verran siis muuttua aika myöhäänkin.
28.1.2009 Kurssin uusintakuulustelu on arvosteltu. Tulokset ovat verkossa.
The results from the make-up exam are ready.
16.1.2009 Kurssin tulokset on valmiit ja julkistettu verkossa. Uusintakuulustelu on tiistaina 20.1.2009 klo 16-20 (A111). Tämä koe arvostellaan kahdella tavalla: (a) uusintakokeena, jolloin arvosanaan lasketaan mukaan harjoitustehtävistä ja projekteista saadut pisteet, ja (b) erilliskokeena, jolloin arvosana määräytyy puhtaasti kokeen perusteella. Parempi arvosana ratkaisee.
The course result are ready and published. The make-up exam is on Tuesday 20.1.2009 16-20 (A111). This exam is graded in two ways: (a) make-up exam with homework and project points counting towards your grade, and (b) final exam which solely determines your grade. The method with better grade is used.
19.12.2008 Kurssikoe ja oppimispäiväkirjat on arvioitu (arvosteluperusteet). Tarkistuslistassa on kokeen kunkin tehtävän pisteet erikseen. Jo saitte kokeesta alle 19 pistettä, niin ette päässyt läpi kokeesta ja teidän tulee osallistua uusintakokeeseen 20.1.2009. Uusintakokeeseen voi tietenkin osallistua muutenkin, esimerkiksi paremman arvosanan vuoksi. Kurssin läpipääsyyn tarvitaan yhteensä noin 30 pinnaa kokeesta, harjoitustehtävistä ja projekteista. Projekti 1 arvioidaan joulun jälkeen, joten lopulliset tulokset valmistuvat luultavasti vasta tammikuun alkupuolella.
The course exam and the learning diaries have been graded (grading guidelines).The check list has the exam points for each question. If you got less than 19 points from the exam, you did not pass and you need to take the make-up exam on 20.1.2009. Of course, you can take the make-up exam also just to get a better grade. To pass the course, you need some 30 points total from the exam, practice sessions, and projects. Project 1 will be graded after Christmas, and so the the final course results will probably be ready only in early January.
9.12.2008 Kurssikokeemme perjantaina 12.12.2008 9-12 on samaan aikaan Peer-to-Peer Networks -kurssin kokeen kanssa. Jos osallistutte molempiin kursseihin, niin voitte halutessanne suorittaa molemmat kokeet 12.12.2008 klo 9-14. Molempiin kokeisiin osallistuvat opiskelijat siirtyvät johonkin toiseen koesaliin normaalin koeajan päätyttyä (n. klo 11:45). Koeaika kuhunkin kokeeseen on silti maksimissaan 2.5h. Jos haluatte tällaisen 2 kokeen suoritusvaihtoehdon, niin mailatkaa asiasta Teemu Kerolalle torstaihin 11.12.2008 klo 12:00 mennessä.
Our course exam on Friday 12.12.2008 is at the same with the course exam for Peer-to-Peer Networks. If you want to take both exams at the same time, you can do it in time frame 9-14. Students taking both exams will move to some other classroom once the normal exam time is over (11:45 or so). The exam time for one exam is still at most 2.5h. If you want to do both exams this way, please email Teemu Kerola about it by Thursday 11.12.2008 12:00 noon.
8.12.2008 Yliopiston tietotekniikkaosastolla on käyttökatkos 14.12.2008 (tiedote). Ilmeisesti ainakin Moodle on tällöin pois käytöstä, mutta muuten laitoksen omat palvelut pitäisivät olla käytettävissä. Ottakaa tämä huomioon projektin viimeistelyssä. Jos käyttökatkoksesta aiheutuu jotain ennakoitua suurempaa häiriötä, niin se huomioidaan sitten maanantaina 15.12.2008. Varmuuden vuoksi projektien deadline on siirretty 1 vrk eteenpäin tiistaiksi 16.12.2008 klo 12:00.
University it-department has a break in services 14.12.2008 (note). This should not hamper CS dept services except that Moodle will be inaccessible. Please take this into consideration with your project work. If it causes more trouble, we will handle it on Monday 15.12. Just in case, project deadline has been moved to Tuesday 16.12.2008 at 12:00 noon.
1.12.2008 Tietojenkäsittelytieteen laitos palkitsee opinnoissaan hyvin edenneitä pääaineopiskelijoita lainaamalla opiskelun tueksi 150 miniläppäriä (Asus
Eee PC 900). Tämä tarkoittaa siis myös kaikkia muita kuin tänä syksynä opintonsa aloittaneita opiskelijoita. Laitoksen ajankohtaista sivulla on lisätietoja. Hakemus tulisi toimittaa 10.12.2008 mennessä.
The Department of Computer Science rewards successful CS-major students by lending them 150 mini-notebooks (Asus Eee PC 900) to support their work. More info in web.
27.11.2008 Laskuharjoituksista pitää olla tehtynä n. 30%, jotta niistä saa pakollisen yhden arvosanaan vaikuttavan pisteen. Käytännössä tämä tarkoittaa 10 (30% * 32) harjoitustehtäväpistettä (htp) tällä kurssilla. Tehkää riittävästi tehtäviä viimeisellä viikolla, jotta ette jää tämän rajan alle. Tarkistakaa oma tilanteenne kurssikirjanpidosta. Muistakaa myös aloittaa ja palauttaa projekti ajoissa.
You need to have at leat 10 hwp (30% of 32) from the home works. Make sure you reach this in next week's practice sesssion. Check your status in course bookkeeping. Also, remember to start and complete your project in time.
18.11.2008 Sain linkin mukavaan toiseen esimerkkiin (B. Gray) Pankkiirin algoritmin soveltamisesta. Linkkasin sen luennon 5 loppuun ja laiton linkin myös tämän sivun lopussa olevaan kirjallisuusluetteloon. Kiitos, Ari A.
16.10.2008 Harjoitustehtävien vastaukset on nyt sellaisessa muodossa, jotta ne voi laittaa verkkoon. Vastaukset löytyvät verkosta kuitenkin vasta kyseisiä harjoituksia seuraavalla viikolla. Vastaukset on linkitetty aikataulusivulle kunkin harjoituksen yhteyteen.
Answers to execises will be given in the weekly schedule, but only the next week after each practice session.
10.11.2008 Kaikkien tulisi nyt olla jossakin opintopiirissä. Muistakaa, että projektin tekeminen on välttämätöntä läpipääsyyn. Jos ette ole vielä opintopiirissä, ottakaa yhteys luennoijaan.
Everyone should be now in a study circle. If you are not, please contact the instructor.
7.11.2008 Tarkistuslistalta on poistettu sellaiset opiskelijat,
joilla ei tähän mennessä ole lainkaan suorituksia. Jos
poisto on kohdallanne virheellinen (eli olette edelleen kurssilla,
vaikka merkittyjä laskareita ei olekaan), ottakaa yhteys
luennoijaan.
Students with no marks have been removed from course bookkeeping checklist. If your name has been removed by mistake, please contact the lecturer.
5.11.2008 Muistakaa osallistua Kumpulan työelämäviikkoon ensi viikolla.
4.11.2008 Odottelen vielä tämän viikon harjoitusten ajan, josko löydätte oman opintopiirinne. Ryhmäytän tietooni tulleet opiskelijat sitten ensi viikon alussa. Tämän jälkeen opintopiiriä vailla olevat opiskelijat voivat tehdä projektityön omassa opintopiirissään elleivät he itse löydä opintopiiriä johon liittyä. Tällä hetkellä ryhmäyttämistä odottelee 5 opiskelijaa.
If you are not yet in any study circle, please email about it and I will assign you to one early next week. After that those students still without study circle need to form tehir own study circle, or find a study circle to join to.
31.10.2008 On myös mahdollista tehdä projektin B-osa (Java rinnakkaisohjelma) itse ehdotetusta aihepiiristä. Aihe täytyy tietenkin hyväksyttää etukäteen luennoijalla. Suurin vaara itse ehdotetuissa aihepiireissä on, että ne ovat liian vaikeita tai työläitä!
30.10.2008 Moodleen on perustettu sivusto tälle kurssille (salasana rio08). Jos opintopiirit haluavat käyttää sitä hyödykseen, niin katsokaa tällä sivulla alempana olevia ohjeita.
24.10.2008 Kurssin kirjanpitotilasto on luettavissa TKTL:n sisäisessä intranetissä.
Esitietovaatimusten riittävyys näkyy merkkinä '+' kokeen 2
kohdalla. Jos teillä ei ole vielä '+' merkkiä kokeen 2 kohdalla, ottakaa yhteys luennoitsijaan.
Cours bookkeeping checklist is in TKTL intranet. Your prerequisites are marked to be satisfactory if there is a '+' sign at exam 2 (KOE 2). If you do not have that '+' sign there, please contact the lecturer.
20.10.2008 Esitietokoe on arvosteltu. Tulokset ovat verkossa.
The prerequisites exam results are ready. There was no English speakers in the exam.
Huom: Ohjeita on aika paljon, mutta kurssin suoritusmenetelmä vaatii niiden kaikkien lukemista ja noudattamista. Ohjeiden lukemiseen käytetty 15 minuuttia säästää varmasti ainakin 60 minuuttia aikaanne jatkossa. Lukekaa kaikki ohjeet, kiitos.
Hankkikaa oppikirja [BenA06] ajoissa, jotta se on teillä käytettävissä heti kurssin alkaessa.
Muistutus: Harjoitukset alkavat heti ensimmäisellä viikolla. Tehkää tehtävät (Lh 1) etukäteen.
Tärkeä Huom: Laitoksen johtoryhmän päätöksen mukaisesti opinto-oppaassa ja kurssikuvauksissa mainittuja pakollisia esitietoja ryhdyttiin lukuvuodesta 2007-2008 alkaen valvomaan aikaisempaa tarkemmin muutamalla kurssilla, Rio mukaanlukien.
Rinnakkaisohjelmointi (Rio) osallistuvilta vaaditaan kurssin alkuun mennessä joko kurssin esitietoina ilmoitetun Tietokoneen toiminta (Tito) -kurssin Oodiin merkitty suoritus tai kurssin esitietokokeen hyväksytty suoritus. Puutteelliset esitietovaatimukset tulevat näkyviin, kun yritätte ilmoittautua kurssille ILMOssa.
Kurssin luennoija voi hyväksyä osallistumisen myös muulla perusteella, ja esitietokurssien suorituksia korvaavat suoritukset luonnollisesti hyväksytään. Epäselvissä tapauksissa käykää henkilökohtaisesti luennoijan puheilla.
Jos olette suorittamassa maisteriopintojen täydentäviä opintojaksoja, joihin kuuluu sekä Rio että Tito, niin silloin Tito tulisi suorittaa ensin. Jos täydentäviin opintojaksoihin sisältyy ainoastaan Rio mutta ei Tito'a, niin selvästikin Rio'n esitietovaatimusten on katsottu olevan jo kunnossa eikä esitietokoetta näin ollen tarvitse suorittaa.
Huomatkaa, että ILMO valittaa, jos Tito-suoritustanne (tai korvaavaa) ei näy laitoksen kirjanpidossa, vaikka se olisikin näkyvissä Oodissa. Näissä tapauksissa esitietovaatimuksenne on kunnossa ja voitte ilmoittautua normaalisti ILMOn antamista varoituksista huolimatta. Näissä tapauksissa teidän ei myöskään tarvitse ottaa yhteyttä luennoitsijaan.
Rio'n kannalta tärkeimmät Tito-kurssin asiat ovat konekielinen ohjelman esitysmuoto (luennot 2-4), suorittimen toiminta (luento 5) ja ohjelman toteutus prosessina (luento 8), mitkä olisi joka tapauksessa hyvä kerrata ennen kurssin alkua.
Esitietokoe (90 min) pidetään noin viikkoa ennen kurssin alkua (20.10.2008 klo 9-11 salissa CK112). Kokeella osoitetaan Rinnakkaisohjelmointikurssin osalta esitietokurssin oleellisten asioiden tietämys muutaman yksinkertaisen kysymyksen avulla. Esitietokoe on tarkoitettu niille harvoille opiskelijolle, jotka ovat hankkineet kurssin esitiedot jollain muulla tavoin kuin Tietokoneen toiminta -kurssin (tai vastaavan) suorittamalla. Esitietokokeen tulos on voimassa vain tälle yhdelle luentokurssille.
Muutos perustuu kevään 2006 Tietorakenteiden kurssia koskevaan selvitykseen, jonka mukaan esitietopuutteilla oli selvä yhteys kurssilla menestymiseen.
Jos teillä ei ole kurssin alkamisaikana Oodissa näkyvää Tietokoneen toiminta -kurssin (tai korvaavan suorituksen) suoritusta, niin teidän tulee kurssille osallistuaksenne ilmoittautua, osallistua ja päästä läpi esitietokokeesta! Esitietovaatimusten täyttyminen tarkastetaan 1. viikon harjoitustilaisuudessa.
Esitietokoe löytyy ILMOsta kohdasta Kokeet / Aineopinnot / Rinnakkaisohjelmointi (20.10.2008)
Esitietokokeen tulokset
Huom: Kaikilla oppilailla tulee olla TKTL:n käyttäjätunnus laitoksen Linux- ja Windows-järjestelmien käyttämistä varten.
Sivuaineopiskelijoilla tulee olla ensin haettuna Tietotekniikkaosaston UNIX-tunnus eli ns. cc-tunnus. Mikroverkkotunnus ei käy. UNIX-tunnus haetaan oman pääainelaitoksen kautta. Tämän jälkeen voit hakea TKTL-tunnusta vapaamuotoisella hakemuksella sähköpostin kautta osoitteesta tktl-luvat (AT) cs.helsinki.fi . Muista mainita sähköpostissasi cc-tunnuksesi. (Ks. ohjeet http://www.cs.helsinki.fi/compfac/ohjeet/Luvat/uusi.html#sivuainelupa ). Yleensä tunnus alkaa toimimaan pyynnön käsittelyä seuraavana päivänä.
Huom: Kaikkien tulee olla ilmoittautunut kurssikirjanpitoa varten tälle kurssille TKTL:n ILMO järjestelmään. Jos et ole tehnyt sitä vielä, niin tee se ystävällisesti nyt heti. Kiitos. Jonotuslistalle (98) ilmoittautuneiden olisi hyvä tulla keskustelemaan kanssani henkilökohtaisesti kurssille osallistumisesta (laitoksen politiikan mukaisesti).
Important Notice: You must have
the prerequisite Computer Organization I (or similar approved course)
done (grade visible in Oodi) before your register for this course. If
you do not have it, you must register, take part, and pass a prerequisite exam (20.10.2008 9-11 in Ck112) for this course. Email me one week in advance, if you want the prerequisite exam in English. The prerequisite exam is found in ILMO in Exams / Intermediate Studies / Concurrent programming (20.10.2008). One student requested the exam in English, but did not participate. Prerequisite exam results.
There will be one practice session (Wed 12-14, Kerola) offered in English, if there is demand for it. If you want the practice session offered in English, please let me know about it as soon as possible (e.g., via email). Providing practice session (and other) information in English is time consuming, and so I would appreciate it that you would be serious in attending the course.
Guidelines for English speaking (or other!) students who can not participate
in the (Finnish language) lectures:
Acquire the text book in time, before the lectures begin. Practice sessions start at the 1st week of lectures. Do your 1st homeworks (Hw 1) in time.
For each week, follow the schedule (in "Sisältö ja aikataulu") given below. First, read the corresponding chapters from the text book (for summary knowledge). You may also use the lecture notes, that will be in English. Second, do the homeworks given for that week (for deeper knowledge). You may check your level of knowledge with the Practice Problems in the Web -- some of them are in English. Third, attend the practice session given in English (to discuss the topic for still deeper knowledge). Repeat this for six weeks and then study for the course exam.
Please start working before the lectures begin. If you wait until the first homework is due, it will probably be too late to catch up. The course is set up with tight schedule.
Course bookkeeping, grades, and exam grading guidelines are (will be) in the Web.
There is a team project. The projects involves (a) creating a few new practice problems and (b1) creating some concurrent programming in Java, or (b2) creating instructional material on how write concurrent programs with Java or BACI. There is also an extra project (for extra credit) project, that involves keeping a learning diary for all your experiences for this course. (2007 -- There is also an extra credit possibility to participate in a small study by the School of Science on how your spend your time studying for this course. -- 2007)
Your grade will be based on course exam (min 19, max 44 points), homeworks (min 1 point for 30% of hwp's, max 6 points), and the team projects (min 1, max 10 points). So, the exam, homeworks and the team projects are compulsory. Altogether you should have minimum 30 points out of 60 points (some 65 points with extra credits) to pass. Also, if you fail to reach the minimum level for any course component, you will not pass.
Yleistä
- Kurssiin liittyvät yleiset asiat (siis muut kuin erityisesti tähän tämän lukukauden kurssiin liittyvät asiat) ovat kurssin kotisivulla http://www.cs.helsinki.fi/teemu.kerola/rio/index.html.
- Tähän luentokurssiin erityisesti liittyvät asiat ovat tällä
sivulla http://www.cs.helsinki.fi/u/kerola/rio/s2008/aikataulu.html.
- Tämä luentokurssi on tavanomainen luentokurssi ja siihen sisältyy
seuraavat osiot:
- luennot, 12 kpl á 2t, yhteensä 24t
- laskuharjoitukset, 6 kpl á 2 t, yhteensä 12t
- opintopiirissä tehtävä projekti pr1 (kertaustehtäviä, ohjelmia, raportteja)
- itsenäisesti tehtävä valinnainen ylimääräinen oppimispäiväkirja (pr2)
- kurssikuulustelu
- Luentokalvot (pdf),
laskuharjoitukset ja kertauskysymykset
- Opintopiiriin kuuluu 1-3 opiskelijaa. Suositeltu ryhmän koko on 2-3 henkilöä. Opintopiirit (ryhmät) muodostetaan kurssin alkaessa ja julkistetaan verkossa. Opintopiirityöskentelystä on oma ohjeensa. Valitkaa oma opintopiirinne kahden ensimmäisen viikon kuluessa (mielellään jo heti ensimmäisellä viikolla) ja ilmoittakaa ne sähköpostitse luennoijalle (Teemu.Kerola (at) cs.helsinki.fi). Hyvä tilaisuus opintopiirin muodostamiseen on ensimmäisen viikon harjoitustilaisuus. Jos sieltäkään ei löydy opintopiiriä, niin luennoija voi auttaa asiassa ja muodostaa opintopiirejä sellaista viellä vailla olevista opiskelijoista. Ilmoittakaa halukkuudestanne luennoijan muodostamaan opintopiiriin sähköpostitse, mutta vasta ensimmäisen ryhmätapaamisen jälkeen. Opintopiirissä tehdään yhteistyössä projekti (projekti 1), mutta opintopiiri voi myös tehdä muuta yhteistyötä kurssin aikana. On paljon mukavampi opiskella yhdessä kuin yksinään.
- Oppimispäiväkirjan (projekti 2) tekeminen on valinnaista. Sen tekeminen kuitenkin tutkitusti jäsentää omaa opiskelua ja siinä tehty oman oppimisen reflektointi syventää oppumisen tasoa. Ajoissa palautetusta oppimispäiväkirjasta saa arvosanaan vaikuttavia pisteitä.
- Kurssin oppikirja ja luentokalvot ovat englanniksi. Luennot ovat suomeksi.
Harjoitustilaisuudet ovat suomeksi, paitsi ehkä yksi ryhmä englanniksi.
- Harjoitustilaisuuksiin osallistuminen on ainakin pienessä määrin pakollista, ja niistä saa osan luentokurssin arvosanasta. Kustakin tavallisesta
laskuharjoitustehtävästä saa yhden harjoitustehtäväpisteen (htp) ja joistakin
vaikeammista tehtävistä voi saada useammankin. Noin 30% maksimi
htp:stä
tuottaa yhden arvosanaan vaikuttavan lisäpisteen ja noin 83% tuottaa maksimin
lisäpisteitä. Muut lisäpisteet annetaan suurinpiirtein lineaarisesti
tuolta väliltä.
Esimerkki: 6 harjoitukset á 5 htp = 30 htp. Tällöin 9 htp:tä tuottaa 1 lisäpisteen ja 25 htp:tä tuottaa maksimin lisäpisteitä. - Käytäntö on osoittanut, että kurssin läpäisy on vaikeata, jos ei tee runsaasti kotitehtäviä. Tämä on todettu myös tutkimuksissa. Tällä tavoin sekä oppii asiat että saa samalla paremman arvosanan.
- Harjoitustilaisuuksissa yhdessä ryhmässä voi olla englanninkielisiä pöytäkuntia, jos tarvetta
ilmenee. Jos pöytäkunta on englanniksi, niin se on sitten kokonaan
englanniksi (tehtävien esittämiset, kysymykset ja vastaukset).
- Kurssin kirjanpitotilasto on luettavissa TKTL:n sisäisessä intranetissä. Esitietovaatimusten riittävyys näkyy merkkinä '+' kokeen 2 kohdalla. Ilmeisesti keskeyttäneet opiskelijat (ei laskuharjoitusaktiivisuutta) poistetaan listalta. Jos ette halua omia tilastojanne näkyville tässä tai aineistossa on mielestänne jotain puutteita, ottakaa yhteys luennoijaan.
- Kokeen tulokset, kurssin arvostelu sekä kokeen arvosteluperusteet näkyvät tällä paikalla lyhyen aikaa (muutaman viikon) kokeen/kurssin arvostelun jälkeen.
Arvosana
Luentokurssiin sisältyy luennot, harjoitukset, kertaustehtävät, projektit ja kurssikuulustelu. Harjoituksiin ja ryhmätyö projektiin osallistuminen on pakollista. Lopuksi myös asiat tulee hallita, joten kokeesta tulisi saada ainakin puolet pisteistä. Oppimispäiväkirjan tekeminen on valinnaista, mutta siitä voi saada ylimääräisiä arvosanaan vaikuttavia pisteitä. Projektien pistemäärien kertyminen on kerrottu tarkemmin opintopiirityöskentelyn yhteydessä.
Kurssin arvosana määräytyy kurssikuulustelun, harjoitusten ja projektien perusteella seuravasti:
Kurssin osio |
Arvosanaan vaikuttavien pisteiden minimivaatimus |
Arvosanaan vaikuttavien pisteiden maksimäärä |
---|---|---|
Harjoitukset |
1 p |
6 p |
Opintopiirin ryhmätyö (projekti 1) |
1 p |
10 p |
Opintopäiväkirja (projekti 2) |
0 p |
5 p |
Kurssikuulustelu |
19 p |
44 p |
Yhteensä |
30 p |
65 p |
Kurssin muoto: opintopiirikurssi
Kurssi toteutetaan opintopiirejä käyttäen. Tämä tarkoittaa sitä, että opiskelijat jaetaan pienryhmiin (opintopiireihin), jotka ratkaisevat sekä tavanomaisia laskuharjoituksia että suurempia projekteja. Kantavana ajatuksena ja ideana opintopiireissä on se, että yhdessä opiskellen oppii paremmin. Kun selittää asiaa toiselle, niin oppii itsekin ja/tai huomaa aukkoja omassa osaamisessaan. Opintopiirit voivat tavata itse sopiminaan aikoina eri tiloissa yliopistolla tai verkossa opintopiirin omassa chat-huoneessa.
Harjoitustehtävät ja harjoitustilaisuudet
Kotitehtävät tehdään itsenäisesti tai oman opintopiirin kanssa yhdessä. Hyvä menettelytapa olisi esimerkiksi sellainen, että kukin pohtii ensin tehtävät läpi itsenäisesti ja sitten niitä puidaan yhdessä opintopiirissä. Jokaisen tulisi oppia tehtävien asiat täydellisesti, mielellään jo ennen tehtävien käsittelyä viikoittaisessa ryhmätapaamisessa. Tehtävistä saa arvosanaan vaikuttavia pisteitä (htp) niiden vaativuuden mukaan, mutta vain tehdyistä tehtävistä ja vain harjoitustilaisuudessa koko ajan läsnäolleille.
Harjoitustilaisuuksissa kokeillaan uutta käytäntöä, jossa kaikki tehtävät käydään tehtäväkohtaisesti läpi opiskelijavetoisesti keskustellen. Ohjaaja jakaa opiskelijat harjoitustilaisuudessa pöytäkuntiin, joihin pyritään saamaan kuhunkin tehtävään ainakin yksi sen tehtävän ratkaissut opiskelija. Pöydissä voi otaksua, että opiskelijat ovat tutustuneet tehtäviin etukäteen ja ainakin yrittäneet ratkaista niitä. Jos opiskelija ei ole tutustunut tehtäviin etukäteen, hän ei pysty hyödyntämään harjoitustilaisuutta kunnolla. Harjoitustilaisuuden aika ei riitä kaikkien tehtävien huolelliseen läpikäyntiin, ellei tehtäviin ole perehdytty etukäteen.
Harjoitustehtävistä annetaan harjoitustilaisuudessa oikeat ratkaisut sillä tarkkuudella, että pöytäkunnat voivat itse tarkistaa tekemiensä ratkaisujen oikeellisuuden. Oikeita ratkaisuja laitetaan verkkoon seuraavalla viikolla. Jos/kun harjoitustehtävät on käyty läpi, pöytäkunta jatkaa keskustelua tilaisuudessa annettavien aihepiirien pohjalta. Jos pöytäkunta toteaa olevansa täysin valmis, sen jäsenet voivat siirtyä muihin pöytiin asiantunteviksi konsulteiksi. Kaikki ovat kuitenkin paikalla tilaisuuden loppuun asti.
Englanninkielisessä harjoitusryhmässä yksi tai useampi pöytäkunta voi olla englanniksi, jos tarvetta ilmenee (osallisena on yksi tai useampi suomea taitamaton opiskelija.). Jos pöytäkunta on englanniksi, niin se on sitten kokonaan englanniksi (tehtävien esittämiset, kysymykset ja vastaukset, kaikki keskustelu). Kaikkien englanninkieliseen harjoitusryhmään osallistuvien suomenkielisten opiskelijoiden tulee varautua siihen, että heidät voidaan sijoittaa englanninkieliseen pöytäkuntaan.
On erityisen opettavaista ja omaa oppimista tukevaa selittää asioita jollekin toiselle, joka myös on työskennellyt tehtävän ratkaisemiseksi. Muiden opiskelijoiden auttaminen hyödyntää kumpaakin osapuolta ja yleensä opastajaa enemmän. Älkää kuitenkaan pilatko harjoitustehtävän hyötyä toiselle antamalla sen vastausta suoraan. Eihän siitä juurikaan kostu kumpikaan. Hyvää oppimista saa aikaan vuorottelemalla (a) omaa opiskelua, (b) ongelmien ratkaisuja ja (c) keskusteluja ongelmista ja niiden ratkaisuista muiden opiskelijoiden kanssa.
Harjoitustehtävien tavoitteena on oppiminen, ei pinnojen kalastelu kurssin läpäisemiseksi tai paremman arvosanan saamiseksi. Harjoitustehtävissä opitut asiat ovat yleensä myös tärkeitä taustatietoja projektitöitä varten. Oppiminen tapahtuu nimenomaan silloin, kun ajattelee ja tekee itse merkittävän osan ongelman ratkaisua sekä keskustelee ratkaisustaan ja ratkaisumenetelmästään muiden kanssa. Valmiiden vastausten lukemisella ei opi yhtä hyvin. Samanlaisia esimerkkejä on luennoilla ja kirjoissa, joten harjoitustehtävien valmiiden ratkaisujen käyttö pelkästään luettavina esimerkkeinä on oppimisen kannalta hyvien harjoitustehtävien hukkaan heittämistä.
Ohjaajat toimivat konsultteina kaikille pöytäkunnille.
Moodle
Moodlen käyttö ei ole pakollista tällä kurssilla. Moodle alustetaan kurssia varten myöhemmin, jos tarvetta ilmenee.
Moodlea voidaan käyttää opintopiirin sisäisiin keskusteluihin ja projektin palauttamiseen. Moodlen muita piirteitä voidaan hyödyntää tarpeen mukaan. Moodleen kirjaudutaan tietotekniikkaosaston tuunnuksilla. Opintopiiriläiset kirjautuvat ensin kaikki RioS08-kurssille (salasana rio08) ja pyytävät sitten ohjaajaa sijoittamaan heidät omaan opintopiiriinsä (jonka nimen he kertovat samalla).
Moodlen käyttöohjeita löytyy englanniksi Moodlen omilta sivuilta. (esim. Documentation / "Student Guide for Moodle" by Ray Lawrence). Moodle'ssa (vasemmassa palkissa ylhäällä) on lyhyt suomenkielinen Opiskelijan pikaopas Moodlen käyttöön.
Opetus, kokeet
Esitietokoe | 20.10.2008 | ma 9-11 (CK112) Mon | Teemu Kerola |
Luennot Lectures in Finnish |
27.10 - 4.12.2008 |
ma 12-14 (B123) Mon |
Teemu Kerola |
Harjoitukset Practice sessions |
27.10 - 5.12.2008 |
ke 12-14 (C221) Wed |
Teemu Kerola |
ke 14-16 (C221) |
Teemu Kerola | ||
to 12-14 (C222) | Päivi Kuuppelomäki |
||
pe 10-12 (C221) | Päivi Kuuppelomäki |
||
Projektien palautus |
16.12.2008 klo 12:00 |
paperikopio (pr1) ja sähköposti (pr1, pr2) paper copy (pr1) and email (pr, pr2) |
|
Kurssikuulustelu Course exam |
12.12.2008 | Teemu Kerola | |
Uusintakuulustelu Makeup exam |
20.1.2009 | Teemu Kerola |
Sisältö ja aikataulu
Kurssi on rakennettu kurssikirjan [BenA06]
ympärille. Käymme läpi kurssikirjan lähes kokonaan
(Ch 1-10) kurssin aikana. Kurssikirja on
välttämätön hankinta kurssin suorituksen kannalta. Hanki oppikirja ajoissa ennen kurssin alkamista.
Get your text book in time before the course begins!
Luentokalvot ja laskuharjoitukset tulevat tälle sivulle aikanaan, hyvissä ajoin ennen ko. luentoa tai laskuharjoitusta.
Viikko 43 (20-24.10.2008) Week 43
- 20.10.2008 Esitietokoe Prerequisite exam
- Etsikää opintopiiripartnereita ja ilmoittautukaa heidän kanssa samaan harjoitusryhmään
Locate study circle partners and sign up in the same (English speaking) practice group - Ennakkotehtävät Lh 1 (Hw 1) Advance homework problems
Viikko 44 (27-31.10.2008) Week 44
- Luento 1, ma 27.10.2008 Lecture
- Valinnaisen oppimispäiväkirjan aloitus Pr2 (Pr2e)
Elective study diary started - Luento 2, to 30.10.2008 Lecture
- Kertaustehtävät Ch 2 Practice Problems (some in English?)
- Harjoitustehtävät Lh 2 (Hw 2) Homework problems
- Harjoitukset Practice meeting
Viikko 45 (3-7.11.2008) Week 45
- Luento 3, ma 3.11.2008 Lecture
- Kertaustehtävät Ch3 Practice Problems (some in English?)
- Luento 4, to 6.11.2008 Lecture
- Kertaustehtävät Ch4 Ch5 Practice Problems (some in English?)
- Harjoitustehtävät Lh 3 (Hw 3) Homework problems
- Harjoitukset Practice meeting
Viikko 46 (10-14.11.2008) Week 46
- Luento 5, ma 10.11.2008 Lecture
- Kertaustehtävät Ch6Stal Practice Problems (some in English?)
- Luento 6, to 13.11.2008 Lecture
- Kertaustehtävät Ch6 Practice Problems (some in English?)
- Harjoitustehtävät Lh 4 (Hw 4) Homework problems
- Harjoitukset Practice meeting
Viikko 47 (17-21.11.2008) Week 47
- Luento 7, ma 17.11.2008 Lecture
- Luento 8, to 20.11.2008 Lecture
- Kertaustehtävät Ch7 Practice Problems (some in English?)
- Harjoitustehtävät Lh 5 (Hw 5) Homework problems
- Harjoitukset Practice meeting
Viikko 48 (24-28.11.2008) Week 48
- Luento 9, ma 24.11.2008 Lecture
- Luento 10, to 27.11.2008 Lecture
- Kertaustehtävät Ch8-9 Practice Problems (some in English?)
- Harjoitustehtävät Lh 6 (Hw 6) Homework problems
- Harjoitukset Practice meeting
Viikko 49 (1-5.12.2008) Week 49
- Luento 11, ma 1.12.2008 Lecture
- Kertaustehtävät Ch8-9 Practice Problems (some in English?)
- Luento 12, to 4.12.2008 Lecture
- Kertaustehtävät Ch10 Practice Problems (some in English?)
- Harjoitukset Practice meeting
Viikko 50 (8-14.12.2008) Week 50
- pe 12.12.2008 Kurssikuulustelu Course
examination
- Tarkista koeaika ja -paikka verkosta Check time/place from web
Viikko 51 (15-19.12.2008) Week 51
- ti 16.12.2008 12:00 Projektien (pr1 & pr2) Project deadlines
Palauta eposti- ja paperikopiot! Return email and paper copies!
Viikko 4 (19-23.1.2009) Week 3
- ti 20.1.2009 Uusintakuulustelu Makeup course exam
- Tarkista koeaika ja -paikka verkosta Check time/place from web
- Ilmoittaudu ILMOssa Sign up with ILMO
(ask the instructor for the exam in English)
Kirjallisuutta ja muita viitteitä (Literature and References)
- [BenA06] M. Ben-Ari, Principles of Concurrent and Distributed Programming (2nd Ed.); Addison-Wesley 2006.
- kurssikirja, välttämätön hankinta Text book - must have!
- Amazon.uk £39.99 + mailing (29.9.2008) - käytetyt kirjat halvemmalla
- Indigostarfish.com (Jersey'ssä, ei ALV'ia...) (13.12.2007)
- Yliopistokirjakauppa 65€ (29.9.2008)
- Porthania 30 kpl (+20 tilattu 2.10.2008), Otaniemi 20 kpl, Viikki 40 kpl (29.9.2008)
- Akateeminen kirjakauppa 59.90€ (30.10.2006)
- Keskuskatu, 14 kpl (7.11.2006)
- Akateemisen nettimyynti 59.90 € (19.10.2006)
- Suomalainen kirjakauppa (keskusta) 77.10€, tilattava, toim.aika 2-3 vkoa (30.10.2006)
- DataClub 66.70 € myymälästä Sanomatalosta (31.5.2006)
- Play.com £39.99 vai £41.95 vai €61.99?, free delivery (13.12.2007)
- muut paikat/hinnat? kertokaa Teemulle, kiitos?
- Amazon.uk £39.99 + mailing (29.9.2008) - käytetyt kirjat halvemmalla
- Errata (Ben-Ari)
- Other typos (Kerola)
- kurssikirja, välttämätön hankinta Text book - must have!
-
[Andr00] G. R. Andrews, Foundations of Multithreaded, Parallel, and Distributed Programming; Addison-Wesley 2000.
- vanha kurssikirja, samoja asioita vähän eri tavalla. Hyvä kirja, mutta painos lopussa.
- [Stal08]
William Stallings, Operating Systems - Internals and Design Principles; Prentice Hall, 2008, 6th ed.
- Ch. 5 (Mutual Exclusion and Synchronization)
- Ch. 6 (Deadlock and Starvation)
- Ch. 16 (Distributed Processing)
- [Stal05]
William Stallings, Operating Systems - Internals and Design Principles; Prentice Hall, 2005, 5th ed.
- Ch. 5 (Mutual Exclusion and Synchronization)
- Ch. 6 (Deadlock and Starvation)
- Ch. 14 (Distributed Processing)
- (-- [BACI] BACI homepage (samanaikaisuuden
hallinnan harjoitustyökalu)
- sisältää graafisen käyttöliittymän (BACI GUI) Unix/Linux-ympäristöihin
- käytetään kurssilla samanaikaisuuden havainnollistamiseen ja harjoitteluun
- asenna BACI Linuxiin Jukka-Pekka Kinnusen ohjeiden avulla:
"Alla olevassa linkissä muutamia havaintomuistiinpanoja kokeiluista
BACI:n kääntämisestä eri Linux-distribuutioissa sekä
Windows/Cygwinissä. Näistä CS-Linux oli helpoin.
http://www.cs.helsinki.fi/u/jpkinnun/2006s/rio/baciohje.html" - User Guide - BACI C-- Compiler and Concurrent PCODE Interpreter (Bynum & Camp), local copy
- User Guide - BACI Pascal Compiler and Concurrent PCODE Interpreter (Bynum & Camp), local copy --)
- [jBACI]http://www.mines.edu/fs_home/tcamp/baci/(M. Ben-Ari)
- sisältää graafisen käyttöliittymän BACI-simulaattoriin Windows-ympäristöön
- käytetään kurssilla samanaikaisuuden havainnollistamiseen ja harjoitteluun
- install to Windows: load version 1.4.5 jBACI executable files and example programs (local copy), unzip, edit config.cfg to have correct paths to translators bin/bacc.exe and bin/bapas.exe as well as for directory examples, click run.bat
- installoi jBACI Linuxiin Lasse Leinon ohjeiden mukaan:
"Pikaisen kokeilun jälkeen jBACI toimii yhtäläillä
linuxissa. Ainoaksi ongelmaksi jää vain se, että
kääntäjät ovat paketissa mukana vain exeinä.
Apu löytyy BACI:n kotisivuilta, (http://www.mines.edu/fs_home/tcamp/baci/),
josta löytyy linux ympäristössä toimivat kääntäjät. Näyttäisi ainakin
toimivan, kun pikaisesti testasin."
- täältä (http://www.mines.edu/fs_home/tcamp/baci/) otetaan siis zip-tiedostosta jbaci1-4-5.zip
- uudempi 2007 suora latauslinkki: http://www.mines.edu/fs_home/tcamp/baci/balnxxe-2007Nov25.tar.gz
- täältä ladataan siis kääntäjät Linux-ympäristöön
- polkunimet pitää editoida paikalleen tiedostoon config.cfg
- jBACI Concurrency Simulator User Guide (M. Ben-Ari), local copy
- jBACI examples (local copy) from jBACI installation
- BACI-järjestelmän käytön UKK (FAQ page for BACI system use)
- [Taub06] G. Taubenfeld, Synchronization Algortihm and Concurrent Programming, Pearson Education Ltd 2006.
- samoja asioita, joitakin ehkä vähän syvällisemmin
- Tapio Lehtomäki, Säikeillä säpinää makkarakoodiin, Mikrobitti 11/2002 (Aterioivat filosofit -sovellus Java-kielellä)
- Jeff Magee & Jeff Kramer, Concurrency: State Models & Java Programs, 2nd Ed, Wiley 2006.
Readers and Writers (Java applet) - Doing Two or More Tasks at Once, The Java Tutorial - A Practical Guide for Programmers (Trail: Essential Java Classes), Sun Microsystems.
- Leslie Lamport, A New Solution of Dijkstra's Concurrent Programming Problem, Comm ACM 1974 (vol 17), Nr 8, pp 453-455.
- Cay Horstmann & Gary Cornell, Core Java 1, Vol 1 - Fundamentals, 7th Ed, Sun Microsystem Press, 2005
- Cay Horstmann & Gary Cornell, Core Java 1, Vol 2 - Advanced Features, 7th Ed, Sun Microsystem Press, 2005
- Herder et al, Modular System Programming in MINIX 3, The USENIX Magazine 30, 5 (April 2006)
- Java Threads: package lang, class Thread, Java TM 2 Platform Standard Ed. 5.0, Sun Microsystems
- Java Semaphores: package concurrent, class Semaphore, Java TM 2 Platform Standard Ed. 5.0, Sun Microsystems
- JavaSpaces
- Eric Freeman & Susanne Hupfer, Make room for JavaSpaces 1-5, JavaWorld.com, 11/20/99-06/23/00
- Sun Microsystems, Jini network technology.
- Stephen J. Hartley, Concurrent Programming: The Java Programming Language, Drexel University, 1998. Verkkosivu.
- Douglas Lea, Concurrent Programming in Java™: Design Principles and Pattern, 2nd Edition, Addison-Wesley 2000. Verkkosivu.
- Glenn Ricart & Ashok K. Agrawala,
An optimal algorithm for mutual exclusion in computer networks,
Comm ACM 24, 1 (Jan 1981), pp 9-17.
- B. Gray, Univ. of Idaho, The Banker's Algorithm for Detecting/Preventing Deadlocks, html (18.11.2008)
- Bryan Cantrill, Jeff Bonwick, Real-world Concurrency, ACM Queue vol. 6, no. 5 - September 2008, html (local pdf)
- Luke Collins, Chip Makers Hit Heat Barrier, IEE Review, Jan 2003, pp 22-23, pdf
- Herb Sutter, A Fundamental Turn Toward Concurrency in Software, Dr. Dobbs Journal, March 1, 2005, local pdf
- S. Borkar, P. Dubey, K. Kahn, D. Kuck, H. Mulder, S. Pawlowski, and J. Rattner, Platform 2015: Intel Processor and Platform Evolution for the Next Decade, Intel 2005, local pdf
- Marc Snir, Programming Models for Supercomputing in the Era of Multicore, Illinois Informatics Institute, Univ. of Illinois at Urbana-Champaign, 2008, lecture slides, local pdf
- A Conversation with John Hennessy and David Patterson, Computer Architecture 4, 10 (Dec2006/Jan2007), in acmqueue
- David Patterson, The Multicore Challence, CCC Blog, The Computing Community Consortium, Aug 26, 2008, see cccblog.org
- Microelectronics and Computer Technology Corporation (MCC), The Handbook of Texas Online, Texas State Historical Association, 2008
- Pervasive Parallelism Laborary, Stanford University, home page http://ppl.stanford.edu/wiki/index.php/Pervasive_Parallelism_Laboratory
- The Parallel Computing Laboratory, Dept of Electrical Engineering and Computer Science, Univ of California, Berkeley, home page http://parlab.eecs.berkeley.edu/
- Universal Parallel Computing Research Center Illinois, Dept of Computer Science & Coordinated Science Laboratory, Univ. of Illinois at Urbana-Champaign, http://www.upcrc.illinois.edu/
- The Multicore Association, http://www.multicore-association.org/home.php
- Sanakirjoja (dictionaries)
">Teemu Kerola 28.01.2009 10:48