logo
FA 9/2022 życie akademickie

Andrzej P. Urbański

Programowanie jest ważne

Programowanie jest ważne 1

W tym roku stanęło przed „Prometeuszami Programowania” nowe wyzwanie. Chodzi o wyjście z ofertą również do młodych Ukraińców. Trzeba im pokazać, jak ważne jest programowanie, również, a może szczególnie, w czasie wojny.

Kiedyś ci, którzy umieli czytać i pisać, byli wąską elitą społeczeństwa. Obecnie udział analfabetów w społeczeństwie wynosi w Europie – 3%, Ameryce Płd. – 15%, Azji – 33%, Afryce – 50%. Kiedyś nauczyciel uczący czytania i pisania był tym, który dawał ludziom ogień. Pozwalało to nie tylko egzystować na znacznie wyższym poziomie, lecz także dalej się rozwijać i nawet trafiać do historii. Dzisiaj, jak się wydaje, elitarną umiejętnością jest programowanie komputerów, o czym pisałem już sześć lat temu (Przeciw analfabetyzmowi przyszłości, FA 3/2016), a od tego czasu wprowadzono naukę programowania w szkołach już od czwartej klasy szkoły podstawowej. Tylko czy szkoły są przygotowane do tego, by to przeprowadzić?

Jak Prometeusz, co dał ludziom ogień

Uważa się, że dzięki opanowaniu ognia przez ludzi pierwotnych dieta z ciepłych potraw przyczyniała się do rozwoju mózgu. Powołując się na mit o Prometeuszu, który dał ludziom ogień, Studenckie Koło Naukowe „Prometeusze Programowania” https://pro.put.poznan.pl, chce dawać, zwłaszcza tym wykluczonym, umiejętność programowania. To rozwinie nie tylko edukowanych, ale też ich nauczycieli, bowiem umiejętność przekazywania innym ludziom własnych umiejętności to wyższy stopień wtajemniczenia. Trochę podobnie jak przekazywanie komputerom umiejętności przez ich programowanie czy uczenie sztucznych sieci neuronowych.

Już w latach siedemdziesiątych do niektórych szkół średnich wprowadzano programowanie. Bill Gates i Paul Allen, późniejsi założyciele Microsoftu, uczyli się w swojej high-school w amerykańskim Seattle programowania w BASIC-u. Stało się to dzięki ufundowanej przez radę rodziców możliwości korzystania z komputera. Wykupiono abonament na używanie minikomputera PDP w jednej z firm. Pożyczono też modem i dalekopis. Uczniowie łączyli się z komputerem linią telefoniczną. To spowodowało, że byli dobrze przygotowani do przywództwa w mikrokomputerowej rewolucji.

W tym samym czasie w Poznaniu późniejsi koledzy z moich studiów uczyli się w liceum ogólnokształcącym o ścisłym profilu jednego z pierwszych języków programowania FORTRAN. Odbywało się to mniej komfortowo niż w Seattle, bo programy zapisywano długopisem na specjalnych drukach. Były one dostarczane paniom, które z każdego arkusza przygotowywały dziesięć kart perforowanych. Programujący musiał sprawdzić, czy panie dobrze przepisały i związane gumką dostarczyć je na stół w poczekalni. Dopiero stąd były zanoszone do pomieszczenia z czytnikiem i połykane przez politechniczny komputer ODRA-1305. Ten odwdzięczał się zadrukowaną wstęgą papieru składanego w harmonijkę do formatu A3.

Od profesora z liceum po doktorat honorowy

Opisywany cykl obowiązywał również studentów politechniki i trwał nawet tydzień. Trzeba też dodać, że programy roiły się od błędów i wymagały kilkunastu takich podejść w niezbyt skomplikowanych problemach. Pracownicy politechniki i niektórzy członkowie Koła Naukowego Informatyków mogli rezerwować komputer na wyłączność. Pozwalało to przez godzinę lub dłużej na bieżąco dopracowywać programy, krążąc między perforatorem kart, ich czytnikiem, dalekopisem operatora i okropnie hałaśliwą drukarką wierszową.

Programowanie jest ważne 2

Dr Bot

Nauczycielem narybku, pierwszych studentów na kierunku informatyka, był prof. Janusz Rajski, późniejszy doktor honoris causa Politechniki Poznańskiej. Już w trakcie ich studiów uczelniany komputer został wyposażony w nowoczesny system operacyjny GEORGE-3/MOP. Pozwolił on wczytywać naraz wiele zadań na kartach, w tym z budynków politechniki po drugiej stronie Warty. Dzięki minikomputerom komunikacyjnym można też było wreszcie, jak w Seatle, pracować na dalekopisach, a nawet monitorach ekranowych.

Z kolei, gdy tylko ukończyłem liceum, trafił do niego, przestarzały już dla poznańskiego Ośrodka Elektronicznej Techniki Obliczeniowej, radziecki komputer MIŃSK. W ten sposób mój młodszy brat uczył się programowania już w szkole. W tamtych czasach aż do późnych lat osiemdziesiątych nauką programowania w językach proceduralnych typu BASIC, FORTRAN, ALGOL 60 czy PASCAL obejmowano wszystkich studentów politechniki. W szkołach średnich, a nawet podstawowych, próbowano uczyć stworzonego specjalnie do nauki najmłodszych języka programowania LOGO. Odbywało się to często na zabawkowych komputerach typu ZX SPECTRUM, ATARI czy COMMODORE.

Jak IBM PC wyparł powszechną naukę programowania

Kiedy jednak na uczelnie i do szkół wkroczyły komputery zgodne z IBM PC, z systemem MS-DOS, a później WINDOWS, powszechne nauczanie programowania wygasło. Zachłyśnięto się bogatym i „darmowym” (wtedy w Polsce nie było ochrony praw autorskich) oprogramowaniem biurowym i uczono posługiwania się nim. Co prawda tworzenie arkusza kalkulacyjnego w programie EXCEL czy innym ma coś wspólnego z programowaniem. Natomiast DBASE, służące do zarządzania bazami danych, było już całkiem zaawansowanym językiem programowania. Jednak to pierwsze nie dawało szans na wyedukowanie do profesjonalnego programowania, a to drugie było zbyt skomplikowane dla początkujących.

Wczesna nauka programowania w szkołach ma wiele zalet. Programowanie ma sporo cech matematyki, a więc rozwija myślenie abstrakcyjne. Szczególnie przyczynia się do rozwoju zdolności przewidywania skutków różnego rodzaju działań, a więc zdolności niezwykle wartościowej w życiu codziennym i właściwie w każdym zawodzie. Opanowanie pierwszego języka programowania to milowy krok w kierunku poznania dowolnych dalszych języków, mających ogromne znaczenie utylitarne. Dzisiaj utalentowani programiści są hołubieni przez licznych przedstawicieli przemysłu informatycznego poszukujących pracowników. Miejsca pracy programistów wyposażane są niezwykle wygodnie i bogato, co wraz z atrakcyjnymi ofertami płacowymi i dodatkowymi bonusami czyni zawód programisty jednym z najpewniejszych na rynku pracy.

Dobrze więc, że znowu powszechnie uczy się programowania i to już w szkołach podstawowych. To powinno się przyczynić do zmniejszenia niedoboru programistów w przemyśle. Jednak przede wszystkim trzeba wykształcić ludzi bardziej świadomych istoty programowania, potrafiących komunikować się z programistami i szerzej informatykami.

Deficyt programistów wśród nauczycieli

Niestety ssanie na rynku pracy przyczynia się też do odpływu zdolnych programistów ze szkół i brakuje nauczycieli-programistów. Douczony na kursach, w najlepszym razie matematyk, może mieć trudności z przygotowaniem dzieci do tak prestiżowych zmagań jak olimpiada informatyczna czy ogólnopolskie zawody w programowaniu zespołowym. Dla wielu są one przepustką do najlepszych studiów informatycznych.

Mając na względzie te wszystkie przesłanki, jesienią 2015 pomyślano o wychowankach domów dziecka. Zauważono, że Dom Dziecka nr 2 w Poznaniu sąsiaduje z V Liceum Ogólnokształcącym, które ma laboratorium robotów LEGO MINDSTORMS. Jak każde LEGO ten zestaw jest przyjazny, umożliwiając konstruowanie najwymyślniejszych robotów. Natomiast graficzny język programowania na podłączonym komputerze pozwala na nadanie im zdolności do wykonywania złożonych zadań. Dlatego w uzgodnieniu z dyrekcjami na początek zaoferowano kilku wychowankom zajęcia pozalekcyjne.

Kurs zgodziło się prowadzić pięciu studentów wolontariuszy z Wydziału Informatyki Politechniki Poznańskiej i kilku uczniów V Liceum Ogólnokształcącego. Chciano jednak, żeby zestaw robotyczny był też na wyposażeniu domu dziecka i poproszono internautów o wsparcie finansowe przez założenie projektu crowdfundingowego https://polakpotrafi.pl/projekt/zbudowac-robota. Już po miesiącu zebrano kwotę wystarczającą do zakupu LEGO MINSTORMS. Dzięki temu zestaw wraz z nieodzownym laptopem wręczono dzieciom na barwnej uroczystości tuż przed Gwiazdką. Uroczystość prowadził chyba pierwszy na świecie robot z doktoratem – dr Bot. Pomysł przebrania świadomie nawiązywał do wchodzącej wtedy na ekrany kolejnej części Gwiezdnych wojen. Miał rozbudzić zainteresowanie robotami i przyciągnąć dzieci do zajęć.

Studenckie Koło Naukowe Upowszechniania Programowania zostało oficjalnie utworzone w marcu 2016. Od początku było aktywne w mediach, co nadal ma miejsce: https://pro.put.poznan.pl/press.php.

Programowanie dla uchodźców

W tym roku stanęło przed „Prometeuszami Programowania” nowe wyzwanie, co podpowiedział prodziekan Robert Wrembel. Chodzi o wyjście z ofertą również do młodych Ukraińców. Trzeba im pokazać, jak ważne jest programowanie, również, a może szczególnie, w czasie wojny. Tak się złożyło, że u progu konfliktu na Ukrainie opiekun Koła napisał do dziecięcego pisemka „Programista Junior” o programowaniu szyfrowania i łamania szyfrów. Nie omieszkał przy tym wspomnieć o roli Polaków i Brytyjczyków w złamaniu kodu Enigmy. Jak wiadomo, przyczyniło się to do skrócenia II wojny światowej o dwa lata i oszczędzeniu milionów ludzi.

Dzięki działającej w kole studentce z Ukrainy, pani Rehinie Pashkevych, i Oddziałowi Wielkopolskiemu Polskiego Towarzystwa Informatycznego numer pisemka z tym artykułem po polsku został wzbogacony o wrzutkę po ukraińsku. Psychologowie oceniają, że to powinno dobrze wpłynąć na ukraińskie dzieci, pomagając im otrząsnąć się z wojennej traumy i uczyć się z motywacją, że ich wiedza też może pokonać wroga.

Tymczasem udało się nawiązać podwójną współpracę z dopiero co otwartym Centrum Szyfrów ENIGMA https://csenigma.pl. Polecamy zwiedzanie. Będziecie państwo zachwyceni eksponatami, zwłaszcza eleganckim oprogramowaniem na cudownym sprzęcie.

Zaprosiłem bratanicę z bystrymi dziećmi (9 i 6 lat) do zrobienia fotoreportażu dla pisemka „Programista Junior”. Chyba udało się tekstem i fotografiami zawodowca Piotra Gajewskiego oddać ich fascynację eksponatami, tj. programami/grami na gigantycznych tabletach i przedmiotami kryptologicznymi.

Trzech dyplomantów w ramach pracy inżynierskiej wzięło się do zrobienia brakującej przeglądarkowej wersji tego oprogramowania. Obiecują prototyp na Noc Naukowców na Politechnice Poznańskiej 30 września 2022, kiedy z pomocą woluntariuszy zademonstrują swoje dzieło około 75 uczestnikom warsztatów (https://pro.put.poznan.pl/projects.php).

Problemy Prometeuszy

Niestety opiekowanie się kołem naukowym to niełatwe zadanie. Pierwszy zarząd z 2016 roku i studenci prowadzący zajęcia w domach dziecka wykruszyli się po kilku latach. Przez to w roku bieżącym trzeba było przeprowadzać biurokratyczną procedurę wznawiania działalności koła. W nowej odsłonie Koło chciałoby oferować programistom bezpłatne kursy pedagogiczne. Mamy nadzieję, że uprawnienia przydadzą się już w trakcie studiów, a także po nich, choćby dla kilku godzin, które mogą wesprzeć lokalną szkołę.

Jednak niełatwo w obliczu bardziej naglących potrzeb uchodźców z Ukrainy pozyskać fundusze z firm, a także znaleźć sposób na zaksięgowanie takich wydatków. Udaje się dzięki profilowi https://patronite.pl/Python pozyskiwać niewielkie fundusze, systematycznie wspierając patronów w nauce programowania w języku Python. Jest też do tego bardziej efektowny widget:

Patroni, których suma wpłat będzie większa niż 49 zł, otrzymują przypinkę o przedstawionym obok wzorze.

Ostatnie batalie

W tym roku już trzy artykuły opiekuna Koła zostały przyjęte do druku w pisemku „Programista Junior”. Dwa dotyczące kodowania algorytmów łamania szyfrów i odgadywania kolejności na mecie wyścigów zostały przetłumaczone na ukraiński, złożone i wydrukowane dzięki wsparciu finansowemu Polskiego Towarzystwa Informatycznego Oddział Wielkopolski. Są one wsuwane do pisemka z apelem naczelnej we wstępniaku, by polskie dzieci przekazywały je ukraińskim. Są też dostępne na stronie Koła https://pro.put.poznan.pl/projects.php. Na razie trwa batalia o sfinansowanie wersji ukraińskiej barwnego fotoreportażu „Muzeum tajemnic”.

Tymczasem członkowie „Prometeuszy Programowania” entuzjastycznie odnieśli się do inicjatywy korepetycji dla dzieci i młodzieży szkolnej: www.pro.put.poznan.pl/lessons.php, poszukując zarówno potrzebujących, jak odpowiednich dla nich korepetytorów. Oferowana jest specjalna przypinka.

Dr inż. Andrzej P. Urbański, Instytut Informatyki Politechniki Poznańskiej

Programowanie jest ważne 3

Wróć