# 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