Emneoversikt

Denne siden vil oppdatere seg underveis i kurset, og vil inneholde pekere til forelesninger og andre materialer vi bruker hver uke.

Obligatoriske kursaktiviteter

Oversik over obligatoriske kursaktiveter
Åpner Anbefalt deadline Siste deadline
Lab 0 ons 12. jan. fre 21. jan. fre 4. feb.
Lab 1 man 17. jan. fre 28. jan. fre 4. feb.
Lab 2 man 31. jan. fre 4. feb. fre 11. feb.
Lab 3 man 7. feb. fre 11. feb. fre 18. feb.
Lab 4 man 14. feb. fre 18. feb. fre 25. feb.
Lab 5 man 21. feb. fre 25. feb. fre 4. mars
Semesteroppgave 1 man 28. feb. - fre 25. mars
Lab 6 man 21. mars fre 25. mars fre 4. april
Semesteroppgave 2 oppstart (for alle) man 28. mars man 4. apr. fre 8. apr.
Semesteroppgave 2: Blob Wars
Åpen oppgave
man 28. mars - fre 29. april
Eksamen tirs 24. mai, 09:00 - tirs 24. mai, 14:00

Emneoversikt

Oversikt over materiell fra forelesninger og grupper
Uken som begynner Ressurser
17. jan.

Forelesning mandag: video, slides (pdf, pptx), kode. Praktisk info, litt om kurset, første linje med kode i Java.

Kræsjkurs tirsdag og onsdag: video tirsdag, video onsdag, kode. Java vs python: statiske typer, scope (krøllparanteser), likhet, boolske uttrykk, array, metoder. Syntax i Java.

24. jan.

Forelesning mandag: video, slides, kode. Objekter og klasser. Hvorfor bruke statiske typer. Eksempel på bruk av debugger. Live-koding: FireProtectionSystem.

Forelesning tirsdag: video, slides, kode og addendum. Objekter og klasser m/ tilhørende quiz. Hvor primitiver og objekter bor i minnet. Hvordan stacken forandrer seg etterhvert som koden kjører. Introduksjon av .equals og .hashCode. Live-koding: .equals og .hashCode i Sensor -klassen tilhørende fire protection systemet vårt.

Gruppetimer: Kahoot.

31. jan.

Forelesning mandag: video, forelesning 6 (.pdf, .pptx) om Abstraksjon og modularitet. kode, vi implementerte Book.java og Library.java

Forelesning tirsdag: video, forelesning 7(.pdf, .pptx) om Interface/Grensesnitt.

7. feb.

Forelesning mandag: video, slides, kode. Detaljert om objekter og hva som skjer i minnet. Repetisjon om static. Koding av et trafikklys. Såvidt introduksjon av innkapsling (encapsulation).

Forelesning tirsdag: video, slides, kode. Innkapsling ved tilgangsmodifikatorere (public/private) og ved bruke av grenesenitt (interface). Vi ser på et grensesnitt Runnable. Generiske typer. Vi ser på grensesnittet Comparable.

Gruppetime: slides. Opprett nytt maven-prosjekt. Implementer et telleapparat.

14. feb.

Forelesning mandag: video. Grid.

Forelesning tirsdag: video. Grid, exceptions, innkapsling, iterator og iterable.

21. feb

Forelesning mandag: video, slides, kode. Repetisjon av referanser og likhet. Dype strukturer, likhet og kopiering. Et glimt av rekursjon. Mutable (foranderlig) og immutable (uforanderlig).

Forelesning tirsdag: video, slides, kode. "Hva er hva?"-tankekart (padlet m/passord: abstraksjon). Arv. Abstrakte klasser. Grafikk. Vi tegner et sjakkbrett.

28. feb

Forelesning mandag: video, slides, kode m/ addendum. Introduksjon til semesteroppgave 1, Tetris. Interaktiv grafikk, model-view-controller. Vi koder et interaktivt brett.

Forelesning tirsdag: video. Klassediagrammer. Martin sitt UML-diagram over Tetris. Torstein sitt alternative klassediagram for Tetris (drawio, pdf).

21. mar

Forelesning mandag: video. Hvordan tolke feilmeldinger. Exceptions. Litt rekursjon. Introduksjon til game loop (sem2).

Forelesning tirsdag: video. Introduksjon til Blob Wars, GameLoop, Game, UML for utgangspunktet til sem2.

28. mar

Forelesning mandag: video, slides, kode: mouseEvents, tictactoe. Åpen oppgave vs Blob Wars. Refleksjon. Benytte musen med Java Swing. Observable. TicTacToe som eksempel.

Forelesning tirsdag: video. Gjennomgang av Tetris, noen vanlige spørsmål. Eksempelløsning.

25. apr

Forelesning tirsdag: video, slides, kode. Observerbare variabler. Funksjonelle grensesnitt. Applikasjon som viser input fra ekstern kilde (micro:bit) basert på model-view-controller og observerbare variabler.

2. mai

Tirsdag: gjennomgang av blob wars/semesteroppgave 2, video.

Prøveeksamen onsdag: oppgavetekst, repo med kodeoppgaver

9. mai

Tirsdag: gjennomgang av prøveeksamen (video: del1, del2). Sondre sitt løsningsforslag. Torstein sitt løsningsforslag og sensorveiledning.

Onsdag: Gnist sitt kræsjkurs ved Martin Øvsttun: slides, kode.

23. mai

Tirsdag 24. mai: Eksamen. Oppgavetekst, startkode. Løsningsforslag med sensorveiledning.