You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Øvingsmål

  • Bli kjent med Java-syntaks og bruk av Eclipse
  • Lære (enkel) objektorientert tankegang
  • Lære å lage enkle Java-klasser og -programmer

Øvingskrav

  • Kunne tegne enkle tilstandsdiagrammer
  • Kunne deklarere klasser, med data og kode, iht. oppgavespesifikasjon
  • Kunne skrive main-metoder for å teste objekter
  • Kunne bruke standardtyper og -metoder (e.g. toString()-metoden)

Viktig beskjed!


For å få testene og eventuell kode til øvingene lokalt brukes systemet git. I Eclipse kan du klikke på Git --> Pull i menylinja for å hente den nye øvinga ved hjelp av dette.

Noen kan få et problem med en såkalt merge conflict på en .ex-fil når de prøver å pulle øvingene. Det løses på denne måten:

  1. Lukk Eclipse
  2. Lagre filen på denne lenken https://raw.githubusercontent.com/hallvard/tdt4100-2018/master/ovinger/.ex i <Installasjonsmappe for Eclips>/git/tdt4100-2018/ovinger. Pass på at fila skal lagres som .ex, ikke som .ex.txt eller med en annen ending.
  3. Du skal få spørsmål om å overskrive en eksisterende fil. Gjør det.
  4. Åpne Eclipse og prøv å pulle på nytt.

Dette må du gjøre

Hvis du ikke allerede har gjort det, må du installere Eclipse med det ferdigkonfigurerte oppsettet for TDT4100. Se denne wikisiden. 

Du skal velge og gjennomføre minst fire (3 som dere velger + FXML-oppgaven) av de følgende oppgavene angående Tilstand og oppførsel.

FXML-filer definerer et brukergrensesnitt, og du skal lage et grensesnitt som dekker bruk av en av klassene dine (f.eks. skal da alle metoder ha en mulighet for å kalles gjennom grensesnittet). Merk at du ikke bes om å koble dette brukergrensesnittet til klassen din, kun å lage selve grensesnittet. Dette kan f.eks. gjøres i SceneBuilder, som du kan lese om bruk av her.

Oppgavene er merket med en vanskelighetsgrad relativt til hverandre. Det er en god idé å begynne med de lettere oppgavene dersom du ikke er komfortabel med pensum så langt, men det er anbefalt å prøve seg på de vanskeligere oppgavene om du synes de første oppgavene er uproblematiske. Dersom du allerede føler deg trygg på punktene i øvingskravene kan du forsøke å gå rett på de vanskeligere oppgavene. Du er selvfølgelig velkommen til å løse flere oppgaver enn minstekravet, hvilket lurt gjøres med tanke på eksamen og et langt liv som programmerende.

Før du setter i gang kan det vært lurt å lese wiki-siden om Tilstand og oppførsel nøye, samt ta en titt på det tilhørende Counter-eksempelet. Forelesningene og tilhørende øvingsforelesning er selvsagt også lure å få med seg

Det finnes også masse ressurser her på wikien om hvordan ulike metoder skal fungere. F.eks toString-metode og og metoder for teksthåndtering. Naviger deg litt rundt om du lurer på noe. 

Hjelp / mistanke om bugs

Ved spørsmål eller behov for hjelp konsulter studassen din i saltiden hans / hennes. Du kan også oppsøke andre studasser på sal eller legge ut et innlegg på Piazza.

Godkjenning

Last opp kildekode på Blackboard innen den angitte innleveringsfristen. Innlevert kode skal demonstreres for stud.ass innen én uke etter innleveringsfrist. Se for øvrig Blackboard-sidene for informasjon rundt organisering av øvingsopplegget og det tilhørende øvingsreglementet.

Exercise-panelet viser hvilke aktiviteter som inngår i en oppgave og gir tilbakemelding om fremdrift og hvordan prosessen har forløpt. Hensikten er å støtte refleksjon om og forbedring av hvordan man jobber med programmering.

 

Læringsanalyse har som formål å øke læring ved å samle data om læringsaktiviteter og hvordan de bidrar til læringsutbyttet, for så stimulere til de "riktige" aktivitetene. Exercise-panelet er et ledd i dette, ved at det

  1. viser hvilke aktiviteter som inngår i det å gjøre en oppgave,
  2. logger data om hvordan prosessen forløper og
  3. visualiserer loggede data

Målet er å øke bevisstheten rundt hvordan man jobber med programmering og støtte refleksjon og dialog om prosessen.

Exercise-panelet

For hver oppgave finnes det en tilsvarende .ex-fil, som beskriver hvilke aktiviteter, f.eks. koderedigering, kjøring av tester osv, som er en del av oppgaven. Når en begynner å jobbe med en oppgave, så må en åpne .ex-fila for oppgaven i Exercise-panelet. Dette gjøres enten ved å høyreklikke på fila og velge Exercise > Open Exercise View eller å åpne panelet med Window > Show View > Other... > Exercise View og så dra og slippe .ex-fila i panelet. Hver .ex-fil åpnes i en egen fane, så en kan jobbe med flere oppgaver samtidig.

Selve panelet inneholder tre typer visninger:

  1. Hovedvisningen (main view ) gir en oversikt over aktivitetene og status for dem, f.eks. størrelsen (antall linjer) til filene en redigerer og antall deltester som ble kjørt med vellykket resultatet eller med feil.
  2. Kurvevisningen (plot view ) viser hvordan loggede tallverdier har endret seg over tid, f.eks. hvordan filer har vokst og antall vellykkede tester har økt.
  3. Editorvisningen (editor view ) lar deg se hvordan koden har endret seg over tid.

En bytter visning ved å velge tilsvarende ikon i knapperaden oppe til høyre i panelet ()

 Hovedvisningen - main view

Hovedvisningen gir en oversikt over aktivitetene som inngår i oppgaven og som det logges data om. For hver aktivitet så vises det de siste dataene som er logget, som utgjør en slags status for gjennomføringen av oppgaven/aktiviteten. Et eksempel er vist under:

Exercise-panelet med to sett med oppgaver og aktiviteter, fra FeatureList.ex-fila.

Det øverste settet fokuserer på redigering av oppgavespesifikk kode, her FeatureList-klassen, og kjøring av spesifikke tester, her FeatureListTest. For kildekoden så viser panelet antall linjer i filene, antall feil og varsler og antall ganger de er lagret. For testene så vises status for de ulike del-testene og antall ganger de er kjørt. For hvert tall er det indikert med en pil om det gikk opp eller ned, altså om siste målepunkt var over eller under forrige, og om det var bra (grønn pil), ikke bra (rød pil) eller verken eller (grå pil).

Den nederste halvdelen fokuserer på bruk av Eclipse sine funksjoner for feilfinning, her bruk av stoppunkter og to kommandoer for trinnvis kjøring. Her er verdien kun en teller for antall ganger funksjonen er brukt.

Merk at panelet viser det som er spesifisert i StopWatch2.ex-fila, så i et annet tilfelle vil innholdet være annerledes, med flere sett og ulike oppgaver og aktiviteter knyttet til andre filer.

 Kurvevisningen - plot view

I tillegg til status for oppgavene og aktivitetene, så lagres også tidligere status, slik at det er mulig å gjenskape en slags tidslinje over hva som ble gjort når. Samlet sett så skal det gi innsikt i strategier for oppgaveløsning, f.eks. om en prøver å skrive koden ferdig før en kjører tester, eller om en deler det opp i mindre trinn med hyppig testing. Kurvevisning viser hver hvordan loggede data for hver aktivietet har endret seg over tid. Et eksempel er vist under:

Et plot over status for aktiviteter over tid. Her vises størrelsen til filer, status for del-tester og bruk av diverse Eclipse-funksjonalitet. Gruppene av grafer tilsvarer aktiviteter i hovedvisningen og hver graf er en spesifikk lagret status. Hver graf eller gruppe kan slås av (eller på igjen) ved å bruke avkrysningsboksene. Sliderne rett under grafene kan brukes for å fokusere inn på et bestemt utsnitt, ved å forskyve den nedre og øvre (tids)grensen for hva som vises.

I dette eksemplet har FeatureList-koden økt jevnt og trutt i størrelse, og etter en stund har testene blitt kjørt, og flere av dem kjørte greit. Så er det gjort en redigering som har gjort at færre tester gikk gjennom, før alle feilene ble fikset og alle testen var vellykkede.

 Editorvisningen - editor view

Ved gjennomgang av programmeringsprosessen så kan det være nyttig å se på hvordan koden ble endret over tid. Editorvisningen gir det samme plot som over, men begrenset til redigeringsaktivitetene. Over kurvene vises koden (i miniatyr), og om en velger Show in editor, så åpnes koden i Java-editoren i visningsmodus. Under kurven er det en slider, som lar deg velge for hvilket tidspunkt du ser koden. Dersom du endrer dette tidspunkt, så vil koden over og evt. i Java-editoren oppdateres iht. hvordan koden var på det tidspunktet.

Exercise-modellen

Til grunn for panelet ligger en beskrivelse av oppgaver og tilhørende aktiviteter. For tiden støttes følgende typer oppgaver og aktiviteter:

  • spørsmål av ulike typer, inkludert spørsmål med tekstlige, numeriske eller ja/nei-svar, eller flervalgsspørsmål med denne typen svar
  • redigering av (spesifikke) klasser, hvor det ved lagring registreres koden og antall feilmeldinger og varsler (røde og gule streker i koden)
  • kjøring av (spesifikke) programmer
  • kjøring av (spesifikke) tester, hvor det registreres hvor mange tester som ga "success", "failure" eller "error"
  • bruk av (spesifikke) paneler, f.eks. åpning og aktivering
  • kjøring av (spesifikke) kommandoer
  • bruk av debuggeren, f.eks. stoppe kjøring i (spesifikke) metoder og trinnvis kjøring

For hver av disse oppgavene og aktivitetene blir det logget data som sier noe om gjennomføring og fremdrift. Alt dette ligger lagret i en .ex-fil for oppgaven, når en begynner arbeidet så inneholder den bare en beskrivelse av aktivitetene, og etterhvert som en jobber som fylles den med logg-data om gjennomføringen av aktivitetene.

 

 

  • No labels