Skip to main content

Data Structures and Algorithms (5 cr)

Code: 5051128-3011

General information


Enrollment
01.12.2024 - 14.01.2025
Registration for the implementation has ended.
Timing
14.01.2025 - 30.04.2025
Implementation has ended.
Number of ECTS credits allocated
5 cr
Local portion
5 cr
Mode of delivery
Contact learning
Unit
Engineering and Business
Campus
Kupittaa Campus
Teaching languages
English
Seats
0 - 70
Degree programmes
Degree Programme in Information and Communication Technology
Teachers
Noora Maritta Nieminen
Laura Järvenpää
Groups
PTIVIS23P
Game and Interactive Technologies
Course
5051128

Realization has 26 reservations. Total duration of reservations is 52 h 0 min.

Time Topic Location
Tue 14.01.2025 time 12:00 - 14:00
(2 h 0 min)
Teoria, Tietorakenteet ja algoritmit 5051128-3011
ICT_B1026_Gamma GAMMA
Tue 21.01.2025 time 08:00 - 10:00
(2 h 0 min)
Teoria, Tietorakenteet ja algoritmit 5051128-3011
ICT_B1032_Beta BETA
Tue 21.01.2025 time 10:00 - 12:00
(2 h 0 min)
Harjoitukset, Tietorakenteet ja algoritmit 5051128-3011
EDU_1002 Moriaberg Esitystila byod
Tue 28.01.2025 time 08:00 - 10:00
(2 h 0 min)
Teoria, Tietorakenteet ja algoritmit 5051128-3011
Online
Tue 28.01.2025 time 10:00 - 12:00
(2 h 0 min)
Harjoitukset, Tietorakenteet ja algoritmit 5051128-3011
ICT_A1038b Oppimistila
Wed 29.01.2025 time 10:00 - 12:00
(2 h 0 min)
Data Structures and Algorithms 5051128-3011
ICT_B1039 IT-tila - telakka
Tue 04.02.2025 time 08:00 - 10:00
(2 h 0 min)
Teoria, Tietorakenteet ja algoritmit 5051128-3011
ICT_B1032_Beta BETA
Tue 04.02.2025 time 10:00 - 12:00
(2 h 0 min)
Harjoitukset, Tietorakenteet ja algoritmit 5051128-3011
EDU_3006_3007 Oppimistila avo muunto byod
Tue 11.02.2025 time 08:00 - 10:00
(2 h 0 min)
Teoria, Tietorakenteet ja algoritmit 5051128-3011
LEM_A173_Lemminkäinen Lemminkäinen
Tue 11.02.2025 time 10:00 - 12:00
(2 h 0 min)
Harjoitukset, Tietorakenteet ja algoritmit 5051128-3011
ICT_B2026 Teoriatila muunto
Tue 25.02.2025 time 08:00 - 10:00
(2 h 0 min)
Teoria, Tietorakenteet ja algoritmit 5051128-3011
ICT_B1032_Beta BETA
Tue 25.02.2025 time 10:00 - 12:00
(2 h 0 min)
Harjoitukset, Tietorakenteet ja algoritmit 5051128-3011
EDU_1002 Moriaberg Esitystila byod
Tue 04.03.2025 time 08:00 - 10:00
(2 h 0 min)
Teoria, Tietorakenteet ja algoritmit 5051128-3011
LEM_A173_Lemminkäinen Lemminkäinen
Tue 04.03.2025 time 10:00 - 12:00
(2 h 0 min)
Harjoitukset, Tietorakenteet ja algoritmit 5051128-3011
EDU_2030 Evert muunto byod
Tue 11.03.2025 time 08:00 - 10:00
(2 h 0 min)
Teoria, Tietorakenteet ja algoritmit 5051128-3011
ICT_C1035_Delta DELTA
Tue 11.03.2025 time 10:00 - 12:00
(2 h 0 min)
Harjoitukset, Tietorakenteet ja algoritmit 5051128-3011
EDU_3006_3007 Oppimistila avo muunto byod
Tue 18.03.2025 time 08:00 - 10:00
(2 h 0 min)
Teoria, Tietorakenteet ja algoritmit 5051128-3011
ICT_C1027_Lambda LAMBDA
Tue 18.03.2025 time 10:00 - 12:00
(2 h 0 min)
Harjoitukset, Tietorakenteet ja algoritmit 5051128-3011
EDU_3006_3007 Oppimistila avo muunto byod
Tue 25.03.2025 time 08:00 - 10:00
(2 h 0 min)
Teoria, Tietorakenteet ja algoritmit 5051128-3011
ICT_C1027_Lambda LAMBDA
Tue 25.03.2025 time 10:00 - 12:00
(2 h 0 min)
Harjoitukset, Tietorakenteet ja algoritmit 5051128-3011
EDU_3006_3007 Oppimistila avo muunto byod
Tue 01.04.2025 time 08:00 - 10:00
(2 h 0 min)
Teoria, Tietorakenteet ja algoritmit 5051128-3011
ICT_B1026_Gamma GAMMA
Tue 01.04.2025 time 10:00 - 12:00
(2 h 0 min)
Harjoitukset, Tietorakenteet ja algoritmit 5051128-3011
EDU_3006_3007 Oppimistila avo muunto byod
Tue 08.04.2025 time 08:00 - 10:00
(2 h 0 min)
Teoria, Tietorakenteet ja algoritmit 5051128-3011
ICT_C1027_Lambda LAMBDA
Tue 08.04.2025 time 10:00 - 12:00
(2 h 0 min)
Harjoitukset, Tietorakenteet ja algoritmit 5051128-3011
EDU_1002 Moriaberg Esitystila byod
Tue 15.04.2025 time 08:00 - 10:00
(2 h 0 min)
Teoria, Tietorakenteet ja algoritmit 5051128-3011
ICT_B1032_Beta BETA
Tue 15.04.2025 time 10:00 - 12:00
(2 h 0 min)
Harjoitukset, Tietorakenteet ja algoritmit 5051128-3011
EDU_3034 Helena muunto byod
Changes to reservations may be possible.

Evaluation scale

H-5

Content scheduling

Understanding data structures and algorithmic efficiency / complexity are essential in many ways. During this course, the student will gain both theoretical and practical understanding on these topics. Students will learn to use pseudocode / flowcharts to describe algorithms and analyze their complexity (time and space, both experimental and theoretical). We will gain a comprehensive insight to elementary data structures and their algorithms.

Practical understanding is gained through coding exercises. We will use Python as our main coding language.

January– April 2025

January and February: Algorithms and algorithmic thinking
• pseudocode, flowcharts
• efficiency and algorithmic complexity
• Sorting algorithms: Bubble, Selection, Insertion, Merge and Quick Sort

March and April: Data Structures and their algorithms
• Arrays, Linked List, Stack, Queue
• Hash table, Trees, Graphs

Objective

After completing the course the student can:
- explain the most common data structures
- apply the most common data structures and algorithms connected to the use of these structures
- evaluate the efficiency of algorithms.

Content

- lists, stacks, queues, trees, graphs and hash tables
- analysing and evaluating algorithms   
- designing algorithms       
- sorting methods  
- search algorithms

Materials

Lecture and practice session material in ItsLearning, e.g. PowerPoint presentations, Jupyter notebook / Python files, etc.
All material is provided in English

Teaching methods

Attending to lectures: teacher will provide both theoretical background and practical examples on a dedicated topic
Attending practice sessions: the theory is put into action in practice - we will see solutions to previous exercises + practice new topics
Individual work: Completing the assignments individually after face-to-face sessions

Exam schedules

No exam, retake not possible after the publication of the final assessment/course grade

Pedagogic approaches and sustainable development

The course has 14 two-hour contact sessions where teacher present theory and examples, and 12 two-hour practice sessions where students work with practical tasks.

Electronic materials are used in the course.

Completion alternatives

Ask teacher, if there is an ongoing suitable online course (FiTech / Coursera or equivalent).
CampusOnline courses ARE NOT accepted!

Student workload

Lectures 2h / week x 14 = 28h
Practice sessions 2h x 12 = 24h
Individual work outside school: reading, studying, preparing the weekly programming practice tasks: 80h

Total: approx. 80h

Evaluation methods and criteria

The grade will be based on the following criteria:
- practical work (at the end of the course)
- homework activity (continuous, weekly assignments)
- attendance to lectures and practice sessions

You can achieve 80 points from practical exercises in class room and home work exercises.
Around half of the exercises are done during the contact hours.

Demonstrations of exercises during the contact session is mandatory without demonstration you will lose 50% of your marks.

Additionally, there is a group project of 20 points, passing group project is mandatory to pass the course.

Lastly, to pass the course the student need to get at least 40 marks in the exercises and at least 10 marks in the project.

Failed (0)

Student fails to meet most of the general objectives of the course in a satisfactory level.

Assessment criteria, satisfactory (1-2)

• has an elementary understanding on the performance of algorithms and in simple cases is able to apply some methods of analysis covered during the course.
• is familiar with some major algorithms and data structures covered in the course.
• has a basic understanding on how to apply the algorithmic design parameters covered in the course.
• has an elementary understanding on data representation.
• demonstrates some understanding on how to decompose programming problems in a purposeful way.
• can use most elementary data structures appropriately

Assessment criteria, good (3-4)

• can analyze the performance of simple algorithms and is able to apply some of the methods of analysis covered during the course.
• is familiar with most of the major algorithms and data structures covered in the course.
• has an understanding of the algorithmic design parameters covered in the course.
• has a good understanding on data representation.
• demonstrates ability to decompose programming problems in a somewhat purposeful way.
• can choose and use elementary data structures appropriately in most cases.

Assessment criteria, excellent (5)

• can analyze the performance of algorithms and is able to apply all the methods of analysis covered during the course.
• is familiar with all the major algorithms and data structures covered in the course.
• is able to apply the algorithmic design parameters covered in the course.
• has a deep understanding on data representation.
• demonstrates ability to decompose programming problems in a purposeful way.
• can choose and use elementary data structures appropriately.

Qualifications

Introduction to Programming, or equivalent programming skills

Further information

ItsLearning
Email

Go back to top of page