Etusivu | Materiaali | Luennot | Miksi | -- Ajatuksia -- |
ITKA203 K�ytt�j�rjestelm�t --- kes� 2007 --- Ajatuksia, mielipiteit� ja ideoita
Loppukeskustelu 21.6.2007
Viimeisell� luennolla p��stiin k�ym��n mielest�ni oikein hyv� vajaan puolen tunnin keskustelu opiskelijoiden n�k�kulmasta K�ytt�j�rjestelm�t -kurssiin. Alla on yhteenveto keskustelussa esitetyist� n�k�kohdista:
- Avauskommentin mukaan nykymuotoisen kurssin pakollisuus koko IT-tiedekunnan kaikille opiskelijoille on kyseenalainen
- Toisen mielipiteen mukaan kurssin pakollisuus hyv� asia, mutta se voi olla nykymuodossaan liian laaja (tai syv�llinen) joillekin ryhmille, joille se on pakollinen
- Toisaalta todettiin, ett� yleisestikin eri aloilla ammattilaisen tulee tiet�� asioista syv�llisemmin tai teknisemmin kuin k�yt�nn�n ty�ss� p�ivitt�in tarvitsee
- Tuli esiin, ett� onkohan kurssin alkuper�isess� suunnittelussa otettu huomioon tietojenk�sittelytieteen laitoksen erityistarpeet: mik� on se tietokonearkkitehtuurin ja k�ytt�j�rjestelmien osaamisen taso, joka siell� opetusjohdon k�sityksen mukaan katsotaan ehdottomaksi ydintiet�mykseksi eli pakollisen kurssin arvoiseksi
- "Eik� kurssin turhuutta kuvaa se, ett� voi valmistua maisteriksi tarvitsematta kurssin asioita, esimerkiksi konekieliohjelmointia tai semaforeja, miss��n muualla kuin itse kurssilla?" (T�h�n itse kommentoin, ett� sama voi yht� hyvin kuvata kurssin t�rkeytt� ja tutkintorakenteen hyvyytt� sen osalta: asioita ei k�yd� l�pi muilla p��opintojaksoilla, eik� asioissa ole t�lt� osin p��llekk�isyytt�)
Yleismielipiteeksi muodostui, ett� kurssin asiasis�ll�llinen laajuus on hyv�hk�, mutta joidenkin asioiden tekninen syvyys puolestaan liiahko (joidenkin kohderyhmien motivoitumisen kannalta). Syv�llisen� koettiin esim.
- prosessorin suorituksen yksityiskohdat (v�yl�t, rekisterit, fetch-execute -sykli ja keskeytysten hoidon tekniset yksityiskohdat)
- pinon ja rekisterien k�ytt� aliohjelmakutsussa
- vuorontamisen yksityiskohdat "eiko riit� tieto siit�, ett� jossain on joku vuorontaja, jonka ansiosta voi tehd� tuota tai t�t�; onko siit� pakko tiet�� tarkemmin"
- ja (ymm�rt��kseni lukuisten kommenttien perusteella) vastaavat laitteistoarkkitehtuuri- ja konekielin�k�kohdat muidenkin aiheiden k�sittelyss�.
ITKA203 kes� 2007:n toimenpide-ehdotus: Olisi kenties parempi olla kaksi erilaista ITKA203:n aiheistoa k�sittelev�� kurssia:
- Ensimm�inen kurssi abstraktimpi ja v�hemm�n syv�llinen, pakollinen kaikkiin IT-tutkintoihin, mukaanlukien tietotekniikan opettajat sek� tietoj�rjestelm�tieteen KTM:t.
- J�lkimm�inen kurssi syv�llisempi, kaikille vapaaehtoinen tai pakollinen ainoastaan tietotekniikan FM:lle.
Luennoitsijan k�sityksi� ja mietteit�
Kurssin j�lkeen sain kaksi spontaania palautetta kahdelta tietoj�rjestelm�tieteen opiskelijalta:
Ensimm�inen sis�lsi mm.: "ajatukseni on nyt, ett� ko. kurssi pit�� s�ilytt�� mutta tjt:n opiskelijoille voisi ottaa viel�kin enemm�n rautalanka-mallista ohjausta esim. useampien demojen tms. muodossa joissa teht�isiin enemm�n n�it� asioita. Itse sain paljon paljon uutta tietoa vaikka arvosana ei p��t� huimaava olekaan =)".
Toinen: "voisin n�in ohjelmointia kammoksuvana tietokoneen sis�ll�st� absoluuttisilla nollatiedoilla kurssille joutuneena tietoj�rjestelm�tieteen opiskelijana todeta, ett� loppujen lopuksi hyv� kurssi, joka kannattaa (t�llaisessa muodossa) pit�� opetusohjelmassa jatkossakin. Loppupeleiss� on hyv� ymm�rt�� edes jotain siit� mit� kone on sy�nyt ja miksi se toimii niin kuin toimii."
Itse tajusin vasta kurssin j�lkeen, ett� vaikka laitteiston rooli k�ytt�j�rjestelmien ymm�rt�misess� on suuri ja laiten�k�kohdat t�ytyy ottaa mukaan, k�ytt�j�rjestelmiin voisi ottaa l�ht�kohtaisesti "j�rjestelm�suunnittelullisen" n�k�kohdan. Uskoisin, ett� se voisi olla motivoivampi l�hestymistapa TKTL:n opiskelijoille. Jotenkin t�ll� tavoin ajatuksenkulkuni kiteytyy:
- "K�ytt�j�rjestelm�" on jo nimens� perusteella selv�sti ainakin "j�rjestelm�"; mikseip� siis miettisi sit� silt� pohjalta, ett� mihin tarpeisiin sen j�rjestelm�n� t�ytyy vastata, miss� ymp�rist�ss� se toimii ja miten nykyiset k�ytt�j�rjestelm�t on suunniteltu jotta ne toimivat halutulla tavalla.
- Se on esimerkkitapaus suhteellisen laajasta j�rjestelm�st�, jossa on ohjelmisto- sek� laitteistokomponentteja, datansiirtoa ja synkronointia. Ja kesken��n ristiriitaisia suorituskyky- ja ominaisuustarpeita. Sovellusohjelmien kautta k�ytt�j�rjestelm�ll� on my�s ihmisk�ytt�j� tai useita. Tai mielt�isin asian itse asiassa niin, ett� "tietokonej�rjestelm�" sis�lt�� laitteiston, k�ytt�j�rjestelm�n, sovellusohjelmat sek� ihmisk�ytt�j�t. Ja t�m�n kokonaisuuden toimintaa pit�isi katsella kokonaisvaltaisesti. Mielest�ni k�ytt�j�rjestelm� t�ytt�� kaikki tunnuspiirteet, joita "abstraktisti ajatellen" ep�triviaalilla tietoj�rjestelm�ll� ylip��t��n on. K�ytt�j�rjestelm�n suunnittelua voisi uskoakseni katsoa yleisest� tietoj�rjestelmien suunnittelun n�k�kohdasta. My�s siit� perspektiivist� k�sin t�rm�t��n laitteiston rajoituksiin ja teknologisiin perusteisiin kuten prosessorin ja konekielen toimintaan, mutta ehk� silloin laitteiston l�pik�ynti vaikuttaisi tietoj�rjestelm�opiskelijan silm��n paremmin motivoidulta?
- K�ytt�j�rjestelm�n tavoitteita ja toteutusta voisi avata saman k�sitteist�n kautta, jota muutkin j�rjestelm�kurssit k�ytt�v�t, eli k�sitt��kseni oliopohjaisen mallintamisen kautta.
Kurssin veivaaminen uuteen l�hestymistapaan olisi mielest�ni kokeilemisen arvoista, mutta uskoakseni aika ty�l�s operaatio. Jonkun pit�isi kaivautua todella pintaa syvemm�lle asiaan, ja tehd� jonkun verran l�ksyj� asian tiimoilta. Kielt�m�tt� helpompaa on k�sitell� asiaa nykyisell� tavoin, eli l�hte� liikkeelle niist� artefakteista, joita on olemassa: Von Neumann -tietokone ja er��n k�ytt�j�rjestelm�n l�hdekoodi. Edelleen, t�m� on vain oma ajatukseni, josta ei toistaiseksi ole yleisemmin keskusteltu.
My�s on niin, ett� toistaiseksi kurssilla on "piilossa" nimikkeens� takana my�s fundamentaaleja ohjelmointiin liittyvi� asioita, joita muissa kaikille pakollisissa ydinkursseissa ei k�sitt��kseni ole. Yksi on muistimalli: pinon k�ytt� aliohjelma-aktivaatiossa sek� osoittimen (viitteen) ja datan ("olion") suhde k�yt�nn�ss�. Toinen on rinnakkaisuus ja synkronointi: prosessien ja s�ikeiden yhteistoiminnan ymm�rt�minen. Kolmas on imperatiivinen ohjelmointiparadigma: mit� se on, kun ei ole mahdollisuutta k�ytt�� olioita ohjelmointikieless�. Nelj�s on "virtuaalikonehierarkia" eli tapa, jolla monet ohjelmistot kannattaa toteuttaa alempia kerroksia k�ytt�vien kerrosten avulla.
Toinen kehitysidea, mik� tulee mieleeni, olisi ett� voisi tutkia k�ytt�j�rjestelm�n toimintoja mielekk�iden k�yt�nn�n tapausten kautta: Miten tietokannanhallintaj�rjestelm� k�ytt�� tiedostoj�rjestelm��? Miten WWW-palvelin? Miten graafinen taitto-ohjelmisto? K�ytt�j�rjestelm�t k�nnyk�iss�? K�ytt�j�rjestelm�t digibokseissa? Miten eri ymp�rist�t ovat erilaisia, mik� niille kaikille taas on yhteist�...
Suoraan sanottuna mielest�ni tarvittaisiin eri kurssi "Tietokoneen ja k�ytt�j�rjestelm�n toteutuksesta" ja erillinen kurssi muille t�rkeille seikoille (rinnakkaisuus, muistimalli, ...), jotka nyt on liimattu samaan pakettiin artefaktin toteutuksen kanssa. Ymm�rr�n itse hyvin teknologisen l�hestymistavan, ja minusta se on joillekin erinomaisen sopiva l�hestyminen. Pelk��n kuitenkin, ett� tiedekunnassa on opiskelijoita, joille sama l�hestymistapa on motivaatiota laskeva tekij�.
IT-ydinopetuspaketti on mielenkiintoinen asia, josta t�ytyisi mielest�ni k�yd� ajoittain keskustelua my�s koko opiskelu- ja opettajakunnan kesken, eik� vain pieniss� ty�ryhmiss�.
Viimeksi kajottu 2007-09-05.