Freely available projects
This is an overview over projects I’ve taken part in that are now freely available on the Internet.
Much of this content is related to Oslo Code Club. Oslo Code Club teaches kids and young adults to code. I have taken part in course planning and creation, guided course nights and written tasks.
Hotload: Code Python live
Hotload (Github, release announcement) enables you to develop Python code from within your application, rather than from the outside. The development flow is inspired by Clojure’s REPL-driven development.
Hotload is all about response times. I want to drastically lower the effort of seeing the result of running new code. We’re now at a keystroke (ctrl+s) and a few milliseconds wait time. For the small projects I’ve been working on, the code is reloaded by the time the next frame is ready to be shown on the screen.
Computational Mechanics (Norwegian)
Masteroppgaven min handlet om hvordan materialer oppfører seg på liten skala, titulert “Finite element implementation of lower-order strain gradient plasticity in Abaqus”.
Når vi regner på hvordan konstruksjoner oppfører seg ved påføring av krefter, kan vi velge oss enkle modeller eller kompliserte modeller. Kriterier som påvirker valget er effekten av brudd, og hvor komplisert konstruksjonen i seg selv er. Enkle modeller er lette å forstå, kompliserte modeller har potensial til å predikere oppførsel mer nøyaktig.
- Newtons lover sier at en belastning må mobilisere en like stor reaksjonskraft.
- Elastisk teori gir at dersom vi dobler kraften, vil vi doble deformasjonen. Hvor stor deformasjonen er avhenger av stivheten i materialet.
- Plastisk teori tar hensyn til at det kan finnes en grense for hvor mye krefter en konstruksjon kan tåle. Dobler du kraften du bruker til å dytte på et tre, kan det hende at forskyvningen mer enn dobler seg.
- Gradientplastisk teori ser i tillegg på skalaeffekter. Dersom du påfører en svært høy last på et svært lite punkt, sier gradientplastisk teori at materialet skal oppføre seg stivere enn predikert av plastisk teori.
I masteroppgaven min utforsker jeg hvordan vi kan lage modeller som tar hensyn til gradientplastisk teori. Teksten er tilgjengelig på engelsk.
Elm (Norwegian)
Jeg tok initiativ til Kodeklubb i Elm i 2017. Erfaringer og anbefaling til bruk er samlet i en kursplan. Oppgavene dekker 10 kurskvelder, der hver kurskveld varer i halvannen time.
Typisk materiell for å lære seg Elm på nett er for personer som allerede er utviklere. Opplegget på Elm-kurset måtte være mer tilgjengelig; tidligere erfaring med programmering var Scratch, og kanskje litt Python.
- Hvor er HTML gir en visuell introduksjon til hvordan nettleseren leser og tolker HTML
- Prøv Elm i nettleseren introduser Elm-kode ved litt prøv og feil. Deltagerene får se hvordan fungerende kode ser ut, og hva resultatet er.
- Elm repl og funksjoner viser hvordan vi kan bruke
elm repl
å lage og teste funksjoner. - Elm reactor og moduler (av Alexander Perry) viser hvordan vi kan gjøre rask utvikling med
elm reactor
, og hvordan vi kan splitte opp kode vi skriver i forskjellige filer med moduler. - Input fra brukeren (av Alexander Perry) viser hvordan vi kan reagere på hva brukeren gjør i programmet vårt.
- Tegning med SVG viser hvordan vi kan tegne figuerer på nettsiden vår. Vi ser på SVG sin rolle, koordinatsystemer og kurver.
- Lær av et annet spill gir trening i å lese kode. Vi laster ned spillet Elm Joust, og ser på hvordan spillet er bygget opp. Vi lærer å kompilere spillet selv, samt gjør noen endringer i farger og fysikkmotor.
- Tell sekunder viser hvordan vi bruker tid i Elm. Hvor mange sekunder har gått siden vi åpnet siden? Kan vi få siden til å blinke?
- Kontroller med musen lar oss reagere på musebevegelser. Vi ser at hvordan vi tenker på musen er overraskende likt hvordan vi tenker på tid!
- Skrive egen kode (av Erik Aasmundrud) går tilbake til start, og gir mengdetrenging i å lage funksjoner.
- I Fraktaler definerer vi hva en fraktal er, og lærer å tegne våre egne. For å få til det, må vi innføre
map
ogconcat
– monadisk oppførsel for lister
Lecture notes: Introduction to Python (Norwegian)
Introduksjonskurs i Python med Alexander Perry for lærere og kolleger. Materellet er åpent tilgjengelig.
ComputerCraft (Norwegian)
ComputerCraft lar deg programmere dine egne objekter i Minecraft. Du får nye blokker du kan bruke, deriblant nettopp en Computer.
Jeg liker særlig tilnærmingen: Datamaskinen i ComputerCraft har sitt eget operativsystem. Operativsystemet kan du se kildekoden til. Du skriver programmer som kjører på operativsystemet, på samme måte som programmering til vanlig. Lærer man hvordan ComputerCraft henger sammen, kan man altså bruke dette direkte til å forstå datamaskiner!
Jeg har laget to oppgaver til kurs:
- Send en beskjed viser hvordan vi kan bruke nettverket i ComputerCraft til å sende beskjeder fra en datamaskin til en annen. Nettverket fungerer litt som Internett.
- Fjernstyr en robot bruker nettverk til å lage en datamaskin som fungerer som fjernkontroll for en robot som mottar signaler.
Got a comment? Just , then use the arrow in the upper-right corner to make a general note. Or mark text to make an annotation to just that text. More information on the commentary system is available at Commentary with Hypothesis.