•   Data Structures and Algorithms 5051260-3003 10.01.2022-30.04.2022  5 credits  (PTIVIS20S) +-
    Competence objectives of study unit
    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.
    Prerequisites
    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 (not translated)
    Content of study unit
    - lists, stacks, queues, trees, graphs and hash tables

    - analysing and evaluating algorithms 

    - designing algorithms     

    - sorting methods

    - search algorithms

    Teacher(s) in charge

    Tapani Ojanperä

    Learning material

    Slides on itslearning
    Granville- Luca Del Tongo: Data Structures and Algorithms
    https://dsa.codeplex.com/
    Various internet sources, links & descriptions are provided in itslearning.

    Learning methods

    Independent work, online activities (quizzes and problem sets).

    Objects, timing and methods of assessment

    Quizzes 20 %
    Quizzes (5) in itslearning Diagnostic/formative instant scoring
    Problem Sets 30 %
    Different Problem Sets (7) in itslearning, diagnostic/formative self and teacher evaluation
    Final exam 50 %
    A written exam (90 minutes) on specified material
    Summative teacher evaluation at the end of the course

    Teaching language

    Finnish

    Timing

    10.01.2022 - 30.04.2022

    Enrollment date range

    02.12.2021 - 31.12.2021

    Group(s)
    • PTIVIS20S
    Seats

    20 - 70

    Responsible unit

    Engineering and Business

    Teachers and responsibilities

    Tapani Ojanperä

    Additional information

    Python (or C#)and MatLab are recommended and used, but other common languages are acceptable in homeworks.
    All practical information on schedules, quizzes, problems, grading etc., as well as links to web materials are provided in itslearning.

    Degree Programme(s)

    Degree Programme in Information and Communication Technology, Degree Programme in Information and Communications Technology

    Share of online studies

    3 credits

    Assessment scale

    H-5

    Exam dates and retake possibilities

    One exam in the end of the course. The schedule of the exams will be in itslearning.
    Two re-exams.

    Pedagogic approaches

    The course material is totally in English. Data Structures and Algorithms are very crucial to know in order to make successful programs. Besides some of the students are international ones. Material consists of PowerPoint slides, Word and PDF files. In addition, there are links to different web materials, e.g. lectures and presentations in YouTube and in some other places in Internet. The course consists of rounds of topics (learning material & quiz - homework - teacher review). There will be a specified time slot of each round. Some rounds have quizzes. Each quiz will consist of 4-6 quick questions, where the student needs to choose an answer out of 4 available ones, or answer yes or no. After every section there will be a homework assignment to solve some algorithmic problems related to the current subject.

    Student's schedule and workload

    Material reading 60h
    Homework (quizzes and exercises) 60h
    Preparing exam 15h
    Total 135h

    Content scheduling

    January– April 2022
    January: Algorithmic Thinking and Analysis
    February: Basic Data Structures
    March: Advanced Data Structures
    April: Sorting Algorithms, Search Algorithms, exam
    • Arrays, Linked List, Stack, Queue
    • Hash table, Trees, Graphs
    • Bubble, Selection, Insertion, Merge and Quick Sort

    methods
    • Binary search, Pathfinding, Shuffling

    Assessment criteria
    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.