Tiedossa on kiva kes�kurssi
Etusivu Materiaali -- Luennot -- Miksi Ajatuksia  

ITKA203 K�ytt�j�rjestelm�t --- kes� 2007 --- Luennot ja muistiinpanot

Luennot on nyt pidetty. Alla on lista otsikoista ja k�sitellyist� aiheista. Luennoilla n�ytettiin k�yt�nn�n esimerkkej� auditorion tietokoneella, ja tuotettiin muistiinpanoja kurssimateriaalin pohjaksi.

Luento 1: Kurssi-info ja esitietojen varmistaminen

ti 22.5.

Yhteenveto luennolla puhutusta
  • Kalvosarja: Kuka luennoi, kenelle, mit�, miksi ja mill� tavoin
  • Arkihavaintoja k�ytt�j�rjestelm�st�:
    • Auditorion tietokoneessa on Windows; k�ytt�j� voi klikkailla kuvakkeita ty�p�yd�ll� ja useita ohjelmia aukeaa eri ikkunoihin
    • Digitaalikameran k�ytt�j� voi painella painikkeita; kamerassa on valikoita ja toimintoja; valos�hk�inen ilmi� tallentuu kameraan ja tulostuu sen LCD-n�yt�lle.
    • Jalava-koneessa on monta k�ytt�j�� duunailemassa omia puuhiaan yht� aikaa. Pystyn n�kem��n muiden k�ytt�jien kotihakemistot ulkopuolelta, mutta niiden sis�ll�n listaaminen on kielletty�. "Permission Denied". Luotan, ett� vastaavasti muut eiv�t n�e minun tiedostojani.
  • "Kertauksena" katsottiin l�pi kuvia Tietotekniikan Perusteet -monisteesta (sivuilta 3,6,17,19,26,27,31,26,29,41,43,45):
    • Tietokone on automaatti (v�h�n niinkuin juoma-automaatti mutta pienempi ja useampitilainen)
    • Tietokone rakennetaan yksinkertaisista elektroniikkakomponenteista koostamalla
    • Digitaalinen j�rjestelm� ottaa vastaan koodatun sy�tteen ja palauttaa koodatun vasteen
    • Sy�tteen ja vasteen koodaus ykk�sin� ja nollina, jotka ilmenev�t s�hk�j�nnittein� niiss� pikkukomponenteissa
    • Turingin kone on pieni, kuvitteellinen puksutin ��rett�m�n pitk�ll� nauhalla; toistaiseksi ei ole tietokonetta, joka tekisi sellaista mit� kyseinen puksutin ei saisi aikaan.
Lis�materiaalia

Luento 2: K�ytt�j�rjestelm� konepellin p��lt�, alta ja rajapinnasta

ke 23.5.

Monisteviitteet
  • Luentomonisteen sivut 1-5
  • Tulkittiin kuvia Tietotekniikan Perusteet -monisteesta (sivuilta 52,58-62,64,68,92-93,96);
Yhteenveto luennolla puhutusta
  • Tietokonearkkitehtuuri: keskusyksikk�, muisti, v�yl�, I/O-laitteet
  • Tunnetaan usein nimell� Von Neumann -arkkitehtuuri, vaikka John Von Neumann ei ollut ainoa keksij�
  • V�yl�n rakenne: ohjauslinja, osoitelinja, datalinja ("piuhoja" elektronisten komponenttien v�lill�, yksi bitti per "piuha"; kukin linja yhdistet��n tai katkaistaan tilanteen mukaisesti v�yl�n ohjauskoneiston hoitamana.)
    • Osoitev�yl�n leveys (bittipiuhojen lukum��r�) m��rittelee osoiteavaruuden laajuuden eli montako muistiosoitetta tietokoneessa voi olla
    • Osoiteavaruus: V�yl�n kautta p��see k�siksi moniin paikkoihin, ja osoiteavaruus jaetaan usein (laitteistotasolla) osiin siten, ett� tietty osoitteiden joukko tavoittaa ROM-muistin (tehtaalla kiinnitetty), osa RAM-muistin (jota ohjelmat k�ytt�v�t), osa I/O-laitteet, osa prosessorin rekisterit.
    • Datav�yl�n leveys (bittipiuhojen lukum��r�) m��rittelee kuinka paljon tietoa v�yl� korkeintaan voi siirt�� yhdell� siirto-operaatiolla
  • Keskusyksik�n eli prosessorin rakenne: ALU, kontrolliyksikk�, rekisterit, sis�inen v�yl�
    • V�ltt�m�tt�m�t rekisterit:
      • PC (program counter) kertoo, mist� haetaan (v�yl�n kautta) seuraava suoritettava k�sky
      • IR (instruction register) tallentaa v�liaikaisesti t�ll� hetkell� suoritettavan k�skyn
      • V�hint��n yksi datarekisteri laskutoimituksia varten
      • V�hint��n yksi osoiterekisteri muistiosoitteiden tallentamista varten
      • Lippurekisteri kertomaan suorituksen j�lkitilanteesta, esim. yhteenlaskun muistibitti
    • K�skykanta: se joukko konekielisi� komentoja (bittijonoja) jotka joku tietty prosessorimalli osaa suorittaa; vaihtelee mallien v�lill�; yleens� k�skyj� on melko v�h�n ja ne tekev�t varsin pienen operaation kerrallaan (kuten yhteenlasku, kertolasku, bittien siirto rekisterist� toiseen, bittien siirto muistipaikan ja jonkun rekisterin v�lill�, suoritusj�rjestyken muuttaminen hypp��m�ll� eli k�skyosoiterekisterin arvon muuttaminen).
    • Prosessoriarkkitehtuuri: Tietyn prosessorimallin k�skykanta ja lis�ksi ne tavat, joilla k�skyt muunnetaan biteiksi; t�h�n liittyy prosessorista l�ytyv�t rekisterit ja tavat, joilla rekistereit� voidaan k�ytt�� k�skyiss�
  • Virtuaalikone virtuaalikonehierarkia k�sitteen�, esimerkkein� Emacs-editori ja Javalla tehty Fotoalbumi; kerrokset ja rajapinnat
  • K�ytt�j�rjestelm�n tarkoitus ja teht�v�t: k�ytt�� fyysisen laitteiston rajapintaa, tarjoaa yleisemm�n (so. virtuaalisen) rajapinnan seuraavalle tasolle eli ohjelmointikielille ja niiden apukirjastoille. Ilmeisesti tarkoituksen toteuttamiseksi t�ytyy toteuttaa keinoja, joilla hallitaan useita ohjelmia, tietokonearkkitehtuurin osia, tiedostoja ja k�ytt�ji�

HUOM: Yksinkertaisuuden vuoksi ei mainittu ainakaan t�ss� kohtaa mit��n nykyprosessorien ominaisuuksista kuten ennakkonoudosta, liukuhihnoista, mikrokoodista tai v�limuisteista. Olennaisia toki, mutta eiv�t K�ytt�j�rjestelmien ymm�rt�misen kannalta. Moniprosessoriarkkitehtuureista puhutaan pari sanaa s�ikeiden yhteydess� parin viikon p��st�. Muistinhallintaan liittyv�st� prosessoriteknologiasta puhutaan hieman muistinhallinnan yhteydess�.

Lis�materiaalia
  • Intel Pentium -prosessorin manuaalit ("hardcore"...) -- Huolella kirjoitettua teknist� dokumentaatiota (lueskele, "jos j�� luppoaikaa"). T�t� aikansa silm�ilem�ll� ymm�rt�� jo aika paljon tietokoneen sielunel�m�st�. Muistit, prosessorin toimintatilat ja rekisterit, kaikki Intelin konekieliset k�skyt ja kuinka ne muutetaan bittikoodiksi...
  • SPARC -prosessoriarkkitehtuurin kuvaus ("hardcore"...) -- vertailun vuoksi toinen manuaali. Ei prosessori vaan arkkitehtuuri sellaiselle. N�k�j��n atk-keskuksen (edesmenneet) koneet tukki ja kanto olivat Sparceja. Mikroluokissa, t�iss� ja kotona meill� useimmilla lienee x86-prosessori kuten Pentium.
  • The Java Virtual Machine Specification kertoo miten Java-virtuaalikone toimii. (my�s hiukan HC, mutta ei liene paha hieman silm�ill� t�t�kin joskus kun kaipaa jotain kivaa tekemist�)

Luento 3: Ohjelmointi ja ohjelmointikieli ==> suoritus ja konekieli

to 24.5.

Monisteviitteet
  • (Luentomonisteessa ei varsinaisesti ole vastaavaa kohtaa; kielij�rjestelm�t mainitaan sivulla 3, ja er��st� konekielest� on esimerkkej� s. 6-16)
Yhteenveto luennolla puhutusta
  • Kalvosarja luennon p��kohdista
  • Unix-shellit, interaktiivisen shellin k�ytt�, varoituksia
  • P��teyhteys PuTTY SSH Clientilla
  • Mikroluokkien U: -asema on sama asia kuin kotihakemistosi THK:n suorak�ytt�koneissa
  • Joitakin unix-komentoja; demossa 1 tulee lis��.
  • Tiedosto heksaeditorilla n�htyn�: 8-bittisi� tavuja per�kk�in
  • Tekstitiedon koodaus; vaihtelevia k�yt�nt�j� mm. ��kk�set ja rivinvaihdot
  • Ohjelmointikieli�: k��nt�mist� ja tulkkausta
  • Java-ohjelman k��nt�minen, bin��rinen tavukoodi
  • Luennolla tehty esimerkkiohjelma: MunOhjelma.java
  • Komentorivi ja ohjelman argumentit; kaikille ohjelmille voi antaa argumentteja (toiselta nimelt��n komentoriviparametreja)
  • C-ohjelman k��nt�minen, bin��rinen natiivi konekielikoodi
  • Luennolla k�sitelty esimerkkiohjelma: bytes_to_bits.c
  • em. esimerkki olettaa, ett� char-muuttujan pituus olisi aina 8 bitti�. Vaarallista :-(
  • C:n ja Javan vertailua
  • Varoituksia C:n vaaroista
  • Miksi laitteita tai k�ytt�j�rjestelmi� ei ohjelmoida Javalla (ainakaan toistaiseksi)
  • Demossa 2 on k�yt�nn�n harjoitteina C-kielen ja imperatiivisen paradigman pikakurssi Sinulle, joka olet toistaiseksi ohjelmoinut Java-kielell� olioita k�ytt�en
Lis�materiaalia

Luento 4: Assembler, konekieli, aliohjelmat ja keskeytykset

ti 29.5.

Yhteenveto luennolla puhutusta
  • Aiheotsikot (PDF)
  • Ensimm�inen, h�rskisti asiavirheit� sis�lt�v� versio materiaalista, jolla t�ll� kertaa korvataan luentomonisteen sivut 6-21, kunhan teksti v�h�n aikuistuu nykyisest� -- toivottavasti reilusti ennen tentti�.
  • Luentomonisteen sivut 6-17 ovat ihan hy�dyllist� lukemista; siin� esitelty arkkitehtuuri on Intel 8086 tai ehk� 80286 (80-luvun prosessoriteknologiaa; pohjimmiltaan nykyinen on samanlaista, vaikka prosessoreissa on enemm�n toiminnallisuutta pienemm�ss� fyysisess� tilassa.)
  • Luentomonisteen sivut 18-21
Lis�materiaalia

T�ss� nykyaikaista lis�materiaalia ihmetelt�v�ksi. Ei todellakaan ole tarkoitus lukea 1500 sivua, vaan korkeintaan n�hd� v�h�n p��lt�, ett� millaisen k�ytt�ohjeen prosessorivalmistaja aina julkaisee. Intro-luvut (parikymment� ensimm�ist� sivua) kertovat dokkarien sis�ll�st� ja oletetusta kohderyhm�st�. Terminologian ja k�siteltyjen asioiden pit�isi tulla esille t�ll� kurssilla, eli t��ll� pit�isi synty� pohjat tuollaisten manuaalien lukemiseen jatkossa, tarvittaessa.

  • AMD64-arkkitehtuuri
  • Erityisesti AMD64 -arkkitehtuurin rekisterit ja k�skykanta (linkki)
  • Intel 64 -- Intelin " kopio" kyseisest� arkkitehtuurista
  • THK:mme Jalava-kone on 4-prosessorinen Intel Xeon -- olennaisesti yhdenlainen "x86-64".
  • IT-porukan ty�- ja opintopalvelimena toimiva Charra puolestaan on 2-prosessorinen AMD Opteron -- siis my�s "x86-64".

Luento 5: Prosessit ja prosessien vuorottelu

ke 30.5.
  • Luentomonisteen sivut 22-34
  • Muistiavaruudet (fyysinen ja prosessin oma virtuaalinen) luentotuhruna.
  • Muistiosoitteet: mist� prosessori milloinkin noutaa k�skyj�.
  • Alustus prosessin k�sitteeseen
  • Lopullisempi versio nouto-suoritus -syklist�, sis�lt�en keskeytyksen k�sittelyn
  • FLIH eli first level interrupt handling; prosessorin atomiset toimenpiteet ennen paluuta nouto-suoritus -sykliin
  • Keskeytysvektori
  • Moniajon idea, aikaviipale, prosessin tilat running, ready ja suspended
  • Prosessorin siirtyminen keskeytysk�sittelij��n
  • k�ytt�j�rjestelm�kutsu, "prosessin itse pyyt�m� keskeytys"

Luento 6: Prosessit ja prosessien vuorottelu, jatkoa
Prosessien synkronointi ja kommunikointi (IPC), alkua

to 31.5.
  • Luentomonisteen sivut 22-34
  • Luentomonisteen sivut 35-42
  • Luentosuhrut t�ydennettyn�: prosessikasitteita.txt
  • Lis�� prosessien tiloista ja vuorontamisesta
    • Tilanvaihdokset keskeytysten ja k�ytt�j�rjestelm�kutsujen kohdalla
    • Vuorontamismenettelyj�: er�ajo (yksi prosessi alusta loppuun, sitten seuraava ==> hukkaa prosessoriaikaa I/O-suorituksiin), kiertojono (round robin, yksi aika-annos Ready-jonon prosesseille aina samassa j�rjestyksess� paitsi I/O:ta odottavat prosessit Blocked-jonossa normaalikierron ulkopuolella), prioriteettimenettelyt (vuorontaja ratkaisee jollakin perusteilla, mik� prosessi tarvitsee juuri nyt seuraavan aika-annoksen)
  • Prosessitaulu, prosessielementti (PCB)
  • Konteksti ja kontekstin vaihto
  • Prosessin luonti: Unixin fork() -kutsu. Koodiesimerkki: minish.c -- yksinkertainen shell-ohjelma Unixille
  • Alustus prosessien v�liseen kommunikointiin (IPC)
    • Viestijonot PCB:ssa
    • Signaali. Koodiesimerkki: sigesim.c -- ohjelma, joka m��rittelee signaalien k�sittelyn itse.
    • ensi viikolla lis��

Luento 7: Prosessien synkronointi ja kommunikointi, jatkoa. S�ikeet.

ti 5.6.
  • Luentomonisteen sivut 22-42
  • Lis�� prosessien kommunikoinnista ja synkronoinnista
  • Motivointia moniohjelmointiin: tausta-ajot ja GUIt yht�aikaa
  • S�ikeet vs. prosessit
  • ULT ja KLT -s�ikeistys. Pienet lis�huomiot: saie.txt
  • Prosessien v�linen kommunikointi viestijonon avulla ("send()- ja receive()"). Esimerkkikoodi: chattomyself.c
  • Moniohjelmoinnin ongelmakohtia, jotka pit�isi ratkaista, mm. poissulkeminen ja lukkiutumisen v�ltt�minen
  • Esimerkkikoodi, jossa s�ikeet tulostavat coolisti Matrix-elokuvatyyppisesti merkki kerrallaan yhteiseen tulostusvirtaan: Linkki alkuper�iseen netist� l�ydettyyn esimerkkiin, joka on siis ihan jonkun muun kurssimateriaalia, jonka p�llin huolella t�ysin luvatta. K��nt�minen jalavassa vaati pari muutosta; rohkenen laittaa t�h�n n�m�, vaikkeiv�t ole omia tekeleit�ni: thread_nosem.c (ongelmallinen) ja thread_sem.c (ongelma ratkaistu). K��nn�s vaatii s�iekirjaston eli k��nt�j�option -lpthread.
  • HUOM! Vaikka Java tarjoaa sovellusohjelmoijalle helpot tavat moniohjelmointiin, on n�k�kohdat otettava huomioon siell�kin! Katso esimerkiksi Deadlock.java (Sunin Java-s�ieohjelmointi -introsta)
  • Em. intro muuten opastaa s�ieohjelmointiin Java-n�k�kulmasta, joten siihen kannattaa jossain vaiheessa tutustua, jos ei viel� ole ehtinyt. Ja kirkkaana mieless� t�ll� kurssilla opitut yleiset ongelmat perusteluineen! Ratkaisut vaan on tehty Java-ohjelmoijan kannalta helpoiksi sill�, ett� v�liss� on se virtuaalikone JVM ja ohjelmointikieli tukee suoraan moniohjelmoinnin k�sitteit�, avainsana synchronized ym. S�ieohjelmien tekeminen ei siis ole t�m�n kurssin asiaa, mutta s�ikeiden toteutus, yleiset ongelmat, ratkaisut ja ratkaisuun osallistujat "konepellin alla, p��ll� ja rajapinnassa" ovat.

Yrit�n eksplikoida motivaatioajatuksen: Tietoj�rjestelm�n tekij�n (konepellin p��ll�) tulee ymm�rt�� j�rjestelm�ss� olevien ohjelmakomponenttien suorituksiin (konepellin alla) liittyv� pelikentt�, jotta h�n osaa tehd� tarvittavat suunnitteluratkaisut (abstraktisti). Lopputulos toteutuu rajapinnan avulla (mutta se on pikkujuttu em. yleiskuvaan verrattuna, ja se on ty�kalusta riippuen erilainen). T�m� kurssin puoliv�liin sijoittuva motivaatioajatus ei liity ainoastaan s�ikeisiin, vaan kaikkeen muuhunkin. Se nyt vaan tulee heitetty� sanoiksi t�ss� kohtaa.

Luento 8: Prosessien synkronointi ja kommunikointi loppuun
Pikkuhuomioita microkernel-mallista ja moniprosessorikoneista.

ke 6.6.
  • Luentomonisteen sivut 22-42
  • Jaettu muistialue kommunikointitapana, esimerkiksi rengaspuskuri
  • Moniohjelmoinnin ongelmakohtia, jotka pit�isi ratkaista, mm. synkronointi eli vuoronnusj�rjestyksen hallinta, tuottaja-kuluttaja -ongelma
  • Semafori: k�ytt�j�rjestelm�kutsujen ohjelmointi sovelluksen kriittisen alueen ymp�rille; kyseisten k�ytt�j�rjestelm�kutsujen toteutus ja toiminta KJ-tasolla
  • Semaforin k�ytt� poissulkemiseen
  • Semaforien k�ytt� synkronointiin, tuottaja-kuluttaja -ongelman ratkaiseminen kolmella semaforilla
  • Luennolla kirjoitettu esimerkkiteksti: synkronointi.txt. (luennolla mulla tuli joku oikosulku logiikkaan, mm. unohdin mik� alkuper�inen ongelma olikaan; teksti on nyt koetettu t�ydent�� paremmaksi ja rautalankamaisemmaksi)
  • Pari huomiota microkernel-toteutuksesta verrattuna monoliittiseen k�ytt�j�rjestelm��n
  • Flynn-luokitus
  • Moniprosessorit: Prosessoriteknologian nykytilanne ja tulevaisuus: rinnakkaiset prosessorit ja yksi keskusmuisti; haasteellinen k�ytt�j�rjestelm�n ja laitteiston toteutustavoille; k�ytt�j�n ja sovellusohjelmoijan kannalta moniohjelmoinnin hy�dyt (mm. ohjelmien moniajo, ohjelman sis�iset tausta-ajot, ohjelmien modulaarisuus) sek� ongelmakohdat (mm. lukkiutuminen, suoritteiden synkronointi, poissulun tarve) ihan samoja kuin yhden prosessorin moniajossa.

Luento 9: Muistinhallinta, virtuaalimuisti.

ti 12.6.
  • Luentomonisteen sivut 43-47
  • Luentomonisteen sivut 48-57
  • (ja osittain my�s alkup��n sivut korvaava lis�materiaali)
  • muistit_sivutus.txt Tekstimuotoinen luentohuhru. Graafinen tulossa oikopiirrettyn�...
  • Fyysinen muisti, muistin jakaminen prosesseille
  • Yleisidea, oheismuistin (kovalevyn) k�ytt�
  • Segmentointi, sivutus
  • Toteutuksesta: K�ytt�j�rjestelm�n tietorakenteet, laitteistotason tuki prosessoreissa, TLB
  • Sivuviittausvirhe ja sen k�sittely
  • Muistin organisointi: v�limuistit

Luento 10: Oheislaitteet ja I/O. Tiedostoj�rjestelmist�

ke 13.6.
  • Luentomonisteen sivut 58-64
  • Fyysinen laite, esim. moderni kovalevy (+huomioita muista laitteista; n�pp�imist�, hiiri, monitori, verkkoyhteys)
  • V�yl� ja I/O -moduulit (t. kanavat, ohjaimet, kontrollerit)
  • Keskeytykset, DMA
  • K�ytt�j�rjestelm�n vastuut, tarvittavat ohjelmat ja tietorakenteet
  • Laiteriippuva- ja laiteriippumaton ohjelmisto; abstraktiot
  • Laiteajuri
  • Kovalevyjen ja tiedostoj�rjestelmien kentt��: v�limuistit, RAID, journalointi
  • (jatkuu/tarkennetaan luennolla 11 tai 12, jos j�� kesken)

Luento 11: Pieni syvennys shell-ohjelmointiin

to 14.6. (huomioi paikka: Beeta)
Ensin k�yd��n eilinen aihe loppuun; ehk� n. 20 minuuttia tjsp. eli sivutaan aihetta "laiteajurin toteutuksesta"
  • K�ytiin l�pi demo 1:n lisukkeena ollutta skripti�, joka mm. k�sittelee grafiikkaa komentoriveill� apuohjelmiston avulla
  • Ohjelmoinnin perusrakenteita shelliss�: muuttujat, ehdot, toistot, aliohjelmat, argumentit, rekursio (k�sittely j�i hiukan lyhyeksi; lis�� demossa 4 tai sitten tulevat vastaan joskus my�hemmin)
  • K�ytt�tarkoituksia: mm. login-asetukset, ajoitetut teht�v�t, usein toistuvat komentorimpsut
  • Ymp�rist�muuttujat (ei ehditty k�sittelem��n; demossa 4 tai sitten tulevat vastaan joskus my�hemmin)

Luento 12: Valaistuneempi n�k�kulma tietokoneeseen

ti 19.6.
  • K�ytiin l�pi kertaavia poimintoja aiemmista luennoista, ja yritettiin liitt�� asioita toisiinsa; tuli v�h�n sellanen monologinpajattajaolo.
  • Tietokone tietokoneessa: emulaattorit ja simulaattorit; toteutustapoja ja k�ytt�tarkoituksia
Lis�materiaalia
  • Bochs -- yksi avoin toteutus "tietokoneelle tietokoneessa". T�llaisen kun asennat, voit kokeilla x86-64 -koneellasi (siis sill� asennetulla virtuaalisella Bochsilla) vaarattomasti ihan mit� vaan (eksoottiset k�ytt�j�rjestlm�t, oman k�ytt�j�rjestelm�n tekeminen, ohjelmalliset tietoturvahy�kk�ykset ...)

Luento 13: Linux Kernel

ke 20.6.
  • Linux Kernel l�hdekoodi ja dokumentaatio: n. 8M rivi� koodia (ja dokumentaatiota), n. 2% assembleria, loput C-kielt�. Paljon laitespesifisi� ajureita.
  • Moduulijako toiminnallisen samuuden mukaan; p��tasolla suurin piirtein kurssillamme k�siteltyjen aihekokonaisuuksien nimet (ja pari sellaista, joita emme ehdi t�ll� kurssilla k�sitell�); monta kerrosta moduulihierarkiaa
  • Prosessielementin toteutus Linuxissa: task_struct -tietorakenne
  • Initialisointi: Linuxin ensimm�iset toimenpiteet heti koneen k�ynnist�misen j�lkeen (itse asiassa ns. boot loaderin suorituksen j�lkeen); erilaisia konekieli�.
  • Tiedostoj�rjestelm�n tietorakenteita k�yt�nn�n toteutuksena (n�ihin ei ehditty, mutta siell� ne tietenkin ytimess� olisivat, omassa moduulissaan)
Lis�materiaalia

Luento 14: Kertaus, paikkaukset, loppukeskustelu, tenttit�rpit

to 21.6.
  • Kes�n 2007 tenttit�rpit (PDF)
  • Mit� k�siteltiin, mik� oli t�rkeint�; mit� seuraavaksi
  • Paikattu kirjallinen materiaali julkaistaan sivulla Materiaali. Luennoilla suusta p��sseihin sammakoihin ja asiavirheisiin on aika vaikea t�ss� vaiheessa puuttua muuten kuin kirjoittamalla ne niin kuin ne piti sanoa. Ja sekin on edelleen luennoitsijan (aina) ep�t�ydellinen ymm�rrys asioista. Kriittisyys ja kuulijan vastuu t�ss�kin ...
  • Loppukeskustelu jopa tapahtui! Yhteenveto sivulla Ajatuksia.
  • SUURI KIITOS luennoilla istuneille; teid�n edess� oli mukava yritt�� selvennell� t�rke�ksi n�kem��ni asiaa!

Viimeksi kajottu 2007-06-26.

(Validoi sivu WDG:n validaattorilla)