Sist endret: 03.11.2008 [ English ]  
 

Øvinger

[Øvinger] [Poengoversikt] [Stikkordnotater] [Informasjon] [English translations]

Nr Frist Teori LF Praksis Data Problem LF Best
1 09.09. 10:00 Introduksjon x På sporet av sprengstoff Lenket liste Traversering x -
2 16.09. 10:00 Trær x Redd Ratatosk Tre Traversering x x
3 23.09. 10:00 Grafer og hashing x Kobra lærer å stave Tre Trebygging og søking x x
4 30.09. 10:00 Topologisk sortering og minimale spenntrær x Prinsessejakt Graf Traversering x x
5 07.10. 10:00 Kjøretidsanalyse x Veibygging i Ogligogo 2 Graf Min. spenntre x x
6 14.10. 10:00 Sorteringsmetoder x Pipesortering Array Sortering, Søking x x
7 21.10. 10:00 Korteste vei x Kortstokker Array Merging/sortering x x
8 28.10. 10:00 Floyd-Warshall x Mumien Vektet nabomatrise Korteste vei x x
9 04.11. 10:00 Maks flyt x Skumlehulen Nabomatrise Maks flyt x x
10 11.11. 10:00 Dynamisk programmering x MsAlgoFan på ferie Nabomatrise Korteste vei x x
11 18.11. 10:00 Grådighet x Pengeveksling Array Grådighet/Dynamisk programmering x x
12 25.11. 10:00 NP-komplette problemer x Tvilling-DNA Tabell Redigeringsavstand x x
13 02.12. 10:00 Parallellitet og repetisjon x Seddeltrykkeriet Array Dynamisk programmering 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 13 teoriøvinger og 13 programmeringsøvinger.
  • Både programmeringsøvingene og teoriøvingene leveres på nett og rettes automatisk.
  • Det gis maks 1190 vanlige poeng, men du kan i tillegg få inntil 120 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: 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 eller Java og leveres over Internett. Det er mulig å levere i flere forskjellige språk - se innleveringssiden for en øving. Merk at du vil kunne bli bedt om å tolke og forstå Python-programmer på eksamen og 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 stud.ass.er. 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 sende mail til algdat@idi.ntnu.no.


Gamle øvinger (høst 2003)

Nr Frist Teori LF Praksis Data Problem LF Best
1 28.08. 16:00 Introduksjon x Hallgrim 1: Lenket liste Lenket liste Traversering x x
2 04.09. 16:00 Trær x Hallgrim 2: Møtevirksomhet Tre Traversering x x
3 11.09. 16:00 Traversering x Hallgrim 3: Feriealibi Graf Traversering x x
4 18.09. 16:00 Spenntre x Hallgrim 4: Spionproblemet Nabomatrise Kombinatorikk x x
5 25.09. 16:00 Kjøretid x Hallgrim 5: Aksjespekulanten Array Kombinatorikk x x
6 16.10. 16:00 Sortering x Hallgrim 6: Kortstokker Array Merging/sortering x x
7 23.10. 16:00 Korteste vei x Hallgrim 7: Sannsynlighetslabyrinten Vektet nabomatrise Korteste vei x x
8 30.10. 16:00 Kjøretid, flytnettverk x          
9 06.11. 16:00 Graf, rekurrenser, dynamisk programmering x Hallgrim 9: Isolerte stier Vektet nabomatrise Maks flyt x x
10 13.11. 16:00 Dynamisk programmering x Hallgrim 10: Galne tastetrykk Tabell "Korteste vei" x x
11 20.11. 16:00 Korteste vei, problemtyper x          
12 27.11. 16:00 Kompleksitetsklasser x