Skip to main content

Data Structures and Algorithms (5 cr)

Code: 5051260-3006

General information


Enrollment
02.12.2023 - 31.12.2023
Registration for the implementation has ended.
Timing
01.01.2024 - 30.04.2024
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
Finnish
English
Degree programmes
Degree Programme in Information and Communications Technology
Degree Programme in Information and Communication Technology
Teachers
Noora Maritta Nieminen
Teacher in charge
Noora Maritta Nieminen
Groups
PTIVIS22S
Embedded Software and IoT
Course
5051260

Realization has 3 reservations. Total duration of reservations is 6 h 0 min.

Time Topic Location
Fri 05.04.2024 time 14:00 - 16:00
(2 h 0 min)
Practice EMBO, Tietorakenteet ja algoritmit 5051260-3006
ICT_B1039 IT telakka
Fri 12.04.2024 time 14:00 - 16:00
(2 h 0 min)
Practice EMBO, Tietorakenteet ja algoritmit 5051260-3006
ICT_B1039 IT telakka
Fri 19.04.2024 time 14:00 - 16:00
(2 h 0 min)
Practice EMBO, Tietorakenteet ja algoritmit 5051260-3006
ICT_B1039 IT telakka
Changes to reservations may be possible.

Evaluation scale

H-5

Content scheduling

January– April 2024

January: Algorithmic Thinking and Analysis
• pseudocode, flowcharts
• efficiency and algorithmic complexity

February: Basic Data Structures
• Arrays, Linked List, Stack, Queue

March: Advanced Data Structures
• Hash table, Trees, Graphs

April: Sorting Algorithms, Search Algorithms
• Bubble, Selection, Insertion, Merge and Quick Sort

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

Midterm 1 will be held in February (close to winter break), topics are "Algorithms and complexity" and "Basic data structures"
Midterm 2 will be held at the end of the course in April, topics are "Advanced data structures" and "search algorithms"

You will have the chance to retake midterm 1 at the end of the course when you also take the midterm 2 exam.

There is one retake exam for the entire course at the beginning of May.

Pedagogic approaches and sustainable development

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. Practical understanding is gained through coding exercises. We will use Python as our main coding language.

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 (all three groups together)
Practice sessions 2h / week (three small groups)
Individual work outside school: reading, studying, preparing the weekly programming practice tasks

Evaluation methods and criteria

The grade will be based on the following criteria:
- 2 midterm exams
- homework activity
- attendance to lectures and practice sessions

More detailed description provided at the first lecture and in ItsLearning

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

Ohjelmoinnin perustaidot jollakin korkean tason ohjelmointikielellä (esimerkiksi Python, Java, C# tai vastaava)
•Ohjelmoinnin perustaitoihin kuuluu muun muassa ulostulon formatointi, ehtolauseet, silmukat, funktiot/aliohjelmat, funktion parametrit ja paluuarvot, taulukot, virheentarkastelu, testaus ja hyvät koodauskäytännöt
•Riittävät matemaattis-loogiset ajattelutaidot

Further information

ItsLearning
Email

Go back to top of page