Labb 6, 7 och 8 - allmänna instruktioner

Följande dokument gäller som övergripande instruktion gällande labb 6, 7 och 8 (hädanefter labbserien). I många fall kan dessa instruktioner användas som förtydligande av labbinstruktionerna.

Implementation och användning av abstrakta datatyper

Ett av målen med labbserien är att visa på användning och implementation av abstrakta datatyper och de primitiva funktioner man implementerar för att hantera abstrakta datatyper.

Primitiver kopplade till de abstrakta datatyperna.

Det är därför viktigt att de funktionerna som är associerade med de abstrakta datatyperna bara gör det de ska. Vill man så får man gärna kapsla in utökad funktionalitet i andra funktioner.

create_room() ska t.ex. returnera ett rum. Den ska inte lägga till rummet till det globala rums-dictionaryt. Vill man implementera sådan funktionalitet får man gärna göra det t.ex. i en funktion som man kallar för create_and_add_room().

Funktioner som inte nämns i labbinstruktionerna

Det är fritt fram att kapsla in kod i nya funktioner. Inkapsling och strukturering förespråkas, så länge ni inte ändrar på de primitiva funktioner enligt instruktion ovan.

Kreativ frihet

Det är fritt fram att göra sin personliga tolkning av utseendet och beteendet av programmet, så länge som det inte tar bort något moment som är kunskapsmässigt viktigt. Till exempel är det ok att programmet frågar “Vill du se vad som finns i rummet?” varje gång. Det är däremot inte ok om programmet ställer fyra frågor om vilket håll du vill gå. Nedanstående är ett exempel på detta som inte är ok.

Vill du gå norr? nej
Vill du gå öster? nej
Vill då gå söder? ja

Ovanstående är alltså inte ok. Nedanstående är däremot ok:

Vill du titta dig omkring? nej
Vill du röra på dig? ja
Vilket håll vill du gå (n, s, v)? s

Komplettering av PEP 8-kod

Det är ok att komplettera sin kod så att den följer PEP 8-standard. Den behöver inte vara PEP 8 vid första inlämningen för att man ska få bonuspoängen.

När gäller bonuspoängen?

De bonuspoäng man får för PEP 8-kod gäller endast vid första tentatillfället.


Sidansvarig: Jody Foo
Senast uppdaterad: 2012-11-16