Data Structures and AlgorithmsLaajuus (5 cr)
Code: 5051128
Credits
5 op
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
Qualifications
Introduction to Programming, or equivalent programming skills
Enrollment
01.12.2024 - 14.01.2025
Timing
14.01.2025 - 30.04.2025
Number of ECTS credits allocated
5 op
Mode of delivery
Contact teaching
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
-
PTIVIS23PGame and Interactive Technologies
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
International connections
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
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
Further information
ItsLearning
Email
Evaluation scale
H-5
Assessment 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.
Assessment criteria, fail (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
Enrollment
01.12.2024 - 14.01.2025
Timing
14.01.2025 - 30.04.2025
Number of ECTS credits allocated
5 op
Mode of delivery
Contact teaching
Unit
Engineering and Business
Campus
Kupittaa Campus
Teaching languages
- English
Seats
0 - 45
Teachers
- Laura Järvenpää
Groups
-
PTIVIS23HHealth Technology
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
Material available via the learning environment (ITS).
Teaching methods
Weekly contact 3 hours sessions for theory and practical exercises.
Exam schedules
No exam, and retake not possible after evaluation grade is published.
International connections
The course has 12 three-hour contact sessions where teacher present theory and examples and students work with practical tasks. Additionally there is course introduction lecture and one theory lecture without exercises.
Electronic materials are used in the course. In addition, guidance is also organized online in order to reduce the carbon footprint caused by movement.
Completion alternatives
Not possible
Student workload
Contact hours
- Course introduction: 2 hours
- 13 times 2h theory: 13 x 2h = 26 hours
- 12 times 1h demo 12 x 1h = 12 hours - Group 1
- 12 times 1h demo 12 x 1h = 12 hours - - Group 2
Home work:
- Working with assignments: approximately 80 hours
Total: approximately 130 hours
Content scheduling
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
Contact hours according to lukkari.turkuamk.fi.
Further information
ITS and Teams.
Evaluation scale
H-5
Assessment methods and criteria
The course is graded on a scale of 0-5.
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.
Assessment criteria, fail (0)
Less than 50% points in the exercises OR Student does not passed the group project.
Assessment criteria, satisfactory (1-2)
50 points -> 1
60 points -> 2
Assessment criteria, good (3-4)
70 points -> 3
80 points -> 4
Assessment criteria, excellent (5)
90 points -> 5
Qualifications
Introduction to Programming, or equivalent programming skills
Enrollment
01.06.2024 - 06.09.2024
Timing
02.09.2024 - 18.12.2024
Number of ECTS credits allocated
5 op
Mode of delivery
Contact teaching
Unit
Engineering and Business
Campus
Kupittaa Campus
Teaching languages
- English
Seats
20 - 60
Degree programmes
- Degree Programme in Information and Communication Technology
- Degree Programme in Information and Communications Technology
Teachers
- Ali Khan
Teacher in charge
Noora Maritta Nieminen
Groups
-
PTIVIS23SEmbedded Software and IoT
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
Material available via the learning environment (ITS).
Teaching methods
Weekly contact 3 hours sessions for theory and practical exercises.
Additionally, if needed weekly 1h sessions for questions and support in exercises.
Exam schedules
No exam, and retake not possible after evaluation grade is published.
International connections
The course has 12 three-hour contact sessions where teacher present theory and examples and students work with practical tasks.
Additionally, students are able to receive extra guidance for exercises.
Electronic materials are used in the course. In addition, guidance is also organized online in order to reduce the carbon footprint caused by movement.
Completion alternatives
Not possible
Student workload
Contact hours
- Course introduction: 3 hours
- 13 times 2h theory: 13 x 2h = 26 hours
- 13 times 1h demo 13 x 1h = 13 hours - Group 1
- 13 times 1h demo 13 x 1h = 13 hours - - Group 2
- FLIP Classroom 10 X 1h = 10h
Home work:
- Working with assignments: approximately 80 hours
Total: approximately 130 hours
Content scheduling
Week 36: Course introduction
Session from Weeks 36 - 48
- Algorithms and algorithmic thinking
- Data structures
- Search algorithms
- Sorting algorithms
Contact hours according to lukkari.turkuamk.fi.
Further information
ITS and Teams.
Evaluation scale
H-5
Assessment methods and criteria
The course is graded on a scale of 0-5.
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.
Assessment criteria, fail (0)
Less than 50% points in the exercises OR Student does not passed the group project.
Assessment criteria, satisfactory (1-2)
50 points -> 1
60 points -> 2
Assessment criteria, good (3-4)
70 points -> 3
80 points -> 4
Assessment criteria, excellent (5)
90 points -> 5
Qualifications
Introduction to Programming, or equivalent programming skills
Enrollment
02.12.2023 - 31.12.2023
Timing
01.01.2024 - 30.04.2024
Number of ECTS credits allocated
5 op
Mode of delivery
Contact teaching
Unit
Engineering and Business
Campus
Kupittaa Campus
Teaching languages
- Finnish
- English
Seats
20 - 50
Degree programmes
- Degree Programme in Information and Communication Technology
- Degree Programme in Information and Communications Technology
Teachers
- Noora Maritta Nieminen
Teacher in charge
Noora Maritta Nieminen
Groups
-
PTIVIS22PGame and Interactive Technologies
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.
International connections
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
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
Further information
ItsLearning
Email
Evaluation scale
H-5
Assessment 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
Assessment criteria, fail (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
Enrollment
30.11.2022 - 18.01.2023
Timing
09.01.2023 - 30.04.2023
Number of ECTS credits allocated
5 op
Mode of delivery
Contact teaching
Unit
Engineering and Business
Campus
Kupittaa Campus
Teaching languages
- English
Degree programmes
- Degree Programme in Information and Communication Technology
- Degree Programme in Information and Communications Technology
Teachers
- Noora Maritta Nieminen
Groups
-
PTIVIS21PGame and Interactive Technologies
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
Evaluation scale
H-5
Qualifications
Introduction to Programming, or equivalent programming skills