Harjoitustyön vaatimukset
Harjoitustyöllä kurssi suoritetaan 3–6 opintoviikon laajuisena. Tällöin tenttiä ei tehdä. Harjoitustyön asemesta voi tehdä tentin, jolla kurssin voi suorittaa vain 2 op:n laajuisena.
Harjoitustyön tulee kyetä suorittamaan joko kääntämällä tai tulkkaamalla jollain lähdekielellä kirjoitettuja ohjelmia. Harjoitustyön opintopistemäärä lasketaan seuraavien vaatimusten mukaisesti laskemalla lähdekielen ja toteutustekniikoiden opintopistemäärät yhteen (max 6 op).
Puolikkaiden ja maksimin ylittävien opintopistemäärien osalta noudatetaan erityissääntöjä.
Lähdekieli
Pakolliset ominaisuudet (3 op)
- lukukelpoinen (ei binäärimössöä)
- kommentit
- vähintään kaksi eri tietotyyppiä (tyyppivirheet napattava kiinni viimeistään ajon aikana)
- kokonaislukuaritmetiikka
- valintojen tekeminen (
if
tms) - toisto (silmukat, rekursio tms)
- parametrisoitavat aliohjelmat (funktiot, metodit tms), joissa voi käyttää paikallisia muuttujia
Lisäominaisuuksia
- tietueet ja variantit (0,5 op)
- geneeriset (staattiset) tyypit (0,5 op)
- luokat ja myöhäinen sidonta (0,5 op)
- ensiluokkaiset funktiot (0,5 op)
- roskienkeruu (kokonaan itse tehtynä) (1 op)
- rekursiivinen pattern match (vrt Haskell) (0.5 op)
Voit myös ehdottaa omia lisäominaisuuksia (AJK ja VT arvioivat op-määrät pyynnöstä).
Toteutustekniikat
Tässä ilmoitetut opintopistemäärät lasketaan yhteen lähdekielen ominaisuuksista tuleviin opintopistemääriin.
- jäsennyspuun suora tulkki 0 op
- välikielen (esim. oma, JVM tai LLVM) generointi 1 op
- konekielen (esim. AMD64 tai ARM) generointi välikielestä
- naivi rekisteriallokaatio 1 op
- fiksu rekisteriallokaatio (esim. graafinväritys) 2 op
Arviointiperiaatteet
Hyväksyttävä harjoitustyö
- on palautettu noudattaen myöhemmin ilmoitettavia palautusohjeita
- sisältää kaikki ne osat, jotka kääntäjästä tyypillisesti löytyy (taikka poikkeavat ratkaisut on perusteltu ja dokumentoitu)
- on laadittu noudattaen akateemista rehellisyyttä
Harjoitustyön arvioinnissa kiinnitetään huomiota seuraaviin osa-alueisiin (tärkeysjärjestyksessä):
- Valmiusaste
- 1 – toimii yhdellä esimerkillä
- 2 – toimii muutamilla esimerkeillä
- 3 –
- 4 – toimii pääsääntöisesti oikein
- 5 – toimii moitteettomasti
- Omintakeisuus
- 1 – koostuu lähinnä muualta lainatuista koodinpätkistä (joita on käytetty akateemista rehellisyyttä noudattaen)
- 3 – rakennettu pääosin esimerkkejä mukaillen mutta ilman suoria lainauksia
- 5 – käytetyt ratkaisut eivät ole esimerkkien kaavamaista uudelleenkäyttöä
- Käytettyjen algoritmien vaativuus ja soveltuvuus (kukin keskeinen algoritmi erikseen)
- 1 – ratkaisu joka ei kovin hyvin sovellu siihen, mihin sitä käytetään
- 3 – tehtävään sopiva yksinkertainen ratkaisu
- 5 – tehtävään sopiva teknisesti haasteellinen ratkaisu
- Koodin modulirajapintojen dokumentointiaste
- 1 – ei rajapintadokumentaatiota
- 3 – rajapinnat on pääosin dokumentoitu, mutta siinä on puutteita
- 5 – kaikki keskeiset rajapinnat on dokumentoitu
- Koodin selkeys
- 1 – ohjelman toimintalogiikkaa on hankala seurata esimerkiksi bugeja selvitettävissä
- 3 – ohjelman rakenne on selkeä ja siitä on helppo löytää, missä jokin tietty asia tehdään
- 5 – kuten 3, ja lisäksi kunkin aliohjelman, modulin sisäinen toiminta on selkeää
Harjoitustyön lopullinen arvosana perustuu kokonaisarvioon, jossa edellä mainitut osa-alueet otetaan huomioon. Arvosanassa huomioidaan myös työn yleisilme ja se, kuinka isossa ryhmässä työ tehtiin. Arvosanaa ei lasketa mekaanisesti osa-alueiden arvioista. Arviosta annetaan perusteltu lausunto.
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.