Tietorakenteet ja algoritmitLaajuus (5 op)
Tunnus: 5051260
Laajuus
5 op
Osaamistavoitteet
Opintojakson suoritettuaan opiskelija osaa:
- selittää tavallisimpia tietorakenteita
- hyödyntää keskeisiä tietorakenteita sekä niiden käyttöön liittyviä algoritmeja
- arvioida algoritmien suoritustehokkuutta.
Sisältö
- listat, pinot, jonot, puut, verkot ja hajautustaulut
- algoritmien analysointi
- algoritmien suunnittelu
- järjestämistekniikat
- hakualgoritmit
Esitietovaatimukset
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
Ilmoittautumisaika
02.12.2023 - 31.12.2023
Ajoitus
01.01.2024 - 30.04.2024
Opintopistemäärä
5 op
Toteutustapa
Lähiopetus
Yksikkö
Tekniikka ja liiketoiminta
Toimipiste
Kupittaan kampus
Opetuskielet
- Suomi
- Englanti
Koulutus
- Tieto- ja viestintätekniikan koulutus
- Degree Programme in Information and Communications Technology
Opettaja
- Noora Maritta Nieminen
Vastuuopettaja
Noora Maritta Nieminen
Ryhmät
-
PTIVIS22SEmbedded Software and IoT
Tavoitteet
Opintojakson suoritettuaan opiskelija osaa:
- selittää tavallisimpia tietorakenteita
- hyödyntää keskeisiä tietorakenteita sekä niiden käyttöön liittyviä algoritmeja
- arvioida algoritmien suoritustehokkuutta.
Sisältö
- listat, pinot, jonot, puut, verkot ja hajautustaulut
- algoritmien analysointi
- algoritmien suunnittelu
- järjestämistekniikat
- hakualgoritmit
Arviointiasteikko
H-5
Esitietovaatimukset
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
Ilmoittautumisaika
30.11.2022 - 18.01.2023
Ajoitus
09.01.2023 - 30.04.2023
Opintopistemäärä
5 op
Toteutustapa
Lähiopetus
Yksikkö
Tekniikka ja liiketoiminta
Toimipiste
Kupittaan kampus
Opetuskielet
- Englanti
Koulutus
- Tieto- ja viestintätekniikan koulutus
- Degree Programme in Information and Communications Technology
Opettaja
- Noora Maritta Nieminen
Ryhmät
-
PTIVIS21SEmbedded Software and IoT
Tavoitteet
Opintojakson suoritettuaan opiskelija osaa:
- selittää tavallisimpia tietorakenteita
- hyödyntää keskeisiä tietorakenteita sekä niiden käyttöön liittyviä algoritmeja
- arvioida algoritmien suoritustehokkuutta.
Sisältö
- listat, pinot, jonot, puut, verkot ja hajautustaulut
- algoritmien analysointi
- algoritmien suunnittelu
- järjestämistekniikat
- hakualgoritmit
Arviointiasteikko
H-5
Esitietovaatimukset
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
Ilmoittautumisaika
02.12.2021 - 31.12.2021
Ajoitus
10.01.2022 - 30.04.2022
Opintopistemäärä
5 op
Virtuaaliosuus
3 op
Toteutustapa
40 % Lähiopetus, 60 % Etäopetus
Yksikkö
Tekniikka ja liiketoiminta
Opetuskielet
- Suomi
- Englanti
Paikat
20 - 70
Koulutus
- Tieto- ja viestintätekniikan koulutus
- Degree Programme in Information and Communications Technology
Opettaja
- Tapani Ojanperä
Vastuuopettaja
Tapani Ojanperä
Ryhmät
-
PTIVIS20SEmbedded Software and IoT
Tavoitteet
Opintojakson suoritettuaan opiskelija osaa:
- selittää tavallisimpia tietorakenteita
- hyödyntää keskeisiä tietorakenteita sekä niiden käyttöön liittyviä algoritmeja
- arvioida algoritmien suoritustehokkuutta.
Sisältö
- listat, pinot, jonot, puut, verkot ja hajautustaulut
- algoritmien analysointi
- algoritmien suunnittelu
- järjestämistekniikat
- hakualgoritmit
Oppimateriaalit
Slides on itslearning
Granville- Luca Del Tongo: Data Structures and Algorithms
https://dsa.codeplex.com/
Various internet sources, links & descriptions are provided in itslearning.
Opetusmenetelmät
Independent work, online activities (quizzes and problem sets).
Tenttien ajankohdat ja uusintamahdollisuudet
One exam in the end of the course. The schedule of the exams will be in itslearning.
Two re-exams.
Pedagogiset toimintatavat ja kestävä kehitys
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.
Opiskelijan ajankäyttö ja kuormitus
Material reading 60h
Homework (quizzes and exercises) 60h
Preparing exam 15h
Total 135h
Sisällön jaksotus
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
Viestintäkanava ja lisätietoja
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.
Arviointiasteikko
H-5
Arviointimenetelmät ja arvioinnin perusteet
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
Hylätty (0)
Student fails to meet most of the general objectives of the course in a satisfactory level.
Arviointikriteerit, tyydyttävä (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
Arviointikriteerit, hyvä (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.
Arviointikriteerit, kiitettävä (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.
Esitietovaatimukset
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