OHJEITA C-OHJELMOINNIN HARJOITUSTYÖTÄ VARTEN (Kevät 2005)
YLEISTÄ
Valitse yksi tehtävälistan ohjelmointitehtävä
ja toteuta se ANSI-C -kielellä. Voit tehdä työsi millä tahansa
koneella, mutta tuloksen on kuitenkin ehdottomasti toimittava myös
laitoksen Linux-koneilla (muista siis siirrettävyys).
Varsinaisia työnohjaustilaisuuksia ei järjestetä.
Tarvittaessa Tiina ja Liisa antavat opastusta ainakin ilmoitettuina aikoina ja muutenkin, jos
heillä on sopivasti aikaa. Heiltä voit kysellä opastusta ongelmatilanteissa.
Ilmoita valitsemasi ohjelmointyön numero Liisalle tai Tiinalle.
Kokoa lopuksi ratkaisuusi liittyvät tiedostot yhdeksi nipuksi ja
toimita ratkaisusi Liisalle tai Tiinalle.
Tarkemmat ohjeet siitä, kuinka tämä toimitus hoidetaan, ilmoitetaan myöhemmin.
Harjoitustyö ON PAKOLLINEN. Jos se jää tekemättä,
et voi osallistua kurssin uusintakokeeseen, vaan sinun on tultava kurssille
uudestaan.
Harjoitustyö on palautettava viimeistään 8.5.2005.
Vastuu sopivasta aikataulusta on sinulla itselläsi.
HYVIN SUUNNITELTU PUOLIKSI TEHTY
Hahmottele ongelmakenttää ja lyö lukkoon toiminnallinen
määrittely, käytettävät tietorakenteet sekä
ratkaisujen päälinjat. Esittele valintojasi ja ratkaisujasi
harjoitusten ohjaajalle. Voit säästää koodinkirjoitusvaivojasi
jo hyvillä tietorakenteilla.
POIS TURHA HIENOSTELU: Eli tee se ja vain se mitä pyydetään
ja tee lisävirittelysi vain omaan versioosi!
Sopiva ohjelman pituus on 200-500 riviä koodia (plus kommentit).
Pituutta tärkeämpää on kuitenkin, että ohjelma
tekee mitä pyydetään.
Älä aliarvioi suunnittelun merkitystä toimintapainotteisessakaan
lähestymistavassa.
HYVÄT OHJELMAT EIVÄT KASVA ITSESTÄÄN - NE TEHDÄÄN
Arvioi tehdyn suunnitelman toteuttamiskelpoisuutta:
-
Ensimmäinen mieleentuleva ratkaisu ei ole välttämättä
paras.
-
Huonoon ratkaisuun ei saa investoida liikaa liian aikaisin.
-
Hyvä ohjelma toimii oikein, tehokkuus on usein vähemmän
tärkeää.
Sijoita funktioiden esittelyt, tietorakenteiden tyyppimäärittelyt
ym. yhteiset esittelyt .h -loppuisiin määrittelytiedostoihin.
Varsinainen suoritettava koodi ja muuttujamäärittelyt tulevat
.c -loppuisiin lähdekooditiedostoihin.
Laadi aina erillinen pääohjelma ja sijoita yhteenkuuluvat, jonkin selkeän
osatehtävän suorittavat funktiot omiin lähdekooditiedostoihinsa
Tee työsi hyvällä maulla (AINA):
-
yhtenäinen ohjelmointityyli
-
vältä kielen erikoisuuksia ja kryptistä koodia
-
iskunkestävä ohjelma - ei natise, eikä kaadu
-
pieni opastus mukaan
-
muuttujat: kuvaavat nimet, joista selviää käyttötarkoitus
merkitys ja käyttö huomioonottaen
Testausta kannattaa tehdä järjestelmällisesti heti alusta
alkaen. Voit etsiä yksinkertaisia virheitä ja 'epäilyttäviä'
kohtia gcc-kääntäjän optioilla -Wall -ansi
DOKUMENTOINTI: TARPEELLINEN OSA
Tiedostoon ohje kirjattu noin parisivuinen ohjelman käyttöohje
ja huolellisesti tehty kommentointi riittää tällä
kertaa.
Ohjelman kommentoinnissa pätevät seuraavat yksinkertaiset
säännöt:
-
Kukin ohjelmatiedosto sisältää yleiskommentin:
-
Mihin tiedosto on tarkoitettu
-
Mitä funktioita tiedosto sisältää
-
Mitä muiden tiedostojen funktioita tiedosto käyttää
-
Käytettyjä kirjastofunktioita ei tarvitse listata
-
Selvitä tärkeät tietorakenteet.
-
Kerro kustakin funktiosta:
-
Mitä funktio tekee
-
Mitkä ovat parametrit
-
Mitä funktio palauttaa
-
Varo liiallista kommentointia. Käytä selkeitä muuttujanimiä,
kielen rakenteet oletetaan tunnetuksi jne.
-
Kommentoi vaikeat ja erikoiset ratkaisut
HARJOITUSTYÖN PALAUTUS: MITENKÄS SE MENIKÄÄN?
Työ on jätettävä
tarkastettavaksi viimeistään sunnuntaina 8.5.
Tarkastettavaksi
jätetään yksi tar-tiedosto, johon on koottu
kaikki työhön liittyvä materiaali:
- kaikki
harjoitustyön C-kieliset ohjelmatiedostot,
- niiden
kääntämisen toteuttava Makefile-tiedosto
- readme- tai
ohje-niminen tiedosto, joka sisältää työn
dokumentoinnin
Tar-tiedosto
talletetaan omalle kotisivulle.
Halutessaan tar-tiedoston voi myös
lähettää pakattuna tgz-tai gz-tiedostona. (Ohjeita tar-tiedoston tekemiseen ja pakkaamiseen)
Tarkastajille lähetetään
sähköpostitse vain linkki talletettuun
tar-tiedostoon.
HARJOITUSTYÖN ARVOSTELUSTA
Työn arvostelussa otetaan huomioon
seuraavat asiat:
- ohjelman laajuus ja vaikeus,
(1-4 p) (Älä tee turhan laajaa!)
- 1 p vain hyvällä
tahdolla voidaan katsoa toteuttavan annetun tehtävän
('Onpa todella riisuttu malli!')
- 2 p nippanappa toteuttaa annetun
tehtävän ('Tuon nyt ainakin olisi vielä voinut ottaa
mukaan!')
- 3 p toteutus ihan ok ('Juuri noin se
pitääkin tehdä!')
- 4 p tässä on jotain
lisäpiirteitä ('Katos vaan, se on ottanut tuonkin
huomioon!')
- käytetty ratkaisuperiaate ('Tämän miettimiseen kannattaa käyttää hieman aikaa.')
(1- 4 p)
- selkeä, järkevä,
toimiva tietorakenneratkaisu
- mielekäs jako
käynnistysyksiköiksi
- ohjelmointityyli eli ohjelman jako
funktioihin, C-piirteiden järkevä, tehokas käyttö
(1-6 p)
- ohjelman jako osiin funktioihin
(0-2 p)
- kaikki yhtä pääohjelmaa
0 p (vai pannaanko korjattavaksi?)
- ainakin pääohjelma ja
joitakin funktioita (1 p)
- hyvin ja fiksusti jaettu osiin (2
p)
- C-piirteiden käyttö
(järkevyys, tehokkuus) ja yleensä hyvä
ohjelmointityyli
- ohjelman ulkonäkö ja
luettavuus (kommentointi, muuttujien nimet, sisennykset,
yhtenäisyys) sekä riittävä dokumentointi (1-4 p)
- oletusarvo on 4 pistettä,
puutteet pudottavat pisteitä
- ohjelman testaus ja testitilanteet
(1-2 p)
- ohjelma testattu jotenkin ja
testauksesta hieman kerrottu (1 p)
- ohjelma testattu kattavasti ja
testaus dokumentoitu hyvin (2 p)
Pistemäärät ovat
ohjeellisia. Erityyppisissä töissä voidaan niistä
hieman poiketa.
Ohjelma palautetaan korjattavaksi,
jos
- ohjelma ei käänny
- ohjelma toiminta katkeaa vakavaan
suoritusaikaiseen virheeseen
- ohjelma ei lainkaan suorita sitä,
mitä sen pitäisi tehdä
- dokumentointi puuttuu kokonaan
- ohjelman testikuvaus puuttuu
kokonaan
- ohjelmassa ei ole lainkaan
funktioita
- ohjelman arvostelussa sen
yhteispistemäärä on pienempi kuin 10.
(Harjoitustyöstä vaaditaan 10 pistettä kurssin
läpipääsyyn.)
Palaute harjoitustyöstä
Palaute harjoitustyöstä
annetaan normaalisti sähköpostitse, tarvittaessa voidaan
myös käyttää tapaamista ja suullista
palautetta, etenkin, jos lisäohjaus on tarpeen.
Tarkastukseen jätetty
C-harjoitustyö annetaan korjattavaksi korkeintaan yhden
kerran. Korjausaikaa on 1-2 viikkoa. Korjauksen jälkeen työ
joko hyväksytään tai lopullisesti hylätään.
Jos työ joudutaan hylkäämään,
niin myös kokeessa saadut pisteet mitätöityvät.
Onnea työlle!