Wywiad - 30 lat branży IT
Dobrze przygotowani nauczyciele kluczem do efektywnego nauczania informatyki
Z prof. dr hab. Krzysztofem Diksem, pracownikiem Instytutu Informatyki, Wydziału Matematyki, Informatyki i Mechaniki Uniwersytetu Warszawskiego rozmawiamy o osiągnięciach Polaków w informatyce; karierze, którą zrobili członkowie drużyn Orłów Warszawy zwyciężających w Akademickich Mistrzostwach Świata w Programowaniu Zespołowym; koniecznych zmianach w sposobie nauki informatyki w szkołach podstawowych, w tym tworzeniu zadań międzyprzedmiotowych; sposobach na to, aby młodzi naukowcy pozostawali na polskich uczelniach oraz pomyśle wysyłania najzdolniejszych absolwentów polskich uczelni na studia doktoranckie na czołowych uniwersytetach w USA.
Punktowo jesteśmy w światowej czołówce informatyki, ale jako kraj to nie jest już aż tak dobrze. Abyśmy wyszli z tego zaścianka, należałoby wysyłać co roku setkę najlepszych młodych ludzi na studia doktoranckie do Stanów Zjednoczonych. Fundować im te studia. Oczywiście nie wszyscy z nich tu wrócą. Ale niech wróci nawet jedna czwarta. Ta jedna czwarta od razu zmienia oblicze tu, w Polsce. I dodajmy, że nie byłaby to aż tak duża inwestycja, dużo mniejsza niż 500+. W Stanach Zjednoczonych jest bardzo duża społeczność chińska, która nie traci kontaktu z ojczyzną. Otwierając się na gospodarkę Chiny stwarzają także warunki do powrotów z USA dla ludzi po bardzo dobrych studiach. Ale także ci, którzy w Stanach byli profesorami czy robili tam doktoraty, ściągani są z powrotem do kraju. Stąd taki skok chińskich uczelni w rankingach.
W 2007 r. drużyna Orłów z Warszawy, zwyciężyła w Akademickich Mistrzostwach Świata w Programowaniu Zespołowym. Czy nadal polskie drużyny osiągają tak dobre wyniki?
Tak, nadal mamy sukcesy. Co prawda od tamtego roku nie mieliśmy mistrzostwa, ale dwukrotnie zdobyliśmy wicemistrzostwo świata – w latach 2012 i 2017.
Wie Pan może, co się stało z członkami drużyny z 2007 roku?
Oczywiście! Byli w niej: Marek Cygan, Marcin Pilipczuk i Filip Wolski. Dwóch pierwszych jest pracownikami Uniwersytetu Warszawskiego, Wydziału Matematyki Informatyki i Mechaniki. Obaj są już po habilitacji. Są także studentami European Research Consortium. Są to prestiżowe granty, których w Polsce jest ponad 30, z czego 7 w Instytucie Matematyki UW. Panowie wyrośli na wybitnych naukowców w skali światowej, jeśli chodzi o algorytmikę. Co ciekawe, Marek Cygan postanowił także uruchomić międzynarodowy star-tu’p i z sukcesami buduje roboty. Ich pierwszy produkt zakupiła duża firma logistyczna z Francji.
Z kolei Filip Wolski robił u nas magisterium, potem wyjechał w świat. Pracował w firmie, która zajmuje się oprogramowaniem do oprzyrządowania dla nurków, bo sam nurkuje. Następnie pracował w firmach, które budowały oprogramowanie dla rynków finansowych. Obecnie działa w stowarzyszeniu OpenAI, które jest finansowane przez Elona Muska i zajmuje się otwartą sztuczną inteligencją. Filip Wolski był też wśród twórców gry strategicznej Dota 2 i w zespole pracującym nad programem komputerowym, który będzie grał z człowiekiem, krótko mówiąc buduje sztuczną inteligencję. Wszyscy trzej osiągnęli sukcesy w informatyce na skalę światową.
Czyli na ich przykładzie możemy powiedzieć, że bycie dobrym programistą oznacza tworzenie dobrych produktów?
Jeżeli programowanie potraktujemy bardzo szeroko, tak jak Donald Knuth który twierdzi, że programowanie jest sztuką – a więc że mamy problemy, które możemy rozwiązać z pomocą komputera i poszukujemy wydajnych rozwiązań dla tych problemów, czyli nie jest to kodowanie – to tak. Wszyscy uczestnicy zawodów w programowaniu zespołowym w znakomitej większości osiągają sukcesy i nawet nie zdajemy sobie sprawy, jak mocno wpływają na świat. Pracują choćby w Google Brain, ale tworzą też firmy w Polsce, np. w firmie Code Line, która z jednej strony jest firmą programistyczną, a z drugiej inwestuje w sztuczną inteligencję. Generalnie wszystkim się udało.
Także pierwszym mistrzom w programowaniu zespołowym z 2003 r. Tamten zespół tworzył Tomek Czajka, Andrzej Gąsienica-Samek i Krzysztof Onak. Andrzej Gąsienica-Samek ma własną firmę, w której robi programy do nauki angielskiego i programowania w szkole podstawowej. Tomek Czajka pracował dla Google w Kalifornii, a teraz jest u Elona Muska i programuje rakiety, które mają lecieć na Marsa. Z kolei Krzysztof Onak pracuje w IBM Research w Stanach Zjednoczonych.
Na studiach II stopnia powinniśmy mieć ścieżki kształcenia startup-ow’ego, czyli wokół konkretnego projektu. Studenci mają pomysł na projekt zaawansowany technologicznie, a uczelnia go wspiera, pomaga im nawiązać kontakt z wybitnymi naukowcami czy ludźmi z przemysłu, którzy mogliby być mentorami. Następnie studenci robią projekt w ramach pracy magisterskiej. I być może z takich prac powstanie produkt, który będzie można skomercjalizować. Student niczym wtedy przecież nie ryzykuje.
Czy dodatkowe programy nauczania powinny pojawić się na kierunkach technicznych, aby przyciągnąć do nich studentów?
Gdy uczelnie widzą kryzys zainteresowania tym, co robią, kierunkiem studiów, które prowadzą, próbują wymyślać atrakcyjne, nowe kierunki. Dla mnie jest to myślenie krótkowzroczne. Nie potrzeba nam nowego kierunku informatycznego. Możemy na nich robić specjalności. Jeżeli chcemy podejść do tematu długofalowo i wykształcić człowieka, który będzie przygotowany do szybko zmieniającej się technologii, to powinniśmy przede wszystkim uczyć go podstaw!
Czy coś istotnego zmieniło się zatem w informatyce od lat 80. XX wieku? Co wpłynęło na programy nauczania?
Lata 80-te to czas, kiedy ja studiowałem. Kończyłem studia właśnie w roku 1980 jako wykwalifikowany informatyk. Uczyłem się Pascala. Notabene szkoda, że język ten odszedł, bo był znakomity do zastosowania w dydaktyce. Poza tym uczyłem się obliczeń naukowych, systemów operacyjnych, trochę inżynierii oprogramowania i to właściwie wszystko. Wtedy nie istniały jeszcze sieci. Nie było problemów z bezpieczeństwem. Dopiero rodziły się paradygmaty programowania.
Co więc się zmieniło? Wszystko zrewolucjonizowała sieć i Internet. Teraz przecież nie ma aplikacji bez dostępu do Internetu. Pojawiły się więc problemy współbieżności, bezpieczeństwa, interfejsu. Te wielkie zbiory danych trzeba było też uwzględnić w programach nauczania. Kolejną rewolucją była mobilność. Jeśli jednak chodzi o samo jądro informatyki to zmieniło się niewiele.
Jeśli popatrzymy na obowiązujące paradygmaty programowania to nadal jest to programowanie obiektowe i strukturalne. Pojawiają się co prawda języki skryptowe, ale zmiany są niewielkie. Z kolei patrząc na systemy operacyjne to głównym problemem jest zarządzanie procesami. W bazach danych owszem, mamy dostęp bezpośredni i nowe języki programowania, chociażby SQL. Ale to jest jądro informatyki i należy tych podstaw nadal uczyć. Na nich możemy budować specjalności.
Jak więc powinna wyglądać edukacja, abyśmy osiągali sukcesy powiedzmy w głębokim uczeniu maszynowym?
Trzeba się nauczyć programowania. Nie wolno też zapomnieć o matematyce. Część informatyków uważa, że nie istnieje informatyka na wysokim poziomie – tam, gdzie trzeba coś kreować – bez matematyki. W szczególności, jeśli chodzi o rachunek prawdopodobieństwa, statystykę, olbrzymie zbiory danych. Trzeba jeszcze rozumieć architekturę komputerów, równoległość, wszystko to, co jest w bazie informatyki, a reszty możemy się przecież douczyć. Nie jestem więc zwolennikiem działania ad hoc – pojawia się modny temat, a my od razy tworzymy kierunek studiów. Uczmy przede wszystkim porządnej informatyki!
Utrzymanie ludzi na uczelni jest bardzo trudne. Rynek ich po prostu wysysa. Jeśli można po studiach dostać pięciocyfrową płacę, praktycznie natychmiast, to nie ma się czemu dziwić. Powinno więc inwestować się szczególnie w młodych ludzi. Sukcesy naszych absolwentów, o których mówiłem wcześniej, przyszły w okresie, gdy ci młodzi i zdolni mogli bez problemu pozyskać środki na badania. Były to różnego rodzaju stypendia. Dzięki temu mogli się skoncentrować na nauce, a nie uprawiać ją tylko w weekendy, bo trzeba utrzymać dom, spłacić kredyt itd. To jest zresztą ogólniejsze zjawisko w Polsce – musimy inwestować w naukę, ale powinniśmy się skupić na młodych, po studiach doktoranckich. Takich, którzy mają wybitny doktorat. Zatrudniać ich na stanowiskach adiunktów i oferować taką płacę, która będzie ich stabilizowała na uczelni. Dopiero takie działania posuną nas do przodu. Trzeba ich po prostu wspierać, aby nam nie uciekali w przemysł.
Nie widzi Pan potrzeby wprowadzenia zmian w edukacji biorąc pod uwagę zapotrzebowanie np. na osoby tworzące zaawansowane algorytmy?
Na takie osoby zawsze było zapotrzebowanie. Jeżeli dobrze nauczymy ludzi podstaw informatyki i matematyki to potrzebne im będą później tylko specjalistyczne kursy z uczenia maszynowego. Być może trochę większe potrzeby są w wypadku tematów związanych z bezpieczeństwem, to w końcu bardzo szeroki temat. I tu rzeczywiście można by tworzyć nowe kierunki, ale dopiero na II stopniu studiów.
Czy ważne jest to, że nie ma nas właściwie w czołówce najlepszych uczelni wyższych na świecie? Według QS World University Rankings 2019 Uniwersytet Warszawski jest na 394., a Uniwersytet Jagielloński na 411. pozycji.
To jest przesada, że nas nie ma. Pytanie co oceniamy i w jakim rankingu? Jeśli spojrzeć na ranking szanghajski to polskie uczelnie plasują się w czwartej, piątej setce. Jak popatrzymy natomiast na same dyscypliny np. matematykę czy fizykę, to będzie to już pierwsza setka. Jeśli zaś chodzi o informatykę to Uniwersytet Warszawski jest na pozycjach od 175 do 200. Nie jest więc tak źle. Jeśli chodzi natomiast o to w czym się specjalizujemy, to na Uniwersytecie Warszawskim, Wydział Matematyki Informatyki i Mechaniki jest dobry w podstawach informatyki, czyli w algorytmice i logice. W temacie sztucznej inteligencji w pewnych rankingach będziemy w pierwszej 50-ce, a w algorytmice zahaczymy już pewnie o pierwszą 20-kę. Mamy zatem sukcesy. Jednak, jak patrzę na nasz wydział, to brakuje mi takiej szerokiej oferty.
W szkole podstawowej brakuje zadań między przedmiotowych. Według mnie informatyka w szkole nie powinna być w ogóle osobnym przedmiotem. Powinniśmy ją łączyć z innymi dziedzinami. Dzieci powinny wiedzieć, że dzięki technologii są duże możliwości, jest dostęp do prostych narzędzi pozwalających rozwiązywać problemy i realizować własne pomysły. Nie ma za to nic gorszego niż wzięcie Worda, czy innego programu i uczenie dzieci po kolei ich funkcjonalności! Obecny przedmiot informatyka jest klasowy, przedmiotowy. Taki sposób uczenia przestaje mieć sens. Po co np. uczyć się iluś tam terminów z biologii, skoro można pójść do lasu, znaleźć jakieś drzewo, zrobić zdjęcie liścia i poszukać o nim informacji w internecie…
Zbyt wąsko się specjalizujemy?
Mam różnych specjalistów. Jesteśmy nieźli w biologii obliczeniowej, algorytmice, w podstawach informatyki. Mamy ekspertów od sieci sensoryczny, od obliczeń wielkoskalowych, ale brakuje mi ewidentnie np. specjalistów od przetwarzania obrazów. A bez tego trudno sobie wyobrazić urządzenie autonomiczne. Brakuje jeszcze znaczących wyników w uczeniu maszynowym, choć podejrzewam, że bardzo szybko dogonimy czołówkę. Mamy pojedynczych ludzi, którzy są nieźli w szeroko pojmowanym bezpieczeństwie systemów komputerowych, szczególnie w tych nowych technologiach, jak Blockchain. Szanse więc są, ale nie jest jeszcze tak, jakby sobie człowiek wymarzył.
W czym więc tkwi problem?
Utrzymanie ludzi na uczelni jest bardzo trudne. Rynek ich po prostu wysysa. Jeśli można po studiach dostać pięciocyfrową płacę, praktycznie natychmiast, to nie ma się czemu dziwić.
Trzeba się nauczyć programowania. Nie wolno też zapomnieć o matematyce. Część informatyków uważa, że nie istnieje informatyka na wysokim poziomie – tam, gdzie trzeba coś kreować – bez matematyki. W szczególności, jeśli chodzi o rachunek prawdopodobieństwa, statystykę, olbrzymie zbiory danych. Trzeba jeszcze rozumieć architekturę komputerów, równoległość, wszystko to, co jest w bazie informatyki, a reszty możemy się przecież douczyć. Nie jestem więc zwolennikiem działania ad hoc – pojawia się modny temat, a my od razy tworzymy kierunek studiów. Uczmy przede wszystkim porządnej informatyki!
Powinno się więcej inwestować w naukę?
Tak, szczególnie w dobrych, młodych ludzi. Sukcesy, o których mówiłem wcześniej, przyszły w okresie, gdy ci młodzi i zdolni mogli bez problemu pozyskać środki na badania. Były to różnego rodzaju stypendia. Dzięki temu mogli się skoncentrować na nauce, a nie uprawiać ją tylko w weekendy, bo trzeba utrzymać dom, spłacić kredyt itd. To jest zresztą ogólniejsze zjawisko w Polsce – musimy inwestować w naukę, ale powinniśmy się skupić na młodych, po studiach doktoranckich. Takich, którzy mają wybitny doktorat. Zatrudniać ich na stanowiskach adiunktów i oferować taką płacę, która będzie ich stabilizowała na uczelni. Dopiero takie działania posuną nas do przodu. Trzeba ich po prostu wspierać, aby nam nie uciekali w przemysł.
Co można jeszcze zmienić na uczelni?
Miałem pomysł, abyśmy na studiach II stopnia mieli takie ścieżki kształcenia startup-owego czyli wokół konkretnego projektu. Studenci mają pomysł na projekt zaawansowany technologicznie, a uczelnia go wspiera, pomaga im nawiązać kontakt z wybitnymi naukowcami czy ludźmi z przemysłu, którzy mogliby być mentorami. Następnie studenci robią projekt w ramach pracy magisterskiej. I być może z takich prac powstanie produkt, który będzie można skomercjalizować. Student niczym wtedy przecież nie ryzykuje.
Czyli pomysł niekoniecznie związany z dużymi nakładami finansowymi…
Tak. W tym wypadku nie potrzeba aż tak dużych nakładów. Głównie jest to bowiem pomysł organizacyjny. Trzeba po prostu stworzyć możliwości i szansę studentom.
W ciągu kilku lat w czołówce znalazły się chińskie uczelnie wyższe. Może to jest też jakiś trop?
Jest to związane z faktem, że w Stanach Zjednoczonych jest bardzo duża społeczność chińska, która nie traci kontaktu z ojczyzną. Otwierając się na gospodarkę Chiny stwarzają także warunki do powrotów z USA dla ludzi po bardzo dobrych studiach. Ale także ci, którzy w Stanach byli profesorami czy robili tam doktoraty, ściągani są z powrotem do kraju, gdzie stwarza się im warunki rozwoju. Stąd te wyniki.
Też mamy dużą Polonię za oceanem…
Tak, ale nie mamy tylu osób, które masowo studiują informatykę w Stanach Zjednoczonych i mają tak duże osiągnięcia naukowe.
Nie ta skala.
Dokładnie. Wydaje mi się, że w Chinach talenty rodzą się dosłownie wszędzie. Jak popatrzymy choćby na informatyczną olimpiadę międzynarodową czy zawody w programowaniu zespołowym, to tam Chińczycy zawsze byli mocni. Może być też tak, że potrzebują po powrocie mniej niż potrzebowałyby nasze rodzime talenty. Miałem zresztą pomysł w jaki sposób można by popchnąć naszą informatykę do przodu – bo my punktowo jesteśmy w czołówce światowej, ale jako kraj to nie jest już aż tak dobrze. Abyśmy wyszli z tego zaścianka, należałoby wysyłać co roku setkę najlepszych młodych ludzi na studia doktoranckie do Stanów Zjednoczonych. Fundować im te studia. Oczywiście nie wszyscy z nich tu wrócą. Ale niech wróci nawet jedna czwarta. Ta jedna czwarta od razu zmienia oblicze tu, w Polsce. I dodajmy, że nie byłaby to aż tak duża inwestycja, dużo mniejsza niż 500+.
W zwycięskiej drużynie UW Orłów Warszawy z 2007 roku byli Marek Cygan, Marcin Pilipczuk i Filip Wolski. Dwóch pierwszych jest pracownikami Uniwersytetu Warszawskiego, Wydziału Matematyki Informatyki i Mechaniki. Panowie wyrośli na wybitnych naukowców w skali światowej, jeśli chodzi o algorytmikę. Z kolei Filip Wolski działa w stowarzyszeniu OpenAI, które jest finansowane przez Elona Muska i zajmuje się otwartą sztuczną inteligencją. U Elona Muska pracuje też Tomasz Czajka, z pierwszego, mistrzowskiego zespołu z 2003 roku. Programuje rakiety, które mają lecieć na Marsa. W jego drużynie byli też Krzysztof Onak – pracuje w IBM Research w Stanach Zjednoczonych – i Andrzej Gąsienica-Samek ma własną firmę programistyczną.
A co należałoby zrobić, aby więcej osób interesowało się IT?
Ale ludzie interesują się IT! Jeśli pan popatrzy, zwłaszcza na młodych, to przecież każdy z nich ma smartfona i dostęp do nowych technologii.
Tak, ale jak ich skierować na mądre posługiwanie się tymi technologiami?
Musimy wrócić do szkoły. Od lat trwała walka o to, aby weszło szeroko rozumiane programowanie do szkół i to od pierwszej klasy szkoły podstawowej. W podstawie programowej jest już to programowanie, aż do szkoły średniej. Chodzi jednak o to, aby uświadamiać młodym ludziom, że mogą z niego korzystać. W sposób świadomy. To nie musi być od razu nauka języka poprogramowania. Bardziej chodzi o myślenie algorytmiczne. Przyzwyczajanie młodych ludzi do tego, aby rozwiązywali problemy z użyciem technologii. Jednak, by to zrobić, musimy mieć przede wszystkim mądrych, dobrych nauczycieli w szkole.
Obserwuję, że to czym kierują się młodzi ludzie przy wyborze tego, czego chcą się uczyć. Z jednej strony jest to, podejście typowo komercyjne, czyli „idę tam, gdzie zarobię”. Dlatego studiowanie informatyki jest takie popularne. Z drugiej strony, są ludzie, którzy wybierają ten kierunek jako świadomą drogę rozwoju zawodowego. Do nich te finanse i tak z czasem przyjdą, ale nie są najważniejsze. Ci ludzie wybierają taką drogę kariery, jeśli trafią na świetnego nauczyciela. Dlatego jeśli mówimy o mądrym wykorzystywaniu IT, musimy najpierw znaleźć dobrych nauczycieli, którzy będą potrafili zainteresować młodych w sposób twórczy i atrakcyjny.
Organizujemy np. olimpiadę informatyczną i jeśli w pierwszym etapie w skali kraju startuje 1000 uczniów to widać wyraźnie, że nie jest to masowe zainteresowanie. Czemu? Bo nie ma w szkole nauczycieli, którzy są w stanie uczniów do takiej olimpiady przygotować. Myślę, że wprowadzenie programowania od pierwszej klasy podstawowej zmusi środowisko nauczycielskie, aby jednak coś robić i to się z czasem samo napędzi.
Czego jeszcze, poza nauczycielami, brakuje w szkołach podstawowych?
W szkole podstawowej brakuje zadań międzyprzedmiotowych. Według mnie informatyka w szkole nie powinna być w ogóle osobnym przedmiotem. Powinniśmy ją łączyć z innymi dziedzinami. Dzieci powinny wiedzieć, że dzięki technologii są duże możliwości, jest dostęp do prostych narzędzi pozwalających rozwiązywać problemy i realizować własne pomysły. Nie ma za to nic gorszego niż wzięcie Worda, czy innego programu i uczenie dzieci po kolei ich funkcjonalności!
Obecny sposób uczenia informatyki jest więc bezsensowny!
Tak. Jest klasowy, przedmiotowy. Taki sposób uczenia przestaje mieć sens. Po co np. uczyć się iluś tam terminów z biologii, skoro można pójść do lasu, znaleźć jakieś drzewo, zrobić zdjęcie liścia i poszukać o nim informacji w internecie…
A może zacząć edukować jeszcze wcześniej, od przedszkoli?
Wydaje mi się, że ogólne zasady myślenia algorytmicznego tłumaczone za pomocą prostych zabaw można by stosować rzeczywiście już bardzo wcześnie. Te małe dzieci, chodzące do przedszkoli, są przecież niezwykle kreatywne. Dopiero szkoła zabija w nich niestety tę kreatywność. Z drugiej strony, trzeba by jednak skonsultować to z psychologami i pedagogami. W końcu programowanie odbywa się na wysokim poziomie abstrakcji. Ale wrócę jeszcze raz do istoty rzeczy, nie mamy dobrze przygotowanych nauczycieli! To oni powinni na studiach wyższych zetknąć z tym, jak uczyć w sposób interdyscyplinarny i nowoczesny. Nauczyciel powinien być przewodnikiem, bo informacji jest zbyt dużo. Powinien też potrafić zainteresować ucznia. To jest ten klucz!
Istnieje szansa, aby to systemowo zmienić?
Coraz więcej osób się do tego przekonuje. W nowej ustawie o szkolnictwie wyższym położony jest nacisk na to, aby nauczycieli kształciły tylko najlepsze uczelnie. I być może, jeśli będzie to mniejsza skala, te najlepsze uczelnie dopuszczą ludzi, którzy nowe metody nauczania będą stosować. Zobaczymy co z tego wyjdzie.
Z artykułem zgadzam się w 100%. Brakuje wydekuowanej kadry nauczycielskiej, jeśli chodzi o informatykę. Ja uczę matematyki od ładnych 15 lat. Rozpoczęłam studia z zakresu informatyki w wskz. Wysoki poziom i też wiem, że wiedza jaką uda mi się przekzać dzieciakom będzie adekwatna.