Algorytmy i struktury danych

Transkrypt

Algorytmy i struktury danych
WyŜsza Szkoła Biznesu w Dąbrowie Górniczej
Kierunek studiów: INFORMATYKA
Przedmiot: Algorytmy i struktury danych
Specjalność: wszystkie
Liczba godzin w
semestrze
1
II
III
3
ECTS
WYKŁADOWCA
IV
30 w / 15 ćw
6
prof. dr hab. inŜ. Konrad Wala, dr inŜ. Adam Domański
FORMA ZAJĘĆ
Wykład / ćwiczenia
CELE PRZEDMIOTU
Celem zajęć jest prezentacja podstawowych narzędzi informatyki, takich jak algorytmy i wybrane
struktury danych, umoŜliwiających rozwiązywanie róŜnorodnych problemów za pomocą komputera.
W wykładzie dokonano reprezentatywnego przeglądu problemów algorytmicznych nieodzownych
dla inŜyniera informatyka wraz z analizą złoŜoności obliczeniowej wszystkich dyskutowanych
algorytmów. Efektem wykładu powinno być zrozumienie zasad konstruowania podstawowych
algorytmów i struktury danych oraz analizy złoŜoności badanych algorytmów.
Wiedza: reprezentatywny przegląd algorytmów, umoŜliwiających rozwiązanie róŜnych problemów
za pomocą komputera, studenci opanują zasady projektowania podstawowych algorytmów oraz
analizę ich złoŜoności obliczeniowej względnie poprawności.
EFEKTY
KSZTAŁCENIA
I
2
V
VI
Kompetencje: Umiejętność formułowania problemu praktycznego w terminologii matematyki i dobór
efektywnego algorytmu jego rozwiązania.
Postawy: ukształtowanie wśród studentów postawy zrozumienia konieczności badania złoŜoności
obliczeniowej kaŜdego stosowanego w praktyce algorytmu.
WARUNKI WSTĘPNE
Znajomość teorii mnogości, matematyki dyskretnej i algebry, podstaw programowania
TREŚĆ PRZEDMIOTU Podstawy analizy algorytmów: funkcje algorytmu, typy i operacje na danych, złoŜoność
obliczeniowa algorytmów
Algorytmy przeszukiwania danych i analiza ich złoŜoności: przeszukiwanie liniowe i binarne danych
(drzewa poszukiwań binarnych), haszowanie.
Funkcje rekurencja i jej implementacja w językach wysokiego poziomu, przykłady algorytmów
rekurencyjnych i ich analiza.
Algorytmy sortowania, złoŜoność obliczeniowa sortowania, sortowanie przez wstawianie,
sortowanie zaawansowane - algorytm Quicksort jako realizacja reguły „dziel i zwycięŜaj”).
Przykłady problemów obliczeniowo trudnych (NP-trudnych): (1) Liniowe problemy plecakowe (KP) i
algorytmy zachłanne dla KP wraz z analiza ich złoŜoności obliczeniowej, (2) problem
komiwojaŜera i algorytm zachłanny wraz z analizą złoŜoności obliczeniowej.
Ogólna struktura algorytmów popraw, definicja sąsiedztwa, przykład. Algorytmy optymalizacji
lokalnej: algorytm zstępujący/wstępujący (Hill Climbing) i algorytm MSLS.
Algorytm przeszukiwania z nawrotami (brute force): (1)Koncepcja algorytmu przeszukiwania zbioru
rozwiązań z nawrotami; (2) Analiza algorytmu z nawrotami, przykład przeszukiwanie dla problemu
GKP.
Własności podstawowych struktur danych (kolejka, stos, lista, drzewo, graf).
PrzybliŜone algorytmy szeregowania zadań na maszynach równoległych
LITERATURA
OBOWIĄZKOWA
LITERATURA
UZUPEŁNIAJĄCA
1.
2.
3.
J. Marecki, Automaty, języki formalne i algorytmy, Wyd. Pracowni Komputerowej J.
Skalmirskiego, Gliwice 2004.
Wróblewski, Algorytmy, struktury danych i techniki programowania, wyd. Helion 2003.
Cormen T.H., Leiserson T.H., Rivest R.L.: Wprowadzenie do algorytmów, Wydawnictwo PWN,
Warszawa, 2000.
1.
2.
3.
Papadimitriou, ZłoŜoność obliczeniowa, Wydawnictwo PWN, Warszawa 2002
M.M .Sysło, N. Deo, J.S. Kowalik, Algorytmy optymalizacji dyskretnej, PWN.
S. Haris, J. Ross, Algorytmy od podstaw, Wyd. HELION, 2006
METODY NAUCZANIA Wykład będzie prowadzony przy wykorzystaniu : tablicy lub rzutnika. Omawianie podstawowych
algorytmów i struktur danych wraz z ich analizą oraz ilustracja obliczeń - iteracji algorytmów za pomocą przykładów dydaktycznych.
POMOCE NAUKOWE
PRZYKŁADOWE
TEMATY
PROJEKTÓW
SPOSÓB I WARUNKI
ZALICZENIA
PRZEDMIOTU
PRZYKŁADOWE
ZAGADNIENIA (ew.
pytania) EGZAMINU/
ZALICZENIA
1. VisualC++, BuilderC++
2. Notatki w internecie;
http://oen.dydaktyka.agh.edu.pl/dydaktyka/automatyka/c_3_bad_operac_elektrotechnika_fizyk
a/badania_op.php
3. Notatki w internecie;
http://oen.dydaktyka.agh.edu.pl/dydaktyka/informatyka/c_algorytmy_i_str_danych/
4. Wolna Encyklopedia WIKIPEDIA htp://pl. wikipedia.org/wiki /Kategoria:Algorytmy
Warunkiem zaliczenia przedmiotu jest uzyskanie pozytywnej oceny z wykładu:
Termin 0 : na podstawie pisemnych wypracowań wykonanych podczas wykładu, do 20. minut na 4.
godzinnym wykładzie.
Termin 1, 2 : pisemne odpowiedzi na zadane przez wykładowcę pytania z całości materiału łącznie
z rozwiązywaniem przykładów ilustrujących.
1. Jak wyznaczamy złoŜoność obliczeniową czasową algorytmu? 2. Co oznacza wyraŜenie f(n) =
O(w(n)) i argument n? 3. Jaki warunek muszą spełniać dane w tablicy, jeŜeli chcemy zastosować
algorytm binarnego przeszukiwania danych i dlaczego? 4. Porównać haszowanie z
przeszukiwaniem liniowym. 5. Zdefiniować funkcję haszującą. 5. Uzasadnić złoŜoność
obliczeniową sortowania.
* Proszę zacieniować odpowiedni rok i semestr

Podobne dokumenty