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.


This course, Programming 1, is not a lecture course. Listening to lectures is not the way you’re going to learn to program.

All you need to do to get started is go to Chapter 1.1 of the course ebook and start studying. The ebook explains how the course works; it will also tell you which programming tools to install and guide you as you start practicing.

Please come to the frequent lab sessions. There, you can get help on the assignments from the course staff. You can also discuss the programming assignments and other topics on our online forums (see Chapter 1.1).

All that being said, the Fall 2022 incarnation of Programming 1 will have two lecture-like things, one in English and another in Finnish. Neither is mandatory or essential.





Mon Sep 5th, 2022


Hall T1, Computer Science building, Konemiehentie 2, Espoo

FINNISH ONLY. An introduction to Programming 1 and some first-week topics. Please do not worry: You will find all this information in full detail in the English version of the ebook, most of it being in Chapter 1.1. You won’t miss out on anything important even if you don’t know Finnish.

Fri Dec 9th, 2022


Hall T1, Computer Science building, Konemiehentie 2, Espoo

MAINLY IN ENGLISH. An end-of-course event. We’ll take a look at what you the students have achieved, reflect on what has been learned and what hasn’t, and point up some follow-on courses.



Thousands of students have given feedback and so 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, Antti Immonen, Jaakko Kantojärvi, Niklas Kröger, Kalle Laitinen, Teemu Lehtinen, Jaakko Nakaza, Strasdosky Otewa, Timi Seppälä, Teemu Sirkiä, Anna Valldeoriola Cardó, 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 has been designed and implemented by various students in collaboration with O1’s teachers.

For O1’s current teaching staff, please see Chapter 1.1.

Additional credits appear at the ends of some chapters.

a drop of ink
Posting submission...