Laskennallisen tekniikan opiskelu käytännössä – tietojenkäsittelyn perusteet

Toisen vuoden laskennallisen tekniikan opiskelija Sofia Tuominen kertoo tietojenkäsittelyn perusteiden kurssista.

Tietojenkäsittelyn perusteet kuuluu laskennallisen tekniikan kandivaiheen pakollisiin kursseihin. Se käydään ensimmäisen opintovuoden alkaessa, ja kurssi kestää kaksi periodia eli koko syyslukukauden ajan. Kurssi on pakollinen myös tietotekniikan opiskelijoille.

Kurssin tavoitteena on, että jokainen saa hyvän yleiskuvan tietojenkäsittelyn perusteista. Kurssilla harjoitellaan yleistä sekä algoritmista ongelmanratkaisua ja samalla perehdytään siihen, mitä on tieto, kuinka tietoa koodataan ja miten sitä muunnetaan.

Ongelmalähtöistä oppimista

Kurssi koostuu luennoista ja harjoituksista. Harjoituksissa käydään läpi viikoittaisten, itsenäisten teoria- ja ongelmanratkaisutehtävien ratkaisut yhdessä opettajan kanssa. Tämän lisäksi joka viikko on OLO-harjoituksia, joissa pienryhmissä tehdään erilaisia ongelmanratkaisutehtäviä.

Ongelmalähtöinen oppiminen eli OLO auttaa sisäistämään luennoilla opittuja asioita, ja harjoituksissa on tarkoituksena hyödyntää opittuja asioita käytännön tilanteissa. Joka toinen viikko saadaan ongelmavirike, eli joku ongelma ratkaistavaksi, jota pohditaan yhdessä ryhmän kanssa.

Ryhmän ratkaisut esitetään lopuksi muille ryhmille sekoittamalla ryhmiä ja keskustelemalla muiden ryhmien jäsenten kanssa oman ryhmän ajatuksista ja ratkaisuista. Näin kurssin aikana oppii tietojenkäsittelyn lisäksi paljon ryhmätyöskentelystä ja myöskin siitä, että yhdelle ongelmalle voi olla useita hyviä ratkaisuja.

Esimerkiksi yhdessä OLO-harjoituksessa tehtävämme oli luoda algoritmi, joka pelasi ristinollaa häviämättä vastustajalleen. Loimme paperille ohjelman, joka osoittaa, millaisella algoritmilla ristinollan pelaamisongelma voidaan ratkaista. Haasteita tehtävän suorittamiseen aiheutti esimerkiksi se, että emme voineet tietää, tekisikö vastustaja itselleen parhaita mahdollisia siirtoja vai pelaisiko vastustaja huonosti. Algoritmin pitäisi pystyä ottamaan huomioon kaikki mahdolliset pelitilanteet.

Ongelmalähtöisiä tehtäviä tekemällä kurssin aikana oppii tietojenkäsittelyn lisäksi paljon ryhmätyöskentelystä ja myöskin siitä, että yhdelle ongelmalle voi olla useita hyviä ratkaisuja.

Näin kurssin aikana oppii tietojenkäsittelyn lisäksi paljon ryhmätyöskentelystä ja myöskin siitä, että yhdelle ongelmalle voi olla useita hyviä ratkaisuja.

Vaikka tietojenkäsittely on koodaamiseen liittyvää, ei kurssin aikana koodata toimivia ohjelmia. Tavoitteena on sen sijaan ymmärtää, mitä ohjelman tulisi tehdä. Samalla opitaan, millaisia ongelmia algoritmeilla voidaan ratkaista. Oikeita ohjelmia koodatessa on tärkeää tietää, kuinka ohjelmat tarkalleen ottaen toimivat.

Kaikkia ongelmia ei voida ratkaista algoritmisesti, ja tästä esimerkkinä pohdimme, voisiko koko yliopiston lukujärjestyksen luomisen automatisoida algoritmin avulla. Lukujärjestyksen tekevän algoritmin luominen on kuitenkin erittäin hidasta ja työlästä, koska algoritmin pitäisi kyetä ottamaan todella monta asiaa huomioon.

Käsittele, säilö, tiivistä ja salaa

Ongelmanratkaisun lisäksi kurssilla käsitellään tietoa ja sen säilömistä tietokoneeseen. Tässä aiheessa päästään tarkastelemaan, miten tieto erilaisten algoritmien avulla ensin muunnetaan binääriluvuiksi ja lopulta tallennetaan tietokoneen muistiin. Tällä tavalla saa käsityksen siitä, miten ja mihin algoritmeja voi käytännössä käyttää.

Kurssilla harjoitellaan myös tiedon tiivistämistä sekä salausta. Tiedon salaamiseen liittyi ryhmätehtävä, jossa piti yrittää murtaa salakirjoitettuja viestejä. Lisäksi pääsimme kirjoittamaan toiselle ryhmälle salakirjoitetun viestin, joka toisen ryhmän piti yrittää ratkaista. Tiedon salaamiseen on olemassa paljon erilaisia algoritmeja, joihin tutustuimme samalla, kun teimme tehtäviä.

Kurssilla oppi paljon ongelmanratkaisusta, algoritmeista ja niiden suunnittelusta. Kurssilla oli hauskinta se, että uutta tietoa pääsi heti käyttämään mielenkiintoisia ongelmia ratkaistaessa.

Jätä meille kommentti