Cel i założenia
Głównym celem tych zajęć jest pomoc potencjalnym uczestnikom Olimpiady Informatycznej w opanowaniu podstawowych technik algorytmicznych potrzebnych do zakwalifikowania się do 2 etapu i finału tej olimpiady. Mogą być one również przydatne dla uczestników WWW5, którzy nie studiują informatyki a chcieliby opanować podstawy algorytmiki potrzebne m. in. w zrozumieniu czy tworzeniu programów na bardziej zaawansowanych algorytmicznie warsztatach. Zajęcia te będą zbliżone zakresem materiału do takich przedmiotów jak wstęp do programowania, czy metody programowania. Wstępnie przewidywany wymiar godzinowy tych zajęć to 3*3h. Chętni do poprowadzenia i wzięcia udziału w zajęciach powinni się zgłaszać do Karoliny Sołtys. Prowadzący powinni zgłosić dział, z którego teorię i kilka zadań chcieliby przerobić; po uzgodnieniu mogą edytować tę stronę lub dodać linki.
Proponowane działy:
rekursja
listy
drzewa
stosy i kolejki
sortowanie
drzewa BST
algorytmy na grafach
kolejki priorytetowe
programowanie dynamiczne
programowanie zachłanne
wyszukiwanie wzorca
Wymagania
Obowiązującym językiem programowania będzie C, zachęca sie zatem, zeby uczestnicy opanowali składnię tego języka przynajmniej na poziomie krótkiego kursu: Wstep_do_programowania_w_jezyku_C
Jeśli chcielibyście poznać ten język lepiej, to polecam książkę:
Jezyk ANSI C. Autor: Kernighan Brian W., Ritchie Dennis M
W czasie zajęć będziemy rozwiązywali zadania z tego zbioru:
[https://www.spoj.pl/WWWOI/problems/main/]
Proszę wszystkich uczestników warsztatów o założenie konta w systemie spoj, jeśli takowego nie posiadają i rozwiązanie zadania próbnego.
Przydatne linki i materiały
Linki
www.oi.edu.pl
www.main.edu.pl - młodzieżowa akademia informatyczna - kursy i możliwość zdalnego rozwiązywania zadań
train.usaco.org/usacogate - strona treningowa olimpiady informatycznej z USA z tutorialami (dobra dla poczatkujacych):
wazniak.mimuw.edu.pl
Wstęp do programowania
Metody programowania
Strony treningowe:
[http://uva.onlinejudge.org/] - Hiszpański uniwersytet, duży zbiór zadań w języku angielskim
[http://pl.spoj.pl] - Sporo prostych zadań w języku polskim.
[http://opss.safo.biz] - Otwarty konkurs stały z ponad setką zadań i raz do roku tygodniowy konkurs z nagrodami.
[http://www.topcoder.com/tc] - Dwa rodzaje konkurencji algorytmicznych marathon (2 tygodnie na rozwiazanie trudnego problemu) algorithm kilka meczy w miesiącu każdy po 75min z 3 zadaniami
[http://acm.timus.ru/problemset.aspx] - Spory zbiór zadań w języku angielskim
Książki
- Niebieskie ksiazeczki OI, jak zamowić jest na stronie olimpiady.
- T.H.Cormen, Ch.E.Leiserson, R.L.Rivest, Wprowadzenie do algorytmiki, Wydawnictwa Naukowo-Techniczne, Warszawa 2004.
- N.Wirth, Algorytmy+Struktury danych=Programy, Wydawnictwa Naukowo-Techniczne, Warszawa 2001.
- Maciej M. Syslo "Algorytmy" i "Piramidy, szyszki i inne algorytmy".
- Steven S. Skiena, Miguel A. Revilla "Wyzwania programistyczne".
- Piotr Stańczyk "Algorytmika praktyczna".