Informatyczne łamigłówki

Z profesorem Janem Madeyem z Wydziału Matematyki, Informatyki i Mechaniki Uniwersytetu Warszawskiego, prorektorem UW, rozmawia Przemysław Gamdzyk.

Z profesorem Janem Madeyem z Wydziału Matematyki, Informatyki i Mechaniki Uniwersytetu Warszawskiego, prorektorem UW, rozmawia Przemysław Gamdzyk.

Studenci informatyki z polskich uczelni stosunkowo niedawno uzyskali możliwość udziału w międzynarodowych zawodach programowania zespołowego, organizowanych przez Association for Computing Machinery. Dzięki Panu, jako jedni z pierwszych wzięli w nich udział studenci z Wydziału Matematyki, Informatyki i Mechaniki na Uniwersytecie Warszawskim. Po zwycięstwie w Poznaniu, dwie drużyny złożone z Pańskich studentów, zajęły główne miejsca w eliminacjach w Bratysławie. W jaki sposób tak szybko udało się odnieść znaczące sukcesy?

Zawsze uważano, że na naszym wydziale kształci się głównie teoretyków - nasze wyniki na zawodach programistycznych jednak temu przeczą. Tym niemniej w ogólnopolskich poznańskich zawodach w programowaniu zespołowym, które wymagały od uczestników umiejętności praktycznych, przegrały z nami wszystkie inne polskie ośrodki. Część naszych studentów to do niedawna szczególnie uzdolniona młodzież szkolna (stypendyści Krajowego Funduszu na rzecz Dzieci), z którą już przez dłuższy czas współpracujemy - m.in. poprzez współorganizowanie obozów naukowych czy prowadzenie seminariów. Z większością osób biorących udział w zawodach udało mi się nawiązać kontakt wcześniej - zanim zostali studentami naszego wydziału.

W Poznaniu drużyny złożone ze studentów naszego wydziału zajęły trzy pierwsze miejsca! W Bratysławie, w eliminacjach do finałów międzynarodowych zawodów, uczestniczyło 37 drużyn z ośmiu państw. Wygrał ośrodek bratysławski, a my zajęliśmy resztę miejsc na podium, rozwiązując po sześć z ośmiu zadań. Warto pamiętać, że dziesięć zespołów nie rozwiązało prawidłowo żadnego zadania. Nasza najlepsza drużyna w marcu przyszłego roku pojedzie na finały konkursu ACM do Kalifornii.

Czy umiejętność rozwiązywania tego typu zadań, w których trzeba stworzyć w ograniczonym czasie algorytm i go zaimplementować, stanowi podstawową umiejętność, jaką powinien posiadać informatyk?

Warto zwrócić uwagę, że jest to kapsułkowy problem inżynierii oprogramowania. Po pierwsze, trzeba dobrze zrozumieć treść zadania, która jest połączeniem zapisu w języku formalnym i naturalnym. Przyjęte rozwiązanie trzeba zaprogramować w konkretnych języku, dysponując ograniczonymi zasobami, bo każda drużyna ma tylko jeden komputer. Pracuje się zespołowo, dążąc do optymalnego wykorzystania wiedzy i umiejętności każdej osoby. Rozwiązania muszą być gotowe w określonym czasie - po terminie nie mają już żadnego znaczenia. Przesłane do jury rozwiązania są dokładnie testowane i nie mogą zawierać żadnych błędów - znacznie mniejszą wagę przywiązuje się do ich elegancji. Takie zawody programistyczne nie są więc jedynie analizą i tworzeniem algorytmów.


TOP 200