Kurssikuvauksia

Fuksiwikistä
Versio hetkellä 28. toukokuuta 2009 kello 15.33 – tehnyt Malloc (keskustelu | muokkaukset) (Ak: Uusi sivu: == Pakollisia kursseja == Tietojenkäsittelytieteen laitoksen tutkintouudistus astuu voimaan lukukaudelle 08-09, monista asioista on vielä epäselvyyttä eikä uusista kursseista ol...)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)

Pakollisia kursseja

Tietojenkäsittelytieteen laitoksen tutkintouudistus astuu voimaan lukukaudelle 08-09, monista asioista on vielä epäselvyyttä eikä uusista kursseista ole voitu vielä kirjoittaa kuvauksia. Lisäksi opetuskieli on mahdollisesti vaihtumassa Javasta Scalaksi.

Tietokone työvälineenä (2 ov, 4 op)

  • Tunnetaan myös nimellä Lapiokurssi tai pelkkä Lapio
  • Tiiviskurssi lukuvuoden alussa (pääaineopiskelijat) sekä normaali kurssi 3. periodissa (sivuaineopiskelijat)

Työvälinekurssi on peruskurssi, jolla opetellaan myöhemmillä kursseilla välttämättömiä käytännön taitoja. Kurssilla opetellaan käyttämään laitoksella käytössä olevia ohjelmistoja ja laitteistoja sekä valitsemaan tehtävään sopiva työkalu. Keskeisimmät Unix/Linux-komennot, HTML-perusteet, tekstieditorien ja tekstinkäsittelyohjelmien käyttö jne. kannattaa osata, ettei sitten myöhemmin kulu pään raapimiseen enemmän aikaa kuin itse tekemiseen. Kokeneet tietokoneharrastajat voivat kyllä suorittaa kurssin tenttimällä, mutta kurssilla on pakollisia harjoitustöitä, jotka täytyy tehdä, vaikka menisi suoraan kokeeseen. Monelle kokeneellekin tietokoneenkäyttäjälle kurssilla todennäköisesti on uutta asiaa ainakin laitoksen järjestelmistä, joten kurssimateriaali ainakin kannattaa lukea läpi. Kurssi on esitietovaatimuksena muille peruskursseille.

Kurssi on tutkinnonuudistuksen jälkeen pakollinen osa tietojenkäsittelytieteen kieli- ja viestintäopintoja.

Anni Rytkönen
Marja Huovinen

Johdatus tietojenkäsittelytieteeseen (2 ov, 4op)

  • 1. ja 2. periodissa

Kurssi on luonteeltaan yleiskatsaus tietojenkäsittelytieteeseen, sisältäen paljon asiaa laidasta laitaan. Kurssilla esitellään myös laitoksen tutkimustoimintaa liittyen kuhunkin osa-alueeseen. Kurssin suoritustapa poikkeaa lähes kaikista muista tietojenkäsittelytieteen kursseista, sillä kurssi suoritetaan tekemällä oppimispäiväkirjoja pienryhmissä. Koska kurssilla ei ole koetta, kurssilla on yleensä pakollinen läsnäolo, joka on suunnilleen 3/4 osaa kerroista.

Kaikkein hyödyllisin kurssi on juuri fuksisyksynä, sillä kurssi sisältää kattavan yleiskatsauksen tietojenkäsittelytieteeseen ja valmistaa opiskelijaa myöhempiin opintoihin antamalla raamit kokonaisuudelle, johon koota tutkintosa. Kurssi pyrkii antamaan yleiskäsityksen alasta.

Eeva Nevalainen

Ohjelmoinnin perusteet (5 op)

  • Tunnetaan myös nimellä Ohpe
  • 1. periodissa sekä uudelleen 3. periodissa

Kurssilla opetetaan fukseille, mitä ovat algoritmit, muuttujat, lauseet, lausekkeet, ohjausrakenteet ja erityisesti oliot. Heti alusta alkaen tehdään omia ohjelmia koneella. Kurssi on tarkoitettu ensisijaisesti niille, joilla ei ole olio-ohjelmointitaustaa, mutta osaavienkin ohjelmoijien olisi syytä lukea kurssimateriaali yhteisen kielen omaksumiseksi ja mennä sitten heti tenttiin. Opetuskielenä on Java.

Ohjelmoinnin jatkokurssi (4 op)

  • Korvaa kurssin Java-ohjelmointi, joka tunnetaan myös nimellä Java
  • 2. periodissa sekä uudelleen 4. periodissa

Kurssin Java-ohjelmointi kuvaus:

Kun ohjelmoinnin perusteet ovat hallussa, syvennytään Javaan, luokkiin ja olioihin. Kurssilla on perinteisesti työläät laskarit, mutta opittavaa asiaakin on paljon ja harva fuksi sisäistää aivan kaiken kurssilla. Kurssilla ei käsitellä Javan kirjastopakkauksia, vaan kielen välineiden (luokat, oliot, metodit, perintä, koosteisuus) hyödyntämistä harjoituksina tehtävissä ohjelmissa. Kuten Ohjelmoinnin perusteet, tämäkin kurssi on erittäin käytännönläheinen - koko ajan ohjelmoidaan. Suurimmat ongelmat tulevat mainittujen käsitteiden ymmärtämisestä, mutta toisin kuin matematiikassa, täällä asioille löytyy heti järkevä käyttötarkoitus.

Kummallakin kurssilla on käytössä suomenkielinen perusopetusteos Ohjelmoinnin perusteet Java-kielellä, jonka on kirjoittanut kurssia syksyisin luennoiva Arto Wikla. Materiaali löytyy myös verkosta laitoksen www-sivuilta.

Kurssia seuraava erillinen harjoitustyö (2 ov, 4 op) on syytä suorittaa mahdollisimman pian näiden kurssien jälkeen. Huomaa kuitenkin, että harjoitustyön saa aloittaa vasta, kun nämä kurssit on suoritettu (eli siis niistä on suoritusmerkintä)! Ohjelmat kannattaa molemmilla kursseilla heti kättelyssä alkaa tehdä koneilla, ettei sitten harjoitustyössä mene sormi suuhun - siellä kun ei ole enää aikaa opetella UNIX-perusteita ja ohjelmien kääntämistä.

Ohjelmoinnin harjoitustyö (4 op)

  • Tunnetaan myös nimellä Java-labra
  • Ryhmiä joka periodissa sekä kesäisin

"Java-labra" laajentaa Java-kurssin asioita. Javan loppupuolen laskarit ovat juuri sitä tärkeää ja olennaista kamaa, jonka joutuu viimeistään täällä opettelemaan, vaikka se kurssilla skipataankin nopeasti ja kiireellä. Tätä tärkeää kamaa ovat mm. tiedostojen käsittely, poik-keukset, rajapintaluokat sekä pakkaukset. Kannattaa siis höristää korviaan jo Java-kurssilla näitä avainsanoja kuullessaan, vaikka mieli tekisikin jättää parit viimeiset laskarit väliin. Myös Java-kurssin aikana mahdollisesti hankittu API-kuvausten lukutaito on hyödyllinen esitieto.

Labrassa on myös runsaasti kokonaan ohi Ohjelmoinnin perusteiden ja Java-kurssin vaatimusten olevaa uutta ja ihmeellistä asiaa: kirjastopakkaukset eli Javan valmiit työkalut, graafisen käyttöliittymän ohjelmointi (Swing-komponenteilla), ohjelman suunnittelu olioita käyttäen, koodin kommentointi ja testaus, projektin dokumentointi... Lisäksi pitää vielä oppia pysymään projektin aikataulussa ihan ilman äidin apua. Ajankäytön opettelu on jo itsessään aikamoinen työmaa.

Kurssilla tehdään oma, kokonainen, pienehkö mutta toimiva ohjelma. Ohjelmasta saa tehdä niin upean kuin osaa, mutta parasta olisi tässä vaiheessa pitää liika into pussissa. Palkkana on kuitenkin vain oppia ja 4 opintopistettä, eikä niitäkään saa, jos megamahtava Hekumometri joka-suuntaisella kutkulaattorilla ei toimi, leviää käsiin ja kaataa kääntäjän kotiovella. Lisäksi ruutia pitää jättää myös ohjelman dokumentin kirjoittamiseen. Ja tämä kaikki pitäisi saada valmiiksi 6 viikossa! Nopea laskutoimitus osoittaa, että jos otat löysästi labran alkupuoliskon, loppupuolella sinulle rapsahtaa jo lähes 30 viikkotuntia pelkkää labratyötä, jos aiot saada ohjelman valmiiksi...

Labraopetus koostuu alun yhteisluennoista, ryhmätapaamisista ja viikoit-taisista henkilökohtaisista ohjauspalavereista. Alkuluennoilla käydään läpi mm. graafisen käyttöliittymän laatimisen perusteita ja dokumentointia, ryhmä-tapaamisissa esitellään omaa työtä muille. Huomaa että alkuluennolle osallistuminen on labraan osallistumisen kannalta pakollista. Ohjauspalavereissa raportoidaan ohjaajalle työn edistymisestä ja ihmetellään yhdessä vaikeita kohtia. Tapaamisten lisäksi ohjaajilla on päivystysajat, jolloin päivys-tävältä ohjaajalta saa käydä kysymässä apua. Labraneuvonta toimii kakkoske-rroksen aulassa (tarkat neuvonta-ajankohdat ilmoitetaan kurssilla).

Työn alkaessa pääsee yleensä itku. Joudut synkkään metsään vain voiveitsen kanssa. Työsi ohjaajalta, kavereilta ja verkosta saat kyllä apua. Ryhmätapaamisiin, ohjelman suunnitteluun ja dokumentointiin, Javan hienouksien opetteluun sekä varsinaiseen koodaukseen menee joka tapauksessa paljon aikaa. Kalenteriin onkin parasta merkitä jo kurssia aloittaessaan ne 80 tuntia, jotka käytät tämän kurssin suorittamiseen ennen deadlinea. Jos Ohjelmoinnin perusteet ja Java-ohjelmointi on tullut suoritettua hieman horjuen (alle kolmosen arvosanalla), on syytä suosiolla lisätä parikymmentä tuntia aikatauluun. Joskushan ne esitiedot on hankittava - viimeistään labratyön ohessa ne saa kantapään kautta, mutta ei ilmaiseksi, vaan useiden hikisten lisätyötuntien hinnalla. Esitiedoista on hyötyä: jos sinulla on jo ammattillista kokemusta koodauk-sesta tai tieteellisten raporttien kirjoittamisesta, voit ehkä hieman pienentää arviota tuntimäärästäsi.

Ohjelmistojen mallintaminen (4 op)

Korvaa kurssin Ohjelmistotekniikan menetelmät (4 op), jonka kuvaus seuraavassa:

Kurssilla annetaan perustiedot ohjelmistojen mallintamisessa käytetyistä työkaluista. Kurssilla piirretään ja luetaan kaavioita jotka kuvaavat ohjelman korkean tason rakennetta. Lisäksi opetukseen sisältyy hitusen testausta ja versionhallintaa, jotka ovat tärkeitä ohjelmointityön apuvälineitä. Tämän kurssin asioista huhutaan olevan hyötyä Ohjelmoinnin harjoitustyön dokumentoinnissa ja erityisesti kurssista on hyötyä harjoitustyössä "Tietokantasovellus", jolle se on pakollinen esitietokurssi.

Tietokantojen perusteet (4 op)

  • Tunnetaan myös nimellä Tikape
  • 2. periodissa sekä uudelleen 4. periodissa

Tietokantojen perusteet -kurssi opettaa relaatiokannat ja SQL:n. Nämä kannattaa painaa alusta alkaen hyvin päähän, sillä niitä tullaan tarvitsemaan lähes joka välissä. Erikoista tässä kurssissa on se, että perinteisiä laskareita ei ole, vaan kaikki tehtävät tehdään koneella www-liittymän kautta ja vain oikeat ratkaisut tuottavat harjoituspisteitä. Järjestelmä myös opastaa tarvittaessa. Tämän lisäksi kurssilla suunnitellaan ryhmätyönä tietokanta. Relaatioalgebran ja joskus hankalaltakin tuntuvan SQL-kielen opettelu on kurssin suorituksen kannalta olennaisen tärkeää.

Kummankin kurssin suoritus tapahtuu käymällä luennoilla ja kurssikokeissa ja suorittamalla lasku- ja mikroharjoituksia. Vain ahkera harjoittelu tekee mestarin, ja juuri siksi kurssin harjoitukset on suunniteltu mahdollisimman hyvin opetusta palvelevaksi. Pelkällä erilliskokeella kurssien läpäiseminen voi onnistua, mutta vaatii jonkun verran hyvää pohjatietoa aiheesta. Harjoituksia kannattaa tehdä huolella. Laiskottelu näillä kursseilla voi kostautua myöhemmin tehtävässä harjoitustyössä "Tietokantasovellus", jossa opiskelijoiden oletetaan osaavan käyttää oikeita apuvälineitä.

Tietokantasovellus (4 op)

  • Aikaisemmin Tietokantasovellusten harjoitustyö eli Tsoha, vanhusten kesken Infolabra tai Infon labra
  • Ryhmiä joka periodissa sekä kesäisin

Ohjelmistotekniikan menetelmät ja Tietokantojen perusteet ovat esitietovaatimuksena Tietokantasovellus-harjoitustyölle. Se on pääasiassa pienen WWW-sovelluksen laatimista SQL-kantaa hyväksi käyttäen. Tämän harjoitustyön keskeinen teema on tietokantojen hallintaan liittyvät asiat sekä myös huolelliseen suunnitteluun keskittyminen.

Opiskelijasta voi kurssilla kirjoitettavan dokumentaation määrä turhauttavalta ja suuri houkutus onkin tehdä dokumentit vasta viimeisenä iltana. Dokumenttien tarkoitus on kuitenkin opastaa opiskelijaa oikeaan suuntaan suunnittelessaan omaa sovellustaan. Harjoitustyön ohjaajaa saa käyttää surutta apuna sekä ohjelmiston suunnittelun ongelmien että dokumenttien laatimisen kanssa.

Itse toteutuksen tekeminen onkin sitten vähemmän työlästä, jos suunnittelu on kunnolla tehty. WWW-sivustolle tulevan rakennelmansa saa toteuttaa varsin monella tavalla tietokantamoottoreissakin on valinnan varaa. Suurin osa kurssin toteutuksista tehdään joko PHP:llä tai Javalla, mutta jos intoa löytyy jonkin eksoottisemman ympäristön opettelemiseen niin sekin onnistuu.

Jani Kielenniva
Niki Eskola
Eeva Nevalainen

Tietokoneen toiminta (4 op)

  • Tunnetaan myös nimellä Tito
  • 2. periodissa sekä uudelleen 4. periodissa

Kurssilla opitaan perusteet siitä, mitä tietokoneen sisällä oikeasti tapahtuu, eli tutustutaan mm. prosessorin toimintoihin, yhden ohjelman suoritukseen koneessa ja opetellaan hiukan symbolista konekieltä. Tällä konekielellä tosin ei ole kovinkaan paljon tekemistä assemblerin kanssa vaan kurssilla käytetään laitoksen omaan opetuskäyttöön väsättyä Titokone-simulaattoria. Pääpaino on kuitenkin enemmän teorian ymmärtämisessä. Monet väittävät kurssin olevan työläimpiä ensimmäisen vuoden peruskursseista. Oppimisessa auttaa Häkkisen hyvä kurssimoniste, jossa monet monimutkaisetkin asiat on selitetty varsin helppotajuisesti. Laskuharjoituksiin tulee varata kohtuullisesti aikaa, sillä vastaukset harvemmin löytyvät suoraan lähdekirjallisuudesta - ne on itse löydettävä soveltamalla opittua asiaa.

Anni Rytkönen
Jenny Sandgren
Niki Eskola

Tietorakenteet (8 op)

  • Tunnetaan myös nimellä Tira
  • 1. ja 2. periodissa sekä uudelleen 3. ja 4. periodissa

Kas tässäpä vasta mielenkiintoinen ja hyödyllinen kurssi, varsinkin ohjelmointitouhuista 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 erilaisten tietorakenteiden käsittelyyn. Voitte olla varmoja, että kurssin suoritettuanne ainakin perustietorakenteet (taulukko, pino, lista) ovat syöpyneet 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.

Lajitovereideni keskuudesta on kuulunut hieman jupinaa, että TIRA:n kurssi olisi aika 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
Marja Huovinen

Tietorakenteiden harjoitustyö (4 op)

  • Tunnetaan myös nimellä Tiralabra
  • Ryhmiä joka periodissa sekä kesäisin

Tietorakenteiden harjoitustyö eli TIRA:n labra on suoraa 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 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 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 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 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)

  • Tunnetaan myös nimellä Lama
  • Syksyisin

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.

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.


Maria Huovinen
Jouni Siren
Tommi Tuura 71660185027256859176578

Tietoliikenteen perusteet (4 op)

  • Tunnetaan myös nimellä Tilpe
  • 4. 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.

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)

Johdatus tekoälyyn (4 op)

Rinnakkaisohjelmointi (4 op)

Ohjelmistotuotanto (4 op)

Ohjelmistotuotantoprojekti (9 op)

Tieteellisen kirjoittamisen kurssi (x op)

Valinnaisia kursseja

C-Ohjelmointi (4 op)

  • Tunnetaan myös nimellä C
  • 3. periodissa

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

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

Kurssin taitoja voi hioa vielä pidemmälle kurssilla "Unix-sovellusohjelmointi".

Anni Rytkönen
Niki Eskola