diff --git a/lectures/asciidoc/index.adoc b/lectures/asciidoc/index.adoc
index c53a9c4ae1769c77d9a4447a93d2f43752c0ddd9..d6df4366ef3383cb2255a468daba7dfbcb0ca5ec 100644
--- a/lectures/asciidoc/index.adoc
+++ b/lectures/asciidoc/index.adoc
@@ -15,6 +15,14 @@ include::{sourcedir}/gitpod.adoc[leveloffset=+2]
 
 include::{sourcedir}/ci.adoc[leveloffset=+2]
 
+=== Oppsummering av øving 1
+
+link:slides/individuell-oblig.html[Lysarkene] oppsummerer den individuelle, obligatoriske øving 1
+
+=== Kodestank
+
+link:slides/kodestank.html[Lysark] om såkalt "kodestank" (code smell)
+
 == 2020
 
 === Programvareutvikling
diff --git a/lectures/revealjs/individuell-oblig.adoc b/lectures/revealjs/individuell-oblig.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..bfd258facdb77fdf31df502ff5293a0df2f3871e
--- /dev/null
+++ b/lectures/revealjs/individuell-oblig.adoc
@@ -0,0 +1,94 @@
+= Individuell obligatorisk øving
+:customcss: slides.css
+:icons: font
+:includedir: includes/
+:LECTURE_TOPIC: Øving 1
+:LECTURE_NO: 
+
+include::{includedir}header.adoc[]
+
+== Læringsmål for øvingen
+
+* grunnleggende git-ferdigheter
+* oppsett av java-prosjekt med maven
+* sammenheng mellom navn, struktur og innhold
+* oppfriskning om javafx og fxml
+* generell feilfinning
+
+== Hensikt
+
+Alle skal kunne bidra til prosjektet!!!
+
+== Grunnleggende git-ferdigheter
+
+* opprett kodelager på gitlab
+* klone mal-kodelager (`git clone`)
+* knytte kodelager til annet fjernlager (`git remote`)
+* overføre til fjernlager (`git push`)
+* lage nye versjoner (`git add` og `git commit`)
+
+== Java-prosjektoppsett m/maven
+
+* kildekodemapper og pakkehierarki
+** **src/main/java** og **src/main/resources**
+** **src/test/java** (og **src/test/resources**)
+* pakkehierarki og mappestruktur
+** pakkenavn(segmenter) tilsvarer mappestruktur
+** både kode og ressurser hører til pakker
+** `getClass().getResource(...)`
+
+== Navn, struktur og innhold
+
+* klasser og filer, pakker og mapper
+* konfigurasjon i pom.xml
+** klassenavn (og modulnavn)
+** kommandolinje-argumenter
+* **module-info.java**
+** modulnavn i deklarasjon og `requires`
+** pakkenavn i `exports` og `opens`
+
+== Navn, struktur og innhold
+
+* **pom.xml**
+** konfigurasjon av maven-tillegg
+** inkl. kjøring av tester og app
+** klassenavn (og modulnavn)
+** kommandolinje-argumenter
+
+== Oppfriskning om javafx og fxml
+
+[.smaller-80]
+* rollefordeling mellom domene- og kontroller-klasse(r)
+* kobling mellom fxml og kontroller-klasse
+** **fx:id** og **onXyz**-attributter i fxml-fil
+** felt og metoder i kontroller-klasse
+* programflyt i kontroller
+** initiell visning av tilstand
+** reaksjon på hendelser
+** oppdatering av visning
+
+== Generell feilfinning
+
+[.smaller-80]
+* tolke symptomer
+** hvorfor reagerer ikke appen?
+** hvordan finne ledetråder i "stacktracen"?
+** hvorfor kalles ikke metoden?
+* løse problemet
+** utvikle hypoteser om årsaker
+** validere (eller falsifiere) hypoteser
+** prøve ut løsninger
+
+== Hva nå?
+
+[.smaller-80]
+* rigging av gruppeprosjekt
+** nytt fjernkodelager (satt opp av oss)
+** tilpasning av https://gitlab.stud.idi.ntnu.no/it1901/javafx-template/-/tree/main/modules-template[**modules-template**]
+* fler-modul-prosjekt
+** mye det samme, men litt mer komplisert
+** enklere å skille utviklingsoppgaver
+* større brukergrensesnitt
+** flere kontroller-klasser og fxml-filer
+
+include::{includedir}footer.adoc[]
\ No newline at end of file
diff --git a/lectures/revealjs/kodestank.adoc b/lectures/revealjs/kodestank.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..6add030304fca0ee61701d59603b077170ceb521
--- /dev/null
+++ b/lectures/revealjs/kodestank.adoc
@@ -0,0 +1,105 @@
+= Kodestank
+:customcss: slides.css
+:icons: font
+:includedir: includes/
+:LECTURE_TOPIC: Kodestank
+:LECTURE_NO: 
+
+include::{includedir}header.adoc[]
+
+== Kodestank  (code smell)
+
+Fra https://en.wikipedia.org/wiki/Code_smell[wikipedia]:
+
+"Smells are certain structures in the code that indicate violation of fundamental design principles and negatively impact design quality"
+
+== Kodestank
+
+* suspekt kode
+** virker nå, men kanskje ikke på sikt
+** vanskelig å jobbe med
+** bryter med god skikk og designprinsipper
+
+== Lukt fra i fjor
+
+* innkapsling og tilstand (8)
+* bruk av typer og collection-rammeverket (12)
+* testing (8)
+* avhengigheter og fordeling av klasser/logikk (3)
+* app (5)
+* IO (4)
+
+== Innkapsling og tilstand
+
+* bruk av `public`, ikke bruk av `final`
+* manglende validering
+* direkte bruk eller returnering av samlinger
+* uheldig bruk av **equals**
+
+== direkte bruk eller returnering
+
+[source, java]
+----
+public Nicknames(Collection<String> nicknames) {
+    this.nicknames = nicknames;
+}
+
+public Collection<String> getNicknames() {
+    return this.nicknames;
+}
+----
+
+== Typer og collection-rammeverket
+
+* feil typer for representasjon av tilstand
+** **String**, **java.util.Date**, wrapper-klasser
+** kunne brukt **enum**- og **record**-typer
+* manglende typeargumenter (såkalt "rå" typer)
+* implementasjon i stedet for (riktig) grensesnitt
+* implisitt bruk av feil listetyper
+* bruk av uhensiktsmessige metoder på samlinger
+
+== Testing
+
+* testing av uviktige eller trivielle metoder
+* poengløs og feil testing av unntak
+* lite informative feilmeldinger
+* test av overflatedetaljer i GUI
+* rydder ikke opp etter filbehandling
+
+== Avhengigheter og fordeling av kode
+
+* IO-kode blandet med domenelogikk
+* avhengigheter på feil sted
+** til JavaFX-klasser i ikke-UI-moduler
+** til REST-tjeneste-klasser
+
+== App
+
+* statisk variabler for app-global tilstand
+* manglende oppdeling av kontroller-klasser
+* uhensiktsmessig håndtering av unntak
+* feil implisitt bruk av **toString()** i GUI
+
+== IO
+
+* for mye bruk av **File**/**Path** i metodesignaturer
+* "try-with-resources" brukes for lite
+* bruk av **File**/**Path** for ressurs-filer
+* bruk av ikke-flyttbare absolutt stier ved fillagring
+
+== Hva gjør dere?
+
+[.smaller-60]
+* la flere "lukte" på koden
+** parprogrammering
+** kodegjennomgang
+*** av andre på gruppa
+*** læringsassistent
+*** tilbakemelding på innlevering
+*** verktøy (!)
+* tenk dere om: er dette riktig/best måten?
+* ikke-funksjonell omstrukturering (refactoring)
+* diskuter koden!
+
+include::{includedir}footer.adoc[]
\ No newline at end of file