Luet oppimateriaalin englanninkielistä versiota. Mainitsit kuitenkin taustakyselyssä
osaavasi suomea. Siksi suosittelemme, että käytät suomenkielistä versiota, joka on
testatumpi ja hieman laajempi ja muutenkin mukava.
Suomenkielinen materiaali kyllä esittelee englanninkielisetkin termit. Myös
suomenkielisessä materiaalissa käytetään ohjelmien koodissa englanninkielisiä
nimiä kurssin alkupään johdantoesimerkkejä lukuunottamatta.
Voit vaihtaa kieltä A+:n valikon yläreunassa olevasta painikkeesta. Tai tästä:
The topics that O1 covers are set by the comprehensive custom ebook that you’re reading;
you don’t need a separate textbook to take the course. Even so, you may wish to complement
the ebook with other resources that discuss programming in general, the Scala programming
language, or the other tools that we use in O1. This page contains a handful of recommendations.
Books and Language Versions
This page is up to date as of mid-2020, when versions 2.11 and 2.12
of Scala are in widespread use. (Version 2.12 is used in O1 in Fall
If you’re consider whether to buy some of these books, it’s good to
be aware of the impending release of Scala 3.0 in late 2020. That
update to the language is so significant that new editions of the
books listed below (and other Scala books) are likely to be published
in the near future.
Mark C. Lewis: Introduction to the Art of Programming Using Scala (2012)
is an introductory programming textbook that uses the Scala programming language.
The book’s goals and content are different from what we cover in O1. So is the order
in which the content is covered. The book doesn’t use the same set of tools for writing
Scala programs that we do.
Despite all that, this book may serve you well as an additional resource. Especially for
beginner programmers, this is a far better text than a random page about programming in
Scala that you might find with a web search.
For more information, see the book’s web site.
The same site also provides video lectures that go with the book.
Martin Odersky, Bill Venners, Lex Spoon: Programming In Scala (Third Edition,
2016) is not a textbook on
introductory-level programming or programming in general; it’s an in-depth introduction
to the Scala programming language specifically.
We recommend this book to those students who already know how to program and now want to
find out as much as they can about the various features of the Scala language. The book
covers many aspects of the language that we don’t discuss in O1.
The book’s first edition (2008) is free to read online.
That edition is not quite up do date, as Scala has evolved quite a bit between editions.
Bear that in mind, though, and you can find joy in the first edition, too.
Paul Chiusano, Rúnar Bjarnason: Functional Programming In Scala (2014)
is also not an introductory textbook. It contains a compact, quickfire introduction to
Scala, but that isn’t its main purpose, either. That purpose is to teach a particular
programming paradigm, pure functional programming and to teach it
This book is appropriate for only a small number of O1 students: those who have extensive
prior programming experience and who wish to challenge themselves to develop a new
perspective on programming. The book contains many practice problems, some of which are
For information on diverse Scala-related topics, see the language’s home page.
Scala Standard Library API Scaladoc
The documentation for Scala’s standard libraries. Not all of it
is in good shape, and much of it is beginner-unfriendly, but
things are slowly improving. See also Chapter 3.2.
The Scala Language Specification
The official definition of the language. Suitable for use as a
referance if you need precise information about a language
feature. Parts of the specification will be hard for a beginner
to read, though.
Scala Style Guide
A semi-official recommendation on formatting Scala program code. Not
universally accepted by all Scala programmers. O1 students should
see our own style guide first.
Thousands of students have given feedback that has contributed to this ebook’s design.
The ebook’s chapters, programming assignments, and weekly bulletins have been written in
Finnish and translated into English by Juha Sorva.
The appendices (glossary, Scala reference,
FAQ, etc.) are by Juha Sorva unless otherwise specified on the page.
The automatic assessment of the assignments has been developed by: (in alphabetical order)
Riku Autio, Nikolas Drosdek, Joonatan Honkamaa, Jaakko Kantojärvi, Niklas Kröger, Teemu
Lehtinen, Strasdosky Otewa, Timi Seppälä, Teemu Sirkiä, and Aleksi Vartiainen.
The illustrations at the top of each chapter, and the similar drawings elsewhere in the
ebook, are the work of Christina Lassheikki.
The animations that detail the execution Scala programs have been designed by Juha
Sorva and Teemu Sirkiä. Teemu Sirkiä and Riku Autio did the technical implementation,
relying on Teemu’s Jsvee and Kelmu toolkits.
The other diagrams and interactive presentations in the ebook are by Juha Sorva.
The O1Library software
has been developed by Aleksi Lukkarinen and Juha Sorva. Several of its key components
are built upon Aleksi’s SMCL
The pedagogy of using O1Library for simple graphical programming (such as Pic) is
inspired by the textbooks How to Design Programs by Flatt, Felleisen, Findler, and
Krishnamurthi and Picturing Programs by Stephen Bloch.
The course platform A+ was originally created at Aalto’s LeTech
research group as a student project. The open-source project
is now shepherded by the Computer Science department’s edu-tech team and hosted by the department’s IT
Markku Riekkinen is the current lead developer; dozens of Aalto students and others have also contributed.
The A+ Courses plugin,
which supports A+ and O1 in IntelliJ IDEA, is another open-source project. It was created by Nikolai
Denissov, Olli Kiljunen, and Nikolas Drosdek with input from Juha Sorva, Otto
Seppälä, Arto Hellas, and others.
For O1’s current teaching staff, please see Chapter 1.1.
Additional credits appear at the ends of some chapters.