Tiralabra

Link to English materials

Ohjaaja

📅 Aikataulu

Tarkempi aikataulu täällä.

📣 Ajankohtaista

Linkkejä materiaaliin

🗒️ Labtool

Kurssiin telegram-kanava

Ohjaus

Demotilaisuus

Esimerkkiprojektit

🏆 Kurssin suorittaminen

Kurssin työmäärä on opintopisteiden (4) perusteella n. 107 tuntia. Varaudu siis käyttämään työhön 15-20 tuntia viikossa jokaisella viikolla.

Kurssilla opiskelija toteuttaa ohjelman, joka ratkaisee jonkin ohjelmointiongelman. Ongelmanratkaisuun käytetään sopivia algoritmeja sekä tietorakenteita. Oppimismatriisin tiedoista poiketen, opiskelja valitsee ratkaistavan ongelman yhdessä ohjaajan kanssa. Suoritus ei edellytä oman algoritmin kehittämistä. Tämäkin on mahdollista, mikäli opiskelija haluaa haastavamman aiheen. Keskeistä työssä on, että ohjelma on toimiva ja tehokas. Sen tulee kaikissa tapauksissa antaa nopeasti oikea vastaus. Työn aiheesta riippuu, miten suuria tapauksia ohjelman tulee pystyä käsittelemään. Tämä sovitaan ohjaajan kanssa. Mahdollisia aiheita voi katsoa täältä.

Kurssi pidetään osittain verkkokurssina, kaikki viikoittaiset palautukset tapahtuvat verkon kautta. Ainoat pakolliset tapaamiset ovat aloitusluento sekä loppudemot. Lisätietoa palautuksista täällä.

Ohjelma toteutetaan ohjaajan hyväksymällä kielellä, melkein poikkeuksetta Javalla.

Kurssin ensisijainen tavoite on oppia toteuttamaan itse tietorakenteita, ja tästä syystä tarvittavat algoritmit ja tietorakenteet tulee toteuttaa itse. Nyrkkisääntönä vain perustietotyyppejä, taulukoita ja merkkijonoja saa käyttää, muu on tehtävä itse, erityisesti Tietorakenteet-kurssilla opetellut rakenteet. Muita apuvälineitä, kuten tiedostonkäsittelyluokkia, saa tietenkin käyttää. Valmiita tietorakenteita (esim. Javassa: ArrayList, HashMap…) tai algoritmeja (esim. Collections.sort) ei saa käyttää lopullisessa työssä ja myös niiden importit kannattaa poistaa. Jos olet epävarma jonkin luokan käyttämisestä, kysy ohjaajalta.

Hyväksi koettu tapa tehdä työ vaiheittain on laittaa ensin kuntoon algoritmin ydin käyttäen kielen standardikirjastojen valmista kalustoa (jonot, keot, järjestämisalgoritmit). Kannattaa siis pyrkiä toteuttamaan algoritmin ydin nopeasti ja sen jälkeen korvata käytetty kalusto omilla toteutuksilla. Eli toteuttaa rajapintojen takana olevat rakenteet ja/tai algoritmit itse. Tätä tapaa käytetään osapalautusten pohjana algoritmin/tietorakenteiden kehityksen osalta. Mikäli toteutat työn erilaisella lähestymistavalla, sovi työn edistymisen “Milestone”:t jo 1. viikon aikana ohjaajan kanssa.

📈 Arvosteluperusteet

(Yhteensä 60 p)

Kurssin hyväksytysti suorittaminen vaatii ohjelmalta itsetoteutettuja tietorakenteita sekä toiminnallisuutta. Kukin työ arvioidaan omana kokonaisuutenaan, alla viitteelliset pisterajat.