Relacja z finału konkursu Pix Programming Challenge - 13 XII 2019 Poznań

Jak już można było przeczytać na szkolnej stronie, Dawid Cichoń, uczeń klasy IV a Technikum w Połańcu, czyli technik elektronik, wziął udział w konkursie Pix Programming Challenge. Pomyślnie przeszedł eliminacje i zakwalifikował się półfinałów, które odbyły się on-line 5 grudnia w szkolnej pracowni. Również ten etap zakończył się sukcesem i na 490 startujących w półfinale Dawid zakwalifikował się do finału konkursu, który odbył się w pracowniach komputerowych Wydziału Matematyki i Informatyki Uniwersytetu im. Adama Mickiewicza w Poznaniu 13 XII 2019 r.  Po wykładzie wstępnym pana dra Krzysztofa Krzywdzińskiego uczestnicy wszystkich 3 kategorii zostali zaproszeni do pracowni. Po zalogowaniu się na stronie konkursu https://pixchallenge.org/konkurs/ i sprawdzeniu wersji języka Python rozpoczęły się właściwe zawody.

 

Zmagania trwały od godz. 14.00 do 15.30. Należało rozwiązać 20 zadań, w tym kilka bardzo trudnych nawet dla studentów informatyki. Dawid rozwiązał 14 zadań. Tylko 2 uczestników rozwiązało w tym czasie wszystkie 20 zadań, a pierwszy w fenomenalnie krótkim czasie 37 min.

Zadania, które uczniowie rozwiązywali w finale, to m.in.:

- konwersja liczb z systemu „jedynkowego” na dziesiętny,

- konwersja  liczb z systemu ósemkowego na dziesiętny,

- wyznaczanie NWD (a,b) czyli największego wspólnego dzielnika dwóch liczb (algorytm Euklidesa),

- wyznaczanie długości najdłuższego podciągu wspólnego dla dwóch ciągów znaków literowych,

- operacje na zbiorach danych,

- wyznaczanie n-tego wyrazu ciągu Fibonacciego,

- wartość minimalna i maksymalna dla danych podanych na wejściu,

- zadania graficzne – rysowanie zadanego wzoru, elipsy, fraktala.

Podróż do Poznania odbyliśmy, korzystając z usług 2 przewoźników: do Krakowa szybki jak ekspres bus Hans Trans oraz  pociąg bezpośredni PKP Intercity relacji Kraków Olsztyn przez Poznań jadący ok. 5h (z powrotem Szczecin - Przemyśl przez Poznań). Po przyjeździe do Poznania z 40-minutowym opóźnieniem znaleźliśmy blisko dworca pod rondem Kaponiera punkt MPK, w którym kupiliśmy dwa 24-godzinne bilety poznańskiej komunikacji, tzw. pe-kę. Dzięki temu i aplikacji jakdojade.pl przemieszczanie się po mieście nie stanowiło żadnego problemu.

Byliśmy w słynnym sanktuarium Bożego Ciała, którego historia sięga 1399 r., i do którego pielgrzymował pieszo sam król Władysław Jagiełło po zwycięskiej bitwie pod Grunwaldem. Odwiedziliśmy najstarszą polską katedrę na Ostrowie Tumskim, gdzie wg przekazów jest miejsce pochówku pierwszych polskich władców, Mieszka I i króla Bolesława Chrobrego. Byliśmy też na Jarmarku Bożonarodzeniowym na Placu Wolności, gdzie można było się posilić wyjątkowo wielką pajdą chleba i poznańskim żurkiem. W drodze powrotnej nabyliśmy w dworcowej galerii tradycyjny przysmak Poznania, czyli świętomarciński rogal.

Przygoda Dawida z programowaniem zaczęła się w klasie I technikum od kilku linijek kodu w j. C++ na lekcji informatyki. Był to przykład liczący pole trójkąta ze wzoru Herona. Program na początku wczytywał 3 liczby a, b, c i sprawdzał, czy mogą one być bokami trójkąta (suma dwóch dowolnych boków większa od boku trzeciego). Gdy ten warunek jest spełniony, trzy wprowadzone liczby mogą być bokami trójkąta. Pole=sqrt(p(p-a)(p-b)(p-c)), gdzie sqrt to funkcja zwracająca pierwiastek z wyrażenia umieszczonego w nawiasach, a p to połowa obwodu trójkąta p=(a+b+c)/2.

Mniej więcej w tym samym czasie z potrzeby chwili pojawiło się zainteresowanie językiem Lua. Niektóre gry mają możliwość dodawania nowych funkcjonalności lub modyfikację tych istniejących poprzez skrypty. Do tej grupy należy wiele gier, na przykład te ze znanych serii: Farming Simulator, SimCity, czy Wiedźmin. Lua − to język skryptowy pierwotnie zaprojektowany dla rozszerzenia funkcjonalności różnych aplikacji, jednak często używany jako samodzielny język. Lua wiąże w sobie prostą składnię procedury (podobną do Pascala) z konstrukcjami opisu danych opartymi na tablicach asocjacyjnych czyli skojarzeniowych i rozszerzalnej semantyce. Język ten zaimplementowany jest jako mała biblioteka języka C, napisana według standardu ANSI C. Celami implementacji są: prostota, wydajność i przenośność kodu. Skrypty napisane przez Dawida dotyczyły m. in. licznika motogodzin.

Kolejny etap to 5-dniowe warsztaty z programowania w j. C++ w klasie I, które odbyły się w I tygodniu ferii 2016 r. Uczestnicy warsztatów mieli szanse poznać zestaw podstawowych instrukcji języka C++ i przećwiczyć je na przykładach. Pół roku później były 4-godzinne warsztaty w j. Python, na których korzystaliśmy z przykładów na podanych stronie Centrum Edukacji Obywatelskiej - klasa 101 oraz z Akademii Cisco. Po szkolnym zetknięciu się z językami programowania był samodzielny etap nauki, w głównej mierze opierający się na dokumentacji Pythona - www.python.org. W klasie III ważnym wydarzeniem były wielogodzinne przygotowania i udział w międzynarodowych konkursie drużynowym w programowaniu Code Quest organizowanym przed Lockeed Martin w Mielcu.

Droga do tak dużego sukcesu, jak finał ogólnopolskiego konkursu w programowaniu w j. Python, wiodła od zainteresowania programowaniem przez samodzielną pracę, wspomaganą systematycznym uczestnictwem w szkolnym kole informatycznym.

Życzymy dalszych takich i jeszcze większych sukcesów w programowaniu oraz na kolejnym etapie Olimpiady Wiedzy Technicznej, bliskim już egzaminie kwalifikacyjnym i egzaminie maturalnym!

Teresa Switek

autorzy zdjęć: Teresa Switek i Dawid Cichoń