Ero sivun ”Kurssikuvauksia” versioiden välillä

ei muokkausyhteenvetoa
Ei muokkausyhteenvetoa
Ei muokkausyhteenvetoa
Rivi 99: Rivi 99:
* 1. ja 2. periodissa sekä uudelleen 3. ja 4. periodissa
* 1. ja 2. periodissa sekä uudelleen 3. ja 4. periodissa


Kas tässäpä vasta mielenkiintoinen ja hyödyllinen kurssi, varsinkin ohjelmointitouhuista
Tietorakenteet on mielenkiintoinen ja hyödyllinen kurssi sekä algoritmeistä että ohjelmointitouhusta kiinnostuineille (yleensä nämä leirit omaavat hyvin poikkeavat mielipiteet perus- ja aineopintojen kursseista). Käytännön ohjelmointiprojekteissa tulee jatkuvasti vastaan tilanteita, joissa pitäisi käsitellä suuria tietomääriä: lisätä, poistaa, etsiä ja järjestellä tietoalkiota. Tietorakenteet-kurssilla opetetaan lukuisia toinen toistaan näppärämpiä keinoja hallita tietoröykkiöitä. Oikeastaan vasta kurssin asiat hallittuaan voi sanoa oikeasti osaavansa koodata. Tietorakenteet on myös ensimmäisiä peruskursseja, joilla kurkistetaan tietojenkäsittelyn teoreettisempaan puoleen (algoritmit ja niiden analysointi).
innostuneille. Käytännön ohjelmointiprojekteissa tulee jatkuvasti vastaan tilanteita,
joissa pitäisi käsitellä suuria tietomääriä: lisätä, poistaa, etsiä ja järjestellä
tietoalkiota. Tietorakenteet-kurssilla opetetaan lukuisia toinen toistaan näppärämpiä
keinoja hallita tietoalkioröykkiöitä. Oikeastaan vasta kurssin asiat hallittuaan voi
sanoa oikeasti osaavansa koodata. Tirakurssi on myös ensimmäisiä peruskursseja, joilla
kurkistetaan tietojenkäsittelyn teoreettisempaan puoleen (algoritmit ja niiden
analysointi).


Kuten kurssin nimestä voi hieman aavistellakin, valtaosa opetuksesta keskittyy
Kuten kurssin nimestä voi aavistellakin, valtaosa opetuksesta keskittyy erilaisten tietorakenteiden käsittelyyn. Opiskelija voi olla varma, että kurssin suoritettuaan ainakin perustietorakenteet (taulukko, pino, lista) ovat syöpyneet
erilaisten tietorakenteiden käsittelyyn. Voitte olla varmoja, että kurssin
lähtemättömästi tajuntaan. Hämäriä muistikuvia saattaa löytyä jopa hieman eksoottisemmistakin tietorakenteista kuten puista, hajautustauluista ja verkoista. Tietorakenteiden lisäksi kurssilla käydään läpi muutamia mielenkiintoisia haku- ja
suoritettuanne ainakin perustietorakenteet (taulukko, pino, lista) ovat syöpyneet
järjestysalgoritmeja ja raapaistaan kevyesti algoritmien tehokkuusanalyysiä.
lähtemättömästi tajuntaanne. Hämäriä muistikuvia saattaa löytyä jopa hieman
eksoottisemmistakin tietorakenteista kuten puista, hajauttimista ja verkoista.
Tietorakenteiden lisäksi kurssilla käydään läpi muutamia mielenkiintoisia haku- ja
järjestysalgoritmeja ja raapaistaan kevyesti aikavaativuusanalyysiä.


Kurssin sisällön luonteesta johtuen opiskelijan on hyvä verestää matematiikan taitojaan ennen kurssia ja kurssin pakollinen esitietovaatimus onkin "Johdatus diskreettiin matematiikkaan". Matemaattista esitietovaatimusta ei kuitenkaan ole syytä kavahtaa, sillä loppujen lopuksi itse käsiteltävät asiat ovat suhteellisen yksinkertaisia.  
Kurssin ehdottomasti pakollinen esitietovaatimus on "Johdatus diskreettiin matematiikkaan". Matemaattista esitietovaatimusta ei kuitenkaan ole syytä kavahtaa, sillä loppujen lopuksi itse käsiteltävät asiat ovat suhteellisen yksinkertaisia ja liittyvät lähinnä tietorakenteiden formaaliin esittämiseen. Jos esitietovaatimukset eivät ole kunnossa, kannattaa harjoitella ja osallistua esitietokokeeseen, ja päästä kurssille tätä kautta. Tietorakenteet -kurssin käymättä jättäminen ensimmäisenä keväänä lisää valmistumisaikaa vuodella, koska kurssi järjestetään vain kerran vuodessa.


Lajitovereideni keskuudesta on kuulunut hieman jupinaa, että TIRA:n kurssi olisi aika
Laskuharjoitusten tekeminen on tässä kurssissa en-si-si-jai-sen tärkeää! Suurin ongelma opiskelijoille kurssissa lienee, että kelkasta putoaa hyvin helposti, jos jättää kerran laskaritehtävät tekemättä. Jos jokin asia menee yli ymmärryksen, kannattaa heti vaatia luennoijaa tai laskarinpitäjää vääntämään asia rautalangasta ettei tajuntaan jää mustia aukkoja. Kurssi ei loppujen lopuksi ole vaikea, joskin monelle hyvin työläs. Toisaalta laitokselta on vaikea löytää henkilöä, joka ei pitäisi kurssia ehdottoman hyödyllisenä. Syksyllä hyvin menestyneelle opiskelijallekin koe saattaa tulla järkytyksenä - ei sen takia että se olisi vaikea, mutta kokeesta ei pääse läpi, jos ei osaa soveltaa. Tästä kertoo sekin että kokeeseen saa ottaa A4-muistilapun mukaan. Perinteisesti läpipääsyprosentti on kuitenkin ollut vähintään syksyn ohjelmointikurssien tasoa.
vaikea ja työläs - itse en tällaista havainnut, koska kaikki oli mielestäni niin
kiinnostavaa, että asioita oli suorastaan ilo opiskella (olenko perverssi?).
Myönnettäköön, että kurssille on tungettu runsaasti tavaraa ja osa laskaritehtävistä
vaatii kohtuuttoman paljon aikaa, paperia ja hermoja, mutta ahkeralla ja huolellisella
työskentelyllä niistäkin selviää. Parhaiten asiat oppii, kun tekee kiltisti
laskaritehtävät (ainakin edes yrittää) ja osallistuu aktiivisesti luennoille ja
laskareihin. Jos jokin asia menee yli ymmärryksen, kannattaa heti vaatia luennoijaa tai
laskarinpitäjää vääntämään sama rautalangasta, ettei tajuntaan jää mustia aukkoja.


Pauli Misikangas <br />
Tietorakenteet -kurssi on tietojenkäsittelytieteelle "sitä itseään" ja Helsingin yliopiston TKT-laitoksen erikoisuus ja ylpeys. Monien huippuyliopistojen (MIT) tietojenkäsittelytieteen opetukselle tyypillistä on, että tietorakenteita opetetaan kattavasti heti ensimmäisenä opiskeluvuonna. Muissa Suomen yliopistoissa käpistelijöiden ymmärrys tietorakenteista ja tehokkaista ratkaisuista on matalahkolla tasolla verrattuna laitoksen opiskelijaan. Kuulostaako hehkuttamiselta? Ota selvää ja varmistu.
Marja Huovinen


=== Tietorakenteiden harjoitustyö (4 op) ===
=== Tietorakenteiden harjoitustyö (4 op) ===


* Tunnetaan myös nimellä Tiralabra
* Tunnetaan myös nimellä Tiralabra
* Ryhmiä joka periodissa sekä kesäisin
* Ryhmiä melkein joka periodissa ja kesäisin


Tietorakenteiden harjoitustyö eli TIRA:n labra on suoraa jatkoa
Tietorakenteiden harjoitustyö eli Tiralabra on käytännön jatkoa Tietorakenteet-kurssille. Kurssilla pääsee leikkimään tietorakenteilla ihan oikeasti, eli tekemään kokonaisen ohjelman, jossa hyödynnetään joitain tietorakenteita ja algoritmeja. Ohjelma tulee tietenkin myös testata ja dokumentoida, mutta dokumentointivaatimukset ovat minimaaliset aiempiin harjoitustöihin verrattuna. Sallitut ohjelmointikielet riippuvat pitkälti harjoitustyön ohjaajasta, mutta yleensä laitoksella opetuskielinä olevat ohjelmointikielet ovat käytössä.
Tietorakenteet-kurssille. Kurssilla pääsee leikkimään tietorakenteilla ihan oikeasti,
eli tekemään kokonaisen ohjelman, jossa hyödynnetään joitain tietorakenteita ja
algoritmeja. Ohjelma tulee tietenkin myös testata ja dokumentoida, mutta
dokumentointivaatimukset ovat varsin minimaaliset aiempiin harjoitustöihin verrattuna.
Sallitut ohjelmointikielet riippuvat pitkälti harjoitustyön ohjaajasta, mutta yleensä
laitoksella opetuskielinä olevat ohjelmointikielet ovat käytössä.


Harjoitustyö on huomattavasti vaativampi kuin Ohjelmoinnin harjoitustyö, joten
Harjoitustyö on vaativampi kuin Ohjelmoinnin harjoitustyö, joten kurssille ei kannata ilmoittautua, ellei ole varannut riittävästi aikaa työn tekemiseen. Keskimäärin työhön menee n. 80 työtuntia, mutta tehtävän aiheesta ja omista taidoista
kurssille ei kannata ilmoittautua, ellei ole varannut riittävästi aikaa työn tekemiseen.
riippuen työtuntimäärä saattaa vaihdella huomattavastikin suuntaan tai toiseen. Jos työn aloittaa, sitä ei kannata lopettaa kesken, vaikka vähän vastustaisikin: harjoitustyön keskeyttäneet ovat muita heikommassa asemassa, kun valitaan labraryhmään pääseviä.
Keskimäärin työhön menee n. 80 työtuntia, mutta tehtävän aiheesta ja omista taidoista
riippuen työtuntimäärä saattaa vaihdella huomattavastikin suuntaan tai toiseen. Jos työn
aloittaa, sitä ei kannata lopettaa kesken, vaikka vähän vastustaisikin: harjoitustyön
keskeyttäneet ovat muita heikommassa asemassa, kun valitaan labraryhmään pääseviä.


Monet ovat kokeneet TIRA:n labran varsin antoisaksi kurssiksi: työtä tehdessä saa
Kurssilta kannattaa ottaa kaikki hyöty irti, koska seuraava paikka, jossa ohjelmointitaitoja koetellaan, on yleensä Ohjelmistotuotantoprojekti ja siellä ohjelmoinnin oletetaan jo sujuvan rutiinilla.
rutkasti käytännön kokemusta mm. UNIX-käyttöjärjestelmästä, ohjelmointityökaluista ja
tekstinkäsittelyohjelmista. Kurssilta kannattaa ottaa kaikki hyöty irti, koska seuraava
paikka, jossa ohjelmointitaitoja koetellaan, on yleensä Ohjelmistotuotantoprojekti ja
siellä ohjelmoinnin oletetaan jo sujuvan rutiinilla.
 
Pauli Misikangas


=== Laskennan mallit (6 op) ===
=== Laskennan mallit (6 op) ===
Rivi 166: Rivi 130:
Kurssi luennoidaan koko lukukauden mittaisena niin, että viikossa on kaksi luento- ja kaksi laskarituntia.
Kurssi luennoidaan koko lukukauden mittaisena niin, että viikossa on kaksi luento- ja kaksi laskarituntia.


Laskennan mallit on teoreettinen kurssi, jolla opetellaan varsin käytännöllisiä työvälineitä. Kurssilla käsitellään mm. laskennallisia ongelmia, äärellisiä automaatteja, säännöllisiä lausekkeita, kontekstittomia kielioppeja ja Turingin koneita. Kurssi saattaa tuntua hankalalta alun pallo-nuoli-automaattipiirtelyiden jälkeen, mutta kun tottuu lukemaan täsmällistä formaalia (matemaattista) esitystapaa, itse asia ei olekaan niin kovin kummallista. Loppujen lopuksi kysymys on vain menetelmistä, joilla voidaan jäsentää ja käsitellä erilaisia määrämuotoisia merkkijonoja, kuten aritmeettisia lausekkeita, päivämääriä ja muuta vastaavaa.
Laskennan mallit on teoreettinen kurssi, jolla opetellaan varsin käytännöllisiä työvälineitä. Kurssilla käsitellään mm. laskennallisia ongelmia, äärellisiä automaatteja, säännöllisiä lausekkeita, kontekstittomia kielioppeja ja Turingin koneita. Kurssi saattaa tuntua hankalalta alun pallo-nuoli-automaattipiirtelyiden jälkeen, mutta kun tottuu lukemaan täsmällistä formaalia esitystapaa, itse asia ei olekaan niin kovin kummallista. Loppujen lopuksi kysymys on vain menetelmistä, joilla voidaan jäsentää ja käsitellä erilaisia määrämuotoisia merkkijonoja, kuten aritmeettisia lausekkeita, päivämääriä ja muuta vastaavaa.
 
Tutuiksi tulevat myös Turingin koneet, jotka ovat äärimmäisen kömpelö tietokoneen teoreettinen malli, mutta samalla myös yksinkertaisin mahdollinen mekaanisen laskentakoneen malli. Loppuhuipennuksena törmätään Ricen lauseeseen (Kaikki Turingin koneiden epätriviaalit semanttiset ominaisuudet ovat ratkeamattomia.), jonka todistus vääntää ensinäkemältä aivot umpisolmuun. Jos lauseen merkityksen onnistuu ymmärtämään (spoileri: tietokoneohjelma ei voi yleisessä tapauksessa selvittää, mitä toinen ohjelma tekee), ymmärtää jo paljon siitä, mitä ohjelmallisesti on mahdollista tehdä. Epäselvää on, mitä tämä kertoo ihmisen ajattelun rajoista. Vallitseva uskomus on, ettei ihminenkään voi yleisessä tapauksessa selvittää, mitä jokin tietokoneohjelma tekee.
 
Älä turhaan masennu, jos pumppauslemma ja kumppanit menevät aluksi kertakaikkiaan yli hilseen, monella muulla on sama tilanne. Kurssia käydessä ei välttämättä ole minkäänlaista mielikuvaa, mihin kurssilla käsiteltäviä asioita voisi tarvita, mutta myöhemmin opinnoissa asioihin voi törmätä esim. ohjelmointikielten kääntäjien tai rakenteisten dokumenttien käsittelyn yhteydessä, joista voitaneen mainita XML-dokumenttien muuttaminen esimerkiksi HTML-esitysmuotoon. Kurssi kannattaa kuitenkin käydä läpi ajatuksen kanssa, koska mekaaninen ulkoapänttääminen ei juuri auta. Asiat pitää oikeasti tajuta, jotta kurssista suoriutuu.


Tutuiksi tulevat myös Turingin koneet, jotka ovat äärimmäisen kömpelö tietokoneen teoreettinen malli, mutta samalla myös yksinkertaisin mahdollinen mekaanisen laskentakoneen malli. Loppuhuipennuksena törmätään surullisenkuuluisaan pysähtymisongelmaan. Kun sen merkityksen onnistuu ymmärtämään (spoileri: tietokoneohjelma ei voi yleisessä tapauksessa selvittää, mitä toinen ohjelma tekee), ymmärtää jo paljon siitä, mitä ohjelmallisesti on mahdollista tehdä. Epäselvää on, mitä tämä kertoo ihmisen ajattelun rajoista. Vallitseva uskomus on, ettei ihminenkään voi yleisessä tapauksessa selvittää, mitä jokin tietokoneohjelma tekee.


Maria Huovinen<br>
Älä turhaan masennu, jos pumppauslemma ja kumppanit menevät aluksi kertakaikkiaan yli hilseen, monella muulla on sama tilanne. Eräs vitsi laitoksella onkin, että laitokselta on vaikea löytää opiskelijaa, joka osaisi pumppauslemman selittää ("meni kokeessa oikein, en tiedä mitä tein"). Kurssia käydessä ei välttämättä ole minkäänlaista mielikuvaa, mihin kurssilla käsiteltäviä asioita voisi tarvita, mutta myöhemmin opinnoissa asioihin voi törmätä esim. ohjelmointikielten kääntäjien tai rakenteisten dokumenttien käsittelyn yhteydessä, joista voitaneen mainita esimerkiksi XML-dokumenttien muuttaminen esimerkiksi HTML-esitysmuotoon. Kurssi kannattaa kuitenkin käydä läpi ajatuksen kanssa, koska mekaaninen ulkoapänttääminen ei juuri auta. Tietorakenteet -kurssin tapaan asiat pitää oikeasti tajuta, jotta kurssista suoriutuu.
Jouni Siren<br>
Tommi Tuura
71660185027256859176578


=== Tietoliikenteen perusteet (4 op) ===
=== Tietoliikenteen perusteet (4 op) ===


* Tunnetaan myös nimellä Tilpe
* Tunnetaan myös nimellä Tilpe
* 4. periodissa
* 3. periodissa


Kurssilla paneudutaan internetin peruskäsitteistöön ja -tekniikoihin. Kurssi etenee käymällä lävitse TCP/IP-pinoa taso tasolta. Tutuksi tulee siis pääpiirteittäin kaikki WWW-selaimen sielunelämästä aina verkkokortin bittitasolle asti. Kurssi antaa hyvät perustiedot tietoliikenteestä, jotka ovat tarpeen kaikkien eri linjojen opiskelijoille.
Kurssilla paneudutaan internetin peruskäsitteistöön ja -tekniikoihin. Kurssi etenee käymällä lävitse TCP/IP-pinoa taso tasolta. Tutuksi tulee siis pääpiirteittäin kaikki WWW-selaimen sielunelämästä aina verkkokortin bittitasolle asti. Kurssi antaa hyvät perustiedot tietoliikenteestä, jotka ovat tarpeen kaikkien eri linjojen opiskelijoille.


Mikäli kurssilla vastaantuleva lyhenteiden ja käsitteistön määrä alkaa hirvittää, kurssilla käytettävä kurssikirja on mitä mainion apu pelonlievitykseen.
Mikäli kurssilla vastaantuleva lyhenteiden ja käsitteistön määrä alkaa hirvittää, kurssilla käytettävä kurssikirja on mitä mainion apu pelonlievitykseen.
Harri Hämäläinen


=== Tietoturvan perusteet (4 op) ===
=== Tietoturvan perusteet (4 op) ===
Rivi 208: Rivi 164:
* 3. periodissa
* 3. periodissa


C on aineopintojen valinnainen kurssi, joka on tarkoitettu ohjelmoinnin perusasiat
C on aineopintojen valinnainen kurssi, joka on tarkoitettu ohjelmoinnin perusasiat osaaville ja perustietorakenteet tunteville. Ensin kannattaa siis suorittaa suosiolla ensimmäisen vuoden ohjelmointikurssit harjoitustöineen sekä Tietorakenteet. Javalla ohjelmoineille kielen syntaksin omaksuminen on helppoa, mutta pelkän ulkoisen samannäköisyyden ei kannata antaa pettää itseään. C on käsitemaa-ilmaltaan ja rakenteiltaan varsin erilainen kieli kuin Java ja sitä myös käytetään hieman erilaisiin tarkoituksiin. C:llä tehdään mm. koneenläheisiä, suurta tehoa vaativia, usein tekstipohjaisia työkaluohjelmia. Javalla taas on mukavampi rakennella sekä ohjelmoijan että käyttäjän kannalta turvallisia sovelluksia, usein graafisia sellaisia - mikäli
osaaville ja perustietorakenteet tunteville. Ensin kannattaa siis suorittaa suosiolla
ensimmäisen vuoden ohjelmointikurssit harjoitustöineen sekä Tira. Java-kurssin
käyneille kielen syntaksin omaksuminen on helppoa, mutta pelkän ulkoisen
samannäköisyyden ei kannata antaa pettää itseään. C on käsitemaa-ilmaltaan ja
rakenteiltaan varsin erilainen kieli kuin Java ja sitä myös käytetään hieman erilaisiin
tarkoituksiin. C:llä tehdään mm. koneenläheisiä, suurta tehoa vaativia, usein
tekstipohjaisia työkaluohjelmia. Javalla taas on mukavampi rakennella sekä ohjelmoijan
että käyttäjän kannalta turvallisia sovelluksia, usein graafisia sellaisia - mikäli
nopeus ei ole kriittisin tekijä.
nopeus ei ole kriittisin tekijä.


Muistiosoittimien ja muistinhallinnan kanssa pelaaminen, joka Javassa on automaattista,
Muistiosoittimien ja muistinhallinnan kanssa pelaaminen, joka Javassa on automaattista, voi osoittautua hankalaksi omaksua. Myöskään linkitettyjen listojen ohjelmointi, johon perehdytään varsin tarkkaan, ei tule vastaan ohjelmoinnin peruskursseilla. Kurssilla opetetaan nykyään myös puiden ja verkkojen (siis tietorakenteita nämäkin) käsittelyä, tosin vähemmällä tarkastelulla kuin esim. Tietorakenteet-kurssilla. Tämä kurssi tuo varsin mukavaa vaihtelua ensimmäisen syksyn Java-annostukseen varsinkin, jos olet ohjelmoinut C:llä aikaisemmin.
voi osoittautua hankalaksi omaksua. Myöskään linkitettyjen listojen ohjelmointi, johon
perehdytään varsin tarkkaan, ei tule vastaan Ohjelmoinnin perusteissa. Kurssilla
opetetaan nykyään myös puiden ja verkkojen (siis tietorakenteita nämäkin) käsittelyä,
tosin hieman vähemmällä tarkastelulla kuin esim. Tietorakenteet-kurssilla. Tämä kurssi
tuo varsin mukavaa vaihtelua ensimmäisen syksyn Java-annostukseen varsinkin, jos olet
ohjelmoinut C:llä aikaisemmin.


Kurssiin kuuluu pakollinen harjoitustyö, jota ilman kurssia ei siis läpäise. Vaikka
Kurssiin kuuluu pakollinen harjoitustyö, jota ilman kurssia ei siis läpäise. Vaikka harjoitustyö ei vaikuta suurelta, se on yllättävän työläs ja on useimmiten syy kurssin keskeyttämiselle. Sille kannattaa siis varata aikaa huomattavasti enemmän kuin se
harjoitustyö ei vaikuta suurelta, se on yllättävän työläs ja on useimmiten syy kurssin
keskeyttämiselle. Sille kannattaa siis varata aikaa huomattavasti enemmän kuin se
"viimeinen yö ennen palautusta".
"viimeinen yö ennen palautusta".


Kurssin taitoja voi hioa vielä pidemmälle kurssilla "Unix-sovellusohjelmointi".
Kurssin taitoja voi hioa vielä pidemmälle kurssilla "Unix-sovellusohjelmointi".
Anni Rytkönen <br />
Niki Eskola