lu.se

Datavetenskap

Lunds Tekniska Högskola

Denna sida på svenska This page in English

Litteratur

Ladda ner kursmaterial

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.

Dokumentation

Rekommenderad bredvidläsning

Kurskompendiet, som är fritt att ladda ner, definierar kursens innehåll och ordningen på materialet. Om du vill ha kompletterande kursmaterial som bredvidläsning rekommenderas nedan böcker. De finns tillgängliga via nätbokhandlare, t.ex. AdLibris. Tips om fler böcker finns här https://docs.scala-lang.org/books.html

Bredvidläsning för nybörjare:

  • Lewis & Lacher, 2016: ''Introduction to Programming and Problem-Solving Using Scala, Second Edition'', Mark C. Lewis, Lisa Lacher.

Lewis & Lacher täcker stora delar av kursen, men innehåller även en del 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, men du får själv anpassa din läsning av denna bok efter pgk-kursens progression.

Bredvidläsning för dig som redan programmerat en hel del i ett objektorienterat språk:

  • Odersky et al., ''Programming in Scala", Martin Odersky, Lex Spoon, and Bill Venners.

Martin Odersky är upphovspersonen bakom Scala och denna välskrivna bok innehåller en komplett genomgång av Scala-språket med många exempel och tips. ''Fifth Edition'' täcker senaste versionen av Scala, version 3. Boken riktar sig till de som redan har kunskap om något objektorienterat språk, t.ex. Java. 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å än pgk-kursen, men du kommer att ha stor nytta av innehållet i kommande kurser och när du fördjupar dig i Scala.

Övriga resurser

Errata

Här kommer eventuella fel i den tryckta versionen av kompendiet publiceras. Den elektroniska versionen kommer att uppdateras kontinuerligt.

Errata kompenidum

I texten under 3.1.4 "Deklarera funktioner, överlagring" så ges överlagrade funktioner på toppnivå i REPL, men REPL fungerar annorlunda jämfört med ett fristående program och funktionerna på toppnivå blir ersatta på samma sätt som multipla variabeldeklarationer med samma namn. Vill kan prova överlagring i REPL behöver man placera funktionerna i en ny namrymd, t.ex. med hjälp av ett objekt:

 

object matte:
  def öka(a: Int): Int = a + 1
  def öka(a: Int, b: Int): Int = a + b

 

scala> matte.öka(1)
val res0: Int = 2

scala> matte.öka(1, 2)
val res1: Int = 3

Errata quickref Scala 3.5

I quickref med kompileringsdatum 2024-08-20:

  • På sidan 1 står det "Object basicstyleody can contain definitions of members such as def, val, etc." ska vara "Objects can contain definitions of members such as def, val, var, object, etc."

Du får inte anteckna i quickref som är hjälpmedel på tentan, förutom noteringar om eventuella errata som publiceras här.