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