OHJEITA C-OHJELMOINNIN HARJOITUSTYÖTÄ VARTEN (Kevät 2006)
YLEISTÄ
C-ohjelmointikurssin suoritus edellyttää harjoitustyön tekemistä.
Vain harjoitustyön palauttanut saa osallistua kurssikokeeseen tai erilliskuulusteluun.
TYÖN ALOITUS JA TYÖNOHJAUSTILAISUUDET
Valitse yksi tehtävälistan ohjelmointitehtävä
ja toteuta se ANSI-C -kielellä.
Ilmoita valitsemasi ohjelmointyön aihe Liisa Marttiselle
(liisa.marttinen@cs.helsinki.fi). Tiedot valituista aiheista tulevat kurssin sivulle.
Työnohjaustilaisuuksia järjestetään kolmena keskiviikkona 5.4., 12.4. ja 19.4. Opastusta antaa
Risto Saarelma. Ohjausajat ja paikat ilmoitetaan myöhemmin.
Voit tehdä työsi millä tahansa
koneella, mutta tuloksen on kuitenkin ehdottomasti toimittava myös
laitoksen Linux-koneilla (muista siis siirrettävyys).
Kaikissa harjoitustöissä on käytettävä jotain linkitettyä rakennetta, tiedostosta lukemista ja kirjoittamista sekä komentoriviparametreja.
Muita ominaisuuksia voi sitten käyttää tarpeen mukaan.
Harjoitustyö on palautettava viimeistään 24.4.2006.
sähköpostitse: laskintyöt palautetaan Risto Saarelmalle (risto.saarelma@iki.fi) ja muut työt Liisa Marttiselle (liisa.marttinen@cs.helsinki.fi)
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
työohjaustilaisuuksissa. 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 maanantaina 24.4.
Työt jätetään tarkastettavaksi sähköpostitse: laskintyöt palautetaan Risto Saarelmallee (risto.saarelma@iki.fi) ja muut työt Liisa Marttiselle (liisa.marttinen@cs.helsinki.fi)
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)
Tarkastajalle 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-2 p) (Älä tee turhan laajaa!)
- 1 p toteuttaa annetun tehtävän kohtalaisesti
- 2 p toteuttaa annetun erittäin hyvin
- käytetty ratkaisuperiaate ('Tämän miettimiseen kannattaa käyttää hieman aikaa.')
(1- 2 p)
- selkeä, järkevä,
toimiva tietorakenneratkaisu
- mielekäs jako
käynnistysyksiköiksi
- ohjelmanrakenne eli ohjelman jako
funktioihin, C-piirteiden järkevä, tehokas käyttö
(1-3 p)
- ohjelman jako funktioihin (0-1 p)
- C-piirteiden käyttö (0-2)
(järkevyys, tehokkuus) ja yleensä hyvä
ohjelmointityyli
- ohjelman ulkonäkö ja
luettavuus (kommentointi, muuttujien nimet, sisennykset,
yhtenäisyys) (0-1 p)
- ohjelman testaus ja testitilanteet
(0-1 p)
- käyttöohje (1 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 3.
(Harjoitustyöstä vaaditaan 3 pistettä kurssin
läpipääsyyn.)
- Ohjelmasta puuttuu jokin vaadittu piirre: listarakenne, tiedostoston käsittely tai komentoriviparametrin käyttö.
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!