Helsingin yliopisto / tietojenkäsittelytieteen laitos / Ohjelmointitekniikka (Scala) / © Arto Wikla 2010

Ohjelmointitekniikka (Scala): kurssimateriaalia

Muutettu viimeksi 28.4.2010 / Sivu luotu 18.1.2010

Kurssi perustuu oppikirjaan Odersky, Spoon, Venners: Programming in Scala. Artima Press 2008. Kirjan ohjelmaesimerkkejä ja muuta tietoa on julkaistu sivulla http://booksites.artima.com/programming_in_scala. Esimerkeillä on Apache 2.0 -lisenssi, joten niitä voidaan käyttää melkoisen vapaasti tälläkin kurssilla, ks. esimerkkien sisällysluettelo. Hakasulkeissa olevat numerot viittaavat oppikirjan lukuihin.

Lukujen numerot vastaavat oppikirjan lukujen numerointia. Sisällöissä on eroja.

  1. Johdantoa
  2. Pikku perusteita
  3. Pikku jatkeita
  4. Luokista ja olioista
  5. Perustyyppejä ja operaatioita
  6. Funktionaalisia olioita ja vähän muutakin
  7. Ohjausrakenteita
  8. Funktiot ja sulkeumat
  9. Kontrolliabstraktiot
  10. Periytyminen
  11. Scalan luokkahierarkia
  12. Piirreluokat eli "traitit"
  13. Pakkauksista ja importista
  14. Väittämät ja testaus
  15. Case-luokat ja hahmontunnistus [Case classes and pattern matching support you when writing regular, non-encapsulated data structures. These two constructs are particularly helpful for tree-like recursive data.]
  16. Listat
  17. Kokoelmista
  18. Tilalliset oliot
  19. Tyyppiparametroinnista [Type parameterization allows you to write generic classes and traits. For example, sets are generic and take a type parameter: they are defined as Set[T]. As a result, any particular set instance might be be a Set[String], a Set[Int], etc. -- but it must be a set of something. Unlike Java, which allows raw types, Scala requires that you specify type parameters.]
  20. Abstraktit jäsenet
  21. Implisiittiset tyyppimuunnokset [Implicits are a powerful, code-condensing feature of Scala. They can make code confusing if they are used too frequently.]
  22. Vielä listoista
  23. Vielä for-lauseesta
  24. "Ekstraktorit" [Extractors let you define your own kinds of patterns, which need not correspond to the type of the expressions you select on. This gives you more flexibility in the kinds of patterns you can use for matching. In effect it's like having different possible views on the same data. It also gives you a layer between a type's representation and the way clients view it. This lets you do pattern matching while maintaining representation independence, a property which is very useful in large software systems.]
  25. Annotaatiot [Annotations are structured information added to program source code.]
  26. XML
  27. Modularisuudesta
  28. Arvojen yhtäsuuruudesta
  29. Javaa Scalassa ja Scalaa Javassa
  30. Aktoreista ja rinnakkaisuudesta lyhyesti
  31. "Combinator Parsing" [Jäsentäjiä omille kielille.]
  32. GUIsta lyhyesti
  33. SCell-taulukkolaskentaSkriptit Unixissa ja Windowsissa


Hit Counter by Digits
by WebCounter
(15.3.2010)