This course has already ended.

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.

Kieli vaihtuu A+:n sivujen yläreunan painikkeesta. Tai tästä: Vaihda suomeksi.

Lab Sessions

Addition to this page on Oct 27th, 2021

In addition to the Zoom labs, we will have a small number of weekly lab sessions on site in Otaniemi in November and December. The teaching assistants will be there to help you in person.

We’ll initially have these in-person labs on Wednesdays between 16–18 and on Thursdays, also at 16–18. We might later add or reduce the number of these labs once it is clearer how many students are interested in attending.

These sessions will be in the Linux classroom Maari-A in the Maarintalo building (Sähkömiehentie 3, Espoo). The first session is on Wednesday, November 3rd. There’s no need (or way) to sign up through Sisu or MyCourses, or otherwise; just show up. However, please do note that, for the time being, you’ll need an access card to enter the building; it’s easy to get that, as described here.

The online sessions on Zoom will continue as before.

There are several lab sessions every day except on weekends, from the afternoon of September 15th, 2021, onwards. This is where you can come to discuss programming with the course staff and get help on the assignments. Due to the pandemic, the Fall 2021 “lab sessions” will be implemented at distance using Zoom. For the exact schedule and instructions on how to join, see below on this page.

Aalto students only, sorry!

Because of the exceptional circumstances this year, the “lab sessions” described on this page are only open to students with an Aalto user account. If the situation permits, we may choose to open some of the sessions to other students as well, in which case we’ll announce that separately. The Piazza forum serves all students including those external to Aalto.

The sessions start a quarter past the indicated hour, but you can come and go as you please. There’s no set agenda: you can ask for help as the need arises, and the teaching assistants will advise you individually.

Participation is voluntary but highly recommended. You don’t need to — and can’t — sign up in advance.

The assistants can help you in English, Finnish, and (at some sessions) Swedish.

Ryhmä Aikaväli Neuvomassa
Mon 8–10 Sep 20th to Dec 13th Mathilda Smith, Milja Rantanen, Mira Keränen (also in Swedish); no session on Dec 6th (Finnish independence day)
Mon 10–12 Sep 20th to Dec 13th Elja Saksman, Roosa Rauhala; no session on Dec 6th (Finnish independence day)
Mon 12–14 Sep 20th to Dec 13th Esa Elo (also in Swedish), Markus Enroth, Roosa Rauhala; no session on Dec 6th (Finnish independence day)
Mon 14–16 Sep 20th to Dec 13th Markus Enroth, Sachit Kothari, Sanna Alander; no session on Dec 6th (Finnish independence day)
Mon 16–18 Sep 20th to Dec 13th Aleksi Hannula, Samu Paakkari; no session on Dec 6th (Finnish independence day)
Mon 18–20 Sep 20th to Dec 13th Juhana Peltomaa, Niklas Kröger no session on Dec 6th (Finnish independence day)
Tue 8–10 Sep 21st to Dec 14th Khoa Lai, Linus Jern (även på svenska), Milja Rantanen, Alex Granlund (also in Swedish)
Tue 10–12 Sep 21st to Dec 14th Esa Elo (also in Swedish), Sonja Tervola, Vilma Ikola
Tue 12–14 Sep 21st to Dec 14th Alex Granlund (also in Swedish), Pyry Ruotsalainen, Ruusu Nurmi, Sonja Tervola
Tue 14–16 Sep 21st to Dec 14th Georgy Ananov, Matthew Hallonbacka, Pyry Ruotsalainen, Sachit Kothari
Tue 16–18 Sep 21st to Dec 14th Aleksi Hannula, Antti Kokkonen, Ruusu Nurmi, Sami Laakkonen, Samu Paakkari
Tue 18–20 Sep 21st to Dec 14th Georgy Ananov, Jaakko Närhi
Wed 8–10 Sep 22nd to Dec 15th Juhana Peltomaa, Linus Jern (also in Swedish), Matthew Hallonbacka, Vilma Ikola
Wed 10–12 Sep 22nd to Dec 15th Anna Valldeoriola Cardó, Antti Kokkonen, Georgy Ananov, Joonatan Honkamaa, Matthew Hallonbacka
Wed 14–16 Sep 15th to Dec 8th Khoa Lai (English only)
Wed 16–18 Sep 15th to Dec 8th Elja Saksman
Wed 16–18 Nov 3rd to Dec 8th Sachit Kothari (English only) Classroom session in Maari-A
Thu 10–12 Sep 16th to Dec 9th Mira Keränen (also in Swedish)
Thu 12–14 Sep 16th to Dec 9th Sami Laakkonen
Thu 14–16 Sep 16th to Dec 9th Khoa Lai (English only)
Thu 16–18 Sep 16th to Dec 9th Sachit Kothari (English only)
Thu 16–18 Nov 5th to Dec 9th Georgy Ananov (English only) Classroom session in Maari-A
Fri 10–12 Sep 17th to Dec 10th Sanna Alander
Fri 12–14 Sep 17th to Dec 10th Mathilda Smith
Fri 14–16 Sep 17th to Dec 10th Anna Valldeoriola Cardó (English only)
Fri 16–18 Sep 17th to Dec 10th Anna Valldeoriola Cardó (English only)

“Lab Sessions” on Zoom in Fall 2021

In Fall 2021, the “lab sessions” will take the form of Zoom video calls where students can discuss their program individually with a teaching assistant. We’ll use A+’s Lab Queue feature to allocate turns to each student (or pair of students).

If you are unfamiliar with Zoom, please try it out well in advance before joining one of the “labs”.

Setting up Zoom

Install Zoom on your computer as per Aalto’s Zoom Quick Guide.

Zoom may be initially configured to mute any teaching assistants that enter your Zoom meetings. Please ensure that this is not the case:

  1. Go to and log in with your Aalto account.
  2. In the left-hand menu, choose Settings.
  3. Scroll down until you find Mute participants upon entry. Make sure that the setting is not enabled.

Test your video and audio in advance to make sure they’re working in Zoom.

Joining a “lab session”

You don’t have to (and can’t) sign up in advance. When you want to talk to a teaching assistant, do the following.

Before you join the queue, start a Zoom meeting:

  1. Open Zoom and select New Meeting.
  2. Select Join with Computer Audio. Your meeting is now active but with only you as a participant. Others can join if they have an invite link, more on which below.

With the Zoom meeting running, enter the Lab Queue:

  1. Make sure that the program, ebook page, or other material that you wish to discuss is ready for viewing on your computer.
  2. Here in A+, select Lab Queue in the menu.
  3. The Lab Queue prompts you for a video link. Put in the invite link from Zoom. You can copy this link to your clipboard by selecting, in Zoom, Participants → Invite → Copy invite link.
    • If you’re working together with a pair, make sure to share the link with them, too, so that you’re both present when the assistant joins the meeting.
  4. In the drop-down menu, select which language you’d prefer to be advised in.
  5. Confirm the selections, and you’re in the queue. An assistant will join your Zoom meeting sooner or later, depending on the length of the queue.

Especially when the queue is long, the assistant cannot spend very long in one meeting. For that reason, too, please be prepared when it’s your turn!

Screen-sharing and mics on Zoom

In order to help you, the assistant will typically need to see the program that you’re working on. You can share your computer’s screen with the assistant by selecting, at Zoom’s bottom edge, Share → Screen and confirming with Share.

In Zoom’s bottom-left corner, there’s a little microphone symbol. Check to see that your microphone isn’t muted; or if it is, click the symbol or press Alt + A. If you can’t hear the assistant, make sure they aren’t muted by checking Participants at Zoom’s bottom edge. When you mouse over the assistant’s name in that list, you’ll see a Mute/Unmute button. While resolving audio trouble, you can resort to Zoom’s textual Chat, too.



Thousands of students have given feedback that has contributed to this ebook’s design. Thank you!

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 library.

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 services. 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, Nikolas Drosdek, Styliani Tsovou, Jaakko Närhi, and Paweł Stróżański 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 for this page

Niklas Kröger wrote the instructions for Zoom labs, drawing on similar guides by Mikko Kivelä and Kerttu Pollari-Malmi; Juha Sorva translated the instructions to English.

a drop of ink
Posting submission...