Programowanie szturmem wchodzi do szkół na całym świecie. Dlaczego warto go uczyć? Czy każdy powinien umieć programować? Jakie korzyści płyną z nauki programowania? I wreszcie jak uczyć programowania już od pierwszych lat szkoły podstawowej? Na te i inne pytania znajdziesz odpowiedź w naszym artykule.

Wyzwania jakie stoją obecnie przed nowoczesną edukacją nigdy w historii nie były tak duże. Współczesny świat rozwija się i zmienia tak szybko, że tradycyjne metody nauczania oparte w dużej mierze na bezpośrednim przyswajaniu wiedzy, coraz bardziej tracą na znaczeniu. W gwałtownie zmieniającej się rzeczywistości nie jesteśmy już w stanie przewidzieć jakich informacji potrzebować będą w przyszłości nasi dzisiejsi uczniowie. Cywilizacyjne kamienie milowe, które niegdyś pojawiały się w odstępach kilku pokoleń, dziś występują z dużo większą częstotliwością i nic nie zapowiada by ten trend miał się w najbliższym czasie odwrócić. Nie bez znaczenia jest także fakt, że dzięki internetowi i powszechnej dostępności smartfonów, wiedza podręcznikowa dostępna jest obecnie na wyciągnięcie ręki niemal w każdym miejscu na Ziemi – zapamiętywanie dużych ilości informacji traci powoli sens.

Zmieniające się czasy zaowocowały nowymi trendami w edukacji – od wielu lat szkoły starają się kłaść coraz większy nacisk na rozwój takich kompetencji jak kreatywność, umiejętność logicznego myślenia, rozwiązywania problemów i współpracy. Są to kompetencje, które nie dezaktualizują się wraz ze zmieniającą się rzeczywistością i pozwalają na łatwą adaptację do nowego otoczenia.

Jednym z bardziej obiecujących narzędzi, o których mówi się w kontekście rozwijania tych kompetencji jest nauka programowania.

Programowanie – co to znaczy?

Programowanie, nazywane także kodowaniem, ma współcześnie ogromną liczbę zastosowań. Programy sterują naszymi komputerami domowymi, serwerami banków i portali internetowych, tabletami, telefonami komórkowymi, ale też pralkami czy windami. Programowanie można prosto opisać jako pisanie instrukcji dla komputera. Pierwsze programy powstawały bezpośrednio w tzw. kodzie maszynowym – zrozumiałym dla procesora ciągu liczb zapisanych w postaci binarnej (czyli z użyciem wyłącznie zer i jedynek). Przykładowy fragment programu służący do dodawania jedynki do zapisanej w pamięci liczby wyglądał tak: 0000 0010 0000 0000 0001 0000 0011 0100. Maszyna wykonywała ten program bez problemu, jednak dla człowieka – nawet wykwalifikowanego specjalisty – rozszyfrowanie fragmentu kodu zapisanego w tej postaci było bardzo trudne, lub zgoła niemożliwe.

Aby programowanie było bardziej efektywne, konieczne było stworzenie języków programowania, czyli zestawów poleceń bazujących na słowach a nie na liczbach, posiadających określoną składnię i dających się w jednoznaczny sposób przetłumaczyć na kod maszynowy. Od czasu pierwszych komputerów do dziś powstało już bardzo wiele (z pewnością ponad 1000) języków programowania, a każdego roku powstają nowe. Nie ma języka doskonałego i uniwersalnego, nadającego się do wszystkiego, a rozwijająca się technologia wymusza ciągłe poszukiwanie nowych, coraz bardziej efektywnych sposobów programowania. Mimo swojej mnogości, różne języki programowania mają wiele wspólnego – ciekawie obrazuje to strona 99 bottles of beer, która prezentuje ten sam program napisany w ogromnej ilości języków programowania.

Nawet dziecko może programować!

Komputery zmieniały i wciąż zmieniają otaczający nas świat, a programiści wciąż są niezbędni. Sam poznawałem Fortran i z pierwszej ręki wiem, że programowanie wielu z nas onieśmiela, choć nie powinno. Programowanie stało się o wiele bardziej przystępne dla nauczycieli i uczniów, a nasz kraj potrzebuje ich więcej.

Randi Weingarten,
Prezes Amerykańskiej Federacji Nauczycieli

Programowanie bywa często uważane za umiejętność przynależną nielicznym profesjonalistom z odpowiednim wykształceniem kierunkowym, którzy posiadają odpowiednio dużą wiedzę i możliwości do stworzenia czegoś od podstaw za pomocą klawiatury i kompilatora. To oni zajmują się tworzeniem technologii. Dla pozostałych z nas programowanie pozostaje „czarną magią”, mimo, że wszyscy na co dzień używamy produktów tej technologii – programów, stron internetowych czy aplikacji. Jednak nie musi tak być. Dzisiejsze realia wymagają by nowe pokolenia z biernych odbiorców technologii stały się jej uczestnikami i twórcami. Zadanie wykształcenia w nich tych kompetencji spoczywa na nas i nie jest to zadanie trywialne. Na szczęście trwające od wielu lat badania przyczyniły się do powstania licznych narzędzi umożliwiających nauczanie kodowania już od bardzo wczesnych lat szkolnych.

Badania nad możliwościami wykorzystania programowania jako narzędzia nauczania zapoczątkował już w drugiej połowie lat sześćdziesiątych XX wieku matematyk Seymour Papert. Zainspirowany pionierską teorią rozwoju poznawczego szwajcara Jeana Piageta, Papert opracował pierwszy edukacyjny język programowania Logo, służący nauczaniu informatyki i matematyki. Wieloletnie badania zmarłego w 2016 roku naukowca, pośrednio lub bezpośrednio zainspirowały niemal wszystkie późniejsze osiągnięcia w tej dziedzinie. Przełomowy zestaw robotyczny LEGO Mindstorms był wynikiem współpracy LEGO Group i grupy badawczej Paperta na MIT Media Lab. Zestaw ten zapożyczył nawet nazwę z wydanej w 1980 roku przez Paperta książki „Mindstorms: Children, Computers, and Powerful Ideas”. Wpływ Paperta uznają także twórcy słynnego języka graficznego Scratch (także MIT Media Lab). Dzięki działalności tych i wielu innych instytucji, programowanie stało się umiejętnością dużo bardziej dostępną, a nauczanie programowania może być prowadzone przez nauczycieli, którzy nie mieli dotąd z programowaniem wiele do czynienia.

Edukacyjne języki programowania

Edukacyjne języki programowania mają w przeważającej większości formę graficzną lub tekstowo-graficzną. Do programowania wykorzystujemy w nich ograniczoną ilość instrukcji, które wybieramy z dostępnej biblioteki i układamy w logiczny ciąg tworząc program. Przeciąganie instrukcji odbywa się w intuicyjnej dla dzieci formule drag-and-drop (ang. przeciągnij i upuść) a same instrukcje mają postać kolorowych klocków lub bloczków, rozróżnianych za pomocą ikon lub napisów. Taka forma instrukcji ułatwia programowanie nie tylko poprzez atrakcyjną formę, eliminuje bowiem błędy składni, bardzo często pojawiające się przy nauce programowania w językach tekstowych. Niektóre środowiska eliminują także częściowo błędy logiczne samego algorytmu – bloczki przykleją się do siebie tworząc program tylko jeśli połączenie to ma sens.

Jakie są korzyści nauczania programowania w szkołach?

Przewaga na rynku pracy

Nasza strategia polega, dosłownie, na zatrudnianiu jak największej liczby utalentowanych inżynierów. Po prostu jest za mało przeszkolonych osób, które dysponują tymi umiejętnościami.

Mark Zuckerberg
Założyciel Facebooka

Zacznijmy od kwestii najłatwiej mierzalnych. Według licznych szacunków, w naszym coraz bardziej zorientowanym technologicznie świecie, rynek pracy potrzebować będzie coraz więcej wyszkolonych specjalistów ICT (teleinformatyka – ang. Information and Communication Technologies). Sektor gospodarki cyfrowej rozwija się obecnie najszybciej na świecie, w tempie siedmiokrotnie wyższym niż średnia dla całej gospodarki. Zależy nam zatem by wczesne zainteresowanie dzieci i młodzieży kodowaniem przełożyło się na ilość specjalistów z tej dziedziny. Według Dokumentu Cyfrowa Agenda dla Europy wydanego w 2014 roku przez Komisję Europejską, już w roku 2020 na rynku europejskim może brakować 900 tys specjalistów ICT. [1]

Przewaga na rynku pracy nie dotyczy jednak wyłącznie branży ICT. Coraz więcej zawodów wymaga umiejętności pracy z kodem w zakresie takich zadań jak tworzenie i edycja prostych stron internetowych, aplikacji i blogów, obsługa sklepów internetowych itp.

Technologia i komputery są istotą naszego postępu gospodarczego. Aby być przygotowanym na potrzeby XXI w. – i móc korzystać z nadchodzących możliwości – musimy zwiększyć liczbę uczniów, którzy nabędą podstawowe umiejętności informatyczne, niezależnie od dziedziny w jakiej chcą się szkolić.

Todd Park
Główny Doradca ds. Technologii rządu USA

Dotyczy to także zawodów zupełnie nie technicznych. Wspomniany raport Komisji Europejskiej zauważa, że już teraz 90% wszystkich miejsc pracy wymaga co najmniej podstawowych kompetencji informatycznych. Jednocześnie, mimo coraz szerszego dostępu do technologii, aż 50% pracowników posiada niewystarczające kompetencje w tym zakresie. Mamy zatem do czynienia z zasadniczą luką kompetencji. Wypełnienie tej luki na przestrzeni najbliższych lat jest jednym z istotniejszych zadań współczesnej edukacji. Z obserwacji wynika, że w większości systemów nauczania, luka ta pojawia się na etapie pierwszych 12 lat edukacji – kompetencje wykształcone w tym okresie nie odpowiadają tym wymaganym w trakcie studiów wyższych czy na rynku pracy. [1] [2]


Alfabetyzacja cyfrowa

Korzyści wynikające z nauczania programowania wykraczają daleko poza przygotowania do kariery zawodowej. Estonia rozpoczęła pilotażowy program nauczania programowania od pierwszej klasy szkoły podstawowej już w 2012 roku. Jednak celem tego programu nie jest powstanie narodu informatyków w przeciągu najbliższych dwudziestu lat, a raczej wykształcenie społeczeństwa, którego interakcje z technologią, komputerami i internetem będą mądrzejsze i bardziej świadome.

Idea ta bliska jest obserwacjom Mitcha Resnicka z MIT Media Lab: “W dzisiejszych czasach, młodzi ludzie mają dużo doświadczenia i dużo obeznania z nowymi technologiami, ale o wiele mniej tworzą korzystając z nowych technologii i rzadziej wyrażają siebie przy ich użyciu. Trochę jakby potrafili czytać, ale nie pisać w języku nowych technologii.”. [3]

Programowanie staje się zatem coraz bardziej istotną kompetencją, wkraczając powoli do katalogu umiejętności podstawowych – cyfrowa alfabetyzacja (ang. digital literacy) stawiana jest coraz częściej w jednym szeregu z takimi umiejętnościami jak czytanie pisanie i rachowanie. W świecie, w którym nie umiemy sobie już wyobrazić życia bez technologii, trudno odmówić tym porównaniom sensu.

Korzyści rozwojowe i edukacyjne

Nauka kodowania pozwala dzieciom wyrazić siebie, wpływa na ich kreatywność i pewność siebie. Jeśli chcemy, by młode kobiety zabrały te cechy ze sobą w dorosłość, należy je wcześnie zapoznać z programowaniem.

Susan Wojcicki
starsza wiceprezes, Google

Nie wszyscy zdają sobie sprawę, że nauczanie programowania niesie ze sobą także wiele korzyści, które mają z samą technologią niewiele wspólnego. Szereg badań sugeruje, że wpływa ono korzystnie zarówno na możliwości poznawcze jak i umiejętności społeczne uczniów.Dzieci, które uczono podstaw informatyki z naciskiem na myślenie algorytmiczne i konstrukcje logiczne, rozwijają całą gamę umiejętności szkolnych i społecznych. Zauważalne postępy notuje się w takich obszarach jak pamięć wzrokowa, zdolności poznawcze i umiejętności językowe. Poprawie ulegają także zdolności metapoznawcze – uczniowie lepiej wiedzą jak się uczyć, co związane jest z rozwijaniem samokontroli i samodzielnego uczenia się. [4] [5]

Myślenie komputacyjne

Terminu myślenie komputacyjne użył po raz pierwszy Seymour Papert w latach 80-tych ubiegłego wieku. Według Jeanette Wing, czołowej propagatorki tej idei, myślenie komputacyjne to proces myślowy, w którym problemu i jego rozwiązania formułowane są w sposób zrozumiały i możliwy do wykonania przez komputer. W sposób uproszczony bywa określane jako „myślenie jak informatyk”.[6]

Myślenie komputacyjne rozwija całą gamę umiejętności miękkich, które rzadko mają okazję być kształtowane w innym kontekście, zwłaszcza szkolnym. Programowanie uczy rozwiązywania problemów, dekompozycji (dzielenia dużych zadań na mniejsze), wnioskowania, korekty błędów. Są to zdolności przydatne zarówno w przedmiotach ścisłych (STEM), nauce i inżynierii ale także w takich dziedzinach jak nauki społeczne czy sztuka.[7]

Rozwój myślenia logicznego

Myślenie komputacyjne wiąże się bezpośrednio z rozumieniem konstruktów logicznych. Komputer wykonując zadanie realizuje zawsze jakiś algorytm – przedstawioną mu wcześniej listę czynności, które należy wykonać krok po kroku w celu osiągnięcia zamierzonego efektu. Działanie komputera jest zawsze przewidywalne – ten sam algorytm wykonany wielokrotnie na tych samych danych, zawsze da takie same wyniki.

Ćwiczenie kreatywności

„Gdy [dzieci] tworzyły interaktywne kartki na Dzień Matki, widać było, że zaczynają biegle posługiwać się nowymi technologiami. Co to znaczy biegle? Mam na myśli to, że były w stanie zacząć wyrażać siebie i swoje pomysły. Kiedy człowiek zaczyna biegle posługiwać się językiem, potrafi stworzyć wpis w swoim dzienniku, opowiedzieć dowcip, czy napisać list do przyjaciela. Podobnie jest z nowymi technologiami. Pisząc, tworząc interaktywne kartki na Dzień Matki, te dzieci jasno pokazywały, że biegle władają nowymi technologiami.”

Mitchel Resnick,
MIT Media Lab

Znajomość nawet podstaw programowania, otwiera nowe pole do ekspresji twórczej. Z tej przyczyny, odpowiednio stosowane, programowanie daje wymierne efekty w rozwijaniu kreatywności u dzieci. Podobnie do pędzla i płótna, które pozwalają na wyrażenie myśli i uczuć w formie obrazu, programowanie pozwala na podobną ekspresję i twórczość przy tworzeniu całej gamy dzieł – animacji, gier, obrazów interaktywnych czy prezentacji. [8] Rozwój kreatywności jest tym bardziej prawdopodobny im język programowania jest łatwiejszy do opanowania i im szersze daje możliwości. Doskonałym przykładem takiego języka jest Scratch, którego struktura inspirowana była klockami LEGO (twórcy Scratcha współpracowali wcześniej z LEGO przy projektowaniu zestawu LEGO Mindstorms). W przypadku klocków dzieci intuicyjnie zaczynają łączyć elementy dostępne w zestawie, kombinując i tworząc modele, które inspirują je do dalszej pracy. Twórczość w tym kontekście powstaje niemal organicznie. Podobnie jest ze Scratchem, w którym dzieci intuicyjnie łączą bloczki tworząc proste programy, z których wyciągają inspirację do tworzenia następnych. Pozytywny wpływ na rozwój twórczości i kreatywności ma także łączenie programowania z innymi zainteresowaniami dzieci, jak muzyka, film czy animacja. Pozwala to na zachęcenie do programowania szerszej grupy uczniów i daje im dodatkowe narzędzia do ekspresji. [9]

Metoda nauczania na błędach

Przy tworzeniu programu nie sposób uniknąć błędów. Część z nich frustruje – każdy programista spędził nieraz wiele godzin na poszukiwaniu brakującego przecinka. Ale jest też bardzo istotna kategoria błędów, które składają się de facto na sam proces twórczy. Programy z założenia powstają metodą prób i błędów i wymagają nieustannego testowania na każdym etapie. Dzięki temu, błąd ma w programowaniu walor edukacyjny – w odróżnieniu do wielu innych metoda nauczania jest wyzwaniem a nie porażką. Ta idea bliska była Seymourowi Papertowi, który uważał, że tradycyjne metody nauczania stygmatyzując błąd jako coś złego, demotywują pewną grupę uczniów, wpływając negatywnie na ich potencjał. Jak mówił:

Powinniśmy pytać nie o to, czy coś jest poprawne lub błędne, ale czy da się to naprawić. Gdyby ten sposób patrzenia na produkty własności intelektualnej rozpowszechnił się na powszechne postrzeganie wiedzy i sposobów jej nabywania, nasza ogólna obawa przed „popełnianiem błędów” mogłaby się zmniejszyć. [7]

Nowoczesne narzędzia do nauczania programowania dodatkowo wspierają stosowanie błędu jako narzędzia. W językach graficznych zupełnie eliminowane są frustrujące błędy składni (trudno mówić o składni w kolorowym bloczku), a poszczególne instrukcje łączą się ze sobą w program tylko jeśli ich następstwo ma sens.

Rozwój zdolności poznawczych

Korzyści płynące z nauki programowania porównywalne są często do tych płynących z dwujęzyczności. Nauka kodowania jest bowiem w wielu aspektach zbliżona do nauki nowego języka obcego. We wczesnym wieku dziecięcym, umysły są dużo bardziej podatne na naukę języka obcego, zwłaszcza jeśli przebiega ona w ramach zwykłych aktywności, w sposób odpowiedni do wieku. Badania prowadzone w celu określenia możliwości dzieci w zakresie uczenia się podstaw programowania wykazały, że najszybciej rozwijają się one w podobnym wieku. Podobnie istotna jest tu forma nauczania – dostosowana do wieku, najlepiej prowadzona w formie zabawy i powiązana z innymi aktywnościami rozwojowymi, takimi jak sztuka, matematyka czy czytanie.

Jak uczyć programowania?

Aby nauczanie programowania skutecznie rozwijało umiejętności myślenia logicznego i komputacyjnego, powinno być wprowadzane jak najwcześniej. Stanowi to jednak wyzwanie dla nauczycieli, którzy mają wprowadzić dzieci w świat kodowania na poziomie, który będzie dla nich zrozumiały.

Narzędzia dostosowane do wieku i możliwości uczniów

Zachęcenie dzieci do programowania jest dużo prostsze niż może się to wydawać. Dzieci bardzo naturalnie przyjmują takie wyzwania, jeśli projekty i tematy prezentowane są na odpowiednim poziomie trudności i powiązane z zabawą. Rynek edukacyjny oferuje mnóstwo narzędzi przeznaczonych do nauki programowania, dostosowanych do różnych stopni rozwoju i zaawansowania uczniów. Jednak niektóre z nich wyraźnie wybijają się na tle innych i są najczęściej polecane przez ekspertów.

Gry

Większość dzieci zna i lubi gry wideo czy na smartfony więc gdy damy im możliwość tworzenia własnej gry, przyjmują to wyzwanie z dużą dozą podekscytowania. Wyróżniamy dwa różne podejścia do stosowania gier w nauce programowania.

Gry edukacyjne (ang. gameplay learning) – proces nauczania wtłoczony jest tu w kontekst gry. Uczniowie realizując kolejne zadania zdobywają punkty i przechodzą do kolejnych leveli. Tego typu narzędzia wykorzystywane są nie tylko w nauce programowania ale także innych przedmiotów szkolnych. Jest mnóstwo apek, które wykorzystują podobny mechanizm – Tynker, Alice, CodeCombat, itp.

Tworzenie gier (ang. game design) – tworzenie przez kodowanie i nauczanie przez tworzenie. Dopiero tutaj dzieci przechodzą na drugą stronę – stają się twórcą gier, programistą, mogą samodzielnie stworzyć funkcjonalną grę, co daje im realne umiejętności i podnosi samoocenę. Bez wątpienia jest to najbardziej skuteczna oraz najbardziej inspirująca z dostępnych metod nauczania – tworząc samodzielnie odpowiedniki swoich ulubionych gier dzieci czują się trochę jak czarodzieje. Nie do przecenienia. Świetnym środowiskiem do programowania prostych gier jest Scratch.

Robotyka

Robotyka to kolejna dziedzina, która fantastycznie potrafi zainspirować uczniów do nauki programowania. Fizycznie istniejące (najlepiej budowane samodzielnie) mechanizmy sprawiają, że kodowanie staje się dla wielu uczniów bardziej realne. Dużo łatwiej jest zrozumieć kod programu, gdy robot wykonuje go w fizycznym świecie tuż obok nas.

Świadomy tego był już Seymour Papert, gdy w 1997 roku pisał:

Zapewnienie dzieciom możliwości programowania zachowania pojazdów, robotów, dinozaurów i innych własnoręcznie zaprojektowanych konstrukcji utworzyło nową absorbującą perspektywę; wiele z tych dzieci, które były niezbyt zainteresowane programowaniem graficznym, zaciekawiło to nowe spojrzenie. Zarazem, wiele struktur programu, które w dawnym kontekście nie były wychwytywane automatycznie, teraz wydały się dzieciom oczywiste. Należy z tego wnioskować, nie że konstrukcje LEGO są lepsze do nauki programowania niż grafiki, ale że różnorodność dała wielu dzieciom więcej możliwości powiązania większej ilości pojęć. [10]

Na rynku dostępnych jest wiele zestawów do nauki robotyki, jednak najbardziej wartościowe wydają się być zestawy tworzone przez LEGO Education – LEGO WeDo i LEGO Mindstorms. Ich efektywność budowana jest między innymi na powszechnym dziecięcym uwielbieniu dla klocków LEGO ale mają one także szereg innych zalet. Wyposażone w czujniki, silniki i sterowane przyjaznymi graficznymi językami programowania (Wedo możemy programować także w Scratchu!), są świetnym narzędziem do nauki programowania dla dzieci od 6 (WeDo) do 99 roku życia (Mindstorms).

Rozważając robotykę warto wspomnieć także o jej innych walorach edukacyjnych. Operując w świecie fizycznym, roboty uczą fizyki i mechaniki. Budowanie robotów z klocków lub elementów kształtuje dodatkowo zaniedbywane ostatnio zdolności motoryczne dzieci. Dobór odpowiednich konstrukcji, czujników czy tematów pozwala także na wykorzystanie robotyki do nauki biologii, chemii, a także historii i sztuki. Jest to zatem dziedzina bardzo interdyscyplinarna.

Od czego zacząć?

Aby wprowadzić naukę programowania do naszej klasy, warto rozważyć najpierw kilka zasadniczych kwestii, takich jak wiek dzieci, z którymi będziemy pracować, ich doświadczenie programistyczne, czas zajęć i sprzęt jakim dysponujemy. Warto też przemyśleć ile czasu możemy poświęcić na przygotowania do zajęć. Na podstawie tych kryteriów można dobrać narzędzia najbardziej odpowiednie do naszych potrzeb. Dla dzieci najmłodszych (6-8 lat) najlepiej sprawdzą się roboty programowalne w językach typowo graficznych, niewymagających jeszcze umiejętności sprawnego czytania i pisania. Mogą to być gotowe roboty (np. Dash i Dot) lub dające dużo większe możliwości zestawy robotyczne do składania (LEGO Education WeDo) – te drugie wymagają jednak nieco więcej czasu zajęciowego. Z dziećmi powyżej ósmego roku życia można już stawiać pierwsze kroki w nieco trudniejszych środowiskach typu Scratch (w Scratchu możemy też programować LEGO WeDo), czy też budować i programować bardziej zaawansowane roboty z LEGO Mindstorms EV3. Szczegółowy artykuły o dostępnych na rynku narzędziach do nauczania robotyki i programowania pojawi się niebawem na blogu.

Po wybraniu narzędzi i przygotowaniu sprzętu, warto przygotować program nauczania. W zależności od możliwości czasowych, umiejętności i doświadczenia prowadzącego, można go stworzyć samodzielnie lub wybrać jeden z dostępnych na rynku gotowych pakietów lekcji. Jeśli chcesz wiedzieć więcej o tym jak wybrać sprzęt do pracowni robotyki lub jak rozpocząć pracę ze Scratchem, zapraszamy na nasze szkolenia on-line. Zachęcamy także do zapoznania się z naszą ofertą gotowych lekcji robotyki i programowania z wykorzystaniem LEGO WeDo, Scratch’a i LEGO Mindstorms.

Podsumowanie

Niezależnie od tego, czy chcesz odkryć sekrety wszechświata, czy po prostu osiągnąć sukces zawodowy w XXI w., podstawy programowania będą Ci niezbędne.

Stephen Hawking,
fizyk teoretyk, kosmolog i pisarz

Rozwój technologii i związane z nim zmiany zachodzące na świecie sprawiają, że programowanie z zajęć dodatkowych szturmem wchodzi do kanonu nauczania by wypełnić lukę w kompetencjach informatycznych pomiędzy absolwentami szkół, a zapotrzebowaniem uczelni wyższych i rynku pracy. Równocześnie coraz silniejsze są przesłanki wskazujące na nieocenioną rolę programowania w rozwijaniu takich umiejętności miękkich uczniów jak logiczne myślenie, rozwiązywanie problemów, kreatywność czy współpraca, czyli tego co w obecnych realiach najcenniejsze. Szybkie wprowadzenie nauki programowania do szkół będzie wielkim wyzwaniem dla nowoczesnej edukacji. Nie należy się go jednak obawiać, gdyż prowadzone od wielu lat badania pozwoliły na wypracowanie dogodnych narzędzi, które pozwalają w łatwy i angażujący sposób wprowadzić programowanie do klas już od pierwszych lat edukacji szkolnej. Nauka programowania z wykorzystaniem gier i robotów może być dla dzieci świetną zabawą i jednocześnie wyposażyć je w narzędzia i kompetencje, których plony będą zbierać jeszcze wiele lat później.

Bibliografia

  1. „Digital agenda for Europe”, Komisja Europejska, 2014.
  2. Valerie Barr, Chris Stephenson, „Bringing computational thinking to K-12: What is involved and what is the role of the computer science education community?”, 2011
  3. „Let’s teach kids to code”, TEDxBeaconStreet, 2012.
  4. Marina Umaschi Bers, „Designing digital experiences for positive youth development: From playpen to playground.”, Oxford University Press, 2012.
  5. Douglas Clemens, „Young Children and Technology.”, Forum on Early Childhood Science, Mathematics, and Technology Education, 1998.
  6. Jeannette M. Wing, „Computational thinking benefits society” Social Issues in Computing, 2014.
  7. Seymour Papert, „Mindstorms: Children, Computers, and Powerful Ideas”, 1980.
  8. Beth Gardiner, „Adding Coding to the Curriculum”, NY Times.
  9. Mitchel Resnick, John Maloney, i in., „Scratch: Programming for All”.
  10. Seymour Papert, „Educational Computing: How Are We Doing?”, 1997.