Nazwa przedmiotu: Kierunek: Matematyka Rodzaj przedmiotu: obieralny Rodzaj zajęć: wykład, ćwiczenia ALGORYTMY I STRUKTURY DANYCH Algorithms and data structure Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia Liczba godzin/tydzień: 2W, 2C Kod przedmiotu: Semestr: IV Liczba punktów: 3 ECTS PRZEWODNIK PO PRZEDMIOCIE I KARTA PRZEDMIOTU CEL PRZEDMIOTU C1. Zapoznanie studentów podstawowymi metodami obliczeniowymi i ich algorytmizacją w dziedzinie techniki, informatyki, ekonomii, sieciowych, zarządzania, transportu, podejmowania decyzji, danych, optymalizacji. C2. Nabycie przez studentów umiejętności doboru metody do rozwiązywanego praktycznego problemu oraz umiejętności przedstawienia metody w postaci algorytmu i programu. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI 1. Wiedza z zakresu matematyki, podstaw informatyki, logiki. 2. Podstawowa wiedza techniczna, ekonomiczna oraz z dziedzin ogólnorozwojowych. 3. Umiejętność sekwencjonowania działań i grupowania działań niezależnych. 4. Umiejętność określania celów i budowania kryteriów. 5. Zdolność dostrzegania ograniczeń i ich opisywania. 6. Umiejętność pracy samodzielnej i współpracy grupowej. 7. Umiejętność interpretacji efektów i rezultatów algorytmizacji. 8. Zdolność do opisu sekwencji działania w formie instrukcji. 9. Umiejętność korzystania z literatury fachowej. 10. Umiejętność korzystania z wyobraźni alnej, czasowej i wielowymiarowej. EFEKTY KSZTAŁACENIA EK1 posiada wiedzę teoretyczną z zakresu tworzenia i prezentacji algorytmów, EK2 zna sposoby rozwiązywania praktycznych problemów i doboru metody ich rozwiązywania, EK3 potrafi zaadoptować ę algorytmu do wybranej metody i rozwiązywanego zadania, EK4 posiada umiejętności analizy funkcjonowania algorytmu i odnajdywania newralgicznych przypadków, 1
EK5 posiada praktyczne umiejętności wprowadzenia algorytmicznych zabezpieczeń przed niewłaściwym funkcjonowaniem programu, EK6 potrafi ocenić złożoność algorytmu w przybliżony i dokładny sposób, EK7 posiada umiejętności regulowania parametrami osiągnięcia zadanych poziomów dokładności i zbieżności, EK8 zna metody kreowania zbiorów kryteriów i ich agregacji, EK9 zna klasyczne i praktyczne metody definiowania i odnajdywania optymalnych rozwiązań, EK10 potrafi przeprowadzić analizę błędów i wprowadzić mechanizmy zapobiegania nim, EK11 umie właściwie zinterpretować uzyskane rezultaty algorytmizacji i programowania, EK12 posiada teoretyczną i praktyczną wiedzę TREŚCI PROGRAMOWE Forma zajęć - WYKŁADY Liczba godzin W1 - Wprowadzenie do algorytmiki sposoby prezentacji algorytmów 2 W2 - Dobór metody i algorytmu do rozwiązywanego problemu 2 W3 - Algorytmy działań na wektorach i macierzach 2 W4 - Algorytmy sortowania, kategoryzacji, klasyfikacji 2 W5 - Algorytmy odnajdywania ekstremów i pierwiastków równań 2 W6 - Algorytmy obliczania wartości całek i rozwiąz. równań całkowych 2 W7 - Algorytm rozwiązywania równań liniowych i nieliniowych 2 W8 - Algorytmy rozwiązywania równań różniczkowych 2 W9 Algorytmy optymalizacji w sieciach (transport, magazynowanie) 2 W10 - Algorytmy optymalizacji w sieciach (Dijkstra, MST) 2 W11 - Algorytmy optymalizacji w sieciach (przepływ, routing) 2 W12 - Algorytmy szeregowania zadań 2 W13 - Algorytmy osiągania spójności i kompromisu 2 W14 - Algorytmy szyfracji i deszyfracji 2 W15 Algorytmy optymalizacji wielokryterialnej 2 Forma zajęć - ĆWICZENIA Liczba godzin C1 - tworzenie prostych algorytmicznych 2 C2 - wykorzystywanie podstawowych danych 2 C3 - reprezentowanie wskaźnikowych z pomocą tablic 2 C4 - drzewiaste y danych 2 C5 - wzbogacanie danych 2 C6 - analiza algorytmów 2 C7 - operacje na kopcowych ach danych 2 C8 - badanie złożoności algorytmicznej 2 C9 - budowanie algorytmów dla neuronowych 2 C10 - wykorzystanie algorytmów do sterowania robotem 2 C11 - wykorzystanie algorytmów dla podejmowania decyzji 2 C12 - algorytmiczna automatyzacja procesu technologicznego 2 C13 - symulacja gry rynkowej 2 2
C14 - formy reprezentacji algorytmicznej procesów równoległych 2 C15 algorytmiczny opis funkcjonowania automatów kwantowych 2 NARZĘDZIA DYDAKTYCZNE 1. - wykład z wykorzystaniem technik multimedialnych 2. - referaty tematyczne z wybranych tematów 3. - prace kontrolne 4. - wykazy błędów algorytmicznych 5. - prezentacje gotowych implementacji bazujących na algorytmach 6. - przykładowe zastosowania praktyczne algorytmów sztucznej inteligencji 7. - grupowa praca nad tworzeniem rozwiązań algorytmicznych SPOSOBY OCENY ( F FORMUJĄCA, P PODSUMOWUJĄCA). ocena przygotowania do ćwiczeń F2. ocena kreatywności w wykorzystywaniu zdobytej wiedzy F3. ocena referatów dotyczących zastosowań algorytmiki F4. ocena aktywności podczas zajęć. ocena stopnia przyswojenia wiedzy praktycznej kolokwia i zaliczenie na ocenę* *) warunkiem uzyskania zaliczenia jest otrzymanie pozytywnych ocen cząstkowych oraz kolokwiów, OBCIĄŻENIE PRACĄ STUDENTA Forma aktywności Godziny kontaktowe z prowadzącym Godziny konsultacji z prowadzącym Przygotowanie do ćwiczeń Przygotowanie i prezentacja referatów (czas poza zajęciami) Suma Średnia liczba godzin na zrealizowanie aktywności 30W 30C 60 h 5 h 5 h 5 h 75 h SUMARYCZNA LICZBA PUNKTÓW ECTS DLA PRZEDMIOTU Liczba punktów ECTS, którą student uzyskuje na zajęciach wymagających bezpośredniego udziału prowadzącego Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym, w tym zajęć laboratoryjnych i projektowych LITERATURA PODSTAWOWA I UZUPEŁNIAJĄCA 3 ECTS 2,6 ECTS 1,8 ECTS 1. George T. Heineman, Gary Pollice, Stanley Selkow, Algorytmy. Almanach, 2010,-352, 2. Cormen Thomas H., Leiserson Charles E., Rivest Ron, Wprowadzenie do algorytmów,wnt,2004,1196 3. Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman, Algorytmy i y danych, 2003,- 448 4.Aho A. V., Hopcroft J. E., Ullman J.D.,Projektowanie i analiza algorytmów, Wydawnictwo Helion, 2003. 3
5. Banachowski L., Diks K., Rytter W.: Algorytmy i y danych, WNT, Warszawa 1996. 6. Reingold E. M., Nievergelt J., Deo N.: Algorytmy kombinatoryczne, PWN, Warszawa 1985 7. Sedgewick R., Algorytmy w C++. Grafy, Wydawnictwo RM Sp. z o.o., Warszawa 2003. 8. Marek Kubale, Optymalizacja dyskretna. Modele i metody kolorowania grafów,wnt,2002,-268 9. Maciej M. Sysło, Narsingh Deo, Janusz S. Kowalik, Algorytmy Optymalizacji Dyskretnej, PWN, 2010 10. Simon Even, Graph Algorithms, 2010 11. Christos H. Papadimitriou: Złożoność obliczeniowa, WNT, 2002 12. Marek Kubale : Łagodne wprowadzenie do analizy algorytmów, Politechnika Gdańska 2004. PROWADZĄCY PRZEDMIOT ( IMIĘ, NAZWISKO, ADRES E-MAIL) 1. dr hab. inż. Henryk Piech prof. PCz h.piech@adm.pcz.czest.pl MACIERZ REALIZACJI EFEKTÓW KSZTAŁCENIA Efekt kształcenia Odniesienie danego efektu do efektów zdefiniowanych dla całego programu (PEK) Cele przedmiotu Treści programowe Narzędzia dydaktyczne Sposób oceny EK1 C1 W1-15 1,2,5 EK2 C1 C1-15 3,7 F4 EK3 C2 W3-5 C1-4 1-2,4,6-7 F2 F3 EK4 C1 W2-5,8-12 1,2,6 F4 4
EK5 EK6 EK7 EK8 EK9 EK10 EK11 C1,C2 W5-7 C6-9 1-2,4-7 C1 W4-9 1,2,3 C1 W5-9,11-14 1,3 C1,C2 W5-12 1-4,6-7 C1 W11-15 1,3,5 C1,C2 W10-15 C10-14 1-7 C1 W6-13 1,5 EK12 C1,C2 W9-12 2,6,7 F3 F2 F3 F2 F3 F4 F2 F4 5
C9,14 II. FORMY OCENY - SZCZEGÓŁY Efekt 1 Student opanował wiedzę z zakresu prezentacji algorytmów i języków algorytmiki, potrafi podać przykłady stosowania różnych metod opisu algorytmów. Efekt 2 umiejętności stosowania wiedzy w praktycznym rozwiązywaniu problemów związanych z algorytmicznym opisem sposobu realizacji zadań. Efekt 3 efektywnie prezentować i analizować wyniki własnych działań Efekt 4 Na ocenę 2 Na ocenę 3 Na ocenę 4 Na ocenę 5 Student nie opanował podstawowej wiedzy z zakresu podstaw prezentacji algorytmów. Student nie potrafi przedstawić podstawowych wybranych etapów algorytmizacji z pomocą klasycznych paradygmatów stosowanych w algorytmice. Student nie potrafi wybrać konwencji algorytmicznej dostosowanej do problemu. Student nie potrafi zinterpretować wyników rozwiązań i porównać ich z innymi. Student częściowo opanował wiedzę z zakresu opisu algorytmów. Student nie potrafi wykorzystać zdobytej wiedzy, w zakresie łączenia etapów algorytmizacji; potrzebna jest pomoc prowadzącego. Student wykonał polecone zadania ale nie potrafi dokonać interpretacji oraz analizy wyników własnych badań. Student opanował wiedzę z zakresu przedstawienia algorytmów, potrafi wskazać właściwą metodę algorytmicznej realizacji wybranych metod. Student poprawnie wykorzystuje wiedzę oraz samodzielnie rozwiązuje problemy wynikające w trakcie realizacji zadań. Student rozwiązał zadania, potrafi prezentować wyniki swojej pracy oraz dokonuje ich analizy Student bardzo dobrze opanował wiedzę z zakresu materiału objętego programem nauczania, samodzielnie zdobywa i poszerza wiedzę przy użyciu różnych źródeł wykazując kreatywność i aktywność dokonać wyboru konwencji algorytmicznych oraz wykonać zaawansowane aplikacje na ich bazie, potrafi dokonać oceny oraz uzasadnić trafność przyjętych metod Student wykonał zadania, potrafi w sposób racjonalny uzasadnić i obronić wybór metody algorytmicznej oraz dokonać analizy porównawczej w odniesieniu do innych rozwiązań. Student odczytuje Student odczytuje Student odczytuje 6
analizować działanie algorytmu i znajdować miejsce lokalizacji blokad i sprzeczności Efekt 5 praktyczne umiejętności wprowadzenia algorytmicznych zabezpieczeń przed niewłaściwym funkcjonowaniem programu Efekt 6 ocenić złożoność algorytmu w przybliżony i dokładny sposób. Efekt 7 umiejętności regulowania parametrami osiągnięcia zadanych poziomów dokładności i odczytywać sekwencje realizowanych operacji. Nie dostrzega możliwych zagrożeń wynikających z braku zabezpieczeń. Student nie rozumie dlaczego algorytm generuje złe rezultaty, nie wie jak dojść do miejsc błędnie realizujących cel działania. Student nie zna podstaw teoretycznych oceny złożoności algorytmu, a stąd wynika praktyczna bezradność i nieumiejętność podejścia do problemu. Student nie odnajduje miejsc w algorytmie, które decydują o jakości przetwarzania, nie może zatem modyfikować y sekwencje operacji lecz nie potrafi zabezpieczyć programu przed niekończącymi się cyklami lub nieprawidłowością realizacji operacji. Student rozumie dlaczego algorytm generuje złe rezultaty, nie wie jednak jak i gdzie wprowadzić poprawki. Student zna podstaw y teoretyczne oceny złożoności algorytmu, ale brak mu praktycznej sprawności w realizacji strategii problemu. Student odnajduje miejsca w algorytmie, które decydują o jakości przetwarzania, ale nie potrafi modyfikować ę sekwencje operacji i potrafi zabezpieczyć program przed niekończącym się cyklami lub nieprawidłowością realizacji operacji. Student rozumie dlaczego algorytm generuje złe rezultaty, i wie jednak jak i gdzie wprowadzić poprawki. Student zna podstaw y teoretyczne oceny złożoności algorytmu, i nie brak mu praktycznej sprawności w realizacji strategii problemu. Student odnajduje miejsca w algorytmie, które decydują o jakości przetwarzania oraz potrafi modyfikować ę sekwencje operacji i potrafi zabezpieczyć program przed niekończącym się cyklami lub nieprawidłowością realizacji operacji. Ponadto umie usprawnić algorytm lub go zmodyfikować. Student rozumie dlaczego algorytm generuje złe rezultaty, i wie jednak jak i gdzie wprowadzić poprawki. Ponadto przewiduje konsekwencje wprowadzanych zmian w algorytmie. Student zna podstaw y teoretyczne oceny złożoności algorytmu, i nie brak mu praktycznej sprawności w realizacji strategii problemu. Ponadto znajduje formy i propozycje zmniejszenia złożoności zadania. Student odnajduje miejsca w algorytmie, które decydują o jakości przetwarzania oraz potrafi modyfikować ę 7
zbieżności. Efekt 8 wykorzystać w praktyce metody kreowania zbiorów kryteriów i ich agregacji Efekt 9 wykorzystać klasyczne i praktyczne metody definiowania i odnajdywania optymalnych rozwiązań. Efekt 10 przeprowadzić analizę błędów i wprowadzić mechanizmy zapobiegania nim poprawy jego efektywności. zdefiniować celów stawianych w praktycznych zdaniach inżynierskich, ekonomicznych i organizacyjnych. Student nie potrafi zdefiniować algorytmicznie problemu optymalizacji ani dostosować metody do zadania. Student nie rozpoznaje przyczyn błędów, nie potrafi ich zlokalizować i usunąć lub zmniejszyć. poprawy jego efektywności. opisać celów stawianych w praktycznych zdaniach inżynierskich, ekonomicznych i organizacyjnych ale nie potrafi ich zapisać matematycznie. zdefiniować algorytmicznie problem optymalizacji ale nie umie wybrać lub dostosować metodę do zadania. Student rozpoznaje przyczyny błędów, lecz nie potrafi ich zlokalizować i usunąć lub zmniejszyć. poprawy jego efektywności. opisać celów stawianych w praktycznych zdaniach inżynierskich, ekonomicznych i organizacyjnych i potrafi je zapisać matematycznie oraz zrealizować algorytmicznie. zdefiniować algorytmicznie problem optymalizacji i umie wybrać lub dostosować metodę do zadania. poprawy jego efektywności. Potrafi także zmienić organizację obliczeń i usunąć miejsca zagrożeń ich ciągłości. opisać celów stawianych w praktycznych zdaniach inżynierskich, ekonomicznych i organizacyjnych i potrafi je zapisać matematycznie oraz zrealizować algorytmicznie. Potrafi także je zagregować i uwzględnić nowe parametry. zdefiniować algorytmicznie problem optymalizacji i umie wybrać lub dostosować metodę do zadania. Potrafi porównać efekty wyboru różnych metod. Student Student rozpoznaje rozpoznaje przyczyny błędów, i przyczyny błędów, i potrafi je potrafi je zlokalizować i zlokalizować i usunąć lub usunąć lub zmniejszyć. zmniejszyć. Student rozumie ich fizyczny sens i zależność od danych wejściowych. 8
Efekt 11 Student umie właściwie zinterpretować uzyskane rezultaty algorytmizacji i programowania, Efekt 12 teoretyczną i praktyczną wiedzę posługiwać się konwencją inżynierii w przód, nie zna podstawowych paradygmatów i nie korzysta z jej możliwości przy analizie rezultatów i błędów. duże braki w teoretycznej i praktycznej wiedzy Student umie posługiwać się konwencją inżynierii w przód, zna podstawowe paradygmaty lecz nie korzysta z jej możliwości przy analizie rezultatów i błędów. pewne braki w teoretycznej i praktycznej wiedzy Student umie posługiwać się konwencją inżynierii w przód, zna podstawowe paradygmaty i korzysta z jej możliwości przy analizie rezultatów i błędów. zasadniczą teoretyczną i praktyczną wiedzę Student umie posługiwać się konwencją inżynierii w przód, zna podstawowe paradygmaty i korzysta z jej możliwości przy analizie rezultatów i błędów. Umie wykorzystać zalety różnych języków. rozszerzoną teoretyczną i praktyczną wiedzę Potrafi samodzielnie poszerzać swoją wiedzę i doświadczenie (studiowanie literatury,kursy). Dopuszcza się wystawienie oceny połówkowej o ile student spełniający wszystkie efekty kształcenia wymagane do oceny pełnej spełnia niektóre efekty kształcenia odpowiadające ocenie wyższej III. INNE PRZYDATNE INFORMACJE O PRZEDMIOCIE 1. Wszelkie informacje dla studentów dotyczące stawianych wymagań dotyczących zaliczenia przedmiotu i egzaminów przekazywane są na kilku początkowych zajęciach. 2. Wybrane wykłady (trudniejsze tematycznie) dodatkowo prezentowane są w Internecie lub udostępniane w postaci kopii. 3. Informacja konsultacji przekazywana jest studentom podczas pierwszych zajęć danego z przedmiotu. 9