Tämä kurssi on jo päättynyt.

Kurssin viimeisimmän version löydät täältä: O1: 2024

Kirjoja ja linkkejä

Kurssin sisältö määrittyy kurssin tarjoaman materiaalin perusteella. Opintojen tukena voi käyttää myös muita lähteitä, jotka käsittelevät ohjelmointia, Scala-ohjelmointikieltä tai käyttämiämme ohjelmointityökaluja. Tällä sivulla on muutamia valikoituja suosituksia.

Kirjoja

Ohjelmoinnin perusteita Scalalla

../_images/book_lewis.png

Mark C. Lewis: Introduction to the Art of Programming Using Scala (2012) on aloittelijoille tarkoitettu ohjelmoinnin oppikirja, joka käyttää Scala-kieltä.

Kirja ei ole sisällöltään eikä opetukselliselta otteeltaan yhtenevä meidän kurssimme kanssa. Esimerkiksi asioiden käsittelyjärjestys on hyvin erilainen kuin kurssillamme, ja kirjassa käytetään eri ohjelmointityökaluja.

Tästä huolimatta tämä kirja voi toimia hyödyllisenä lisämateriaalina, ja se on ohjelmoinnin aloittelijalle huomattavasti sopivampaa materiaalia kuin satunnainen nettihaulla löytynyt Scalaa käyttävä kirja tai web-sivu.

Kirjan kotisivujen kautta löydät paitsi lisätietoja kirjasta myös kirjaan liittyviä videoluentoja.

Scala-kielestä kokeneemmille ohjelmoijille

../_images/book_odersky_spoon_venners.gif

Martin Odersky, Bill Venners, Lex Spoon: Programming In Scala (kolmas painos, 2016) ei ole ohjelmoinnin perusteiden oppikirja eikä ohjelmointia yleisesti käsittelevä teos muutenkaan, vaan syvällinen katsaus nimenomaan Scala-ohjelmointikieleen.

Tämä kirja sopii ohjelmointia jo osaavalle lukijalle, joka haluaa perehtyä seikkaperäisesti Scala-kielen eri piirteisiin. Kirja kattaa runsaasti sellaisia Scala-kielen ominaisuuksia, joita ei käsitellä tällä kurssilla.

Kirja on hyvin kirjoitettu, ja suosittelemme sitä kaikille sellaisille, jotka tunnistavat itsensä yllä olevasta kuvauksesta.

Kirjan ensimmäinen painos (2008) on ilmaiseksi luettavana verkossa. Se ei ole kaikilta osin ajan tasalla, sillä Scala-kieli on kehittynyt merkittävästi painosten välissä. Kunhan pidät asian mielessä, voi ensimmäisestä painoksestakin olla iloa.

Vaativaa luettavaa funktionaalisesta ohjelmoinnista

../_images/book_chiusano.jpg

Paul Chiusano, Rúnar Bjarnason: Functional Programming In Scala (2014) ei myöskään ole ohjelmoinnin perusteiden oppikirja. Scalaa se esittelee ripeästi ja tiiviisti, mutta kielen opettaminenkaan ei ole päätavoitteena. Tuo tavoite on erään ohjelmointitavan, puhtaan funktionaalisen ohjelmoinnin, opettaminen syvällisesti.

Tämä kirja sopii Ohjelmointi 1 -kurssin opiskelijoista vain hyvin pienelle osalle, jolla on merkittävästi aiempaa ohjelmointikokemusta ja joka haluaa haastaa itsensä oppimaan uuden näkökulman ohjelmointiin. Kirja sisältää paljon tehtäviä, joista osa on erittäin haastavia.

Linkkejä

Scala

http://www.scala-lang.org/
Scalan kotoa löytyy tietoa kieleen liittyvistä teemoista.
Scala Standard Library API Scaladoc
Scalan peruskirjastojen dokumentaatio ei valitettavasti ole vielä kaikilta osin laadukasta tai aloittelijaystävällistä, mutta asia kehittyy vähitellen. Ks. myös luku 3.2.
The Scala Language Specification
Scala-kielen virallinen määrittely. Sopii hakuteokseksi, kun haluat tarkempaa tietoa tietystä kielen piirteestä. Aloittelijalle tosin paikoin hyvinkin haastavaa luettavaa.
Scala Style Guide
Puolivirallinen suositus Scala-ohjelmakoodin muotoilemisesta tyylikkäästi. Ei ole saavuttanut Scala-ohjelmoijien yhteisön estotonta hyväksyntää. Kurssilaiselle tärkeämpi on kurssimme oma tyyliopas.

Eclipse

Eclipse Downloads
Eclipse-säätiö on tuottanut nimisensä sovelluskehittimen eli IDE:n, jota käytetään tällä kurssilla.
Scala IDE
Scala IDE on Eclipsen lisäosa (plugin), joka mahdollistaa Scala-ohjelmoinnin Eclipsessä.

Palaute

Tekijät

Tämän oppimateriaalin kehitystyössä on käytetty apuna tuhansilta opiskelijoilta kerättyä palautetta. Kiitos!

Kierrokset 1–13 ja niihin liittyvät tehtävät ja viikkokoosteet on laatinut Juha Sorva.

Kierrokset 14–20 on laatinut Otto Seppälä. Ne eivät ole julki syksyllä, mutta julkaistaan ennen kuin määräajat lähestyvät.

Liitesivut (sanasto, Scala-kooste, usein kysytyt kysymykset jne.) on kirjoittanut Juha Sorva sikäli kuin sivulla ei ole toisin mainittu.

Tehtävien automaattisen arvioinnin ovat toteuttaneet: (aakkosjärjestyksessä) Riku Autio, Nikolas Drosdek, Joonatan Honkamaa, Jaakko Kantojärvi, Niklas Kröger, Teemu Lehtinen, Strasdosky Otewa, Timi Seppälä, Teemu Sirkiä ja Aleksi Vartiainen.

Lukujen alkuja koristavat kuvat ja muut vastaavat kuvituskuvat on piirtänyt Christina Lassheikki.

Yksityiskohtaiset animaatiot Scala-ohjelmien suorituksen vaiheista ovat suunnitelleet Juha Sorva ja Teemu Sirkiä. Niiden teknisen toteutuksen ovat tehneet Teemu Sirkiä ja Riku Autio käyttäen Teemun toteuttamia Jsvee- ja Kelmu-työkaluja.

Muut diagrammit ja materiaaliin upotetut vuorovaikutteiset esitykset on laatinut Juha Sorva.

O1Library-ohjelmakirjaston ovat kehittäneet Aleksi Lukkarinen ja Juha Sorva. Useat sen keskeisistä osista tukeutuvat Aleksin SMCL-kirjastoon.

Opetustapa, jossa käytämme O1Libraryn työkaluja (kuten Pic) yksinkertaiseen graafiseen ohjelmointiin on saanut vaikutteita tekijöiden Flatt, Felleisen, Findler ja Krishnamurthi oppikirjasta How to Design Programs sekä Stephen Blochin oppikirjasta Picturing Programs.

Oppimisalusta A+ on luotu Aallon LeTech-tutkimusryhmässä pitkälti opiskelijavoimin. Pääkehittäjänä toimii tällä hetkellä Jaakko Kantojärvi, jonka lisäksi järjestelmää kehittävät useat tietotekniikan ja informaatioverkostojen opiskelijat.

Kurssin tämänhetkinen henkilökunta on kerrottu luvussa 1.1.

Joidenkin lukujen lopuissa on lukukohtaisia lisäyksiä tähän tekijäluetteloon.

a drop of ink
Palautusta lähetetään...