T-106.1210 Ohjelmoinnin peruskurssi, osa 1

Harjoitustehtävät

Tällä sivulla annetaan yleisiä ohjeita kurssin harjoitustehtäviin liittyen. Tehtävänannot ja oheismateriaali löytyvät toiselta sivulta.

Parityöskentely

Kaikki tämän kurssin harjoitustehtävät on tarkoitettu tehtäviksi pareittain. Niinpä työparin etsiminen jo heti kurssin alussa on erittäin suositeltavaa. Apuna voi käyttää esimerkiksi kurssin keskusteluryhmää tai IRC-kanavaa.

Tehtävät saa halutessaan tehdä myös yksin. Paria saa vaihtaa tehtävien välillä.

Pareittain työskennellessä tarkoitus on, että pari tuottaa tehtäviin ratkaisut yhdessä, mielellään saman tietokoneen ääressä työskennellen. Pohtikaa ja keskustelkaa. Kumpikin vuorollaan voi toimia kirjurina ja kirjoittaa ohjelmakoodia yhdessä päättämällänne tavalla. Jos haluatte, voitte katsoa lisävinkkejä ns. pariohjelmoinnista kurssin linkkisivulta.

Molempien parin jäsenten on oltava perillä kaikesta parin tuottamasta ohjelmakoodista. Ei ole suotavaa, että yksi opiskelija laatii yksinään yhden osan ohjelmasta ja toinen toisen.

Tehtäväkierrokset ja -tasot

Harjoitustehtävät jakautuvat ajallisesti kymmeneen "kierrokseen". Tehtäväkierrokset suljetaan porrastetusti, useimmiten viikon välein. Suljetun kierroksen tehtäviä ei voi enää palauttaa arvosteltaviksi. Deadlinet löytyvät alta ja tehtävänantosivulta.

Tehtävät jakautuvat kierrosten lisäksi "tasoihin": A-, B- ja C-tehtäviin. Eri tehtävätasoja voi luonnehtia kurssin tavoitteiden ja arvosteluperusteiden valossa näin:

A-tasoNämä tehtävät opettavat kurssin vähimmäistavoitteisiin liittyviä asioita, jotka kaikkien kurssin läpäisevien opiskelijoiden pitää osata.
B-tasoNämä tehtävät opettavat jatkokursseilla tarpeellisia asioita. Ne eivät ole pakollisia, mutta niiden tekemistä suositellaan kaikille, jotka aikovat ottaa lisää ohjelmointikursseja tämän kurssin jälkeen. Siis valtaosalle kurssilaisista.
C-tasoNämä tehtävät ovat vapaaehtoisia ja tarkoitettu niille, jotka haluavat oppia mahdollisimman paljon ja/tai saada mahdollisimman hyvän arvosanan.

Korkeampien tasojen tehtävät eroavat alempien tasojen tehtävistä aihepiireiltään ja/tai vaikeustasoiltaan. Yhden C-pisteen saaminen vaatii tyypillisesti enemmän työtä kuin B-pisteen, joka puolestaan on työläämpi saada kuin A-piste.

Tehtävien palauttaminen

Tehtävät palautetaan WWW:ssä toimivaan Goblin-nimiseen järjestelmään. Goblin antaa palautetta ja pisteyttää palautetut ratkaisut. Goblinista kerrotaan lisää erillisellä sivulla.

Arvosanan muodostuminen

Tehtäväarvosana on välillä 0-4 ja vähintään ykkönen on saatava läpäistäkseen kurssin. Tehtäväarvosana on ylivoimaisesti tärkein kurssin kokonaisarvosanaan vaikuttava tekijä (ks. kurssiesite).

Kustakin tehdystä tehtävästä saa pisteitä -- eri tehtävistä eri määriä. Arvosana muodostuu laskemalla kustakin kolmesta tehtävätasosta saadut pisteet ja vertaamalla niitä seuraaviin arvosanarajoihin. Tiettyyn arvosanaan tarvitaan vähintään tietty määrä pisteitä yhdestä tai useammasta tehtävätasosta (taulukko alla). Sillä ei ole arvosanan kannalta merkitystä, miltä kierrokselta kyseiset pisteet tulevat. Tehtävien jako kierroksiin vaikuttaa vain palautusdeadlineihin.

Arvosanarajat

Taso A B C Kuvaus (vrt. tavoitesivu)
Arvosana 1 1400 - - Vähimmäistavoitteet saavutettu
Arvosana 2 1450650-  
Arvosana 3 1450800160Vastaa suunnilleen jatkokursseille riittävää osaamistasoa
Arvosana 4 1450800500 
maksimipisteet1630900600yli nelosta ei kuitenkaan voi saada tehtävistä

Esimerkiksi saadakseen arvosanan 3, pitää siis tehdä:

Tarjolla olevat pisteet

Tässä taulukossa näkyy tarjolla olevien pisteiden jakautuminen eri kierroksille. Tarkempia tietoja yksittäisistä tehtävistä ja niiden pistearvoista tehtävänantosivulla.

 A B C Deadline
Kierros 1150 - - to 27.09. klo 23.59
Kierros 2350 - - to 04.10. klo 23.59
Kierros 3280 - - to 11.10. klo 23.59
Kierros 4390 120- to 18.10. klo 23.59
Kierros 580 90 90 to 01.11. klo 23.59
Kierros 6- 14090 to 08.11. klo 23.59
Kierros 7150 24080 to 15.11. klo 23.59
Kierros 850 120200to 29.11. klo 23.59
Kierros 9- 10050 to 06.11. klo 23.59
Kierros 1024090 90 to 13.12. klo 23.59
Yhteensä 1670900600 

Pisteiden korvaaminen

Jos pisteitä jää uupumaan jostakin tehtävätasosta, niitä voi korvata ylempien tehtävätasojen pisteillä. Esimerkki: oletetaan, että sinulla on 1300 pistettä A-tason tehtävistä ja 800 pistettä B-tason tehtävistä. Näinollen:

B-pisteillä voi siis korvata A-pisteitä. C-pisteillä voi korvata B- tai A-pisteitä. "Ylimääräisillä" pisteillä A-tasolta ei voi korvata mitään.


"Aargh! En mä osaa laskea noita eri tasojen pisteitä!"

Koska arvosanan muodostaminen menee joissain tapauksissa hieman monimutkaiseksi, on Goblin-palautusjärjestelmässä tarjolla arvosanalaskuri, joka helpottaa arvosanan laskemista ja omien hommien suunnittelua. Laskuri löytyy valitsemalla Goblinista valikko "Tehtävät".

Hyviä vinkkejä

Harjoitustehtävät ovat kurssin tärkein osa - ota ne vakavasti. Ohjelmointia on mahdollista oppia ainoastaan kovalla työllä ja harjoittelemalla.

Ei missään tapauksessa kannata jättää harjoitustehtävien tekemistä viime tinkaan ennen kierroksen sulkeutumista. Tehtävien tekemiseen menee monella kurssin mittaan lähes tai ylikin sata työtuntia. Harjoitustehtäviä voi aloittaa tekemään niin aikaisin kuin haluaa ja kunkin harjoitustehtävän aihepiirit käsitellään luennoilla tavallisesti vähintäänkin kaksi viikkoa ennen kyseisen kierroksen sulkeutumista. On suositeltavaa tehdä tehtävät mahdollisimman pian tämän jälkeen.

Esimerkkiratkaisut

Päättyneiden tehtäväkierrosten esimerkkiratkaisut julkaistaan Goblinissa.

Itsestäänselvyyksiä

Harjoitustehtävien ratkaisujen kopiointi ei ole sallittua. Samoin kiellettyä on pisteiden hankkiminen yrittämällä harhauttaa automaattista tarkastusjärjestelmää. Kopioimisella ja muilla väärinkäytöksillä on seuraamuksia ja opiskelijoiden kirjoittamia ohjelmia tutkitaan myös tässä mielessä.