Kursen omfattar grundläggande programmeringsprinciper och datavetenskapliga begrepp. Du lär dig programmeringsspråket Scala, att konstruera algoritmer, att använda datastrukturer, programmeringsverktyg och mycket annat. Det krävs inga förkunskaper i programmering. Kursen ger en solid grund för fortsatta studier i systemutveckling.
Kursen har två delar: en för programmering (prog och en för datorer och datoranvändning (dod). Prog-delen pågår under alla kursens 14 läsveckor, medan dod-delen endast pågår under de fyra första veckorna.
Prog-delen gavs för första gången 2016 för D-programmet. Här presenteras den pedagogiska idén samt erfarenheter från kursens tre första år: Bilder och video (mp4). Presentationen gavs på konferensen Scala Days 2019 i Lusanne.
introprog-scalalib
:
w01
mot önskad vecka) eller klicka på länk i tabellen
nedan. De flesta föreläsningsbilder finns även i kompendiet
förutom bilder med vacker rosa bakgrund som innehåller
praktisk eller flyktig information.w01
mot rätt vecka i adressen, kan låååång tid om omkompilering krävs): latexonline.cc/compile?git=https://github.com/lunduniversity/introprog&target=slides/lect-w01.tex&command=pdflatex
Kurskompendiet är öppen källkod och alla är välkomna att bidra enligt instruktioner i appendix i kompendiet. En tryckt version säljs till självkostnadspris via institutionen efter beställning på första föreläsningen.
w01
mot önskad vecka):
introprog-scalalib
med bl.a. introprog.PixelWindow
scala-lang.org
Scalas officiella hemsida.scala-lang.org/api/current
dokumentation av standarbiblioteket i Scala 3.docs.scala-lang.org/
den officiella platsen för handledning om Scala 3.docs.oracle.com/javase/tutorial
den officiella platsen för handledning om Java.I kursen ingår följande obligatoriska examinationsmoment:
Tentamen i januari är en valfri skrivning som kan ge överbetyg. Alla uppmuntras att tentera. För att få tentera krävs att alla obligatoriska moment är godkända. Tentamen skrivs med papper och penna och enda tillåtna hjälpmedel är snabbreferensen.
Tidigare Scala-skrivningar:
Från och med läsåret 2021/2022 är tentamen valfri för ev. överbetyg. Tentamina som gavs före läsåret 2021/2022 var obligatoriska och godkänt resultat krävdes för godkänd kurs. Kontrollskrivningen var en obl. övningstenta som gavs sista gången 2024 och omfattade endast kursens första läsperiod.
Kurskompendiet, som är fritt att ladda ner, definierar kursens innehåll och progression. Om du vill ha kompletterande kursmaterial som extra bredvidläsning rekommenderas nedan böcker. Tips om fler böcker finns här.
Introduction to Programming and Problem-Solving Using Scala, Second Edition, Mark C. Lewis, Lisa Lacher (2016). Lärobok i programmering för nybörjare på universitetsnivå. Denna bok täcker stora delar av kursen, men innehåller även material som ingår i senare LTH-kurser. Ordningen är ganska annorlunda, men det går bra att läsa boken i en annan ordning än den är skriven - du får själv anpassa din läsning av denna bok efter pgk-kursens progression.
Programming in Scala, Fifth edition, Martin Odersky, Lex Spoon, and Bill Venners (2021). Lämplig för dig som redan programmerat en hel del i ett objektorienterat språk t.ex. Java eller C#. Författaren Martin Odersky är upphovspersonen bakom Scala. Denna välskrivna bok innehåller en grundlig genomgång av Scala-språket med många exempel och tips. Boken följer inte kursens upplägg men det finns ett bra index som gör det lätt att anpassa din läsning efter kursens progression. Boken innehåller en hel del material som är på en mer avancerad nivå, men du kommer att ha nytta av innehållet inför kommande kurser. Den första utgåvan är tillgänglig öppet via www.artima.com/pins1ed, men den beskriver gamla Scala 2 med delvis annorlunda syntax.
I denna del lär du dig några viktiga programmeringsverktyg som används i professionell systemutveckling. Dod omfattar 4 föreläsningar och 4 laborationer och går under kursens första 4 veckor. När du är godkänd på laborationerna får du 3hp som delresultat i Ladok.
Läsning:
Föreläsningsbilder:
Mera intressant:
Lab:
Läsning:
Föreläsningsbilder:
Mera intressant:
pvg
)
kommer ni läsa nästa år. Om ni vill lära er mer om Git kan ni redan nu
göra dess Lab 0
, som går igenom Git mer
grundligt.)Lab:
Läsning:
Föreläsningsbilder:
Mera intressant:
Lab:
Föreläsningsbilder:
Lab:
På LTH:s Linuxdatorer i E-huset finns alla dessa verktyg förinstallerade:
code .
Scala Metals
är förinstallerat.)scala
eller
scala repl .
(punkten på slutet inkluderar dina
.scala-filer i aktuell katalog)scala run .
eller
scala compile .
kojo
sbt
javac
java
idea
Mer info om skolans datorer finns här, om hur du använder Linux och bash.
I filen tools.md
finns instruktioner om hur du installerar programmeringsverktyg på din
egen dator för olika operativsystem. Här finns också tips när du ska köpa
egen dator och tips
vid krångel med ÅÄÖ i Windows-terminalen.
Du kan skapa och köra Scala-program direkt i din webbläsare här:
Du kan skapa Scala-program som ritar med hjälp av en sköldpaddan här:
Om du vill bidra till kursen genom att rapportera fel eller föreslå förbättringar kan du göra det genom att skapa ärende (issue) och bidrag (pull request), här:
Bidra till kompendiet: github.com/lunduniversity/introprog
Bidra till kodbiblioteket: github.com/lunduniversity/introprog-scalalib
Bidra till dod-labbar: github.com/lunduniversity/introprog-computer-intro
Bidra till CPU-emulator: github.com/lunduniversity/introprog-cpu-emulator
Bidrag till denna hemsida: github.com/lunduniversity/lunduniversity.github.io/tree/main/src/pgk
./build.sh
i roten av repot.
Rot-skriptet anropar i sin tur ./build.sh
i varje
underkatalog, inklusive denna.