The latest instance of the course can be found at: O1: 2024
- CS-A1110
- Supplementary Pages
- Books and Other Resources
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 ohjelmaprojektien koodissa englanninkielisiä nimiä kurssin alkupään johdantoesimerkkejä lukuunottamatta.
Voit vaihtaa kieltä A+:n valikon yläreunassa olevasta painikkeesta. Tai tästä: Vaihda suomeksi.
Books and Other Resources
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
Basics of programming in Scala
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.
On the Scala language, for experienced programmers
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.
A challenging book on functional programming
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 deeply.
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 extremely challenging.
Links
Scala
- http://www.scala-lang.org/
- 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.1.
- 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 very challenging 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.
Eclipse
- Eclipse Downloads
- The Eclipse Foundation has created the eponymous integrated development environment (IDE), which we use in O1.
- Scala IDE
- Scala IDE is an Eclipse plugin that supports Scala programming within Eclipse.
Feedback
Credits
Thousands of students have given feedback that has contributed to this ebook’s design. Thank you!
Weeks 1 to 13 of the ebook, including the assignments and weekly bulletins, have been written in Finnish and translated into English by Juha Sorva.
Weeks 14 to 20 are by Otto Seppälä. That part of the ebook isn’t available during the fall term, but we’ll publish it when it’s time.
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 programmed by Riku Autio, Jaakko Kantojärvi, Teemu Lehtinen, 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 have done 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 library.
The pedagogy of using tools from O1Library (such as Pic
) for simple graphical programming
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+ has been created by Aalto’s LeTech research group and is largely developed by students. The current lead developer is Jaakko Kantojärvi; many other students of computer science and information networks are also active on the project.
For O1’s current teaching staff, please see Chapter 1.1.
Additional credits appear at the ends of some chapters.