C-kielen harjoitustyöohje
Simo Juvaste, Tietojenkäsittelytieteen laitos, Joensuun yliopisto
English
version
Yleistä
C-kielen kurssiin (173001, 3 ov) liittyy itsenäisesti tehtävä
harjoitustyö, jonka täytyy olla hyväksytysti suoritetty ennen
kuulusteluun osallistumista. Hyväksytty harjoitustyö on voimassa
toistaiseksi (ainakin kunnes kurssi muuttuu olellisesti). Työ on kurssin
osa, joten sitä ei viedä erillisenä suorituksena
opintosuoritusrekisteriin. Keskeneräinen työ on tehtävä kahden kuukauden
kuluessa.
Kurssin yhteydessä työt jaetaan yleensä ensimmäisissä harjoituksissa.
Muuten töitä voi noutaa kurssin vastuuhenkilöltä vastaanottoaikoina.
Työn annon yhteydessä määrätään työn ohjaaja (joka voi olla eri henkilö
kuin työn jakaja). Ohjausajoista löytyy tietoa C-kielen kurssin
WWW-sivulta.
Töiden ei ole tarkoitus olla algoritmisia haasteita, vaan harjoittaa nimenomaan
C-kielen taitoa. Jos tehtävän ratkaisussa on ongelmia, töiden ohjaaja auttaa.
Työ on jätettävä tarkastettavaksi ohjaajalle hyvissä ajoin ennen
tenttiä. Kurssin yhteydessä määräaika määrätään erikseen. Yleiseen
kuulusteluun osallistuttaessa työ on palautettava vähintään viikkoa
ennen kuulustelua.
Työn palautus sisältää:
- työn dokumentoinnin paperille tulostettuna
- työn ohjelmalistauksen paperille tulostettuna
- työn lähdekoodin unix-tekstitiedostona nimettynä tiedostoksi
tyonnro.c (ei siis useana tiedostona) (esim c48.c) joko
- MS-DOS -formaatissa olevalla levykkeellä raakana tekstitiedostona tai
- Etukäteen ohjaajalle sähköpostilla lähetettynä MIME tai
uuencodattuna liitteenä, ja tiedosta ko. lähetyksen
ajankohdasta ja koodaustavasta. Sähköpostin otsikossa tulee
olla teksti c-kieli.
- työn alkuperäinen tehtäväpaperi
Työ jätetään mielellään henkilökohtaisesti. Työn tarkastaja sopii joko
erillisestä palautetilaisuudesta tai antaa palautteen sähköpostitse.
Kurssin lopun tiukasta aikataulusta johtuen nopea palaute on tärkeää.
Niinpä työn kansilehteen tulee laittaa sähköpostiosoite, johon
mahdollinen ilmoitus työn korjattavaksi palautuksesta lähetetään.
Ohjelmakoodi
Palautetun työn tulee olla ANSI-C:tä, ja sen tulee kääntyä oikein
gcc-kääntäjällä (on melko rohkeaa/turhaa tarjota ohjelmaa, jota on
kokeiltu ainoastaan esim. Microsoft Visual C++ tms kääntäjällä).
Kaikissa kääntäjissä on optiot -ansi ja -Wall (tms), nämä usein
paljastavat virheita mm. osoittimien käytössä. Varoitukset ovat
asiallisia (ainakin useimmiten).
Kaikki työt ovat muotoa "tee funktio ... tee myös ohjelma jolla
funktiota voidaan testata". Kaikissa töissä on myös vaatimus
dynaamisesta tilanvarauksesta, taulukoiden välittämisestä parametrina ja
tilan vapauttamisesta. Nämä elementit työstä on löydyttävä, jonkin
puuttuessa työ palautetaan korjattavaksi (vaikka se muuten toimisi
kuinka hyvin tahansa).
Dokumentointi
Työn dokumentti sisältää:
- Kansilehti (työn koodi, tekijän nimi, opiskelijanumero ja
sähköpostiosoite, sekä päiväys)
- Vajaan sivun pituinen suorasanainen selostus ohjelman toiminnasta
(ratkaisuperiaate, eri osien tehtävät, virhetarkastukset, jne)
- Lyhyt käyttöohje jonka avulla ohjelman voi kääntää ja testata.
- Funktioi(ide)n parametrien ja palautusarvojen dokumentointi
Parametrien kuvauksen tulee sisältäen mm. funktion kyseisen
parametrin arvoille asettamat rajoitukset sekä tiedon funktion
käytöksestä virhetilanteessa.
- Dynaamisten rakenteiden varaus, käyttö ja vapautus. Tässä kohdassa
dokumentoidaan tarkasti kunkin käytetyn dynaamisesti varatun
muistialueen käyttö ja erityisesti sen vapautus.
- Testausraportti, josta käy ilmi, millaisilla testiaineistoilla
ohjelmaa on testattu. Raportti sisältää myös arvion testauksen
kattavuudesta.
Sopiva dokumentin pituus 2-4 on (normaalitiheyksistä) sivua.
Arvostelu
Arvostelussa otetaan huomioon annettujen vaatimusten täyttäminen,
virhetarkastusten kattavuus, dokumentin kattavuus ja luettavuus, sekä
ohjelmointityyli.
Erityisesti huomautetaan, että ohjelman luettavuus ja toiminnan
ymmärrettävyys lasketaan eduksi. Vastaavasti "kryptisen" kikkailun
(erityisesti jos sen toiminta on epäselvää tai epäloogista) käyttö
alentaa arvosanaa.
Työn arvosanan osuus koko kurssin arvosanasta on 30%.
Last modified
Sun Apr 16 14:32:35 EET DST 2000
SJ