Dlaczego uczymy programować a nie kodować

Dlaczego uczymy programować a nie kodować

Dla większości z nas kodowanie i programowanie to synonimy oznaczające dokładnie to samo. Kodowanie brzmi nawet bardziej atrakcyjnie – trochę matematycznie, trochę zagranicznie. W informatyce i edukacji informatycznej tym dwóm słowom przypisano jednak nieco inne znaczenie – ta różnica jest niezwykle istotna w przypadku rozpoczynania przygody z… no właśnie, kodowaniem czy programowaniem?

Oferta kursów dla dzieci i młodzieży jest dziś bardzo bogata i wielu rodziców ma poważny problem z wyborem najlepszych i dostępnych cenowo zajęć. Rzeczywiście, w ostatnich latach pojawiło się nie tylko mnóstwo propozycji zajęć dodatkowych z programowania i robotyki, ale imponująca jest także różnorodność wykorzystywanych w nich narzędzi: od darmowych języków (Scratch, Python), przez klocki Lego Mindstorms po niedrogie, ale bardzo ciekawe i wartościowe środowiska łączące elektronikę z programowaniem (Arduino, Raspberry Pi). Warto wspomnieć także o platformach edukacyjno-konkursowych, takich jak PixChallenge czy Baltie, które stawiają na rozwiązywanie logicznych zagadek i naukę programowania połączoną z rywalizacją z innymi użytkownikami.

Programowanie – co to takiego?

Zacznijmy więc od tego czym jest programowanie i po co tworzone są programy. Najprostsza odpowiedź brzmi – po to, by ułatwiać życie użytkownikom! Piszemy program, który robi coś za nas, wyręcza nas w jakiejś czynności. Dobre roboty i dobre programy nie tylko nas wyręczają, ale zmieniają cały proces wykonywania jakiejś czynności. Tylko źle napisany program i źle zaprojektowany robot robią dokładnie to (w dodatku zazwyczaj nieco gorzej), co wcześniej robił człowiek… Na pewno korzystaliście z programów, które są nieintuicyjne, skomplikowane i wymagają od nas wielu niepotrzebnych czynności.

Na antypodach znajdziemy systemy tworzone przez gigantów – Facebooka, Amazona, Microsoft czy Google. Ten ostatni koncern zbudował swoją potęgę na wyszukiwarce, której strona główna zawiera jedno pole tekstowe i dwa przyciski (nie wierzycie – sprawdźcie sami!). Arcyproste! Bo tworzenie dobrych aplikacji to rozwiązywanie problemów – zastanawiamy się jak wyręczyć człowieka, ale także jak zmienić cały proces tak, by był wygodniejszy, bardziej intuicyjny, bardziej odporny na błędy i generujący szeroko rozumiane zyski

Szukaj problemu…

Wracając do tytułowego pytania o programowanie vs kodowanie – programowanie to coś więcej niż samo napisanie programu. To przede wszystkim zrozumienie istoty problemu, przedstawienie propozycji rozwiązania i dopiero na końcu napisanie programu, czyli zapisanie w kodzie komputerowym pewnego algorytmu. Właśnie tak! Kodowanie to ostatni etap tego długiego procesu… Nauka programowania powinna kłaść nacisk zarówno na naukę kodowania (czyli poznanie konkretnego języka) oraz naukę analizy wyjściowego problemu, dobrania właściwego algorytmu i zaprojektowania optymalnego rozwiązania. Z tym bywa o wiele trudniej!

Zanim przejdę do konkretnych propozycji, najpierw krótka historia. W 2012 roku miałem przyjemność relacjonować przebieg Akademickich Mistrzostw Świata w Programowaniu Zespołowym, które odbywały się akurat w Warszawie. Sala, na której zgromadzono wszystkie drużyny, wypełniona była rzędami ławek i krzeseł. Zajęli je studenci najbardziej prestiżowych uczelni świata – włączając w to uniwersytety, których mury opuścili twórcy Microsoftu, Google’a, Facebooka i innych gigantów. Nie zabrakło oczywiście reprezentantów kilku polskich uczelni, które w rankingu zawodów plasują się na bardzo wysokich pozycjach – drużyny z Uniwersytetu Warszawskiego zajęły nawet dwukrotnie pierwsze miejsce!

Wydawałoby się, że na takich zawodach komputerów powinno być pod dostatkiem. Tymczasem na kilkuosobową drużynę przypada tutaj tylko jeden komputer! Nie wynika to z oszczędności organizatorów! Po prostu kodowanie to często najprostsza część zadania, o wiele trudniejsze jest znalezienie rozwiązania problemu – to właśnie zajmuje zawodnikom najwięcej czasu. Programowanie odbywa się więc głównie na kartce papieru, a komputer używany jest dopiero na końcu.

Jak znaleźć dobry kurs

Przeglądając oferty kursów programowania warto zapytać organizatorów czego tak naprawdę zamierzają uczyć i jak planują to osiągnąć. Jeżeli jest to kurs programowania, to co dziecko będzie potrafiło zakodować po jego zakończeniu? Jakie elementy języka pozna? Czy cały semestr spędzi przesuwając kotka z prawej na lewą stronę ekranu, czy stworzy całą grę umożliwiającą sterowanie postacią i interakcje z elementami świata gry? Co będzie w stanie zrobić samodzielnie po ukończeniu takiego kursu?

Wiele zajęć dodatkowych sprowadza się do pozostawienia uczniów samym sobie – tym bardziej gdy do dyspozycji mają zabawki (np. klocki, roboty, itp.). Tego typu zajęcia doskonale zajmują czas dzieciakom i jest to wartość sama w sobie, ale edukacyjnie efekt jest mizerny. Wszystko zależy od edukatora prowadzącego zajęcia – jego wiedzy i umiejętności programistycznych oraz podejścia do dzieci. Dlatego warto wiedzieć kto będzie prowadził zajęcia – jakie jest jej/jego doświadczenie w pracy z młodzieżą i w realizacji projektów informatycznych lub edukacyjnych.

Nauka programowania, robotyki czy elektroniki wymaga wielu dziesiątek (a może i setek) godzin spędzonych przed ekranem komputera. Żaden kurs nie zapewni edukatora na tak długi czas. Dobry kurs zainspiruje dziecko do poszukiwania wiedzy i wyposaży ucznia w umiejętność jej znajdowania. Dobry edukator natomiast ułatwi dziecku przejście na wyższy poziom wtajemniczenia, gdy będzie na to gotowe: początkującemu przedstawi absolutne podstawy programistycznego świata, średniozaawansowanemu ułatwi rozwiązywanie prostych problemów i wykorzystywanie programów do automatyzacji różnych procesów, a zaawansowanemu kursantowi zaserwuje zadania wymagające zrozumienia i wykorzystania trudniejszych algorytmów.

Mam nadzieję, że te wskazówki pomogą Wam znaleźć najlepszy kurs dla dziecka, a przede wszystkim wskażą na co zwracać uwagę oceniając oferty różnych firm. Zachęcam do skorzystania z obozów programistycznych AlphaCamp, które powstały z myślą o rozwijaniu talentów programistycznych u dzieci na różnym etapie zaawansowania. Chcemy pomóc zarówno tym, którzy w przyszłości staną oko w oko z reprezentantami Stanforda na Mistrzostwach Świata, jak również tym, którzy ograniczą się do korzystania z formuł Excela. W końcu każdy z nas, bez względu na naukowe i zawodowe wybory, musi rozwiązywać różne problemy, a my uczymy jak się za to zabrać!

Leave a reply

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *