Program Olimpiady

Program Olimpiady Informatycznej na zawodach I i II stopnia jest zgodny (na zawodach III stopnia jest jej rozszerzeniem) z podstawą programową dla przedmiotu Informatyka na IV etapie edukacyjnym w zakresie rozszerzonym, opublikowaną w Rozporządzeniu Ministra Edukacji Narodowej z dnia 27 sierpnia 2012 r. w sprawie podstawy programowej wychowania przedszkolnego oraz kształcenia ogólnego w poszczególnych typach szkół (Dz. U. z 2012 r. poz. 977).

Olimpiada Informatyczna wyprzedziła zmiany, które nastąpiły w nauczaniu informatyki w szkolnictwie polskim na każdym etapie kształcenia. Podstawą nauczania informatyki, już od pierwszej klasy szkoły podstawowej, jest algorytmika i programowanie. Program Olimpiady Informatycznej jest skorelowany z podstawą programową kształcenia ogólnego na poziomie rozszerzonym dla przedmiotu informatyka dla liceum ogólnokształcącego, technikum oraz branżowej szkoły II stopnia ogłoszoną w Rozporządzeniu Ministra Edukacji Narodowej z dnia 30 stycznia 2018 r.

Olimpiada Informatyczna jest głównie zorientowana na algorytmikę i programowanie, jako te obszary informatyki, które stanowią jej istotę i są podwaliną każdego specjalistycznego rozwoju informatycznego. Nie mniej ważne jest, że rozwiązania problemów algorytmiczno-programistycznych – programy komputerowe – łatwo poddają się obiektywnej ocenie pod kątem poprawności i złożoności obliczeniowej. Formuła Olimpiady Informatycznej (automatyzm sprawdzania zadań, uwarunkowania międzynarodowe - zobacz "Proposal for an IOI Syllabus", Tom Verhoeff, Gyula Horvath, Krzysztof Diks, Gordon Cormack, June 2006, Version 1.1, Appeared in Teaching Mathematics and Computer Science, Vol. IV, Issue I (2006)) powodują, że w zawodach Olimpiady główny nacisk położony jest na sprawdzanie wiedzy i umiejętności z zakresu algorytmiki i programowania, a mniejszy na sprawdzanie wiedzy na temat metod i narzędzi organizacji i przetwarzania danych, multimediów i sieci komputerowych, choć znajomość tych ostatnich jest pośrednio niezbędna do osiągnięcia sukcesu w Olimpiadzie. Ponieważ cała komunikacja z uczestnikami oraz same zawody są przeprowadzanie on-line przez Internet, z wykorzystaniem multimediów, uczestnik Olimpiady musi posiadać także umiejętności i wiedzę ze wszystkich punktów podstawy programowej. Zadania Olimpiady Informatycznej są formułowane w taki sposób, że ich rozwiązanie wymaga pokonania etapów pracy, które są niezbędne przy rozwiązywaniu problemów algorytmicznych, bazodanowych, sieciowych – są to etapy pracy każdego informatyka. Należą do nich: analiza problemu, zaproponowanie rozwiązania, dobór metod do implementacji rozwiązania, implementacja i testowanie. Uczestnik Olimpiady musi posiadać doskonałą znajomość środowiska, w którym pracuje, zarówno sprzętu jak i oprogramowania – systemowego i narzędziowego. Kompetencje społeczne uczestnicy Olimpiady nabywają poprzez tworzenie i uczestnictwo w sieciach społecznościowych olimpijczyków, prezentację własnych rozwiązań uczestników w środowisku rówieśniczym oraz przygotowanie i prowadzenie kół samokształceniowych. Uczestnicy Olimpiady są zaznajamiani z problematyką ochrony własności intelektualnej oraz z zapobieganiem patologiom takim jak na przykład plagiaty.

W zawodach Olimpiady poszczególnych stopni od uczestników wymagane są następujące umiejętności i wiedza:

Zawody I stopnia Olimpiady Informatycznej: uczeń powinien posiadać umiejętności układania, analizowania, programowania, uruchamiania i testowania algorytmów z wykorzystaniem prostych struktur danych (tablice, listy). Powinien też rozumieć pojęcie złożoności obliczeniowej algorytmów i pod tym względem oceniać jakość zaproponowanych przez siebie rozwiązań. W zawodach I stopnia uczniowie mają do rozwiązania 4-6 zadań algorytmiczno-programistycznych w ciągu 4 tygodni. Mogą wymieniać się testami poprzez forum internetowe Olimpiady. Mogą też korzystać z zasobów sieciowych.

Zawody II stopnia Olimpiady Informatycznej: poza wiedzą niezbędną podczas zawodów I stopnia, uczeń powinien głębiej rozumieć rolę struktur danych w polepszaniu złożoności obliczeniowej algorytmów. Powinien rozumieć działanie i przeznaczenie stosu, kolejki, kolejki priorytetowej, słownika, drzew wyszukiwań binarnych. Żeby osiągnąć sukces w zawodach II stopnia należy znać podstawowe algorytmy sortowania, selekcji, tekstowe, liczbowe i teorio-grafowe oraz ich zastosowania. Uczeń powinien także znać metody projektowania wydajnych algorytmów takie, jak: „dziel i rządź”, programowanie dynamiczne, przeszukiwanie z powrotami. W zawodach II stopnia uczniowie pracują samodzielnie. Mają tylko 5 godzin na rozwiązanie co najmniej 2 zadań. Zakłada się, że do rozwiązania zadania wystarczy jeden, góra dwa, z elementów opisanych powyżej: struktura danych, metoda, algorytm.

Zawody III stopnia Olimpiady Informatycznej: poza wiedzą niezbędną na zawody I i II stopnia, uczeń musi posiąść umiejętność twórczego łączenia wielu elementów niezbędnych do rozwiązania zadania – zarówno stosownie użyta metoda, dobrze dobrana struktura danych, jak i zastosowany umiejętnie algorytm. Laureaci Olimpiady Informatycznej nie tylko muszą posiadać wiedzę algorytmiczną na poziomie uniwersyteckiego wykładu kursowego z Algorytmiki, ale także być doskonałymi programistami, z umiejętnościami wykorzystywania w swoich programach gotowych bibliotek programistycznych. Finaliści Olimpiady Informatycznej mają zazwyczaj do rozwiązania każdego dnia finałów 3 zadania w ciągu 5 godzin (około godziny i 40 minut na zadanie!).

Rozwiązaniem zadania zawodów I, II i III stopnia jest program lub dane. Program powinien być napisany w języku programowania i środowisku wybranym z listy języków i środowisk ustalanej przez Komitet Główny i ogłaszanej w zasadach organizacji zawodów. Lista ta obejmuje języki programowania obowiązujące na maturze z informatyki. Rozwiązania są oceniane automatycznie. Jeśli rozwiązaniem zadania jest program, to jest on uruchamiany na testach z przygotowanego zestawu. Podstawą oceny jest zgodność sprawdzanego programu z podaną w treści zadania specyfikacją, poprawność wygenerowanego przez program wyniku, czas działania tego programu oraz ilość wymaganej przez program pamięci. Jeśli rozwiązaniem zadania jest plik z danymi, wówczas ocenia się poprawność danych.

Literaturę Olimpiady można znaleźć na stronie: https://oi.edu.pl/l/oi_zalecana_literatura/