Module also offered within study programmes:
General information:
Name:
Algorithms and data structures
Course of study:
2017/2018
Code:
EIB-1-220-s
Faculty of:
Faculty of Electrical Engineering, Automatics, Computer Science and Biomedical Engineering
Study level:
First-cycle studies
Specialty:
-
Field of study:
Biomedical Engineering
Semester:
2
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Course homepage:
 
Responsible teacher:
dr hab. inż. Szymczyk Piotr (Piotr.Szymczyk@agh.edu.pl)
Academic teachers:
dr hab. inż. Szymczyk Piotr (Piotr.Szymczyk@agh.edu.pl)
dr inż. Szymczyk Magdalena (Magdalena.Szymczyk@agh.edu.pl)
Module summary

Student poznaje podstawowe algorytmy i struktury danych.

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
M_K001 Student rozumie potrzebę dokształcania się oraz podnoszenia swoich kompetencji zawodowych i osobistych. IB1A_K01 Activity during classes,
Participation in a discussion
M_K002 Student dostrzega potrzebę ciągłego aktualizowania i poszerzania wiedzy z zakresu informatyki. IB1A_U11 Activity during classes,
Participation in a discussion,
Execution of laboratory classes
M_K003 Student potrafi przygotować projekt oraz prezentację, współdziałać w zespole. IB1A_K03, IB1A_K04 Activity during classes
Skills
M_U001 Studiowanie Formalnych Podstaw Informatyki kształtuje sposób myślenia przyszłego inżyniera biomedycznego. Student potrafi rozwiązać proste problemy algorytmiczne. IB1A_U03 Activity during classes
M_U002 Nabycie umiejętności pracy w zespole. IB1A_U05, IB1A_U02 Activity during classes,
Execution of laboratory classes
M_U003 Student potrafi samodzielnie pozyskiwać informacje z różnych źródeł oraz wykorzystywać je do rozwiązania postawionego problemu (projekt strony WWW) IB1A_U05, IB1A_U02, IB1A_U07, IB1A_U04, IB1A_U01 Presentation,
Project,
Participation in a discussion
Knowledge
M_W002 Student zna podstawowe metody i narzędzia, w tym narzędzia informatyczne i techniki pozyskiwania danych, pozwalające opisywać i analizować problemy informatyczne w inżynierii biomedycznej IB1A_W12, IB1A_W11, IB1A_W13 Activity during classes,
Execution of laboratory classes,
Completion of laboratory classes
M_W003 Student potrafi dobierać i zastosować odpowiednie narzędzia informatyczne przydatne do rozwiązywania konkretnych zadań dotyczących poznanych zagadnień. Student potrafi formułować definicje i wykorzystywać poznane metody do rozwiązywania prostych problemów. IB1A_W12, IB1A_W10, IB1A_W13 Activity during classes,
Test,
Execution of laboratory classes
M_W004 Student posiada wiedzę z formalnych podstaw informatyki, zna podstawy matematyki dyskretnej, algorytmiki, budowy komputera. IB1A_W01 Activity during classes,
Test,
Execution of laboratory classes
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
M_K001 Student rozumie potrzebę dokształcania się oraz podnoszenia swoich kompetencji zawodowych i osobistych. - - + - - - - - - - -
M_K002 Student dostrzega potrzebę ciągłego aktualizowania i poszerzania wiedzy z zakresu informatyki. - - + - - - - - - - -
M_K003 Student potrafi przygotować projekt oraz prezentację, współdziałać w zespole. - - + - - - - - - - -
Skills
M_U001 Studiowanie Formalnych Podstaw Informatyki kształtuje sposób myślenia przyszłego inżyniera biomedycznego. Student potrafi rozwiązać proste problemy algorytmiczne. - - + - - - - - - - -
M_U002 Nabycie umiejętności pracy w zespole. - - + - - - - - - - -
M_U003 Student potrafi samodzielnie pozyskiwać informacje z różnych źródeł oraz wykorzystywać je do rozwiązania postawionego problemu (projekt strony WWW) - - + - - - - - - - -
Knowledge
M_W002 Student zna podstawowe metody i narzędzia, w tym narzędzia informatyczne i techniki pozyskiwania danych, pozwalające opisywać i analizować problemy informatyczne w inżynierii biomedycznej - - + - - - - - - - -
M_W003 Student potrafi dobierać i zastosować odpowiednie narzędzia informatyczne przydatne do rozwiązywania konkretnych zadań dotyczących poznanych zagadnień. Student potrafi formułować definicje i wykorzystywać poznane metody do rozwiązywania prostych problemów. - - + - - - - - - - -
M_W004 Student posiada wiedzę z formalnych podstaw informatyki, zna podstawy matematyki dyskretnej, algorytmiki, budowy komputera. - - + - - - - - - - -
Module content
Laboratory classes:
  1. Wstęp do przedmiotu

    Wprowadzenie do przedmiotu formalne podstawy informatyki. Zakres problemowy podstaw informatyki. Rola informatyki w inżynierii biomedycznej.

  2. Wprowadzenie do architektury komputerów

    • modele maszyn cyfrowych (maszyna Turinga: osprzęt i oprogramowanie, możliwości maszyny Turinga, uniwersalność maszyny Turinga, minimalna uniwersalna maszyna Turinga, przykłady zastosowań maszyny Turinga.)
    • elementy logiki
    • rachunek zdań
    • zdania logicznie równoważne
    • algebra boole’a

  3. Informacja i sposoby jej reprezentacji w pamięci komputera

    • reprezentacja liczb w komputerze – liczby bez znaku, liczby ze znakiem
    • arytmetyka liczb binarnych
    • zapis zmiennoprzecinkowy liczby rzeczywistych
    • zapis liczb stało i zmiennopozycyjny

  4. Informacja i sposoby jej reprezentacji w pamięci komputera cd

    • zapis znaków: kodowanie ASCII, Unicode
    • zapis liczb zmiennoprzecinkowych w
      systemie binarnym
    • arytmetyka liczb zmiennoprzecinkowych
    • zadania

  5. Algorytmy – wprowadzenie

    • co to jest algorytm?
    • definicja algorytmu
    • sposób zapisu algorytmów
    • klasyfikacja algorytmów
    • złożoność obliczeniowa

  6. Schematy blokowe

    • rozwiązywanie prostych zadań
    • podsumowanie dotychczasowego materiału

  7. Kolokwium

    Kolokwium + omówienie i rozwiązanie zadań

  8. Algorytmika

    • przypomnienie – schematy blokowe
    • iteracja, rekurencja
    • złożoność algorytmów
    • złożoność obliczeniowa – notacja O
    • języki programowania
    • generacja języków programowania
    • rozwiązywanie zadań z algorytmiki

  9. Wprowadzenie do struktur danych Podstawowe typy i struktury danych

    • rekordy
    • tablice
    • macierze
    • wskaźnik
      Rozwiązywanie zadań dotyczących rekurencji i tablic (schematy blokowe).

  10. Metody sortowania danych

    Omówienie metod sortowania:

    • algorytm bąbelkowy
    • algorytm przez proste wstawianie
    • algorytm przez proste wybieranie
    • sortowanie szybkie (Quick-Sort)

  11. Metody sortowania danych – zadania

    Schematy blokowe algorytmów sortowania

    • algorytm bąbelkowy
    • algorytm przez proste wstawianie
    • algorytm przez proste wybieranie

  12. Dynamiczne struktury danych

    Dynamiczne struktury danych

    • stos
    • notacja Polska
    • odwrotna Notacja Polska
    • kolejka
    • lista jednokierunkowa i dwukierunkowa

  13. Schematy blokowe

    Zaawansowane zadania dotyczące schematów blokowych

  14. Podsumowanie zajęć

    Kolokwium, podsumowanie zajęć

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 103 h
Module ECTS credits 4 ECTS
Participation in laboratory classes 28 h
Preparation for classes 30 h
Completion of a project 20 h
Realization of independently performed tasks 10 h
Contact hours 15 h
Additional information
Method of calculating the final grade:

W trakcie semestru przeprowadzane są dwa kolokwium sprawdzające wiedzę studentów (K) oraz kartkówki (L).
Ocena końcowa (W) obliczana jest jako średnia ważona z powyższych ocen (K) i (L):
W = 0.8 x K + 0.2 x L

Prerequisites and additional requirements:

Podstawowe wiadomości z matematyki i informatyki na poziomie szkoły średniej.

Recommended literature and teaching resources:

1. Piotr Wróblewski: Algorytmy, struktury danych i techniki programowania. Wydawnictwo Helion, 2003.
2. Andrzej Jaszkiewicz: Inżynieria oprogramowania. Wydawnictwo Helion, 1997.
3. Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman: Algorytmy i struktury danych. Wydawnictwo Helion, 2003.
4. Kenneth A. Ross, Charles R.B. Wright: Matematyka dyskretna. Wydawnictwo Naukowe PWN, 2005.
5. Niklaus Wirth: Algorytmy + Struktury danych = Programy. WNT, 1989.
6. D. Kincaid, W. Cheney: Analiza numeryczna, Wydawnictwa Naukowo-Techniczne, Warszawa, 2006.
7. Z. Fortuna, B. Macukow, J. Wąsowski: Metody numeryczne, Wydawnictwa Naukowo-Techniczne, Warszawa, 1982, 2005.

Scientific publications of module course instructors related to the topic of the module:

Additional scientific publications not specified

Additional information:

Brak