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.


Having completed the course, you can define, compare and implement basic data structures and algorithms as well as name and select them, for example, as dictionaries, sorting problem, and graph traversing. In addition, you can identify and describe given data structure or algorithm and give examples of its operation(s). Moreover, you can discuss other essential data structures and algorithms by means of the terminology typically used in this domain.

Credits: 5

Schedule: 13.09.2019 - 17.12.2019

Teacher in charge (valid 01.08.2020-31.07.2022): Ari Korhonen

Teacher in charge (applies in this implementation): Ari Korhonen

Contact information for the course (valid 06.08.2019-21.12.2112):

Lecturer: Ari Korhonen, CS Building, room A138

Office hours only by appointment, please, send an email to

CEFR level (applies in this implementation):

Language of instruction and studies (valid 01.08.2020-31.07.2022):

Teaching language: English

Languages of study attainment: English


  • Valid 01.08.2020-31.07.2022:

    Linear data structures, trees and graphs. Searching and sorting methods. Principles of algorithm analysis.

  • Applies in this implementation:

    Mastering the basic terminology used in the domain. Implementation of basic data structures such as lists and trees. Most commonly used sorting algorithms such as insertion sort, mergesort and quicksort. Study and analysis of maps and dictionary data structures and their implementations either with trees or with hashing, and comparison of their properties. Elementary graph algorithms such as depth first search, breadth first search, and shortest path search algorithms. Idea of dynamic programming and its applications to some problems. Basics of algorithm analysis including the worst-case running time analysis of given algorithms in simple cases. Introduction to computational problems for which no efficient algorithms are known. 

Assessment Methods and Criteria
  • Valid 01.08.2020-31.07.2022:

    Personal home exercises, project work, and examination.

  • Valid 01.08.2020-31.07.2022:

    Lectures 14 h, self-study and teaching in small groups 76 h, group work 40 h, examination 3 h.


Study Material
  • Valid 01.08.2020-31.07.2022:

    To be announced on course s MyCourses-page.

  • Applies in this implementation:

    Course materials including exercises will be available in a separate A+ system (not here in MyCourses). The link to the system will be published during the first lecture. 

  • Valid 01.08.2020-31.07.2022:

    CS-A1113 / CS-A1111 Basic Course in Programming Y1.

SDG: Sustainable Development Goals

    4 Quality Education

    13 Climate Action


Details on the schedule
  • Applies in this implementation:

    The first lecture will be on Friday September 13th (TUAS building, AS5).