Wyniki egzaminu
Uaktualniłem wyniki 5 lipca. 7 i 9 lipca mam konsultacje w godzinach 7:30 - 8:30.
W arkuszu są również wyniki z ćwiczeń i laboratoriów.
w części zadaniowej w pierwszym terminie 3 punkty uznawałem za 100%
w drugim terminie 100% to 4 zadania czyli 4 punkty, ale zaliczenie w praktyce jest od 1.5+epsilon punkta
w części testowej obniżyłem próg do 50%
każdy może poprawiać część zadaniową, ale liczy się druga próba, nie max
część testową poprawiają osoby poniżej progu
w arkuszu konieczność poprawiania jest na czerwono
UWAGI dodane w przeddzień egzaminu poprawkowego
część zadaniową wszyscy dostają o 9:00
osoby poprawiające część testową, dostają ją wraz z częścią zadaniową
nie wypuszczam nikogo przed godziną 10:00
nie wpuszczam nikogo po wyjściu pierwszej osoby
Zasady zaliczania
Zaliczenie ćwiczeń (kwestie nieustalone tu ustala prowadzący ćwiczenia):
na koniec semestru, prowadzący ćwiczenia przekazuje prowadzącemu wykład punktację w zakresie 0 - 100%
zadania ukazują się co tydzień, w piątki po wykładzie
na ćwiczeniach mogą (powinny) się odbywać kartkówki z materiału z wszystkich poprzednich ćwiczeń
Zaliczenie laboratorium (kwestie nieustalone tu ustala prowadzący laboratorium):
na koniec semestru, prowadzący laboratorium przekazuje prowadzącemu wykład punktację w zakresie 0 - 100%
zadania ukazują się w piątki po wykładzie, przewidziane są cztery większe programy
zadania należy oprogramować w języku C (nie C++ ani żadnym innym wariancie obiektowym)
nieoficjalnym ułatwieniem jest serwer fragles, na którym będą się ukazywać zadania i na którym można wstępnie przetestować swoje rozwiązania; będą się tam również ukazywać zadania pomocnicze - zachęcamy do ich oprogramowania (przykład: zadania kopiec i union-find jako pomoc do zadania MST)
Zaliczenie egzaminu
termin egzaminu: 20 czerwca 9:00 - 12:00, C1.205
termin egzaminu poprawkowego: 1 lipca 9:00 - 12:00, A1.329
egzamin składa się z dwóch części:
50 minut test z wiedzy
1h:50min zadań takich jak na ćwiczeniach
Progi do zaliczenia:
ćwiczenia na przynajmniej 50%
laboratorium na przynajmniej 50%
egzamin - próg części testowej: 70%, próg części zadaniowej: 50%
Składniki oceny końcowej:
25%: punkty z ćwiczeń
25%: punkty z laboratorium
10%: punkty z testowej części egzaminu
40%: punkty z zadaniowej części egzaminu
Skala ocen:
10% - 50%: ndst
50% - 60%: dst
60% - 70%: dst+
70% - 80%: db
80% - 90%: db+
90% - 100%: bdb
Ocena celująca
Warunkiem wstępnym jest zasłużenie na ocenę bardzo dobrą. W trakcie semestru będą się pojawiać zadania: niektóre do zaprogramowania, niektóre do przemyślenia.
Należy oprogramować zadanie Największy prostokąt, a także przemyśleć uogólnienie, w którym szukamy trójkąta o jak największym polu i podstawie na poziomie ziemi.
Zagadnienia omówione na wykładzie:
Stabilne skojarzenie w grafie dwudzielnym
Złożoność obliczeniowa, kopiec
Algorytmy grafowe: BFS, DFS, spójne składowe, silnie spójne składowe
Algorytmy zachłanne
Dziel i rządź
Programowanie dynamiczne
Drzewa zbalansowane - czerwono-czarne i AVL
Skip-listy, Quicksort, wybór k-tego elementu
Sortowanie w czasie liniowym: kubełkowe, przez zliczanie; tablise hashujące
Teoria liczb: sito Eratostenesa, algorytm Euklidesa, testowanie pierwszości
Analiza zamortyzowana
Algorytmy tekstowe
Geometria obliczeniowa
Algorytmy on-line
Algorytmy aproksymacyjne
Zadania na ćwiczenia:
Zadania na laboratorium:
Należy rozwiązać na dwa sposoby (algorytm Kruskala, algorytm Prima) i użyć poprawnie struktur kopca oraz zbiorów rozłącznych. W zadaniach na nieoficjalnym serwerze fragles.im.pwr.wroc.pl, zadanie nazywa się "Minimalne drzewo rozpinające".
Wydawanie reszty przy ograniczonej i nieograniczonej liczbie monet danego typu. Zadania mon1 i mon2 na serwerze fragles.
Oprogramuj drzewo zbalansowane: AVL lub czerwono-czarne. Zadanie na fraglesie: Lepsze drzewo.
Proste zadania z list ćwiczeniowych: Cykle w grafie skierowanym, Szeregowanie zadań, Znaczne inwersje, Najdłuższy podciąg rosnący
A propos plagiatów
Jak Państwo zauważyliście, plagiaty i bardzo duże podobieństwa kodów potrafimy wykrywać, ale tym razem nie będziemy wyciągać konsekwencji.
Literatura
"Algorithm Design", Jon Kleinberg, Eva Tardos
Literatura uzupełniająca
"Algorithms", Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani (wydane również przez PWN)
"Introduction to Algorithms", Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein (wydane również przez WNT i PWN)