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.
About This Page
Questions Answered: What’s this course about? How do I go about
taking the course?
Topics: The aims of the course; its components, policies,
communications channels, and assessments.
What Will I Do? Mostly just read, in this first chapter.
Rough Estimate of Workload:? Half an hour or less.
Points Available: A5.
Welcome to O1!
You are reading the first chapter of the course’s custom ebook. These
chapters are located in a learning environment called A+, where you’ll
also be able to access the course assignments and send them for
Oh, and O1 is short for Ohjelmointi 1, which is Finnish for Programming 1.
You are reading the first chapter of the course’s custom ebook.
Our online materials are too diverse for the MyCourses platform
to handle. That’s why these chapters are located in this separate
learning environment, A+, which we also use to receive and assess
Aalto’s bureaucracy requires you to register for courses via the thing
that is Sisu, so yeah, do that too. But for
O1, the important thing is that you enroll on our front page in A+.
In broad terms, we expect that after finishing O1, you:
To understand these goals a bit better, let’s detour to the actual subject matter before
we get back to the course arrangements.
To program is to create computer programs. But what is a program? And what counts as a
Computer systems are often classified into:
Both kinds of systems rely on computers that execute programs (ohjelma). Programs
direct the system to do what the program’s creator wants it to do. In O1, we’ll program
only general-purpose computers, but the same fundamental principles apply to embedded
systems just as well.
What about cell phones?
Are mobile phones general-purpose computers or embedded systems?
Why? After thinking about it for a bit, you may want to search the
internet to see what others have said.
(These gray-bordered boxes contain supplementary materials that you
are free to skip without putting your course performance at risk.
For instance, the above is a completely voluntary activity that
won’t score you any course credit but that might still help you
An end user and application programs.
The type of program that you’re probably the most familiar with is the application
(sovellus). An application program helps its user carry out a particular activity.
Word processors, computer games, and web browsers are examples of applications.
Other types of programs include:
In O1, we’re going to focus on applications: the programming assignments that you’ll work
on include an adventure game, an experience diary, and a program that simulates how people
move house and form neighborhoods, among many others. To help us build these applications,
we’ll use software libraries. We won’t be discussing drivers or operating systems as such,
but again, the general concepts that you’ll learn apply to them as well.
We’ll get back to programs and programming soon, in Chapter 1.2. Now let’s continue
with the course overview.
In O1, you’ll learn to write and modify application programs of a modest size, such as
games or everyday utilities. We also hope that you’ll notice that programming can be both
fun and useful.
As you can tell by its name, this first course alone won’t turn anyone into a master
programmer, even though you’ll learn various concrete skills. O1 has been designed to
be the first module in an introductory programming curriculum.
We don’t expect you to have any prior knowledge of programming.
You do need to know how to use a computer and Aalto’s IT services:
how to operate a web browser; a rudimentary understanding of files
and folders/directories; etc.
You do need to have basic skills in using a computer. For instance,
we expect you to know how to browse the web, read email, and more or
less know your way around the file system of whichever computer you
use, whether you’re running macOS, Windows, Linux, or something else.
Grade-school mathematics will help you here and there, but this is
a minor requirement. You won’t need substantial math skills to do well.
You need a solid command of English or Finnish. If you know Finnish, we recommend
the Finnish edition of this ebook, since it has a teensy bit more optional material
and flavor than this English-language edition. But don’t worry: the English ebook is
comprehensive, too. This English edition is phrased to assume that you don’t know Finnish.
Speaking of languages, you probably already noticed the strange words in parentheses
after each term definition. Those are the Finnish equivalents of the English terms. They
are there for the benefit of students who use the English-language edition but wish to
learn the Finnish terminology as well.
O1 has three components, the first two of which are linked:
See below for more information about the assignments and per-chapter feedback. We’ll
remind you about the end-of-course questionnaire later when the time comes.
We don’t do an exam. Or lectures.
The chapters of this ebook cover all the course topics, so you won’t need a separate
textbook, but we do have a few suggestions for further reading on the Resources page, if you want to take a look.
The assignments have been worked into the ebook. You’ll run into them as you study
The ebook contents and assignments have been divided into weeks and categories
as described below.
Each assignment is in a chapter, and each of those chapters is part of a week. Weeks
run from 1 to 12; there’s also Week 13, but that just contains the end-of-course
questionnaire and no assignments.
Each week has a strict deadline for submitting the assignments; late submissions won’t
count towards your course grade.
The deadline for Week 1 is Wednesday September 22nd, 2021, at 12 noon (Finnish time:
EET, GMT+2), the deadline for Week 2 is exactly one week later, and so forth.
(There’s one exception: there is no deadline on November 24th, 2021, as we’ll give
you two actual weeks to work on a larger project during Week 10.)
The first deadline
The first deadline is already on September 22nd, 2021. Please note
that Week 1’s assignments, like those of the other weeks, will take
time. Especially if, like most students in O1, you have little or
no prior programming experience, we recommend that you reserve at
least a dozen hours for the assignments.
Time estimates for chapters
O1’s chapters don’t have the same length. The programming
assignments in some chapters take a lot more time than the
assignments in some other chapters.
At the beginning of each chapter, you’ll find a rough estimate of
how much time the chapter might take. Even though those estimates
are based on data collected from (beginner) programmers, they
are just estimates. Still, they should give you an idea of which
chapters in Week are the longest, which can help you plan your
As for Week 1, which consists of eight chapters, please note that
the two last ones — 1.7 and 1.8 — have bigger workloads than
the first six do.
Notice the exam week
The sixth-week deadline is in the middle of the fall semester,
during the so-called exam week. If you have many examinations
(for other courses) during that time, please plan your schedule
extra-carefully beforehand. O1’s schedule is flexible in that
you can work on any of the Weeks in advance.
Having a deadline fall on the exam week is not perfect, but it is
still probably a better solution than if we split the same workload
over fewer weeks. A major factor behind this decision is the fact
that O1’s primary target group (first-year students from the School
of Science) do not have a glut of exams at that point.
You’re free to tackle any of the assignments in Weeks 1 through 12 as soon as the
course kicks off. The questionnaire in Week 13 will be published after the Week 12
deadline in December.
Each chapter in this ebook has a points value, indicated at the beginning of the chapter
by the letter A, B, or C, which is followed by a number. “B50”, for instance.
The letter indicates the category of the assignments in the chapter:
The number that follows the category letter is the maximum number of points you can score
in that chapter. For instance, at the beginning of this introductory chapter it says “A5”
because you can score fivethree points in Category A by reading the chapter and doing the tiny
assignment that appears further down on this page.
A high points value usually indicates that an assignment is more work than others in the
same category. An assignment’s topic also affects the category that we’ve put it in.
Besides the main assignments that give you actual points, the ebook contains additional
practice tasks and challenge problems, which are entirely voluntary. You’ll find those
in gray-bordered further-reading boxes in some upcoming chapters. Please note that although
the extra tasks have a nominal value of one point each, those points don’t count towards
your grade; only the A/B/C points do.
Below is a diagram of how the assignments are distributed across weeks. As the diagram shows,
you can score points in Category A during the first few weeks whereas Category C mostly
features during the second half of the course. One practical consequence of this is that you
can do all the mandatory assignments during the early months of the fall semester.
With the exception of a few assignments, A+ assesses your submissions automatically
and gives you immediate feedback on them. Many of the assignments are programming
tasks; A+ gives you a number of points that reflects how well your program’s behavior
matches what was requested.
A+ does a fairly thorough job of checking your answers, which means you’ll need to be
meticulous, too. On the upside — was that a downside? — A+ is ready to serve day and
night and is quick and even-handed.
There is a limit to how many times you can submit a solution for each of the assignments.
Depending on the assignment, the limit is between three and ten tries. The highest-scoring
submission you send before the deadline counts towards your course grade.
At each deadline, we’ll publish example solutions to the previous week’s assignments. Since
many of the assignments don’t have a unique correct answer, comparing your solution to the
example solution is often a good way to learn even if you successfully solved the assignment.
This Is Not a Joke
Prepare to work. Soon.
Most of the points that you’ll need to collect come from practical
assignments that require you to write computer programs. These
assignments will take time. If you leave them for deadline night,
you’re likely to find yourself struggling to keep up. Take a look
at upcoming chapters in advance, reserve time for working on the
assignments, and start well in advance of each deadline.
There is a small feedback form at the end of this chapter and at the end of each of the
other chapters as well. Submitting these forms is a mandatory component of O1: the
points you score in each chapter aren’t official before you’ve submitted the end-of-chapter
It works like this:
The “Your Points” page in A+ is sensitive to the feedback forms. If you’ve forgotten
to submit a form, a look at the page will tell you.
Your questions and feedback make a difference!
We hope that you’ll write feedback at the end of most chapters.
It doesn’t have to be an opinion; instead, you can ask a question
that occurred to you or reflect on your learning, for instance.
We won’t dispatch your questions and comments straight to Bit
Heaven. On the contrary, we read them all and use them
already during this course offering and to help us design
We’ll pick out common and otherwise interesting questions
(anonymously) into weekly bulletins, which we’ll publish as
part of these course materials already during this fall semester.
Your course grade — between 0 (failed) and 5 (excellent) — depends on how many points
you collected from the assignments:
The details are in this table:
For instance, for a grade of 4, you’ll need:
(In addition, you’ll need to fill in the feedback forms in the chapters where
you did assignments as well as the end-of-course questionnaire in December.)
Yes, it’s a bit complicated, but luckily there’s the status page
where you can find an up-to-date report of what you’ve done and how many points you have.
If you’re short of points in Category A, you can use points from Category B or C to cover
for that. Any points you need in Category B can be replaced by points from Category C,
one-for-one. Your status page takes care of such things automatically.
Examination (only for students based in Finland but not at Aalto University)
To receive an official certificate for passing O1, you need to take an examination
at the end of the course. You can do this either by physically coming to the Aalto
campus or at another Finnish educational institution. If you take the exam at another
institution, you’ll need to indicate to us a contact person (e.g., teacher, professor)
from that institution, who can receive the exam papers, supervise the exam, and send
your solutions back to Aalto. Further information about this arrangement will be
published later during the fall.
If you just wish to learn to program and don’t have a need for an official certificate,
there’s no need to take the examination.
You can do the programming assignments either alone or paired with another student.
Feel free to tackle the assignments alone, if you wish. However, working
together forces you to articulate your thoughts — even to yourself! —
and teaches you to talk about programming. Two pairs of eyes are better
than one at spotting errors. Social pressure helps you avoid procrastinating.
We recommend that you work with a pair. Working together forces you
to articulate your thoughts even to yourself and teaches you to
communicate about programming. Two pairs of eyes are better than
one at spotting errors. Social pressure helps you avoid
Here’s an O1 student from an earlier year:
(This ebook contains quotations from students. Many of them, like the one above, have
been somewhat loosely translated from Finnish.)
When we say we recommend pairwork, we mean studying the chapters and doing the
assignments together. It is forbidden to split the workload with another student so
that you independently work on different tasks.
Whenever you submit a solution, you’ll choose whether you’re submitting alone or with
a pair. You can change pairs during the course but not during a single assignment: once
you’ve submitted a solution to a particular assignment, any retries will also need to
be submitted by the same pair or individual.
The end-of-chapter feedback forms are meant for each individual to answer separately.
The same goes for the end-of-course questionnaire.
It’s a good idea to find another student to pair up with as soon as O1 starts. You can
use our online discussion forums for this; you’ll find out more about them soon on
this page. In most cases, it’s best to pair up with a student whose prior programming
knowledge roughly matches your own.
Reflect on the chapters together. Talk. Find a way of writing programs together that
works for you; you can take turns sitting at the keyboard, for instance. Each member of
the pair must be fully familiar with all the solutions that the two of you produced.
Certainly, many students have passed O1 working alone,
so pairing up is not a necessary condition for success.
You may also study and exchange ideas in larger groups, as long as each pair or
individual student produces their own solutions. Quoth one of your forebears:
If the idea of a six-hour assignment scared you, take solace in the fact that there
won’t be any of those until later. We’ll start small. Nevertheless, there’s power in
Plagiarizing solutions from other students or otherwise isn’t allowed. It is likewise
forbidden to attempt to score points by deceiving the automatic assessment system.
Academic misconduct has consequences as per Aalto’s policies for academic integrity.
We do vet student programs for plagiarism.
As a student in O1, you’ll need to take charge of your own studies and reserve time
for tackling each chapter as you progress through the ebook. However, we are happy to
The teaching assistants host lab sessions every weekday
throughout the semester. The Fall 2021 labs will be implemented
online using Zoom. A more detailed schedule is available on
a separate page. Due to these exceptional
circumstances, the labs are open only to students with an Aalto
The teaching assistants host lab sessions every weekday
throughout the semester after the course officially starts.
This is the most important channel through which you can get
personal advice during O1.
Due to the pandemic, the Fall 2021 labs will be implemented
online using Zoom. A more detailed schedule is on
a separate page.
You don’t have to sign up for the labs: you can join freely
to any of them. Use the labs to ask the teaching assistants
for help if you fail to make progress or want to discuss
Piazza is a web site for discussing courses. You can ask questions on Piazza
and have them answered by the O1 staff or other students. Under normal circumstances,
you can expect to receive an answer within a day’s time; often you'll receive one
much sooner. You can also use Piazza to start other conversations.
Please go ahead and ask questions in English. Even if many students ask theirs in
Finnish, don’t worry about that.
The course staff uses Piazza to publish announcements. The announcements will also
appear here in A+.
A form for writing a new question in Piazza.
Assuming you want to use Piazza, you’ll need to create a user account there. (Negotiations are taking
place between Aalto and Piazza, which should eventually enable students to log into Piazza directly
from A+ using their Aalto credentials, but that’s not possible yet. Please note that Piazza is a U.S.
service that currently stores data on computers that are not located within the European Union and
does not fully comply with the European GDPR policy. If this makes you uneasy about using Piazza,
no problem: you can take O1 nevertheless — just use our other services — but we do recommend
Piazza, as it is useful and has served O1 students well for years.)
The left-hand menu in A+ contains a link to O1’s Piazza forum.
You can also use this link right here:
Sign up now so it’s done? (To find us in Piazza, select Aalto University as
a school and search for O1.) Anyway, to score your first assignment points,
please answer the following question.
Assuming you want to use Piazza, you’ll need a user account there. (Negotiations are
taking place between Aalto University and Piazza, which should eventually enable students
to log into Piazza directly from A+, but that’s not possible yet. Please note that Piazza is a
U.S. service that currently stores data on computers that are not located within the European
Union and does not fully comply with the European GDPR policy. If this makes you uneasy about
using Piazza, no problem: you can take O1 nevertheless — just use our other services — but
we do recommend Piazza, as it is useful and has served O1 students well for years.)
If you have an aalto.fi email address, you can sign up to our Piazza board on your own.
Otherwise, please request an invite from us — you can do it in a few seconds with the
form below. We’ll send you an invite to the email address that you used to enroll here
in A+. Until the first deadline, we’ll be sending invitations roughly once a day; if you
start later, it may take a few days.
The left-hand menu in A+ contains a link to O1’s Piazza forum. You can also use this
link right here: https://piazza.com/class/kq0mmkummrm72q
Anyway, to score your first assignment points, please answer the following question.
Among the three options listed below, pick the one that best describes you.
Please note that A+ gives you some feedback after you answer, and you’ll
also get feedback for other sorts of assignments later.
Check your Piazza settings!
It’s a good idea to click the cogwheel in Piazza’s upper right-hand
corner and check your site preferences. You can skip this bit, but
then Piazza will default to sending you frequent email notifications
of new messages on the course forum. You can adjust this behavior
in the settings.
We also have a chat on Telegram. Some of O1’s students
and staff hang out there, and it’s possible to get quick answers to questions (sometimes;
You can use the Telegram app or access Telegram straight
from your browser.
You can access O1’s chat through this link:
Juha is in charge of O1’s pedagogical design,
the contents of this ebook, student feedback and suggestions, the weekly bulletins, and
Niklas, Joonatan (?), Jaakko
The head assistants coordinate the work of the other teaching assistants, develop the
automatic assessment of O1’s programming assignments, maintain this course offering
here in A+, and teach along with the other assistants.
More than twenty teaching assistants will help you at the lab sessions. They are:
Sonja Tervola, and
Anna Valldeoriola Cardó.
The assistants also take care of certain other duties such as manually
assessing your solutions to some programming assignments.
More than twenty teaching assistants help students at the lab sessions.
The assistants also take care of certain other duties such as manually
assessing your solutions to some programming assignments.
An open-access offering of O1, a so-called MOOC, runs at the same time as the
offering for Aalto students. It’s organized by University Lecturer Otto
Seppälä (firstname.lastname@example.org) and Senior University Lecturer Juha Sorva
An open-access offering of O1, a so-called MOOC, runs at the same time as the offering
for Aalto students.
The MOOC is organized by University Teacher Otto Seppälä (email@example.com)
and Senior University Lecturer Juha Sorva (firstname.lastname@example.org). Otto is in charge
of arrangements that specifically concern MOOC students. If you have questions about
certificates or the examination, for instance, Otto is the person to contact.
Once more: welcome!
We in the O1 staff are prepared to work hard to make the course a
successful experience. We hope that you too are prepared to work
hard and make the most of this demanding but rewarding opportunity
Please note that this section must be completed individually.
Even if you worked on this chapter with a pair, each of you should submit the form separately.
Filling these end-of-chapter feedback forms is a mandatory component of O1.
Any points you collect in a chapter will not be confirmed before you submit the form!
Time spent: (*) Required
Please estimate the total number of minutes you spent on this chapter (reading, assignments,
etc.). You don’t have to be exact, but if you can produce an estimate to within 15 minutes or
half an hour, that would be great.
Now that you’ve reached the end of this first chapter, you could write a sentence
or two about your first impressions or describe how you’re feeling about taking O1.
Or you could ask a question. It’s not mandatory to write anything, however.
The answers that you send through these feedback forms will be visible to the course
staff. The teacher uses the textual answers as materials for the weekly bulletins,
anonymizing the senders. We’ll publish the bulletins here in A+. We may also use
your responses anonymously for improving teaching and learning in other ways.
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.
Additional credits appear at the ends of some other chapters.