Witamy na stronie Klubu Jagiellońskiego. Jesteśmy niepartyjnym, chadeckim środowiskiem politycznym, które szuka rozwiązań ustrojowych, gospodarczych i społecznych służących integralnemu rozwojowi człowieka. Portal klubjagiellonski.pl rozwija ideę Nowej Chadecji, której filarami są: republikanizm, konserwatyzm, katolicka nauka społeczna.

Zachęcamy do regularnych odwiedzin naszej strony. Informujemy, że korzystamy z cookies.
Marcin Możejko  2 września 2015

Programowanie to nowy angielski

Marcin Możejko  2 września 2015
przeczytanie zajmie 6 min

Według badań ok. 85% Polaków uważa, że dzieci i młodzież powinna uczyć się programowania. Wśród głównych argumentów „za” wyróżnia się przede wszystkim elastyczność na rynku pracy, a także poprawę zdolności logicznego myślenia. Spróbujmy więc przyjrzeć się dokładniej dlaczego warto, aby kolejne pokolenia Polaków uczyły się programowania tak samo, jak dzisiaj uczą się języka angielskiego.

Wydaje mi się, że w opinii większości z nas programowanie nierozerwalnie związane jest z operowaniem na komputerze. Z pewnością oburzyłby się na to David Harel, wybitny informatyk oraz popularyzator informatyki, który w jednej ze swoich książek stwierdził, że powiedzieć, że informatyka to nauka o komputerze, to dokładnie to samo co stwierdzić, że chirurgia to nauka o skalpelu.

I od tego zacząłbym wędrówkę przez to, co daje nam nauka programowania – uważam bowiem, że należy odczarować komputer, jako to magiczne narzędzie, które znamy z codziennego użytkowania, a z którego korzystanie sprowadza się najczęściej do klikania w rozmaite ikonki i używania gotowych programów. Produkty takie jak Windows pozwalają z jednej strony na łatwe korzystanie z możliwości komputera, lecz z drugiej – rozleniwiają nas, przez co rzadko wykraczamy ponad to, co oferuje nam oprogramowanie dedykowane do danego systemu.

Oczywiście nikt nie każe nam zaraz kompletnie odrzucać tej wygody i ortodoksyjnie ograniczać się tylko do wydawania poleceń samemu procesorowi. W mojej opinii nowoczesne języki programowania doskonale wyważyły jednoczesną dowolność i dostępność środków wraz z często niemal okienkową prostotą obsługi. Dzięki temu mamy dostęp do niemal nieograniczonych możliwości nowoczesnych bibliotek, przez co możemy efektywnie zaprząc komputer do rzeczy, które do niedawna dostępne były tylko dla zaawansowanych specjalistów lub zamożnych ośrodków naukowych.

Spróbujmy sobie wyobrazić następstwa – w ramach projektu z geografii grupa uczniów pisze program automatycznie pobierający z Internetu informacje dotyczące interesujących ich zjawisk demograficznych. Dzięki modułowi do wizualizacji danych budują działającą niemalże w czasie rzeczywistym animacje obrazującą aktualne trendy na świecie. A to wszystko na komputerze, który ma problem z uruchomieniem najnowszego GTA.

Podobnych projektów można sobie wyobrazić tysiące, a wraz z rozwojem tego typu umiejętności, nietrudno mi wyobrazić sobie np. instytuty naukowe, które zlecają nieskomplikowane, acz wymagające ogromnego nakładu mocy obliczeniowej projekty, liceom, przez co w przyszłości stajemy się liderami np. w wykrywaniu ciekawych zależności w ludzkim genomie. Wiele z dzisiejszych problemów albowiem, sprawia trudność badaczom, głównie dlatego, że wymagają tygodni, jeśli nie miesięcy obliczeń. Aż się prosi by zlecić to młodym, żądnym wiedzy licealistom, w zamian za udział w glorii odkrywców.

Należy również podkreślić ogromną korelacje między uczeniem się informatyki i matematyki, a logicznym myśleniem. Poznając struktury danych oraz algorytmy musimy bowiem przegryźć się przez podstawowe pytania: jak rozwiązać dany problem, a następnie jak udowodnić, że rozwiązanie jest poprawne oraz czy będzie działać w rozsądnym czasie. Jednak w przeciwieństwie do matematyki, efekty pracy są bardziej motywujące, w wypadku programów możemy bowiem poczuć ich działanie w sposób namacalny – dzięki komputerowym wizualizacjom. Ale programowanie pomaga nie tylko w rozwijaniu umiejętności logicznego myślenia. Do projektowania komputerowego programu kluczowe jest posiadanie umiejętności rozdzielania zadań (tak pomiędzy różne części kodu, jak i kolegów z którymi współpracujemy), a także odpowiedzialności – bowiem aby program działał, wszystkie jego części muszą działać poprawnie oraz realizować dokładnie to, czego oczekują od nich pozostałe funkcjonalności. Uczenie tych umiejętności od najmłodszych lat z pewnością rozwinie u najmłodszych zdolności organizacyjne oraz przyczyni się do rozwoju umiejętności planowania pracy i osiągania celów. Z doświadczenia bowiem wiem, że w chwili gdy napisany przez nas program, często po długich staraniach, zaczyna działać – satysfakcja płynąca z obserwacji efektów stanowi bardzo motywujące doświadczenie.

Na całym świecie rośnie rynek internetowych serwisów nauczania programowania. Spora ich część oferuję naukę kompletnie za darmo, często z dodatkowym wsparciem dla lekcji organizowanych samodzielnie – przez znajomych, dla znajomych. Co więcej, dzięki zaprojektowanemu przez pochodzącego z MIT Mitchela Resnicka (autora min. Lego MindStorms) językowi Scratch, nauczanie programowania najmłodszych jest dziś banalnie proste. Istotą tego języka jest to, że zamiast instrukcji, składamy w nim klocki, a działanie programu wyświetlane jest na ekranie w postaci kolorowych animacji.

W Polsce język Scratch wykorzystywany jest m.in. przez organizatorów akcji „Mistrzowie Kodowania”, która to postawiła sobie za cel propagowanie umiejętności informatycznych wśród młodszych użytkowników. Młodzi adepci informatyki podczas zajęć w szkołach oraz ośrodkach kultury mogą w przyjaznym środowisku zapoznać się z podstawami programowania.

Składając z klocków swoje programy oraz obserwując ich działanie mogą w przyjemny sposób nauczyć się podstawowych pojęć z teorii programowania (tj. pętle, instrukcje warunkowe, etc.), a także obserwować jak stosowanie logicznego myślenia oraz podstawowej algorytmiki doprowadza do tego, że problemy rozwiązywane są szybciej.

Akcja objęła już 3000 nauczycieli z 1200 szkół, a mapa uczestników najnowszej edycji imprezy wygląda naprawdę imponująco. Również ostatnia obecność wolontariuszy programu w strefie dziecięcej OFF Festivalu pozytywnie świadczy o rozprzestrzenianiu się nowych trendów.

A jak to wygląda w polskiej szkole? Aktualnie obowiązujące nas ramy programowe, pochodzące z roku 2012, wydają się być mocno przestarzałe. Autorzy skupili się głównie na korzystaniu z komputera, przeglądaniu Internetu, edytorów graficznych, tekstowych, arkuszy kalkulacyjnych etc. Dzisiaj, zwłaszcza w kontekście znacznego rozwoju technologii służących do uczenia informatyki, standardy te postanowiono zmienić. Powołana przez MEN Rada ds. Informatyzacji Edukacji przedstawiła w czerwcu tego roku propozycje zmian w programie nauczania informatyki, w których położono duży większy nacisk na rozwijanie umiejętności algorytmicznych, a także programistycznych z wykorzystaniem nowoczesnych technologii. Uczniowie zaczną poznawać podstawowe struktury danych dużo wcześniej (bo już na etapie szkoły podstawowej oraz gimnazjum), a także zyskają solidną podstawę poprzez obserwowanie algorytmów w działaniu już od pierwszych klas szkoły podstawowej.

Nudne wypełnianie tabel w arkuszu kalkulacyjnym ma zastąpić programowanie robotów lub interaktywnych systemów komputerowych a przeglądanie stron internetowych w poszukiwaniu informacji – podstawy pracy w chmurze oraz aplikacji mobilnych (na etapie liceum).

Nie zapomniano oczywiście o bezpieczeństwie sieci, czyniąc to jednym z filarów edukacji informatycznej na każdym poziomie. Zmiany te są teraz na etapie dyskusji, a także zgłaszania propozycji oraz uwag. Etap ten zamknie się 31 października, po czym przedstawiona zostanie finalna wersja planu. Na chwilę obecną, przedstawiony projekt rokuje duże nadzieje na pozytywną zmianę i trzymamy kciuki by stała się ona faktem. Cieszy także zaangażowanie w prace nad projektem postaci z elity polskiej informatyki, tj. profesora Jana Madey’a (zajmującego się nauczaniem programowania od ponad 40 lat) czy profesora Krzysztofa Diksa, opiekuna wielu zwycięskich ekip UW podczas konkursów międzynarodowych.  Zaangażowanie ludzi tego pokroju jest ważne, ponieważ warto przenieść fantastyczne sukcesy polskiej informatyki akademickiej na niższe szczeble edukacji.

Dostrzegalny wpływ na aktualny kształt projektu MEN miała reforma jaką dwa lata temu wprowadzono w Wielkiej Brytanii. Przyjęty tam rewolucyjny model, zakłada rozpoczęcie edukacji komputerowej już w wieku 5 lat i kontynuowanie jej, w czterech etapach, co najmniej do 16 roku życia. Uczniowie, po opanowaniu umiejętności przewidzianych na ostatni etap, będą posiadali praktyczne umiejętności które dzisiaj opanowywane są w wieku ok. 20 lat. Co więcej – dzięki rozwojowi nowoczesnych platform internetowych, a także wykorzystaniu języków programowania zaprojektowanych specjalnie do nauki najmłodszych, autorzy mają nadzieje na odejście od ustalonego przez lata modelu opartego głównie na poznawaniu narzędzi Microsoft Office, a także nauki korzystania z Internetu, na rzecz opanowania umiejętności programowania do tego stopnia, aby dzięki zastosowaniu nowoczesnych środków uczniowie mogli projektować sprawnie działające aplikacje, przeznaczone na tak platformy stacjonarne jak i mobilne, wykonujące działania związane z polem ich zainteresowań. Wydaje mi się, że warto zwracać uwagę w kierunku Wysp, aby obserwować jakie realne zmiany wywołuje ten ambitny projekt.

Wobec dostępności do komputerów i urządzeń mobilnych w nowoczesnym świecie, konieczność poszerzenia nauki informatyki w Polsce wydaje się być oczywistą oczywistością. Zmiany zaproponowane przez MEN dają nadzieję, że Polska znajdzie się w awangardzie narodów jeśli chodzi o poziom edukacji komputerowej w Europie. W sytuacji, gdy biblioteki programów pozwalają nam w łatwy i przystępny sposób stosować osiągnięcia współczesnej nauki do osobistych projektów, zmiana w postrzeganiu komputera jako li tylko urządzenia z którego korzystamy za pomocą gotowych aplikacji wydaje mi się być konieczna. Nie podążanie w kierunku większego otwarcia nowych pokoleń na prawdziwe możliwości nowoczesnych technologii to dla mnie coś więcej niż głupota. To niezrozumiałe marnotrawstwo.