Suoritusvaatimukset

Osasuoritukset ja arvosana

Kurssilla on kaksi pakollista osasuoritusta, harjoitustehtävät ja tentti. Molemmat osasuoritukset arvostellaan asteikolla 0-5. Jos vähintään toisen osasuorituksen arvosana on 0, kurssin kokonaisarvosanaksi tulee 0 (hylätty). Muussa tapauksessa kurssin kokonaisarvosanaksi tulee harjoitustehtäväarvosanan ja tenttiarvosanan keskiarvo. Keskiarvon mahdolliset puolet numerot pyöristetään ylöspäin.

Tentistä ja tenttivaatimuksista

Muista ilmoittautua ajoissa tenttiin! Tentti-ilmoittautuminen on ehdottoman pakollista eikä vastauksia arvostella, jos ei ole ilmoittautunut tenttiin. Ilmoittautumisaika päättyy viikko ennen tenttiä. Tenttiin ilmoittaudutaan WebOodissa.

Tenttitehtävät ovat pääosin ohjelmointitehtäviä, joissa pitää joko koodata ohjelmia (käsin paperille) tai selittää valmiiksi annetuista ohjelmista, miten ne toimivat tai mitä ne tulostavat. Jos tentissä on essee-tyyppisiä tehtäviä tai muita ohjelmakoodiin suoraan liittymättömiä selitystehtäviä (esimerkiksi käsitteiden selitystä), niiden osuus tentin maksimipistemäärästä on korkeintaan 20 %. Läheskään kaikissa tenteissä ei ole lainkaan tällaisia essee- tai selitystehtäviä.

Kaikki opetusmonisteessa kerrotut asiat kuuluvat tenttivaatimuksiin, paitsi seuraavat asiat:

Tentissä on yksi olio-ohjelmointitehtävä, joka vastaa vaativuustasoltaan yhteensä harjoitustehtäväkierroksen 9 tehtäviä 2 ja 3. (Kirjoita yksinkertainen luokka ja pääohjelma, joka luo luokan olioita ja kutsuu niille luokan metodeita.) Tämän tehtävän pistemäärä on 25 prosenttia tentin maksimipistemäärästä. Käytännössä se tarkoitttaa sitä, että tentistä voi päästä läpi, mutta on vaikea saada arvosanaa 3 tai parempaa, jos ei saa lainkaan pisteitä olio-ohjelmointitehtävästä. Olio-ohjelmoinnilla tarkoitetaan tässä opetusmonisteen luvussa 7 esitettyjä asioita. Varsinaisen olio-ohjelmointitehtävän lisäksi tentissä voi olla myös tehtäviä, joissa joutuu käyttämään esimerkiksi metodeita listojen, merkkijonojen ja tiedostojen käsittelyyn.

Koodin ymmärtämistä testaavat tehtävät voivat olla esimerkiksi seuraavan tyyppisiä:


Koodin kirjoittamista vaativissa tehtävissä voidaan pyytää esimerkiksi

Näiden tehtävien ratkaisuja kirjoittaessa voi tarvita esimerkiksi seuraavia asioita:


Lisäksi tentissä on aina yksi olio-ohjelmointitehtävä, josta on kerrottu tarkemmin ylempänä.

Koska sisennyksillä on Python-koodissa tärkeä merkitys, tenttivastauksissa kirjoitettu koodi on sisennettävä selvästi ja tarkasti. Jos sisennyksessä on virheitä tai epäselvyyksiä, niin se vähentää ratkaisusta saatavia pisteitä. Käytä kahden ruudun levyisiä sisennyksiä! 

Harjoitustehtävät

Kurssin harjoitustehtävät on jaettu kierroksiin. Jokaisella kierroksella on oma viimeinen palautusaikansa. Kierroksia on yhteensä 9, joista 8 ensimmäistä tehtäväkierrosta on pakollisia. Pakollisuus tarkoittaa sitä, että jokaisesta kierroksesta on saatava vähintään kierrokselle määritelty minimipistemäärä, jotta voisi saada hyväksytyn harjoitustehtäväarvosanan (katso tarkennus alempana). Jos saa jokaisesta pakollisesta kierroksesta minimipistemäärän, saa harjoitustehtävistä arvosanan 1. Keräämällä enemmän pisteitä harjoitustehtävistä voi saada paremman harjoitustehtäväarvosanan.

Jos opiskelija haluaa harjoitustehtävistä arvosanan 3, 4 tai 5, hänen on saatava minimipistemäärä myös vapaaehtoiselta tehtäväkierrokselta 9. (Kierrosten minimipistemäärät yhteensä eivät riitä arvosanaan 3, mutta arvosanaa 3 tai parempaa ei voi saada ilman kierroksen 9 minimipisteitä.)

Tehtäviä on kahdenlaisia: Vislaamo-tehtäviä ja ohjelmointitehtäviä. Vislaamo-tehtävissä opiskelija tutustuu annettuun esimerkkiin Vislaamo-työkalun avulla ja joko seuraa esimerkin etenemistä tai simuloi itse ohjelman suorituksen vaiheita. Ohjelmointitehtävissä opiskelija kirjoittaa itse pieniä Python-ohjelmia, jotka hän lähettää Goblin-järjestelmän arvosteltaviksi.

Opiskelijalta, joka on opiskellut itsenäisesti tehtäväkierroksen aihepiiriä esimerkiksi opetusmonisteesta mutta jolla ei ennen kurssin alkua kokemusta ohjelmoinnista, oletetaan kuluvan yhden kierroksen tehtävien tekemiseen keskimäärin 7-8 tuntia. Yhden kierroksen tehtävien maksimipistemäärä on 400-700 pistettä. Kierroksen minimipistemäärä on yleensä noin puolet harjoituskierroksen tehtävien maksimipistemäärästä.

Jotta opiskelija saisi pakollisen harjoitustehtäväkierroksen hyväksytyksi, hänen on kerättävä kierroksen tehtävistä vähintään kierroksen minimipistemäärä.

Harjoitutustehtäväarvosanojen pisterajat

Harjoitustehtäväarvosana määräytyy tehtävistä yhteensä saatujen pisteiden myöhemmin julkaistavan taulukon mukaisesti. Hyväksyttyyn arvosanaan vaaditaan, että jokaiselta pakolliselta kierrokselta 1-8 on tehtävistä vähintään minimipisteet, ja arvosanoihin 3-5 vaaditaan lisäksi minimipisteet yhdeksänneltä kierrokselta.

Osasuoritusten voimassaoloaika

Kesällä 2015 hyväksytysti tehdyt harjoitustehtävät ovat voimassa vielä kevätlukukaudella 2016 järjestettävissä tenteissä, mutta eivät enää sen jälkeen. Tarkat tenttiajat on ilmoitettu WebOodissa.

Tämän kurssin osasuorituksia ei voi korvata Aalto-yliopiston muiden ohjelmointikurssien osasuorituksilla. 

Yhteistyö ja prujaaminen

Harjoitustehtävien ratkaisujen kopiointi ei ole sallitua, kuten ei myöskään pisteiden hankkiminen yrittämällä harhauttaa automaattista tarkastusjärjestelmää hyväksymään tehtävänantoa täyttämätön ohjelma. Opiskelijoiden palauttamia ohjelmia tutkitaan myös vilpin kannalta.

Harjoitustehtävien ratkaisuista saa keskustella muiden opiskelijoiden kanssa, mutta jokaisen on kirjoitettava oma ohjelmakoodinsa itsenäisesti. Luvattomasta pari- tai ryhmätyöskentelystä voi seurata koko harjoitustehtäväsuorituksen hylkääminen, jolloin kaikki harjoitustehtävät on tehtävä uudelleen seuraavalla kurssikerralla. Lisäksi vilpistä seuraa tyypillisesti kirjallinen tiedote opiskelijan oman tutkinto-ohjelman kansliaan (tiedotetta säilytetään kansliassa opiskelijan tietojen yhteydessä opiskelijan valmistumiseen asti). Harjoitustehtävien ratkaisuja ei saa myöskään lähettää Internetin eri palveluihin, joista ne ovat kaikkien nähtävissä.

Pitkäaikaiset sairaudet, kertausharjoitukset ym.

Yleensä harjoitustehtäväkierrosten viimeiset palautusajat ovat ehdottomia. Kurssin opettaja voi kuitenkin myöntää poikkeuksia palautusaikoihin tai korvaavia tehtäviä painavista syistä. Tällaisia syitä ovat esimerkiksi pitkäaikainen sairaus (parin päivän flunssaa ei vielä lasketa pitkäaikaiseksi), perheenjäsenen kuolema, äitiysloma tai yli viikon kestävät kertausharjoitukset kurssin aikana. Tällaisista painavista syistä voidaan myös myöntää poikkeuksia esimerkiksi kurssin osasuoritusten voimassaoloaikoihin. Näissä tapauksissa on aina syytä kääntyä kurssin opettajan puoleen, ja yleensä painavasta syystä on oltava kirjallinen todiste (esim. lääkärin kirjoittama sairauslomatodistus).

Tämän kurssin korvaaminen toisen yliopiston kurssilla

Jos olet suorittanut vähintään 5 pisteen tai 3 opintoviikon ohjelmoinnin peruskurssin toisessa yliopistossa ja haluat korvata sillä tämän kurssin, menettele seuraavasti:

Huomaa siis, että toisessa yliopistossa suoritettu kurssi ei korvaa automaattisesti tätä kurssia (vaikka kurssin opintopistemäärä olisi riittävä), vaan opettaja päättää tapauskohtaisesti, vastaako toisen kurssin vaatimustaso ja sisältö tarpeeksi hyvin tätä kurssia.

Useamman peruskurssin korvaaminen

Jos haluat korvata useamman ohjelmoinnin peruskurssin paketin (yhteensä esim. 10-20 op:tä) toisessa korkeakoulussa tai yliopistossa suoritetuilla opinnoilla, niin käy keskustelemassa asiasta ohjelmoinnin perusopetuksesta vastaavan professori Lauri Malmin vastaanotolla.