Nivå och poängvärde: | A 90 |
---|---|
Kort beskrivning: | Vi fixar fel i de givna klasserna som beskriver fotbollsmatcher och ändrar klasserna en del. |
Vad vi lär oss: | Att läsa klassernas definitioner (instansvariabler, metodernas implementation), att ändra klassernas definition, att fixa syntaxfel. |
Frihet i implementationen: | Medel. Tillvägagångssättet är inte exakt utstakat, men problemet är så pass litet att det inte finns så många unika lösningar. |
Realism: | Hög. Att fixa fel och skapa klasser är extremt centrala programmeringsfärdigheter. Den givna "sportstatistiken" är som ämne ett helt realistiskt tillämpningsområde, även om det här grundkursprojektet inte riktigt motsvarar ett "riktigt" sportstatistik-program. |
Utmaning: | Medel. Att förstå anatomin av en klass samt instansvariablernas metoddefinitioner kräver att man förstår många av koncepten inom objekt-programmering. Att tolka felmeddelanden är också utmanande för en nybörjare. |
Arbetsmängd: | Tämligen lätt. De flesta klarar sig på ett par timmar, men det lönar sig att reservera mera tid för säkerhets skull. |
Bekanta er med de givna klasserna Match
och Club
, med vilka man bokför resultaten av fotbollsmatcher, samt med startmetoden i modulen match_test
. Den här gången är det meningen att bekanta sig både med klassernas dokumentation och implementation. Genom att undersöka koden visar det sig att klassernas kod innehåller syntaxfel. Ett syntaxfel är ett fel i koden som bryter mot programmeringsspråkets strukturella regler ("grammatiken"). I den givna koden hindrar alla felen fullständigt användandet av dessa klasser. Dessutom fattas helt och hållet ett par (i dokumentationen beskrivna) metoder i klassen Match
. Och inte nog med det: koden innehåller också en liten "bug". En av Match
-klassens metoder innehåller ett fel som är grammatikaliskt rätt men som gör att metoden inte fungerar som dokumentationen säger.
I denna uppgift måste ni:
Match
och Club
så att det går att använda klasserna.
Match
-klassens två saknade metoder (get_goal_difference
och get_location
).
match_test
-modulens simpla huvudprogram så den fungerar.
Match
och fixa den.
match_test
-modulens huvudprogram så att den testar klasserna mer utförligt. Använd det
nya huvudprogrammet för att kolla att alla korrigeringar och tillägg fungerar.
Nedan finns många bra tips, det lönar sig att kolla igenom dem.
Lämna in de redigerade filerna i Goblin. Om ni behöver hjälp med inlämningen, finns mera information i kursens Goblin-guide.
'Match' object has no attribute 'get_goal_difference'
, när det hittade vissa fel i koden? Vad betyder dessa meddelanden och vad betyder
de för programmeraren? Skulle du själv ha formulerat saken på ett annat sätt? Dylikt filosoferande kan hjälpa att förstå
koncept inom programmering bättre och ger rutin i användandet av programmeringsverktygen.