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ä:
Sections on This Page
You can talk to one of the teaching assistants at the lab sessions
You can also post a question in Piazza or Telegram (see Chapter 1.1). Please do. We are
happy to help.
Two channels that are not suitable for this purpose are the end-of-chapter feedback
forms and e-mail.
In some cases, looking up the error message online helps. If it doesn’t, try the lab
sessions, Piazza, or Telegram (see Chapter 1.1).
See For the Reader.
The ebook will be available online for the foreseeable future, which means that you’ll be
able to return to it later, even after the course is officially over.
Yes, if you want to and know how to.
At your own risk, yes. There’s nothing in the programming assignments that absolutely
necessitates the use of Eclipse. However, Eclipse is the only official programming
environment in O1, and the staff probably won’t be able to help you with any complications
or technical problems that may arise if you use a different toolkit.
See the big gray-bordered box in Chapter 5.2.
No, you didn’t.
If it happens that you forget to submit the feedback form before the deadline, just submit
it later. In individual instances that’s okay, but please be more careful next time.
No, unfortunately you can’t do that (except for the feedback forms; see above).
O1 has a lot of students and we can’t personalize the deadlines. Postponing the deadline
would interfere with the way we publish the example solutions and use them as learning
materials in later weeks.
If you fail to submit some assignments, you can compensate for the missing points as per
the policy described in Chapter 1.1.
Yes. You won’t score points for any assignments submitted after the deadline, but you
will receive the automatic feedback.
Many years back, we used to have fewer deadlines that were more spread out, with more to
do per deadline (night). It didn’t work.
It is very likely that what happened is not an error in automatic grading as such
but a bug in the code that you submitted.
In the automatically assessed programming assignments, any deviation from the specified
interface counts as an error, and even a small deviation may result in a very low score.
Sometimes, even what seems like a mere formality may be significant (see the next question
Please read the feedback from the automatic grader carefully. Please re-read the task
description carefully. Check your code for spelling errors, including those that involve
upper- and lower-case letters. Make sure you’ve saved and submitted the correct version
of the correct file.
Ask the assistants to help you at one of the lab sessions or
post a question in Piazza or Telegram (see Chapter 1.1).
Of course, it can happen that our grader is faulty. We’ll be happy to fix the graders if
the need arises; if it does, we’ll give you additional chances to resubmit or add points
for you manually later.
Many assignments ask you to write classes with variables and methods that are part of
those classes’ public interface. The names (and parameter lists) of those variables
and methods are also part of that interface, since any user of the class needs to know
them. You cannot change the names without affecting how the class is used. Code written
to such a specification is not “exactly right” unless it conforms to the specification,
names and all.
In O1, your classes are used by the grader program. The grader cannot use them unless you
use the specified names. Don’t change the names of any public variables or methods; don’t
even add any such public members.
You are free to name the private members of the classes. You are also free to add any
private members that you deem necessary or useful.
See the previous answer.
Not all of O1’s automatic graders penalize you for adding public methods, but you should
still avoid doing that. In some assignments, the graders do check that you haven’t added
public members beyond those specified.
The automatic assessment isn’t perfect. We kindly ask you to report such cases so that
we can improve the graders; you can use the chapter’s feedback form, for instance.
Deliberately attempting to mislead the graders is forbidden, of course, and may result in
a loss of points.
Those small assignments, too, give you an opportunity to learn. Admittedly, they also
give you an opportunity not to learn.
We’ve tried to design the course so that most students will be motivated to make the
most of the former opportunity. In any case, such assignments don’t count for much in
the grand scheme of O1’s assessment.
Please see the corresponding section in the Finnish version of this F.A.Q..
Compared to a random programming language: yes.
Compared to the most commonly used programming languages in the world (such as Java,
Scala is still a fairly young language that is growing in stature.
The language is used by many leading companies and other parties, such as Twitter,
PayPal, the Guardian, Zalando, Reaktor, Capital One, Blizzard, Netflix, various
financial corporations, computational scientists, etc. Some of them are listed in
There’s no one reason that clinches it. The choice of Scala is based on a combination
of criteria. Not all of those criteria concern O1 alone but the first-year programming
courses and degree programmes at Aalto more generally.
Below is a list of some of Scala’s attributes. The point of this list is not to say
that these features are unique to Scala. Some of the individual items in the list are
better realized in some other languages. However, this combination made Scala the most
At Aalto, we’ve used Scala for introductory programming since 2013. It’s worked well.
Lund University in Sweden adopted Scala as an introductory language in 2016. You
may wish to read what they said about their reasons.
No. Scala is designed for demanding professional use.
In fact, it’s relatively rare to use Scala in an introductory programming course. One
reason is that the language hasn’t been established for very long; traditional teaching
languages aren’t easily dislodged, and there isn’t a wealth of beginner-friendly material
on Scala out there.
A second reason is that many introductory courses at different institutions have goals
that are either more modest or otherwise different than ours in O1, so other languages
may fit the bill better.
And a third one may be that since Scala is so versatile, pedagogical design needs to be
particularly meticulous in order to harness the language for introductory use.
Yes. See Play and Scala.js,
Yes. Here’s a Google search on that topic.
Thousands of students have given feedback that has contributed to this ebook’s design.
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
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 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.