Joppes djurfamilj v2. Planering. Genomförande. Utvärdering och dokumentation

Relevanta dokument
PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...

SKOLFS. beslutade den -- maj 2015.

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

SKOLFS. beslutade den XXX 2017.

Undervisningen i ämnet mobila applikationer ska ge eleverna förutsättningar att utveckla följande:

TUTORIAL: KLASSER & OBJEKT

Laboration 1 - Grunderna för OOP i Java

Outline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

Objektorienterad Programmering (TDDC77)

Outline. Objektorienterad Programmering (TDDC77) Åsidosättning. Signatur. Åsidosättning. Abstrakta klasser. Ahmed Rezine.

Erik jagar en hund. Torsten Bengtsson. Lärarmaterial. Lgr 11 - Centralt innehåll och förmågor som tränas:

TUTORIAL: SAMLING & KONSOLL

Problemet. Vi har sett att vi kan ersätta de metoder vi ärver från överklassen med egen funktionalitet (polymorfism)

LARM OCH SÄKERHETSTEKNIK

Kursplanering Objektorienterad programmering

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

LARM OCH SÄKERHETSTEKNIK

Capítulo 5, Animales y países, Tapas 2

Undervisningen i ämnet programmering ska ge eleverna förutsättningar att utveckla följande:

DD1311 Programmeringsteknik för S1 Laborationer läsåret

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

Planering Programmering grundkurs HI1024 HT TIDAA

Kurs: Fritids- och friskvårdsverksamheter. Den arbetsplatsförlagda utbildningen ska behandla följande centrala innehåll:

[SLUTRAPPORT: DRAWPIXLZ (ANDROID-APP)] Slutrapport. Författare: Zlatko Ladan. Program: Utvecklare av Digitala Tjänster 180P

Objektorienterad Programmering (TDDC77)

Abdi och bokhunden VAD HANDLAR BOKEN OM? LGR 11 CENTRALT INNEHÅLL SOM TRÄNAS ELEVERNA TRÄNAR FÖLJANDE FÖRMÅGOR LGRS 11 CENTRALT INNEHÅLL SOM TRÄNAS

Facit Tentamen TDDC (7)

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

WEBBSERVERPROGRAMMERING

Classes och Interfaces, Objects och References, Initialization

Tentamen ID1004 Objektorienterad programmering October 29, 2013

LARM OCH SÄKERHETSTEKNIK

Vanliga frågor för VoiceXpress

Planering Programmering grundkurs HI1024 HT data

Gymnasiearbetet

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

Typhierarkier del 1 Gränssnitt, ärvning mellan gränssnitt, ärvning mellan klasser

Bedömningsstöd till Tummen upp! NO kartläggning åk 3

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

Programmering för språkteknologer II, HT2011. Rum

Frågor och svar till tentamen i Kravhantering

L04.1 Marodören. Inledning. Mål. Genomförande. Uppgift 1 Hello World. Moment I

Kursplanering för EE3D i kursen Programmering 1, 100p.

Lingonvägen Kom ner, Sotis!

Objektorienterad Programkonstruktion. Föreläsning jan 2016

Får jag be om ordet!

Objektorienterad programmering i Java I

MÅLERI. Ämnets syfte. Undervisningen i ämnet måleri ska ge eleverna förutsättningar att utveckla följande:

OOP Objekt-orienterad programmering

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Slutrapport Get it going contracts

Programmering. Scratch - grundövningar

INFORMATION TILL APL-PLATSERNA Barn- och fritidsprogrammet, elever i årskurs 3 inriktning Pedagogiskt arbete

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Objektorientering i liten skala

Kopiering av objekt i Java

Elev... Kontaktuppgifter... Lärare... Kontaktuppgifter... Medbedömare... Kontaktuppgifter...

HI1024 Programmering, grundkurs TEN

Webbserverprogrammering

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer

Ett spel skapat av Albin Wahlstrand

Designspecifikation den 13 december 2007

ÄMNESPLANENS STRUKTUR. Progressionstabellen

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18

Checklista för bedömning av teoretisk validering Kurs: Hälsopedagogik 100 poäng Kurskod: HALHAL0

UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

729G06 Programmering och logik. Info om pythondelen & introduktion till objektorienterad programmering.

Objektorienterad Programmering (TDDC77)

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

Sätt att skriva ut binärträd

Den arbetsplatsförlagda utbildningen ska behandla följande centrala innehåll:

Kurs: Fritids- och friskvårdsverksamheter. Förklaring av begrepp kopplade till bedömning

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

Objektorienterad programmering

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets

Lärarmaterial. Vad handlar boken om? Mål och förmågor som tränas: Eleverna tränar på följande förmågor: Författare: Thomas Halling

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

Chapter 3: Using Classes and Objects

Digitalt lärande och programmering i klassrummet

TDP005 Projekt: Objektorienterat system

PROGRAMMERING AV LEGO-ROBOT VIA NXC

Grundläggande programmering med C# 7,5 högskolepoäng

Abstrakta datatyper Laboration 2 GruDat, DD1344

ANLÄGGNING. Ämnets syfte

Minifakta om hundvalpar

Felhantering TDDD78, TDDE30, 729A

kl Tentaupplägg

LIA 3. Elevens namn: Skola och ort: Klass: LIA bok: LIA Utkast

729G06 Föreläsning 1 Objektorienterad programmering

Laboration 3, uppgift En klass för en räknare

FASTIGHETSFÖRVALTNING

Abdi och valparna LÄSFÖRSTÅELSE. Elevmaterial. Kapitel 1 ÅSA ÖHNELL SIDAN 1. Namn: Frågor på raden (Du hittar svaret på raden, direkt i texten.

HUSBYGGNAD SPECIALYRKEN

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Transkript:

Joppes djurfamilj v2 Joppes djurfamilj är ett projekt för programmering 2 där fokus ligger på arv och polymorfism. Projektet är uppdelat efter tre olika betygsnivåer och där det beskrivs vad som förväntas av redovisningen. Joppe är en hängiven husse till ett par katter och flera hundar. I detta program ska vi öva på arv och skapa klasser för Joppes olika typer av djur. Dessa djur beter sig olika i olika situationer. För dig som elev så är det tre moment som ska genomföras: 1. Planering 2. Genomförande 3. Utvärdering & dokumentation Här kommer en beskrivning av dessa moment Planering Längre fram beskrivs ett UML för programmet för betyget E och C. Det innebär att planeringsmomentet blir lätt för dessa betyg och att man mer eller mindre kan rita av detta UML. Dock ska man också skriftligt förmedla tankar och idéer runt hur programmet ska fungera och vilka utmaningar ni ser framför er. På detta sätt kan också handledaren återkoppla till detta och leda er rätt om ni tänkt fel eller kan ge övrig input. För betyget A ska man ha någon ytterligare klass med en tydlig beskrivning av vad denna har för roll i programmet. Genomförande Detta moment innebär att ni arbetar med programmet vilket då innebär kodning men också felsökning. Vi vill ju ha ett buggfritt program så långt som möjligt. Utvärdering och dokumentation Detta moment kan ofta vara det mest intressanta särskilt ur lärarens synvinkel. I detta moment ska du som elev kunna återberätta arbetet och peka på saker som har gått bra och saker som gått mindre bra.

Detta moment redovisas lämpligen i två separata filer: Dokumentation Utvärdering Utvärdering Utvärdering handlar om att du ska reflektera över ditt arbete och bedöma din egen insats. Vad har gått bra? Vad har gått mindre bra? Hur väl stämmer programmet överens med den ursprungliga planen. Du ska kunna peka på brister som finns i nuvarande program. Det handlar om att du som elev visar att du är medveten om dessa vilket bara är positivt. Du ska kunna peka på hur programmet kan byggas vidare och förbättras. Felsökning och kvalitetssäkring är viktiga begrepp här du ska alltså beskriva hur du jobbat med att felsöka koden efter fel och hur du förhoppningsvis fått ett program som är fritt från buggar och fungerar bra. När du utvärderar ditt arbete är det viktigt att använda korrekta begrepp (terminologi) och kunna kommunicera arbetet på ett säkert sätt. Det är väldigt viktigt att du utvärderar programmets ändamålsenlighet dvs om programmet gör det som det förväntas göra och på ett lämpligt sätt. Dokumentation Enligt kunskapskraven för denna kurs ska man kunna dokumentera sitt arbete. Det innebär att ni ska kunna lämna över en beskrivning av hur ert program fungerar. Man kan se dokumentationen som en manual över programmet. Man kan i viss mån hävda att kommentarer i koden är en slags dokumentation dock är en separat dokumentation ofta mer utförlig.

Joppes djurfamilj: Betyg E För betyget E gäller följande UML: Här kommer en beskrivning av hur programmet ska fungera: Petowner Denna klass används för att skapa en husse, det villa säga Joppe. Joppe har en ålder (-age : int) samt äger en eller flera djur (pets: List<animal>) som då lagras i en lista. Med fördel får Joppe att antal djur när programmet startar. Från listan av djur kan Joppe leka med djuren genom att anropa metoden Interact() i animal-klassen. Exempelvis: pets[2].interact(); Detta görs i metoden Play()

I metoden menu() visas då en meny med olika valmöjligheter och som är kopplat till metoder enligt följande: 1. Play fetch (metoden Play) 2. Feed Animal (metoden Feed) 3. List animals (metoden list_animals) Här kommer en beskrivning av dessa metoder: Play() Denna metod frågar användaren vilket djur som Joppe ska leka med och därefter anropar metoden Interact() i det djurobjektet. Feed() Denna metod frågar användaren vilket djur som Joppe ska mata och därefter anropa det djurobjektets metod för detta (eat()). Denna metod hanterar också vilken mat som Joppe ska mata hunden med och som ska skickas med som en inparameter till denna metod. List_animals() Denna metod listar helt enkelt djuren på ett lämpligt sätt genom att skriva ut var och en av djur-objekten. Animal Klassen animal är en abstrakt klass. I denna klass finns flera fält definierade plus tre stycken metoder. Fälten är rätt självbeskrivande. Age: Hur gammal djuret är Name: Djurets namn Fav_food: Djurets favoritmat som beskrivs med en vanlig sträng Breed: Djurets ras Hungry: Sant eller falskt för om djuret är hungrigt Metoden Interact() innebär att djuret leker med djurägaren (Joppe). Detta förmedlas med en lämplig utskrift. Om djuret är hungrigt så vill inte djuret leka utan klagar istället. Metoden eat() tar emot en sträng och jämför denna mot djurets favoritmat. Om djuret får sin favoritmat så äter djuret upp maten och blir därefter mätt (#hungry : bool). Får inte djuret sin favoritmat så finns en metod som styr vad djuret gör om djuret är hungrigt (+hungry_animal()). Som standard kommer djuret gny och klaga på att djuret inte får någon mat. Denna metod anropas om djuret inte får sin favoritmat ovan.

Favorit-mat sätts i respektive underklass och som är lämpligt för djuret. Cat Klassen cat ärver från animal. Det som skiljer denna klass från den generiska animal-klassen är metoden hungry_animal() som därmed ska ha en override. Om katten inte får sin favoritmat så går han på egen hand ut och jagar en mus. Lämplig text skrivs ut i konsollen som bekräftar detta. Det är 50% chans att katten hittar en mus och blir mätt, annars är katten fortfarande hungrigt. Utöver detta kan texten för interact() ändras eftersom katten leker annorlunda än hundar. Dog Klassen dog ärver från animal Denna klass skiljer inte från den abstrakta klassen Animal Puppy Klassen puppy ärver från dog Puppy skiljer sig från klassen hund då den har ytterligare ett fält för hur många månader gammal valpen är. Åldern i år ska sättas till noll (0).

Joppes djurfamilj: Betyg C Börja med att ta del av följande UML. Beskrivningen för betyget E gäller med följande påbyggnad: Juppe (hundägaren) äger nu också en boll som har vissa egenskaper och metoder. Bollen har bland annat ett värde för kvalitet. När bollen når noll(0) i kvalitet så går inte bollen att leka med längre. Tanken är nu att denna boll kastas till det djuret som Joppe leker med. Joppe leker med valfritt husdjur via metoden Fetch() precis som för betyget E men att Joppe nu alltså skickar med sin boll: Exempelvis: pets[2].interact(ball); När bollen skickas till ett djur som vill leka så kan bollen få sämre kvalitet då djur i allmänhet gillar att tugga på bollar

Check on ball() Denna metod tillkommer och är endast till för att Joppe ska kunna titta på sin boll och att då objektet för bollen skrivs ut. Är kvaliteten låg kanske Joppe kan hitta på något? Köpa ny boll exempelvis. Animal Den stora skillnaden mot versionen för betyget E är att metoden Interact() nu alltså har datatypen Ball som inparameter och där djuret då kan påverka bollen. Interact(in ball : ball) Det generiska beteendet för djuret är att djuret nafsar på bollen och sänker kvaliteten på bollen med ett (1) vilket i sin tur sker genom att anropa metoden lower-quality() i bollobjektet. Dog Klassen dog ärver från animal Hunden skiljer sig från den generiska klassen animal i metoden interact(in ball : ball). I denna metod biter hunden hårt på bollen och sänker dess kvalitet via metoden lower_quality(int tal : int) som finns i boll-klassen. Kvaliteten kan sänkas med 2 då hunden är fullvuxen och biter rätt hårt. Puppy Klassen puppy ärver från dog När valpen interagerar med bollen sjunker kvaliteten endast med ett (1) då valpen inte biter så hårt i bollen. Ball Klassen för boll bör inte innebära några konstigheter i övrigt. Tolka UML:et på ett rimligt sätt.

Joppes djurfamilj: Betyg A För betyget A finns inget nytt UML. Här handlar det om att du ska arbeta utifrån kravet för betyget C men utveckla programmet ytterligare. Det handlar främst då om att man kan bygga ut programmet med ytterligare klasser och funktionalitet. För detta betyg ställs också högre krav på alla moment inklusive planering, genomförande och utvärdering. Att du som elev är betydligt säkrare när du exempelvis kommunicerar ditt program. Det lämpliga här är att du förmedlar en utförlig och noggrann planering för Joppes hundar för handledaren där du får kommunicera din plan och sälja in att det program som du tänkt göra uppfyller kraven för betyget A i fråga om komplexitet. Dock är det inte fråga om att man ska lägga till väldigt mycket mer det kan handla om att man hanterar maten bättre exempelvis att Joppe har ett skafferi med mat och att Joppe har fler än en boll. Man kan också jobba djupare med djur och skapa flera djur-arter som ärver djupare ner i trädet.