Kilpaohjelmointi

582357
2-3
Ohjelmistojärjestelmät
Aineopinnot
Kurssi yhdistää käytännön algoritmien ohjelmointia ja ryhmässä toimimista. Kurssin opiskelijat muodostavat joukkueita, jotka ratkovat viikoittain algoritmisia ohjelmointitehtäviä. Kurssin päätteeksi halukkaat joukkueet voivat osallistua pohjoismaiseen NCPC-kilpailuun. Kurssia ei voi suorittaa erilliskokeella.
Vuosi Lukukausi Päivämäärä Periodi Kieli Vastuuhenkilö
2016 syksy 06.09-04.10. 1-1 Suomi Topi Talvitie

Luennot

Aika Huone Luennoija Päivämäärä
Ti 16-20 B221 Topi Talvitie 06.09.2016-04.10.2016

Yleistä

Kurssi muodostuu viidestä ohjelmointikilpailusta, joissa kolmen hengen joukkueet ratkovat algoritmisia ohjelmointitehtäviä. Kurssin päätteeksi on lisäksi mahdollista osallistua pohjoismaiseen NCPC-kilpailuun.

Kurssin alustava aikataulu on seuraava:

  • ti 6.9. 16–20: tietoa kurssista, joukkueiden muodostus, kurssikilpailu 1
  • ti 13.9. 1620: kurssikilpailu 2
  • ti 20.9. 1620: kurssikilpailu 3
  • ti 27.9. 1620: kurssikilpailu 4
  • ti 4.10. 1620: kurssikilpailu 5
  • la 8.10. 1217NCPC-kilpailu, Kumpulan kampus

Kurssille osallistuminen vaatii hyvää ohjelmointitaitoa ja kiinnostusta algoritmien suunnitteluun. Jos olet pitänyt kursseista Tietorakenteet ja algoritmit ja Algoritmit ongelmanratkaisussa, niin tämä kurssi on sinua varten. Kurssi ei kuitenkaan vaadi mitään tiettyä kurssia esitiedoiksi.

Kurssista saa 2 op osallistumalla viiteen ohjelmointikilpailuun ja ylimääräisen 1 op saa osallistumalla NCPC-kilpailuun. Voit osallistua kilpailuihin, vaikka olisit käynyt kurssin Kilpaohjelmointi tai Ohjelmointihaasteita II aiemmin, mutta et saa uutta kurssisuoritusta. 

Tulethan myös kurssin IRC-kanavalle #kilo.

Kurssin suorittaminen

Kurssin suorittamiseen kuuluu osallistuminen ohjelmointikilpailuihin sekä valmistautuminen oman joukkueen kanssa. Kurssiin kuuluu viisi kilpailua, jotka järjestetään tiistaisin aikavälillä 16–20. Jokainen kilpailu kestää 2,5 tuntia, minkä jälkeen tehtävät käsitellään yhteisesti.

Jokaisen kolmihenkisen joukkueen käytössä on yksi tietokone. Sallitut ohjelmointikielet ovat C++, Java, Python ja Haskell. Joukkueet saavat tuoda mukanaan mitä tahansa kirjallista materiaalia, esimerkiksi kirjoja ja omia muistiinpanoja. Elektroniset tallennusvälineet ja laitteet ovat kiellettyjä. Internetin käyttö on rajoitettu tehtävien palautukseen ja ohjelmointikielten manuaaleihin.

Ratkaisut lähetetään CSES-kilpailujärjestelmään, joka tarkistaa, että koodi tuottaa oikean tulosteen joukolla testisyötteitä. Ennen kurssin alkua kannattaa kokeilla järjestelmää yrittämällä ratkaista kurssin harjoitustehtäviä. Linkit joukkuetunnuksen luomiseen sekä tehtäviin löytyvät järjestelmän etusivulta https://cses.fi/. Jos et tiedä vielä joukkuettasi, voit luoda harjoitustehtävien tekemistä varten väliaikaisen joukkuetunnuksen.

Kirjallisuus ja materiaali

Kurssikirjana on Kisakoodarin käsikirja (KKKK), jonka voit ladata tästä.