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
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.
Kirjoista ja kieliversioista
Tämän sivun tiedot ovat ajantasaiset vielä loppuvuonna 2020, kun Scalan versiot 2.11 ja 2.12 ovat laajimmassa käytössä. (Versiota 2.12 käytetään O1:lläkin syksyllä 2020.)
Kirjojen ostoa harkitsevan kannattaa kuitenkin huomata, että Scalan versio 3.0 julkaistaneen vuoden 2020 lopulla ja tuo mukanaan niin merkittäviä muutoksia, että näistä kirjoista ja monesta muustakin on odotettavissa uusia, päivitettyjä painoksia lähitulevaisuudessa.
Scala-kielestä kokeneemmille ohjelmoijille
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
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.
Scala-linkkejä
- 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.
Palaute
Tekijät
Tämän oppimateriaalin kehitystyössä on käytetty apuna tuhansilta opiskelijoilta kerättyä palautetta. Kiitos!
Materiaalin luvut tehtävineen ja viikkokoosteineen on laatinut Juha Sorva.
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 suunnittelivat Juha Sorva ja Teemu Sirkiä. Teemu Sirkiä ja Riku Autio toteuttivat ne apunaan Teemun aiemmin rakentamat työkalut Jsvee- ja Kelmu.
Muut diagrammit ja materiaaliin upotetut vuorovaikutteiset esitykset laati Juha Sorva.
O1Library-ohjelmakirjaston ovat kehittäneet Aleksi Lukkarinen ja Juha Sorva. Useat sen keskeisistä osista tukeutuvat Aleksin SMCL-kirjastoon.
Tapa, jolla 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+ luotiin alun perin Aallon LeTech-tutkimusryhmässä pitkälti opiskelijavoimin. Nykyään tätä avoimen lähdekoodin projektia kehittää Tietotekniikan laitoksen opetusteknologiatiimi ja tarjoaa palveluna laitoksen IT-tuki. Pääkehittäjänä on tällä hetkellä Markku Riekkinen, jonka lisäksi A+:aa ovat kehittäneet kymmenet Aallon opiskelijat ja muut.
A+ Courses -lisäosa, joka tukee A+:aa ja O1-kurssia IntelliJ-ohjelmointiympäristössä, on toinen avoin projekti. Sen ovat luoneet Nikolai Denissov, Olli Kiljunen ja Nikolas Drosdek yhteistyössä Juha Sorvan, Otto Seppälän, Arto Hellaksen ja muiden kanssa.
Kurssin tämänhetkinen henkilökunta löytyy luvusta 1.1.
Joidenkin lukujen lopuissa on lukukohtaisia lisäyksiä tähän tekijäluetteloon.