Please note! Course description is confirmed for two academic years, which means that in general, e.g. Learning outcomes, assessment methods and key content stays unchanged. However, via course syllabus, it is possible to specify or change the course execution in each realization of the course, such as how the contact sessions are organized, assessment methods weighted or materials used.


Upon successfully completing the course a student

(i) understands the essential functional structure of a programmable computer and its operation during program execution,

(ii) understands the physical limitations and possibilities of computers, including the main computational resources (time, space, parallelism, etc) and how to put these into use,

(iii) can determine/measure the performance of a computer program in practice, in simple cases by inspecting only the structure of the program,

(iv) understands what is meant by an abstract interface and its implementation, including the possibility of alternative implementations with different performance characteristics,

(v) understands the concept of recursion and can write programs that employ recursion and operate on recursive data structures, and

(vi) knows the basics of algorithm design and analysis, including selected designs for fundamental combinatorial tasks (searching, sorting, etc).

Credits: 5

Schedule: 28.02.2022 - 27.05.2022

Teacher in charge (valid for whole curriculum period):

Teacher in charge (applies in this implementation): Lukas Ahrenberg

Contact information for the course (applies in this implementation):

CEFR level (valid for whole curriculum period):

Language of instruction and studies (applies in this implementation):

Teaching language: English. Languages of study attainment: English


  • valid for whole curriculum period:

    Introduction to computer architecture and program execution from gate level to high-level programming languages. Programming abstractions and analysis of program performance. Aspects of functional programming, e.g. recursive definitions and recursion. Introduction to computer science and problem-solving with algorithms.

Assessment Methods and Criteria
  • valid for whole curriculum period:

    Programming assignments and an exam

  • valid for whole curriculum period:

    Lectures: 24 h. Work in small groups / exercise sessions: 36 h; Independent work: 72 h, Exam: 3 h. Total 135 h [5 cr]


Study Material
  • valid for whole curriculum period:

    Lecture notes, articles, and programming assignments

Substitutes for Courses


Further Information
  • valid for whole curriculum period:

    Teaching Period:

    2020-2021 Spring IV-V

    2021-2022 Spring IV-V

    Course Homepage:

    Registration for Courses: In the academic year 2021-2022, registration for courses will take place on Sisu ( instead of WebOodi.