Sist endret: 20.08.2017  
 

Øvinger

[Øvinger] [Poengoversikt] [Informasjon]

Nr Frist Teori LF Praksis Data Problem LF Best
1 04.09. 15:00 Problemer og algoritmer x På sporet av sprengstoff Lenket liste Traversering x -
2 11.09. 15:00 Datastrukturer x Kortstokker Array Merging/Sortering x x
3 18.09. 15:00 Splitt og hersk x Pipesortering Array Sortering, Søking x x
4 25.09. 15:00 Rangering i lineær tid x Flexradix Array Sortering (i lineær tid) x x
5 02.10. 15:00 Rotfaste trestrukturer x Kobra lærer å stave Tre Trebygging og søking x x
6 09.10. 15:00 Dynamisk programmering x Seddeltrykkeriet Array Dynamisk programmering x x
7 16.10. 15:00 Grådige algoritmer x Pengeveksling Array Grådighet/Dynamisk programmering x x
8 23.10. 15:00 Traversering av grafer (graf algoritmer) x Redd Ratatosk Tre Traversering x x
9 30.10. 15:00 Minimale spenntrær x Veibygging i Ogligogo 2 Graf Min. spenntre x x
10 06.11. 15:00 Korteste vei, én til alle x Mumien Vektet nabomatrise Korteste vei x x
11 13.11. 15:00 Korteste vei, alle til alle x MsAlgoFan på ferie Nabomatrise Korteste vei x x
12 20.11. 15:00 Maks flyt og NPC x Skumlehulen Nabomatrise Maks flyt x x

Om øvingsopplegget

  • Obligatorisk. Du må ha 300 poeng på de 6 første øvingene, samt 300 på de 6 siste øvingene for å gå opp til eksamen.
  • Det er 12 teoriøvinger og 12 programmeringsøvinger.
  • Både programmeringsøvingene og teoriøvingene leveres på nett og rettes automatisk.
  • I hver av de to øvingsbolkene gis det maks 550 vanlige poeng, men du kan i tillegg få inntil 50 bonusboeng for lav kjøretid på programmeringsøvingene.
  • Selv om grensa for å ta eksamen er lav, kreves en større beherskelse av faget for å bestå.
  • Det forventes at du lærer og oppnår god beherskelse av følgende elementer fra praksisøvingene:
    • Bruk av lister.
    • Bruk av stakker
    • Bruk av køer
    • Bruk av rekursjon
    • Traversing av grafer
    God fortrolighet med lister, stakker, køer, rekursjon og grafer vil hjelpe deg så utrolig mye med resten av faget, så vi anbefaler at du lærer deg disse grunnleggende begrepene så godt som mulig så tidlig som mulig. Ordet 'grunnleggende' impliserer tross alt at disse begrepene ligger til grunn for andre ting, nemlig resten av faget. Det er ingen heksekunst å lære seg dem, det dreier seg bare om å lese litt i boka og gjøre og forstå øvingene.

Teorioøvingene

Teoriøvingene er multiple-choice og skal besvares over Internett. For din egen del skjules avkrysningsboksene når du først viser øvingen. Det vises i stedet tekstbokser, slik at du kan tenke ut det tror er riktig i stedet for å bruke eliminasjonsmetoden. Du er på ingen måte nødt til å bruke tekstboksene, og det du evt. skriver i dem blir ikke evaluert.

Teoriøvingene rettes automatisk idet innleveringsfristen går ut. Frem til det kan du registrere og gjøre om svar så mange ganger du vil. Poengene dine blir beregnet når øvingen blir rettet.

Etter at innleveringsfristen har gått ut, kan du endre svarene dine så mye du vil (f.eks. fjerne svarene). Poengsummen påvirkes selvfølgelig ikke av dette. Husk å sjekke at du har fått tildelt poengsum for en øving, før du endrer riktige svar.

Programmeringsøvingene

Programmeringsoppgavene bør besvares med programmer skrevet i Python 3 eller Java 1.8 og leveres over Internett. Det er mulig å levere i flere forskjellige språk - se innleveringssiden for en øving. Merk at du ikke kan forvente å få hjelp av stud.ass.er dersom du leverer programmeringsoppgavene i et annet språk enn Python/Java.

Alle øvingene vil sannsynligvis ha et bestemt format på inndata og et bestemt format på utdata, og utenom det er det opp til deg hvordan du vil løse problemet. Dette er gjort for å gi deg større frihet. Men fokus er på selve algoritmene og datastrukturene, ikke lesing av filer i Python. Derfor vil vi i alle fall i begynnelsen dele ut et rammeverk som gjør en del ting for deg. Det vil også være hint i øvingene om hvordan du bør løse oppgavene. Det er ikke sikkert du får den mest effektive løsningen ved å følge disse hintene. De er tilpasset oppgavens pedagogiske formål.

Programmeringsøvingene kan sjekkes for korrekthet kontinuerlig (hvis du klikker på 'Kjør' dem etter å ha levert dem). Poeng for korrekthet blir tildelt med én gang. Dersom du har alle korrekthetstestene riktig, blir øvingen din kjørt på et større testsett med tidtaking. Denne tiden lagres i en highscore. Idet innleveringsfristen går ut, beregnes bonuspoeng for hastighet ut i fra din plassering i highscore. Merk at noen øvinger har liten forskjell i kjøretid og derfor ikke gir bonuspoeng.

Flere av programmeringsøvingene har en eller flere godbiter. Dette er små oppgaver som noen ganger gir hint om hvordan kjøretiden på besvarelsen din kan forbedres og andre ganger gir forslag til artige oppgaver å bryne seg på.

Manuell godkjenning og feil

Programmene som skal implementeres i øvingene godkjennes automatisk dersom de fungerer. Det er også mulig for en stud.ass. å godkjenne programmet ditt på sal dersom du ikke klarer å få det til å fungere akkurat slik det skal. Se tilgjengelige studasser. En slik godkjenning gir nøyaktig 40% uttelling, både av korrekthetspoeng og hastighetspoeng.

Det kan være flere årsaker til at du ikke få godkjent programmet ditt automatisk. Systemet vil indikere om det skyldes for eksempel programkræsj eller feil output. Feil output kan bety en minimal trykkfeil i teksten som programmet ditt skriver ut eller at algoritmen din er feil. Det kan også, selv om det egentlig ikke skal skje, være feil og tvetydigheter fra vår side. Dersom du mener at det sannsynligvis er en feil i systemet bør du kontakte studass og dersom studassen er enig kan dere poste det på Piazza.