Znamy zwycięzców High School Programming League
High School Programming League, czyli liga programistyczna szkół ponadgimnazjalnych, to konkurs kierowany do uczniów o zainteresowaniach ścisłych i technicznych, a zwłaszcza matematycznych i informatycznych. Zadania udostępniane są w ramach portalu konkursowego SPOJ, po pięć w każdej z pięciu serii – razem dwadzieścia pięć zadań do rozwiązania w okresie od września do kwietnia. Głównemu konkursowi towarzyszą konkursy specjalne, dla których publikowane są oddzielne rankingi. Wszystkie treści można przeczytać w dwóch językach: polskim i angielskim.
W tegorocznych zawodach wzięło udział ponad 2000 uczestników, a oficjalnie zarejestrowało się 97 szkół z 9 krajów, głównie z Polski. Na temat przebiegu konkursu rozmawiamy z Łukaszem Kusznerem, jednym z organizatorów konkursu.
Contest.pl: Czy formuła konkursu różni się od innych zawodów dla programistów?
Łukasz Kuszner: Tak, trochę się różni. Konkursem o bardzo podobnym charakterze jest CodeChef, ale jest to otwarty międzynarodowy konkurs bez limitu wieku, który odbywa się co miesiąc od około roku. Inne konkursy programistyczne mają zwykle formułę zbliżoną do ACM ICPC (konkursy drużynowe, gdzie jest do rozwiązania zestaw zadań w ciągu bardzo ograniczonego czasu, zwykle 5 godzin), Olimpiad Informatycznych (konkursy indywidualne dla uczniów), takich jak Polska Olimpiada Informatyczna, gdzie jedynie w pierwszym etapie uczniowie mają więcej czasu na zadania lub maratonów programistycznych takich jak Challange24, który trwa 24 godziny. Są jeszcze konkursy o zupełnie innych charakterze, na przykład takie, gdzie wymagane jest przygotowanie projektu na zadany temat. Podstawowym wyróżnikiem High School Programming League jest długi czas na rozwiązanie zadań algorytmicznych w czasie całego konkursu.
Contest.pl: Skąd wziął się pomysł na taką formułę?
ŁK: W 2004 roku odbyła się ostatnia edycja DASM Programming League - trochę niszowego, ale bardzo ciekawego konkursu. High School Programming League rozwija tę inicjatywę.
Contest.pl: Jak wygląda typowe zadanie konkursowe?
ŁK: Każde z zadań polega na napisaniu programu komputerowego. Treść zadania opisuje dane wejściowe i formułuje problem, który należy rozwiązać.
Na przykład: treść zadania opisuje system naliczania odsetek na koncie bankowym, danymi wejściowymi mogą być: stan konta, liczba okresów odsetkowych i oprocentowanie, a zadaniem programu obliczenie spodziewanej kwoty odsetek.
Contest.pl: Czy w porównaniu do innych zadań to byłoby łatwe zadanie, czy raczej trudne?
ŁK: Jedno z najłatwiejszych. Trudniejsze zadania wymagały wiedzy i umiejętności znacznie wykraczających poza program nauczania realizowany w większości szkół.
Contest.pl: Jakiego rodzaju przygotowanie, jakie umiejętności uczestników decydują o zwycięstwie w konkursie?
ŁK: Z pewnością niezbędne jest przygotowanie matematyczne i umiejętność programowania. Konieczna jest też duża motywacja, systematyczność, dokładność i zaangażowanie, ale moim zdaniem decydujące znaczenie ma kreatywność w podejściu do zadań typu challenge, które rozstrzygają o zwycięstwie. Mniejsze znaczenie ma odporność na stres i zdolność koncentracji w ściśle określonym momencie.
Contest.pl: Proszę powiedzieć coś więcej o tych zadaniach.
ŁK: Są to zadania, dla których nie jest znane najlepsze rozwiązanie. Najczęściej są one inspirowane aktualnymi problemami naukowymi. Naszym zamysłem jest tu stymulowanie u uczestników cech i umiejętności potrzebnych w pracy naukowej, konstruktorskiej i wynalazczej. Zadania o podobnym charakterze były formułowane przez DIMACS w ramach DIMACS Challenges – amerykańską instytucję współtworzoną przez Uniwersytety Rutgers i Princeton oraz takie firmy jak AT&T Labs – Research, czy Alcatel-Lucent Bell Labs.
Contest.pl: Czy uczestnicy wnoszą opłaty za uczestnictwo w konkursie?
ŁK: Nie, uczestnictwo jest bezpłatne, nie ma żadnych opłat. W tym roku było to możliwe dzięki wsparciu Politechniki Gdańskiej, miasta Gdynia i kilku innych firm, oraz dzięki organizatorom: firmie Sphere Research Labs i Stowarzyszeniu Talent oraz pracy ochotników.
Contest.pl: W jaki sposób zadania są oceniane?
ŁK: Ocena poprawności rozwiązania odbywa się automatycznie zaraz po nadesłaniu zgłoszenia. Dzięki temu uczeń, jeśli popełnił błąd, może dalej pracować nad swoim rozwiązanie. Ma to kapitalne znaczenie motywacyjne. Z praktyki dydaktycznej wiemy, że uczniowie rzadko wracają do źle rozwiązanych zadań jeśli nie będzie to miało wpływu na ocenę. Dlatego w High School Programming League rozwiązanie każdego zadania można zgłaszać wielokrotnie.
Contest.pl: Jaki jest zatem cel organizacji tego konkursu?
ŁK: Jednym z celów jest prezentacja i popularyzacja platformy SPOJ, na której konkurs się odbywa. Metody kształcenia z wykorzystaniem systemów z automatyczną oceną prac mogą w znacznym stopniu usprawnić proces dydaktyczny, zwiększając efektywność pracy nauczyciela i motywację uczniów.
Contest.pl: Mogą, ale nie muszą?
ŁK: Platforma to narzędzie, a każdego narzędzia można używać źle lub dobrze. Od kilku lat prowadzimy badania nad zastosowaniem automatycznej oceny umiejętności w procesie dydaktycznym. W wyniku tych badań powstała metoda ISEL (ang. Intelligent System for Enhanced Learning), która sumuje nasze doświadczenia w tym zakresie.
Contest.pl: Konkurs miał się zakończyć zawodami w Trójmieście – wiemy już, że wielki finał się nie odbędzie, dlaczego tak się stało?
ŁK: Takie zawody to duże przedsięwzięcie. Część zawodników jest niepełnoletnia, trzeba im zapewnić opiekę, bezpieczeństwo i godne warunki. Po przeanalizowaniu sytuacji stwierdziliśmy, że nie jesteśmy w stanie przygotować zawodów na miejscu na należytym poziomie. Częściowym wytłumaczeniem niech będzie dla nas, iż liczyliśmy na wsparcie, którego ostatecznie nie udało się uzyskać. Wiem, że są osoby które czekały na te zawody, ciężko pracowały na prawo wzięcia w nich udziału i teraz są zawiedzione. Mogę jedynie przeprosić uczestników w imieniu wszystkich osób zaangażowanych w przygotowanie konkursu.
Contest.pl: Jak zatem ocenia Pan tegoroczną edycję?
ŁK: Bardzo pozytywnie. Do konkursu zgłosiło się prawie dwa razy więcej szkół niż w ubiegłorocznej edycji, dokonaliśmy drobnych zmian w regulaminie, które spowodowały, że rywalizacja była bardziej emocjonująca. Pojawiło się co najmniej kilka ciekawych, oryginalnych zadań. Konkurs cieszy się rekomendacjami kilku Olimpiad Informatycznych, naukowców i znanych zawodników, w tym członków Honorary Board. Poziom wiedzy, umiejętności i zaangażowanie uczestników oceniam jako wysoki. Sądzę, że drugą edycję High School Programming League można uznać za udaną.
Najlepsi w rankingu indywidualnym: :
| 1. Vasiliy Mokin | Physico-technical Lyceum #1 w Saratowie, Rosja |
| 2. Jakub Pachocki | III Liceum Ogólnokształcące im. Marynarki Wojennej RP w Gdyni, Polska |
| 3. Grzegorz Guśpiel | V Liceum Ogólnokształcące im. A. Witkowskiego w Krakowie, Polska |
| 4. Pavel Kunyavskiy | Physico-technical Lyceum #1 w Saratowie, Rosja |
| 4. Sergei Fedorov | Physico-technical Lyceum #1 w Saratowie, Rosja |
Najlepsze szkoły to:
1. Physico-technical Lyceum #1 w Saratowie, Rosja
(opiekun: Udalova Tatyana Lvovna)
2. Liceum Ogólnokształcące im. Marynarki Wojennej RP w Gdyni, Polska
(opiekun: Ryszard Szubartowski)
3. V Liceum Ogólnokształcące im. A. Witkowskiego w Krakowie, Polska
(opiekun: Andrzej Dyrek)
4. I Liceum Ogólnokształcące im. Adama Mickiewicza w Białymstoku, Polska
(opiekun: Ireneusz Bujnowski)
5. VIII Liceum Ogólnokształcące im Marii Skłodowskiej-Curie w Katowicach, Polska
(opiekun: Adam Respondek)











