Forudsætninger:
Der er tidligere arbejdet med Python, eleverne kan læse programmer, der er opdelt i klasser. Ellers er her en lille øvelse, der kan hjælpe på forståelsen af forskellen mellem funktioner og metoder i klasser, sum af tal i en liste. Der arbejdes i PyCharm, men andre IDEs kan også bruges.
Koden til blockchain-eksemplet er skrevet til Python 3.6.5, men fra den oprindelige hjemmeside Tiniest Blockchain kan hentes kode i version 2.5/6.

Introduktion - 15 min
Introducer forløbet. Diskuter, hvad eleverne allerede ved/tror om blockchain og dets anvendelser.
Se video om, hvordan blockchain fungerer How does a blockchain work - Simply Explained - 6 min
Blockchain unplugged - 3 x 60 min
Tre øvelser uden computer, markedsøvelsen demonstrerer brugen af distribueret information om en stribe hændelser, biblioteksøvelsen demonstrerer, hvordan en hashfunktion virker, stemmeboksøvelsen demonstrerer, hvordan blockchain kan bruges til at sikre at et valgresultat kan verificeres af den enkelte.
En implementation af blockchain - 150-180 min
1. Introduktion og download - 30 min
”Let’s build the tiniest blockchain” - oprindelige kode og forklaring er skrevet af Gerald Nash, og ses her
Hent koden (skrevet i Python 3.6):
snakecoin-kode i fire moduler (mere overskuelig, bruger imports til at modularisere, kræver Python installeret)
snakecoin-kode i én fil (al koden i én fil, kører i pythonanywhere.com, så man ikke behøver at installere Python)
Se en kort walkthrough af koden her: snakecoin walkthrough
2. Øvelser - 90-120 min
- Kør koden, hvad gør den, hvorfor, hvordan virker den?
- Print andre dele af blokken ud
- Læg andet data i blokken, og print det ud. Sørg for at det er med i input til hashfunktionen
3. Diskussion - 10-20 min
- Hvad ved I nu om blockchain?
- Hvilke dele af teknologien matcher vores kode?
- Hvilke dele udelader vores kode?
- Er det et problem?
Opgave - 90 min + tid til at præsentere video for klassen
Vælg en anvendelse af blockchainteknologien, et område, hvor det vil give en forbedring (f.eks. containere, tracebility - ægte, bæredygtig)
- Tilpas koden til eksemplet (ændr på data-komponenten og hash-funktionen)
- Lav en videodemo af jeres program, hvor I viser programmet køre
eller
Lav en video, hvor I forklarer, hvordan blockchain virker i jeres valgte område