Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Algorytmy i struktury danych
Tok studiów:
2019/2020
Kod:
EAiR-1-408-s
Wydział:
Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Automatyka i Robotyka
Semestr:
4
Profil:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma studiów:
Stacjonarne
Strona www:
 
Prowadzący moduł:
dr inż. Kryjak Tomasz (kryjak@agh.edu.pl)
Treści programowe zapewniające uzyskanie efektów uczenia się dla modułu zajęć

W ramach kursu przedstawione zostaną podstawowe algorytmy i struktury danych oraz wybrane aspekty analizy złożoności algorytmów.

Opis efektów uczenia się dla modułu zajęć
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Powiązania z KEU Sposób weryfikacji i oceny efektów uczenia się osiągniętych przez studenta w ramach poszczególnych form zajęć i dla całego modułu zajęć
Wiedza: zna i rozumie
M_W001 Zna podstawowe algorytmy i struktury danych. AiR1A_W04 Wykonanie ćwiczeń laboratoryjnych
M_W002 Zna podstawowe metody analizy złożoności algorytmów. AiR1A_W04 Wykonanie ćwiczeń laboratoryjnych
Umiejętności: potrafi
M_U001 Umie zaimplementować podstawowe algorytmy i struktury danych w wybranym języku programowania wysokiego poziomu. AiR1A_U01, AiR1A_U07 Wykonanie ćwiczeń laboratoryjnych
M_U002 Umie wykorzystać poznane algorytmy do rozwiązywania typowych problemów programistycznych. AiR1A_U01, AiR1A_U07 Wykonanie ćwiczeń laboratoryjnych
Kompetencje społeczne: jest gotów do
M_K001 Rozumie znaczenie doboru odpowiedniego algorytmu dla efektywnego rozwiązania zadanego problemu. Potrafi zasięgnąć opinii eksperckiej w przypadku trudności z samodzielnym rozwiązywaniem problemu. AiR1A_K01 Wykonanie ćwiczeń laboratoryjnych
Liczba godzin zajęć w ramach poszczególnych form zajęć:
SUMA (godz.)
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
56 28 0 28 0 0 0 0 0 0 0 0
Matryca kierunkowych efektów uczenia się w odniesieniu do form zajęć i sposobu zaliczenia, które pozwalają na ich uzyskanie
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Forma zajęć dydaktycznych
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
Wiedza
M_W001 Zna podstawowe algorytmy i struktury danych. + - - - - - - - - - -
M_W002 Zna podstawowe metody analizy złożoności algorytmów. + - - - - - - - - - -
Umiejętności
M_U001 Umie zaimplementować podstawowe algorytmy i struktury danych w wybranym języku programowania wysokiego poziomu. - - + - - - - - - - -
M_U002 Umie wykorzystać poznane algorytmy do rozwiązywania typowych problemów programistycznych. - - + - - - - - - - -
Kompetencje społeczne
M_K001 Rozumie znaczenie doboru odpowiedniego algorytmu dla efektywnego rozwiązania zadanego problemu. Potrafi zasięgnąć opinii eksperckiej w przypadku trudności z samodzielnym rozwiązywaniem problemu. - - + - - - - - - - -
Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 84 godz
Punkty ECTS za moduł 3 ECTS
Udział w zajęciach dydaktycznych/praktyka 56 godz
Samodzielne studiowanie tematyki zajęć 28 godz
Szczegółowe treści kształcenia w ramach poszczególnych form zajęć (szczegółowy program wykładów i pozostałych zajęć)
Wykład (28h):

W ramach wykładu omówione zostaną następujące zagadnienia:

  • analiza złożoności algorytmów,
  • podejście dziel i rządź oraz jego praktyczne aplikacje,
  • algorytmy grafowe,
  • zaawansowane struktury danych: drzewa binarne, sterty,
  • wybrane problemy NP-trudne i metody ich rozwiązywanie (programowanie dynamiczne),
  • wybrane problemy występujące w aplikacjach graficznych,
  • wybrane problemy występujące w przetwarzaniu tekstów.

Ćwiczenia laboratoryjne (28h):

W ramach ćwiczeń laboratoryjnych studenci będą implementować w języku programowania wysokiego poziomu (C++ lub Python) omawiane na wykładzie algorytmy i struktury danych.

Pozostałe informacje
Metody i techniki kształcenia:
  • Wykład: Treści prezentowane na wykładzie są przekazywane w formie prezentacji multimedialnej w połączeniu z klasycznym wykładem tablicowym.
  • Ćwiczenia laboratoryjne: W trakcie zajęć laboratoryjnych studenci samodzielnie rozwiązują zadany problem praktyczny, dobierając odpowiednie narzędzia. Prowadzący stymuluje grupę do refleksji nad problemem, tak by otrzymane wyniki miały wysoką wartość merytoryczną.
Warunki i sposób zaliczenia poszczególnych form zajęć, w tym zasady zaliczeń poprawkowych, a także warunki dopuszczenia do egzaminu:

Warunki zaliczenia laboratorium

Na laboratorium obowiązywać będzie system punktowy. Ogólną sumę 100 punktów zaliczeniowych tworzą punkty za realizację poszczególnych ćwiczeń bazowych (50 punktów) oraz ćwiczeń rozszerzających (50 punktów). Na podstawie ogólnej sumy punktów zaliczeniowych wyliczana będzie ocena zgodnie z obowiązującym Regulaminem Studiów w AGH.

Zasady udziału w zajęciach:
  • Wykład:
    – Obecność obowiązkowa: Nie
    – Zasady udziału w zajęciach: Studenci uczestniczą w zajęciach poznając kolejne treści nauczania zgodnie z syllabusem przedmiotu. Studenci winni na bieżąco zadawać pytania i wyjaśniać wątpliwości. Rejestracja audiowizualna wykładu wymaga zgody prowadzącego.
  • Ćwiczenia laboratoryjne:
    – Obecność obowiązkowa: Tak
    – Zasady udziału w zajęciach: * Przed przystąpieniem do ćwiczenia Student jest zobowiązany zapoznać się z materiałami umieszczonymi na stronie kursu. * Przed rozpoczęciem ćwiczenia dopuszcza się przeprowadzenie krótkich sprawdzianów (ustnych, pisemnych lub na platformie e-learningowej), których tematyka obejmować będzie przewidziane na dany dzień zagadnienia. W przypadku stwierdzenia nieprzygotowania Studenta, nie zostanie on dopuszczony do realizacji ćwiczenia w danym dniu. Ćwiczenie należy odrobić, w najbliższym możliwym terminie, po uprzednim zaliczeniu sprawdzianu. * O zaliczeniu ćwiczenia decyduje Prowadzący, po wykonaniu zadań określonych w instrukcji i zgłoszeniu tego faktu przez Studenta na 5 minut przed terminem zakończenia zajęć. * W przypadku nie zrealizowania wszystkich zadań określonych w ćwiczeniu, Prowadzący może nakazać przyjście w dodatkowym terminie (jeśli zaległość jest znaczna) lub dokończenie na następnych zajęciach (zaległość niewielka). * Do bazowych ćwiczeń laboratoryjnych proponowane będą zadania rozszerzające (np. w formie mini-projektów), * Za rozwiązanie zadań rozszerzających można uzyskać maksymalnie 50 punktów zaliczeniowych * W wyjątkowych sytuacjach dopuszcza się uzyskanie punktów zaliczeniowych za inną aktywność np. analizę artykułu naukowego * Zadania rozszerzające należy oddawać najpóźniej w terminie do dwóch tygodni po zrealizowaniu ćwiczenia, którego dotyczą * Zadania podstawowe oraz rozszerzające mogą być sprawdzane na okoliczność plagiatu. *Samodzielność pracy* * Ćwiczenia laboratoryjne należy wykonywać samodzielnie. Dopuszcza się konsultacje koleżeńskie tj. pytanie się zespołów realizujących to samo ćwiczenie. Zaleca się konsultowanie zadania i ewentualnych problemów z Prowadzącym. * Niedopuszczalne jest prezentowanie innych rozwiązań niż własne (np. ściągniętych z Internetu lub wykonanych wcześniej przez inną osobę). Dotyczy to zarówno zadań z laboratoriów, jak i domowych i dodatkowych. Jeżeli takie zachowanie zostanie wykryte to osoba automatycznie uzyskuje ocenę 2.0 z zaliczenia przedmiotu, bez możliwości poprawy.
Sposób obliczania oceny końcowej:

Ocena końcowa = ocena z laboratorium

Sposób i tryb wyrównywania zaległości powstałych wskutek nieobecności studenta na zajęciach:

Obecność na zajęciach jest obowiązkowa. W przypadku jednej nieobecności nieusprawiedliwionej student możne otrzymać maksymalnie ocenę 4.0 (niezależnie od liczby punktów zaliczeniowych). W przypadku dwóch nieobecności nieusprawiedliwionych student może otrzymać maksymalnie ocenę 3.0 (niezależnie od liczby punktów zaliczeniowych). W przypadku trzech lub więcej nieobecności nieusprawiedliwionych student nie otrzyma zaliczenia.

Wymagania wstępne i dodatkowe, z uwzględnieniem sekwencyjności modułów :

Ukończenie modułów:

  • Wstęp do informatyki.
  • Programowanie strukturalne i obiektowe w C/C++.
  • Zaawansowane programowanie obiektowe.
Zalecana literatura i pomoce naukowe:
  • “Wprowadzenie do algorytmów”, Cormen Thomas H., Leiserson Charles E., Rivest Ronald L, Clifford Stein,
  • “The Algorithm Design Manual”, Skiena, Steven S
  • “Algorithms”, Robert Sedgewick
Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Nie podano dodatkowych publikacji

Informacje dodatkowe:

Brak