Kuva: Pixabay

This course is the follow-up to the Introduction to Programming course.

The course is taught as a massive open online course (MOOC), where you study very independently. Support from peers and instructors is available through the discussion forums.

If you have completed the Introduction to Programming Course, proceed to section 8 of the course material.

Registration and fee

Free of charge

You will be given instructions for course registration in the MOOC online learning environment after completing the course.


  • Course materials are available for everyone without officially registering on the course.
  • Please note that the course registration form is open for a pre-defined period only. Registration for the Open University is possible until 3.1.2021. Until this date, the course is complete. After that, the course can only be completed in the Python programming language.
  • If you wish to have the ECTS entered in the University of Helsinki’s student records, you must register for the course at the Open University.
  • If you enter erroneous information when registering, we cannot register your credits.
  • Students and international students at the University of Helsinki can enrol on the course with their University of Helsinki username.
  • If you do not have a Finnish personal identity code and / or an online banking ID, please contact the University of Helsinki Admission Services in order to register for the course.

More information on studying at the Open University:

Open University reserves the right to make changes to the study programme.


This course is a part of the University of Helsinki Bacherlor's programme in Science, and and a part of basic studies in Computer and Data Science.

If you a degree student at the University of Helsinki, please note following:

  • The course is compulsory for the whole programme.
  • For students in Computer and Data Science study track the course ID is BSCS1000 and for other students BS1000.
  • The course is available to students from other degree programmes.


It is recommended that you have completed Introduction to Programming (AYBSCS1001en) before taking this course.

It is recommended that you have completed Introduction to Programming (AYBSCS1001en) before taking this course.

For degree students, it is recommended to complete this course during period 2 of first autumn. The course is a follow-up to the Introduction to Programming course.

  • Identifies essential structures for procedural programming and object-oriented programming such as variables, conditional sentences, repetition sentences, lists, hash tables, methods, classes, and objects
  • Recognizes typical programming problems and remembers problem-solving strategies related to solving them (eg reading a feed, limiting read feeds, making summaries of read feeds, organizing, searching, ...
  • Understand the difference between a man-made source code and a executable program
  • Understand how a computer runs a computer program.Can tell (at a high level) what happens with a method call
  • Understand the cost of maintaining a computer program and can justify reasons for writing a readable and understandable source code (good programming policies)
  • Understand the differences between elementary and referral types
  • Understand the basic concepts of object-oriented programming and the similarities and differences between classes and objects
  • Understand the principles of action-driven programs
  • Can simulate execution
    with paper and pencil
  • Can describe the internal status of the program (on a variable basis) at different stages of program execution
  • Can find errors in source code when the computer program does not work
  • Identifies good and bad programming practices in source code
  • Can compare two computer programs that perform the same task and evaluate their pros and cons
  • Remembers typical programming problems and applies course solutions to solve programming problems
  • Can write programs based on the instructions given
  • Can create programs offering graphical user interfaces
  • Can test programs manually
  • Can create automatic tests
  • Can use the debugger functionality provided by the programming environment to identify errors
  • Identifies possible points that lead to an error situation from the given source code
  • Can apply a new programming technique or a previously unknown software library to solve a problem
  • Can design and implement a solution to a given problem
  • Can create many solutions to one problem and analyze the performance and maintainability of created solutions
  • Can test the performance of a given program and can write error reports that allow others to repeat the error detected in the program
  • Can describe the good and bad aspects of the solution created for the problem
  • Can create more solutions to the same problem
  • Can provide feedback on programs written by others
  • Can refract a given computer program

The course material is available online at the MOOC learning environment.The focus is in hands-on programming, supported by 2 hours of weekly lectures.

The details on grading of the course will be provided later.

Taking this course does not give students access to a University of Helsinki user account. If you want to view and share information about your studies after completing the course, sign up for the Oma Opintopolku -service maintained by the Finnish National Agency for Education. The ECTS will be displayed within two days in the Oma Opintopolku -service after credits have been registered to the University of Helsinki. To register for the Oma Opintopolku – service you must identify yourself by using Finnish bank identification codes, mobile certificate or certificate card.

Contact information:

The course is completed in the MOOC learning environment, which contains the material and instructions necessary for completing the course. You may study the course flexibly during 20.03.2020 - 04.01.2021.

Note! The last exam in Java programming language will be held on January 16, 2021.