Piękno algorytmów

22

Profesor Krzysztof Diks, przewodniczący Rady Instytutu Informatyki Uniwersytetu Warszawskiego i Polskiej Komisji Akredytacyjnej, o zagranicznych sukcesach młodych programistów

Rozmawiał Piotr Cegłowski

Kilka dni temu w Rapid City w Dakocie Południowej wspólnie cieszyliśmy się  z wielkiego sukcesu pańskich studentów, którzy zdobyli złoty medal podczas finału Akademickich Mistrzostw Świata w Programowaniu Zespołowym – ACM ICPC. Zajęli drugie miejsce, choć przez pewien czas wygrywali…
To najbardziej prestiżowy tego rodzaju konkurs na świecie, jest organizowany od 41 lat. Uczestniczymy w nim od roku 1994 i za każdym razem udawało nam się zakwalifikować do finałów światowych, a nasi studenci mają na koncie wielkie sukcesy – dwa razy zdobyli mistrzostwo świata i dwa razy wicemistrzostwo. Finał poprzedzają wieloetapowe eliminacje.

Dla studentów Uniwersytetu Warszawskiego wszystko zaczęło się we wrześniu 2016 r. na Wydziale Matematyki, Informatyki i Mechaniki, kiedy to po indywidualnych zawodach sformowano kilkanaście trzyosobowych ekip, z których osiem najlepszych wzięło udział w Akademickich Mistrzostwach Polski w Programowaniu Zespołowym. Pięć z nich znalazło się w pierwszej dziesiątce mistrzostw i pojechało do Zagrzebia, by walczyć o Akademickie Mistrzostwo Europy Środkowej w Programowaniu Zespołowym i prawo startu w finałach w Rapid City. Zarówno mistrzami Polski, jak i mistrzami Europy Środkowej zostało trzech studentów Wydziału Matematyki, Informatyki i Mechaniki Uniwersytetu Warszawskiego, późniejsi  wicemistrzowie świata z Rapid City: Wojciech Nadara, Marcin Smulewicz i Marek Sokołowski. Szkoda, że regulamin ogranicza reprezentację uczelni w finałach światowych do jednej drużyny, ponieważ także inni nasi studenci mogliby z powodzeniem powalczyć z najlepszymi zespołami z zagranicy… Warto odnotować, że w finałowej środkowoeuropejskiej czwórce obok Chorwatów znalazły się aż trzy drużyny z naszego kraju, z uniwersytetów: Jagiellońskiego, Wrocławskiego i Warszawskiego. Nasza ekipa postawiła sobie ambitne zadanie – poprawę wyniku z ubiegłego roku, gdy UW zdobył srebrny medal i piąte miejsce w świecie. I to się udało.

Jak przebiega konkurs?
Każda z trzyosobowych drużyn zasiada przy jednym stanowisku komputerowym, by w ciągu pięciu godzin rozwiązać kilkanaście zadań algorytmiczno- programistycznych sformułowanych w formie historyjek, z ukrytym problemem do rozwiązania. Młodzi programiści muszą odpowiednio zidentyfikować problem, zaprojektować stosowny algorytm, a następnie zaimplementować go w postaci programu komputerowego, który poddawany jest testom przygotowanym przez organizatorów. Jeśli program jest poprawny i wydajny obliczeniowo, tzn. zaliczy wszystkie testy, to zadanie zostaje zaliczone. Gdy obliczenia są niepoprawne lub za wolne, zawodnicy nadal mogą pracować nad zadaniem, ale za każde niepoprawne zgłoszenie są karani 20-minutową karą w przypadku, gdy zadanie w końcu zostanie zaliczone. Szybkość pracy nad zadaniami i kary mają poważny wpływ na końcową punktację, ponieważ w przypadku takiej samej liczby rozwiązanych zadań o miejscu w końcowej klasyfikacji decyduje krótszy czas spędzony nad ich rozwiązywaniem. W Rapid City naszą drużynę wyprzedzili tylko Rosjanie, którzy również rozwiązali 10 z 12 zadań, ale właśnie mieli lepszy czas. Bez wdawania się w kolejne szczegóły należy podkreślić, że zawody w programowaniu zespołowym znakomicie sprawdzają wiedzę i umiejętności programistyczne i w małej skali odpowiadają rzeczywistej pracy informatyka nad projektem – od zebrania wymagań do wdrożenia.

Mam wrażenie, że najważniejszą nagrodą dla uczestników tego konkursu jest możliwość podjęcia pracy w najważniejszych koncernach branży informatycznej.
Najważniejszą nagrodą są prestiż i satysfakcja, że się należy do najlepszych informatyków na świecie w swoim pokoleniu. To oczywiście skutkuje ofertami pracy w najlepszych i największych firmach informatycznych w każdym miejscu globu. Studenci z całego świata wyłonieni w eliminacjach to idealni kandydaci z punktu widzenia nawet najbardziej wymagającego pracodawcy. Nie trzeba organizować naboru, angażować specjalistów HR. Konkurs daje firmom bezpośredni dostęp do najlepszych młodych programistów. Spośród polskich mistrzów świata z lat 2003 i 2007 dwóch pracuje dla Elona Muska, a jeden trafił do IBM po doktoracie na MIT. Bardzo mnie ucieszyło to, że pomimo kuszących propozycji ze świata biznesu dwóch naszych mistrzów z roku 2017 zdecydowało się na karierę naukową na UW. Jeden z mistrzów prowadzi własny biznes w Polsce. Wielu finalistów konkursu – niezależnie od krajów, z których pochodzą – pracuje dziś dla takich potęg jak Microsoft, Google, Nvidia, Facebook i IBM. Sporą grupę zatrudnił wspomniany wcześniej Elon Musk, który szukał nieszablonowo myślących informatyków do swojego projektu kosmicznego i firmy OpenAI, tworzącej otwarte oprogramowanie dla sztucznej inteligencji.

Wspomniał pan o finalistach, którzy podjęli pracę na uczelni. Biorąc pod uwagę wysokość pensji, trudno im konkurować z przeciętnymi absolwentami informatyki, którzy zaraz po studiach zarabiają przynajmniej 8 tys. zł miesięcznie…
Na szczęście nie jest tak źle. Utalentowani młodzi naukowcy do 35. roku życia mają duże szanse na granty, z których mogą sobie wypłacać wynagrodzenie. Z dumą obserwuję też kariery moich studentów, którzy sami stworzyli świetnie prosperujące firmy, takich jak np. Grzegorz Jakacki z Codility, który wraz z kolegami opracował unikalny internetowy serwis do sprawdzania umiejętności myślenia algorytmicznego i programowania, niezwykle przydatny przy rekrutacji do firm informatycznych. Czterech innych absolwentów – wspólnie z Tomaszem Kułakowskim – założyło w Polsce CodiLime, obecnie dynamicznie rozwijającą się firmę, która dużą część swoich zysków z pracy dla zleceniodawców z USA i Japonii przeznacza na stworzenie oryginalnych narzędzi informatycznych „dla każdego” do analizowania wielkich zbiorów danych, co odpowiada na jedno z największych wyzwań informatyki XXI w.

Kwestie, o których mówimy, na pewno miały wpływ na decyzję koncernu IBM, który aż przez 20 lat był głównym sponsorem konkursu.
Mam wieloletnie doświadczenia w tej dziedzinie jako przewodniczący Komitetu Głównego Olimpiady Informatycznej, która od 1994 r. wyłania najbardziej utalentowanych informatycznie uczniów z całej Polski. Najbardziej cieszy mnie współpraca z partnerami, którzy pomoc w takiej sprawie traktują jako element misji. Jestem przekonany, że taki właśnie był główny motyw IBM, który zawsze stawiał na badania i rozwój. Podczas każdej edycji konkursu jeden dzień poświęcony jest najnowszym osiągnięciom koncernu, nierzadko w dziedzinach niedawno kojarzonych jeszcze ze science fiction. A jeśli to zachęci wybitnie zdolnych młodych programistów do podjęcia pracy dla IBM, to nie ma w tym nic zdrożnego.

Obecnie młodzi polscy informatycy nie mają żadnych problemów ze znalezieniem pracy – w naszym kraju i za granicą. Ile lat może to jeszcze potrwać? Kiedy pojawi się symptom nadprodukcji absolwentów?
Jestem przekonany, że nic nie zmieni się w tej dziedzinie jeszcze przez wiele lat. Dzisiaj prawie każde urządzenie musi być wyposażone w jakiś element sztucznej inteligencji. Proszę zauważyć, jak dynamicznie rozwija się robotyka: coraz częściej urządzenia zastępują ludzi w miejscach niebezpiecznych, np. kopalniach. W dziedzinie IT sporo się dzieje, pewni specjaliści będą musieli zmienić obszar zainteresowań. Na przykład na pewno potrzebnych będzie mniej administratorów sieci czy systemów operacyjnych, ponieważ funkcje te przejmuje Cloud. Skoro już mówimy o przyszłości – dla mnie prawdziwym przełomem będzie dzień, w którym jedne roboty będą programowały inne roboty. A nie jest to niewykonalne, rozwój badań nad sztuczną inteligencją jest bardzo dynamiczny. Jeszcze kilkanaście lat temu wydawało się, że komputer nie ma szans wygrać z mistrzem szachowym. IBM udowodnił, że to nieprawda. Niedawno padła kolejna twierdza – komputer znakomicie poradził sobie w grze GO. Powiem żartem – dla mnie prawdziwe zwycięstwo sztucznej inteligencji nastąpi wtedy, gdy zdoła ona rozwiązać kilka zadań z finałów światowych Akademickich Mistrzostw Świata w Programowaniu Zespołowym.

Jest pan wychowawcą wielu pokoleń informatyków. Jak rozpoczęła się pańska kariera w tej dziedzinie?
Należę do drugiego rocznika absolwentów informatyki na Uniwersytecie Warszawskim. Studia ukończyłem w roku 1980 i od tego czasu związałem się z uniwersytetem na stałe. Nie da się ukryć, że moja decyzja o podjęciu studiów była trochę przypadkowa. Kiedy podejmowałem decyzję o studiach, nawet nie wiedziałem, jak wygląda komputer, ale efekt tajemniczości i to, że studia odbywały się na wydziale matematycznym – matematykę zawsze lubiłem – zrobiły swoje. Miałem dużo szczęścia, ponieważ trafiłem na prawdziwych mistrzów, którzy w umiejętny sposób potrafili mnie zachęcić, żebym głębiej zainteresował się algorytmami. Najwięcej zawdzięczam prof. Wojciechowi Rytterowi i mojemu promotorowi, niestety nieżyjącemu już, prof. Antoniemu Kreczmarowi. Dzięki nim znalazłem się w środowisku, które zajmowało się fascynującymi problemami. Od razu zostałem rzucony na głęboką wodę; na wstępie usłyszałem: „Nie myśl o konkurowaniu lokalnie, zainteresuj się tym, co robi świat”. Szczęśliwie wydział, na którym pracowałem, był otwarty na świat, a pracujący w nim naukowcy mieli znakomite kontakty zewnętrzne i aktywnie uczestniczyli w światowym życiu naukowym i w głównych nurtach badawczych dla tamtego okresu, jakimi były między innymi algorytmika, języki programowania, teoria obliczeń. Jako student miałem okazję pracować na jednym z najlepszych komputerów na świecie w tamtym okresie – CDC 7000, który został kupiony dla Instytutu Badań Jądrowych w Świerku. Podobnie jak moi koledzy czułem się też dumny i jednocześnie zobowiązany, że mogę pracować w miejscu, które kontynuowało tradycje Polskiej Szkoły Matematyki. Na początku lat 90. wyjechałem na dwa lata do Kanady, gdzie na Université du Québec en Outaouais miałem okazję współpracować z wybitnym uczonym z Polski Andrzejem Pelcem. Zajmowaliśmy się problemami komunikacji w sieci. Po powrocie na UW zaangażowałem się, z sukcesami, we wspólne działania z prof. Janem Madeyem na rzecz wspierania polskich młodych, utalentowanych informatyków.

Czy miał pan okazję pracować na rzecz biznesu?
Tylko pośrednio. Na prośbę Janusza Szajny, twórcy notowanej obecnie na giełdzie w Zurychu firmy ADB, który notabene zaczynał karierę jako naukowiec, przygotowałem cykl wykładów dla pracowników jego firmy. Jak już wspomniałem wcześniej, z dumą patrzę na absolwentów naszego wydziału, którzy odnoszą sukcesy biznesowe. Mnie wystarczają do szczęścia nauka i kontakt ze studentami, zwłaszcza gdy, podobnie jak ja, potrafią odkrywać piękno ukryte w algorytmach.

Co lubi Krzysztof Diks?

Wypoczynek najchętniej nad wodą, z przyjemnością wraca nad Bałtyk. Podziwia naturalne, monumentalne piękno przyrody w środkowo-zachodniej części USA
Samochód Ford C-Max, nie jest fanem motoryzacji, samochód to dla niego urządzenie jak każde inne, ma po prostu działać
Hobby opera, bywa w Teatrze Narodowym przynajmniej raz w miesiącu i bardzo go cieszy międzynarodowy charakter tej sceny. Jest kibicem siatkówki, zdarza się, że wyjeżdża na zagraniczne mecze naszej reprezentacji

fot.: Maja Hałko