Olimpiada Informatyczna oraz jej odpowiednik dla szkół podstawowych od paru lat cieszą się dużym zainteresowaniem ze strony uczniów. Ciekawy temat, wespół z atrakcyjnymi nagrodami, zwracają uwagę wielu osób szukających konkursu, w którym mogłyby się wykazać. Niewielu uczestników jednak wie przed startem, jak dokładnie wyglądają zadania, z którymi będą się mierzyć. Nietypowa formuła, jaką ma Olimpiada Informatyczna, co roku zaskakuje nowych uczniów. W tym artykule przybliżymy nieco format zadań i ich rozwiązań oraz zastanowimy się, jak najlepiej się do nich przygotować.
Źródło: pl.freepik.com
Rozważając ogólnie różne konkursy i olimpiady, dostrzegamy, że co do zasady zadania często przyjmują pewną ustaloną formę. Jesteśmy przyzwyczajeni do pytań, które wymagają jednej poprawnej odpowiedzi, i klucza, które przewiduje pewne konkretne rozwiązanie. Olimpiady Informatyczne jednak znacząco odstępują od tej formuły, zarówno w kwestii formułowania odpowiedzi, jak i jej oceny.
Treści zadań na Olimpiadach Informatycznych z reguły przedstawiają pewną sytuację. Często napisane są w formie nieco niejasnej i wymijającej historyjki, która w samym swym rdzeniu uwzględnia pewien problem algorytmiczny. Zadaniem uczestników nie jest jednak po prostu rozwiązanie go dla jakichś konkretnych danych i zapisanie odpowiedzi. Zamiast tego wszyscy olimpijczycy mają do napisania program komputerowy, który będzie to robił za nich. To właśnie ten program stanowi rozwiązanie zadania i będzie podlegał ocenie.
W celu uściślenia zasad i ograniczeń, w treści umieszczone są sekcje określające w szczegółowy sposób format i limity wejścia i wyjścia, czyli danych, które zostaną programowi podane, oraz które oczekuje się, że program zwróci. Szczególnie istotne są limity ich dopuszczalnej wielkości, razem z limitami na ilość dostępnej pamięci programu. To one często dyktują, które rozwiązanie będzie poprawne, a które straci punkty.
Tak więc każde zadanie stawia przed Olimpijczykami złożony problem, do którego nieraz samo podejście jest już wyzwaniem. Pracę, jaką wszyscy uczestnicy muszą wykonać, można podzielić na trzy etapy:
Trzymając się tych kroków przy rozwiązywaniu zadania, można znacząco przyspieszyć tempo pracy, a tym samym szansę na sukces. Jest to szczególnie ważne w II i III etapie, gdy znaczenie może mieć każda minuta. Należy jednak pamiętać, że zadania olimpijskie są dalekie od schematyczności i żadna lista kroków nie będzie w stanie uwzględnić wszystkich możliwych scenariuszy.
Źródło: www.pexels.com
Jednym z przyciągającym najwięcej uwagi aspektów Olimpiad jest sposób oceniania rozwiązań. Tak jak wspomnieliśmy powyżej, Komitet Olimpijski odchodzi mocno od standardowej formuły klucza rozwiązań. Zamiast tego, zadania nie zakładają jednego konkretnego podejścia, a oceniana jest jedynie poprawność ostatecznie zwracanego wyniku, razem z paroma dodatkowymi czynnikami. Ta swoboda, którą oferują Olimpiady Informatyczne, przyciąga wielu chętnych, szczególnie tych, którzy lubią robić rzeczy po swojemu. Tak więc jak dokładnie oceniane są kody uczestników?
Na ocenę ma wpływ parę aspektów. Najważniejszym z nich jest oczywiście poprawność zwracanego rozwiązania. Żeby jednak zrozumieć dokładnie, co to znaczy, trzeba wiedzieć, co się dzieje po stronie Systemu Informatycznego Olimpiady. Każde zadanie posiada załącznik: zbiór testów w postaci plików wejściowych i wyjściowych. Są to odpowiednio dane podawane do zadania oraz oczekiwana odpowiedź. Dodatkowo, najczęściej testy są pogrupowane w tzw. “paczki”, czyli zestawy testów posiadających pewne dodatkowe ograniczenia. Typowo, są one opisane w treści zadania.
Program oceniający rozwiązania bierze kod uczestnika i uruchamia go na wszystkich testach dołączonych do zadania. Wykonanie kodu jest mierzone pod względem używanej pamięci i czasu, w jakim program obliczył odpowiedź. Następnie wyznaczana jest ilość punktów do przyznania za paczkę testów na podstawie następujących rzeczy:
Te cztery aspekty decydują o ocenie zadania i przyznaniu punktów za poszczególne paczki. Zauważmy, że nie ma tutaj nic na temat samego kodu rozwiązania! On sam nie podlega ocenie, jedynie rezultaty, jakie zwraca. Mimo to należy pamiętać, że wszystkie rozwiązania są sprawdzane pod kątem plagiatu, a fakt, że kod nie jest oceniany, nie oznacza, że nikt się mu nie przygląda.
Źródło: www.pexels.com
Powyższy artykuł wyczerpuje temat jak rozwiązywać zadania na Olimpiadzie Informatycznej i Olimpiadzie Informatycznej Juniorów. Trzeba jednak pamiętać, że nic nie przygotuje nas lepiej do tego wyzwania niż praktyka i rozwiązywanie takich ćwiczeń. Dlatego bardzo istotne jest zapoznanie się z platformami, na których takie zadania są dostępne.
Najbardziej rozpoznawalną z nich jest strona Szkopuł. To na niej właśnie dostępne są wszystkie zadania z poprzednich edycji Olimpiad, innych konkursów oraz obszerny zbiór pozostałych nieskategoryzowanych zadań. Warto od tego zacząć, ponieważ są tam też zadania o dużo niższym poziomie trudności, co pozwala na płynne wdrożenie się w świat Olimpiad. Drugim dobrym źródłem jest strona Codeforces. Jest to anglojęzyczna witryna, na której organizowane są cotygodniowe konkursy w podobnej formie co Olimpiada. Te dwa źródła stanowią bardzo dobrą podstawę do wykorzystywania poznanych algorytmów w praktyce, na faktycznych zadaniach.
W Indeksie w Kieszeni wszystkie zagadnienia tłumaczymy w zrozumiały i przystępny dla ucznia sposób. Szukasz skutecznego przygotowania do Olimpiady Informatycznej lub Olimpiady Informatycznej Juniorów? Jeżeli tak, to zachęcamy do zapoznania się z naszą ofertą kursów!
Strona przygotowana przez Zyskowni.pl