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ä:
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.
Related Projects: None.
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+, which we also
use for receiving and assessing your submissions to assignments.
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 Aalto’s 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 your
You don’t have to (and cannot) sign up for O1 in Oodi. It’s
enough to enroll on our front page in A+.
In very 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; how to use the Linux computers on
campus; a rudimentary understanding of files and folders/directories;
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.
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 18th, 2019, 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 20th, 2019, as we’ll give
you two actual weeks to work on a somewhat larger project during Week 10.) All the
deadlines are visible here in A+.
The first deadline
The first deadline is already on September 18th, 2019. 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.
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 five points in Category A by reading the chapter and answering the
small assignment that appears further down on this page.
A high points value typically indicates that an assignment is more work than others in
the same category. The topic of an assignment also affects which category we’ve put it in.
Besides assignments with a points value, the ebook contains additional practice tasks and
challenge problems, which are entirely voluntary and don’t directly impact on your grade.
Below is a diagram of how the assignments are distributed across the weeks of the course.
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.
The diagram also suggests that there are more weeks than 13 in this ebook. Which is true,
but those later weeks are part of the spring course CS-C2120 Programming Studio 2, which takes over where we leave
You submit your work via web forms that you’ll find within this ebook.
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 the 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.
We’ll publish example solutions to each assignment in A+ at each deadline. 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:
You “Exercise Results” page in A+ is sensitive to the feedback forms. If you’ve forgotten
to submit one, 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 feeback 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, but 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
Plagiarising solutions from other students or elsewhere 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 on the Aalto
campus in Espoo. There are sessions every weekday throughout the
semester. The locations and a more detailed schedule are available
on a separate page. Some of the lab
sessions are also open to students from outside of Aalto (who are
nevertheless able to attend in person).
The teaching assistants host lab sessions at Maarintalo on the
Aalto campus in Espoo.
The first lab session is on September 11th, 2019. After that, there
are sessions every weekday throughout the semester. The locations
and a more detailed schedule are on a separate page.
You don’t have to sign up for the labs: you can just walk in freely
to any of them. The lab sessions don’t have a preset agenda that
each student follows at a set pace. Instead, you work on the chapters
at your own pace and ask the teaching assistants for help if you
fail to make progress or want to discuss something.
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 most students write 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.
The left-hand menu in A+ contains a link to Piazza. You can also use this link right
To get you started with Piazza, let’s do a small exercise.
A+ presents the exercise submission form here.
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.
Piazza is O1’s official discussion forum and the primary place you can go to ask
questions about the programming assignments. As an alternative, we also have a chat
on Telegram. It doesn’t have an official staff presence,
but some of O1’s students and staff hang out there, and it’s possible to get quick answers
to questions (no guarantees, though).
You can install the Telegram app, or you can use it straight
from your browser. Registering requires a phone number.
You can access O1’s chat through this link:
There are three lectures, which are meant primarily for the local students at
Aalto. Attending the lectures is in no way necessary to do well in O1. The
online materials that you’re reading now cover all the necessary topics. For
more information about the lectures, please see a separate page.
O1 is emphatically not a lecture course, but there are three lectures as a
bonus. The first two are in Finnish only, however, and none of the three is
mandatory or especially important.
Please do not worry: you won’t miss out on anything important even if you
don’t know Finnish. The two lectures at the start of the course are largely
for orientation; everything that’s said there is also covered in detail in
The full schedule is on the lectures page.
Juha is in charge of O1’s pedagogical design, the contents of this ebook, the weekly
bulletins, and the lectures.
Riku, Niklas, Nikolas
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 participate in teaching in the labs.
22 teaching assistants will help you at the lab sessions:
Marja Tiainen, and
The assistants have some other duties such as manually assessing your solutions to
certain programming assignments.
Our 22 teaching assistants help students at the lab sessions on campus. The assistants
also have some other duties such as manually assessing your solutions to certain
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 Teacher 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 texts you send through these forms will be visible to the course staff. The
teacher uses them 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.
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 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.