Loppusanat

Kuten vanha sanonta kertoo, kaikki hyvä päättyy aikanaan. Tiran loppuminen jättää varmasti monen elämään – tai ainakin aikataulutukseen – aukon, jonka täyttäminen voi olla hankalaa. Kurssin loppumisen ei kuitenkaan tarvitse olla algoritmien harrastamisen loppu: laitoksellamme on monia algoritmeihin liittyviä kursseja, ja internet on pullollaan materiaalia algoritmeista kiinnostuneelle!

Ikävä kyllä legendaarinen Algoritmit ongelmanratkaisussa -kurssi järjestettiin nyt keväällä, joten seuraavaa iteraatiota saattaa joutua odottamaan hetken (kurssia on pidetty kahden vuoden välein). Kurssi koostuu TMC-tehtäviä muistuttavista algoritmisista ohjelmointitehtävistä, ja arvosana määräytyy pelkästään ratkaistujen tehtävien määrän perusteella, eli esimerkiksi tenttiä ei ole. Vanhat tehtävät ovat edelleen saatavilla CSES-järjestelmässä.

Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit, tai lyhyemmin 'tiralabra', on tämän kurssin asioihin liittyvä harjoitustyökurssi. Sen laajuus on 3-5 opintopistettä, ja siinä on tarkoituksena toteuttaa normaalia TMC-tehtävää laajempi algoritminen projekti. Normaaleista aineopintotason kursseista syksyisin järjestettävä Laskennan mallit on tiraa lähimpänä, joskin kyseessä on huomattavasti teoreettisempi kurssi.

Nyt jo jokasyksyiseksi perinteeksi muodostunut Kilpaohjelmointi -kurssi (entinen Ohjelmointihaasteita II), järjestetään varmaankin myös ensi syksynä. Kurssin aikana tehdään ohjelmointikilpailuita 1-3 hengen joukkueissa, ja nämä tehtävät ovat TMC-tehtävien kaltaisia algoritmisia ongelmia. Kurssi on perinteisesti huipenunut pohjoismaiden yliopistojen väliseen ohjelmointikilpailu NCPC:hen, joka on ensimmäinen karsintavaihe kansainvälisessä ICPC-kilpailussa. Suosittelen kurssia lämpimästi jokaiselle, joka on nauttinut TMC-tehtävien tekemisestä. Ja muistakaa: tärkeintä ei ole voitto, vaan se että Aalto häviää.

Muut yliopiston algoritmikurssit ovat pääasiassa syventäviä kursseja, joiden aiheet ovat yleensä huomattavasti rajatumpia kuin tirassa. Näistä kursseista tiran jatkokurssina voidaan pitää kurssia Design and Analysis of Algorthms, joka on yleensä järjestetty syksyisin. Toinen syksyisin järjestettävä syventävä kurssi, jota suosittelen vilkaisemaan, on Introduction to Machine Learning, joka – kuten nimestäkin voi päätellä – toimii johdantokurssina koneoppimiseen. Vaikka syventävät kurssit on tarkoitettu maisterivaiheen opiskelijoille, voi niitä käydä jo kandivaiheessa, eikä niiden ottamista kannata turhaan pelätä. Esitietojen (matematiikasta perusanalyysit, lineaarialgebra ja todennäköisyyslaskenta) olisi kuitenkin hyvä olla kunnossa.

Jos algoritminen koodaus kiinnostaa, niin Datatähden valmennustehtäviin kannattaa tutustua. Niissä käytetään materiaalina monille jo tuttua Kisakoodarin käsikirjaa: tarkoituksena olisi se, että jokaiseen kkkk:n lukuun liittyisi harjoitustehtäviä. Ensimmäiset kolme osaa neljästä löytyvät jo sivulta, viimeisen osan ilmestymisen ajankohdasta ei ole vielä tietoa. Myös kilpaohjelmointiin kannattaa tutustua. Tällä hetkellä suosituin kisakoodaussivusto on luultavasti CodeForces, jossa järjestetään kisoja yleensä noin kerran viikossa. Kisat ovat hyvä tapa laajentaa ja syventää algoritmista osaamista, ja huhujen mukaan kisakoodarit ovat kuumaa kamaa muun muassa Googlella. Lisätietoja kisakoodauksesta voi tulla kysymään kanavalle #codeforces.

Tämä on myös minulle viimeinen kerta, kun toimin osana tämän kurssin henkilökuntaa, mikä on varsin outo muutos ottaen huomioon, että olen jollain tavalla ollut mukana kaikilla kurssin iteraatioilla viimeisen kolmen vuoden aikana. Tiraa assaroidessani olen oppinut paljon kurssiassistenttina toimimisesta, yliopiston käytännön asioista, ja oppinut tuntemaan paremmin monta ihmistä. Kokemus on ollut varsin antoisa, mutta toisaalta eiköhän nyt ole aika siirtyä eteenpäin. Aloitan syksyllä jatko-opinnot Kanadassa, joten minua ei tule myöskään laitoksella näkymään, mutta minuun saanee yhteyden edelleen IRC:ssä.

Aurinkoista kesää kaikille.

-Toni Annala (OOliOO)