JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?
Transcript of JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?
PROGRAM MISTRZOWIE KODOWANIA
JAK UCZĄ
PROGRAMOWANIA NA ŚWIECIE? DOBRE PRAKTYKI NAUKI PROGRAMOWANIA DLA DZIECI
SPIS TREŚCI
DOBRE PRAKTYKI - TRENDY ............................................................................................................................... 4
Programowanie i nauka oparta na współpracy ............................................................................. 4
Programowanie to nie tylko kodowanie ........................................................................................... 5
Myślenie komputacyjne ....................................................................................................................... 6
Programowanie w nieinformatycznych kontekstach ..................................................................... 7
Moda i programowanie ....................................................................................................................... 8
Nierówności społeczne ......................................................................................................................... 9
2 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
KATALOG DOBRYCH PRAKTYK ....................................................................................................................... 11
Nauka programowania jako element edukacji szkolnej ........................................................................ 11
Computing at School .......................................................................................................................... 12
Proge Tiiger ............................................................................................................................................ 13
Programamos ....................................................................................................................................... 13
Program.ar ............................................................................................................................................ 14
Programa tus ideas ............................................................................................................................. 15
Nauka programowania w edukacji nieformalnej .................................................................................... 16
Obozy rekrutacyjne (bootcamps) .................................................................................................... 16
Praktyki zawodowe z programowania (APPRENTICESHIP programs) ........................................ 16
Hackatony dla dzieci .......................................................................................................................... 17
Kluby koderów ...................................................................................................................................... 18
Kształcenie na odległość ................................................................................................................... 18
Szkoły letnie i zimowiska ...................................................................................................................... 20
Jednodniowy kurs de-kodowania .................................................................................................... 20
Kursy pozalekcyjne dla grup wykluczonych cyfrowo ................................................................... 21
Wydarzenia promujące naukę programowania ...................................................................................... 22
Festiwale kodowania .......................................................................................................................... 22
Dni i godziny kodowania .................................................................................................................... 22
Code party ............................................................................................................................................ 23
Hackerspace ........................................................................................................................................ 23
Wehikuł cyfrowej inkluzji ..................................................................................................................... 24
Metody pracy z uczniami .............................................................................................................................. 24
Collaborative learning – uczenie oparte na współpracy ........................................................... 24
Peer-led team learning ....................................................................................................................... 26
Pair programming ................................................................................................................................ 29
Mentoring .............................................................................................................................................. 30
Programowanie bez komputera ...................................................................................................... 31
Włączanie grup wykluczonych ......................................................................................................... 32
Programowanie + ................................................................................................................................ 34
Poniższy tekst wykorzystuje fragmenty innych opracowań i dokumentów wewnętrznych Centrum
Edukacji Obywatelskiej, a także nowe treści, opracowane na potrzeby raportu.
3 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
Jak uczą programowania na świecie? – to pytanie, na które odpowiedzi poszukują autorzy
raportu, przytaczając przykłady interesujących inicjatyw związanych z programowaniem oraz
identyfikując trendy w nauczaniu programowania, jakie się z tego zestawienia dobrych praktyk
wyłaniają.
Publikacja składa się z dwóch części. W pierwszej omawiamy popularne lub zyskujące na
znaczeniu trendy, które zauważalne są w inicjatywach związanych z nauką programowania, w
tym zwłaszcza programowania dla dzieci, w innych krajach. Część ta może stanowić inspirację
dla strategicznych kierunków rozwoju Programu Mistrzowie Kodowania w przyszłości.
Drugą część stanowi katalog dobrych praktyk. Wybrane do tej części dobre praktyki zostały
uporządkowane w zależności od tego, czy stanowią przykład programu edukacyjnego
wspierającego naukę programowania w szkole, inicjatywy edukacyjnej w czasie pozaszkolnym
(edukacja nieformalna) czy działania o charakterze promocyjnym, zachęcającym do
zainteresowania się kodowaniem. Osobno omówiliśmy dobre praktyki dot. metodyki
wykorzystywanej do nauki programowania.
Publikacja została przygotowana w oparciu o specjalistyczną literaturę oraz research
internetowy. Wybierając dobre praktyki do katalogu nie ograniczaliśmy się do dobrych praktyk
nauki programowania dla dzieci – uwzględnialiśmy jednak tylko te dobre praktyki nauki
programowania dla dorosłych, które możliwe są do wykorzystania w edukacji dzieci i młodzieży.
Posługiwanie się pojęciem „programowania” zamiast „kodowania” jest również zabiegiem
celowym – uwzględniliśmy w naszej analizie również dobre praktyki związane z umiejętnościami
okołoprogramistycznymi i myśleniem komputacyjnym, o ile zawierają one komponent w jakiś
sposób powiązany z kodowaniem.
Autorzy: Beata Sochacka, Grzegorz Lipski
Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania
Warszawa, kwiecień 2015
4 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
Przegląd inicjatyw w Polsce i zagranicą związanych z nauką programowania dla dzieci i
młodzieży umożliwia rozpoznanie wyłaniających się trendów, które wpisują się w różne podejścia,
starające się odpowiedzieć na stereotypy związane z nauką programowania (np. że jest to
zajęcie nudne, aktywność nerdów i osób nieprzystosowanych społecznie, wymagająca
szczególnych uzdolnień) . Przyjrzenie się tym trendom pokazuje w jakich kierunkach rozwija się
myślenie o nauce programowania.
PROGRAMOWANIE I NAUKA OPARTA NA WSPÓŁPRACY
Można zauważyć odejście od myślenia o programowaniu jako interakcji jeden-na-jeden (one
computer per child) człowieka z komputerem. O nauce programowania również coraz częściej
mówi się jako o działaniu nieindywidualnym, mogącym wspierać współpracę i pracę zespołową.
Zwraca się też uwagę na to, jak projekty informatyczne mogą służyć szerszej społeczności, a nie
tylko ograniczać się do indywidualnej rozrywki.
Wykorzystanie TIK (i nauki programowania) w nauczaniu opartym na współpracy (collaborative
learning) pojawia się jako ważny wątek m.in. w badaniach Survey of Schools: ICT in Educationi,
zrealizowanych dla Komisji Europejskiej oraz opracowaniach European Schoolnet Observatory
(Technology-Enhanced Collaborative Learning Briefing Paper ii). Programowanie w grupie lub
parach (pair-programming, mentoring) wzmacnia motywację do dalszej nauki i jest modelem
wykorzystywanym np. w inicjatywach, które mają na celu zachęcenie dziewczyn do
programowania (zob. Girls Geek Carrots, czy np. materiały dot. nauki programowania
opracowane przez National Centre for Women and Information Technology). Badania
przeprowadzone wśród studentów, uczących się na kierunkach informatycznych, pokazują, że
oni sami dostrzegają potrzebę większego nacisku na pracę zespołową w programach nauczania,
m.in. dlatego, że w pracy zawodowej umiejętność komunikacji i pracy w grupie okazuje się
ważnym elementem programowania.iii
DOBRE PRAKTYKI - TRENDY
5 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
PROGRAMOWANIE TO NIE TYLKO KODOWANIE
Programowanie nie ogranicza się tylko do pisania skryptów w określonym języku
programistycznym, a co za tym idzie nauka programowania nie powinna ograniczać się do nauki
syntaktyki danego języka i tłumaczenia algorytmów na niego. Niemniej często dalej kodowanie i
programowanie używane jest niemal zamiennie – jak pokazuje raport Computing Our Futureiv
różne kraje europejskie używają różnych określeń mówiąc de facto o wprowadzaniu nauki
kodowania do szkół.
Programowanie obejmuje analizę konkretnego problemu, wypracowanie rozwiązania do niego
w postaci algorytmu, dostosowanie algorytmu do możliwości jego wdrożenia (np. parametrów
komputera), przetłumaczenie algorytmu na odpowiedni język programistyczny (kodowanie).
Bezpośrednio związanymi z programowaniem czynnościami jest testowanie oraz debugowanie
(eliminowanie błędów ze skryptu) – czynności, które można wykorzystać również w nauce
programowania. Zadania, które polegają na modyfikowaniu istniejących skryptów oraz
wyszukiwaniu w nich błędów zdaniem ekspertówv są bliższe rzeczywistej praktyki programistycznej,
pozwalają też lepiej zrozumieć strukturę programu i rozwijać umiejętność rozumienia wdrożonych
już skryptów (czytania i interpretowania bardziej skomplikowanych skryptów i uczenia się na ich
przykładzie). Wyszukiwanie błędów to umiejętność bardziej złożona niż pisanie skryptu – eliminuje
przypadkowość rozwiązań, uczy ekonomiki kodu (unikania niepotrzebnych jego fragmentów),
wymaga dobrego opanowania syntaktyki danego języka.
Przydatnymi umiejętnościami związanymi z programowaniem jest skuteczna komunikacja –
przekazywanie innym struktury danego skryptu, dyskutowanie o przyjętych rozwiązaniach i
tłumaczenie użyteczności danego programu (komunikowanie struktury innym, autoprezentacja
to elementy na które wskazywali studenci w przytoczonym już badaniu dot. umiejętności
programistycznychvi). Rozwijanie tych umiejętności umożliwia programowanie w grupie.
We often start teaching new students about code
by writing new programs. However, we don't
emphasize modifying existing programs. Yet, in
many real-life instances, we often spend large
amounts of time modifying existing programs. The
ability to make small, incremental changes to an
existing program is a valuable tool to learn
programming, especially because it provides a
quicker payoff. It is a softer way to start
programming and to focus the mind on specific changes.
Ajit Jaokar, Radically transforming teaching programming
6 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
MYŚLENIE KOMPUTACYJNE
Tym, czego naprawdę chcemy uczyć młodzież nie jest samo programowanie, ale umiejętności,
jakich ono wymaga (i w związku z tym rozwija) np. analityczne i logiczne myślenie, rozwiązywanie
skomplikowanych problemów. Nie chcemy bowiem kształcić wszystkich na przyszłych
programistów, ale kształcić w nich nawyki myślowe ułatwiające funkcjonowanie we
współczesnym świecie. Programowanie w gruncie rzeczy to rozwiązywanie problemów przy
pomocy komputera.
Zwolennicy tego przekonania postulują, żeby nie posługiwać się w związku z tym pojęciem „nauki
programowania”, ale rozwijania „myślenia komputacyjnego”, czy traktowania nauki
programowania jako środka do rozwijania myślenia systemowego czy design thinking (myślenia
projektowego). Mówienie o umiejętnościach, jakie rozwija programowanie, aplikowalnych do
innych, szerszych kontekstów ma swoich zwolenników (argumentujących, że takie podejście
podkreśla znaczenie metodyki, a także jest umiejętnością przekrojową a nawet meta-
umiejętnością) jak i przeciwników (twierdzących, że jest to zbyt ogólne określenie – że opisuje
raczej proces myślowy jako taki i w związku z tym przy nieżyczliwej interpretacji spowoduje
zniknięcie wątków związanych z programowaniem całkowicie z programów nauczania) vii .
Myślenie komputacyjne, systemowe i design thinking łączy to, że są pewnymi metodologiami
rozwiązywania problemów. Problemów, które mogą być rozwiązane za pomocą programów
komputerowych i/lub TIK.
Myślenie komputacyjne to proces znajdowania rozwiązań do skomplikowanych otwartych
problemów. Wychodzi od analizy pewnego zbioru danych i składa się z 4 etapówviii: dekompozycji
(rozkładu na składowe danego problemu), zidentyfikowania występujących w nim
prawidłowości (analiza), abstrahowania (eliminowania nieistonych elementów) i tworzenia
algorytmu (rozwiązanie danego problemu krok-po-kroku). Niekiedy w myśleniu komputacyjnym
podkreśla się rolę jako odgrywają komputery (wówczas myślenie komputacyjne jest rodzajem
porządkowania danych i formułowania problemów oraz rozwiązań w taki sposób by były
zrozumiałe również dla komputerów) i dodaje etapy związane z tłumaczeniem rozwiązania na
język zrozumiały dla komputera (programowanie, w tym kodowanie), a także znajdowania innych
I personally like Jeanette Wing’s definition most:
Computational thinking confronts the riddle of
machine intelligence: “What can humans do better
than computers?” But how do you teach that? I
think the truth is that nobody really knows, and until
someone does, arguing that we need to teach it to
kids will hurt more than it helps.
http://blog.codecombat.com/3-reasons-why-computational-literacy-
is-ruining-coding-education
7 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
zastosowań danego algorytmu/rozwiązania (adaptacja do innych kontekstów)ix. Choć myślenie
komputacyjne brzmi abstrakcyjnie jego elementy włączane są do programów związanych z
nauką kodowania np. Code Academy, kursów Khan Academy i BBC Education, Computing at
School.
Mianem design thinking określa się myślenie, wykorzystujące schemat działania, który pomaga
rozwiązywać problemy oraz wypracowywać praktyczne i odkrywcze rozwiązania. W odróżnieniu
od analitycznego rozwiązywania problemów ważnym elementem design thinking jest nacisk
położony na generowanie wielu nowych pomysłów i interakcje w grupie, które podnoszą jakość
tworzonych rezultatów. Rozwijanie myślenia projektowego (design thinking) w uczniach to cel,
który przyświeca takim inicjatywom jak np. www.ideo.org, www.openideo.com, Girls Driving for
a Difference Standford University. Metoda design thinking przystosowana do środowiska szkolnego
składa się z 6 etapów: rozumienia (rozpoznania problemu - wstępnego pogłębienia tematu),
obserwacji, perspektywy (uwzględnianie różnych punktów widzenia w rozumieniu problemu),
wymyślania (burza mózgów, generowanie pomysłów na rozwiązania), protypowania i testowania.
Wpisywanie nauki programowania w schemat design thinking ułatwia przeprowadzenie
wszystkich etapów programowania poza samym kodowaniem.
Myślenie systemowe to podejście metodyczne do rozwiązywania problemów, opierające się na
teorii systemów i założeniu, że każdy problem wymaga analizy systemowej (zidentyfikowania
struktury i dynamiki systemu, którego jest częścią), by określić jaki sposób rozwiązania go będzie
najskuteczniejszy. Podobnie, jak w przypadku design thinking, programowanie może zostać
włączone na etapie opracowywania rozwiązań lub jako narzędzie, które na przykładzie tworzenia
programu komputerowego ilustruje poszczególne etapy rozwiązywania złożonych problemów.
Kształtowanie umiejętności związanych z rozwiązywaniem problemów przy pomocy kodowania:
stwarza większe możliwości wykorzystania programowania na różnych przedmiotach,
dostarcza argumentów na rzecz uniwersalności umiejętności programowania oraz
ułatwia dalszą pedagogiczną refleksję nad nauczaniem programowania.
Z takiej perspektywy (myślenia komputacyjnego) wyrastają różne inicjatywy związane z
programowaniem bez komputera (unplugged).
PROGRAMOWANIE W NIEINFORMATYCZNYCH KONTEKSTACH
Nauka programowania nie ma służyć przygotowywaniu zawodowemu przyszłych programistów.
Za jakiś czas prawie każdy zawód wymagać będzie jakichś umiejętności związanych z
programowaniem.
Ci, którzy podzielają to przekonanie zachęcają do nauczania programowania w niekoniecznie
informatycznych kontekstach – wykorzystywanie programowania w
projektowaniu nowych produktów,
tworzeniu multimediów (np. animacji),
przetwarzaniu danych
8 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
dobrze pokazuje zastosowania umiejętności programistycznych w innych dziedzinach wiedzy i
zawodach np. krawiectwie i projektowaniu odzieży, architekturze, statystyce, biotechnologii etc.
Uzupełnianie programów kształcenia szkół zawodowych o naukę programowania nie jest
przejawem nowoczesnego myślenia o edukacji, ale powoli staje się niezbędne z punktu widzenia
oczekiwań rynku pracy. Odzwierciedlają to postawy nauczycieli szkół przygotowujących do
zawodu, którzy w badaniach Survey of Schools: ICT in Education x deklarowali częstsze
wykorzystanie nowych technologii i większą wiarę w ich przydatność do rozwijania innych
kompetencji np. społecznych niż nauczyciele szkół ogólnokształcących.
Powiązanie programowania z robotyką i konstruowaniem urządzeń to kolejny wyłaniający się
trend (przykłady: Lego Mindstorms, Dash and Dot, Lo-Fi Robot). Połączenie elementów nauki
programowania ze sterowaniem robotami uatrakcyjnia uczenie się i podnosi motywację,
pokazując fizyczny efekt kodowania. Łączenie nauki programowania z pracami technicznymi i
zadaniami konstruktorskimi (zamiast programowania gotowych już robotów prefabrykaty do ich
zbudowania) rozwija pomysłowość uczniów. Większa dostępność drukarek 3D (również w
szkołach) umożliwi zwiększenie nacisku na projektowanie i prototypowanie nowych urządzeń, a
rosnąca popularność takich szeroko dostępnych elementów sprzętu elektronicznego (open
hardware) - kontrolerów jak Arduino czy miniaturowych platform komputerowych jak Raspberry
Pi pozwoli uczniom tworzyć samodzielne interaktywne obiekty. Będzie to jednak wymagać
zwiększanie dostępności finansowej takich rozwiązań (obniżanie ich ceny) oraz przygotowywanie
kadr do kształcenia tak zaawansowanych umiejętności.
MODA I PROGRAMOWANIE
Czy jest sens uczyć dzieci rzeczywistych języków programowania, czy wykorzystywać narzędzia
dydaktyczne, które rozwijają myślenie komputacyjne poprzez naukę uproszczonych, wizualnych
języków (takich jak Scratch)? Zdania są podzielonexi. A dyskusja na temat tego, których języków
uczyć wpisuje się w szerszą debatę dotyczącą tego na ile to, czego obecnie uczy się powinno
In our opinion, it would be great if kids could build,
for instance, a physical steering wheel to drive
software models of their cars, a sensor monitoring
the amount of light outside their windows at night,
or a musical instrument. The challenge is to develop
low-threshold, contextual activities that kids can
envision as relevant to their own projects.
A Comparison of Community Technology Initiatives, Robbin
Chapman, Leo Burd MIT
https://llk.media.mit.edu/papers/chapman-burd-informatica.pdf
9 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
dostosowywać się do zmieniających się trendów w TIK? Czy nowe trendy w TIK są przejściową
modą czy może przejawem pewnego stałego kierunku rozwoju?
Jakich języków uczyć? Aby odpowiedzieć sobie na to pytanie trzeba najpierw zadać sobie
szereg pytań bardziej szczegółowych: czy ma to być rzeczywiście wykorzystywany język
programowania, do czego chcemy z niego korzystać, czy w ogóle chcemy uczyć języka
programowania czy nie lepiej technologii webowych? Jeśli zdecydujemy się uczyć podstaw
kodowania wykorzystując wizualny, uproszczony język programowania (taki jak Scratch) czy
chcemy korzystać z języka, programu do nauki programowania (np. Codespells) a może aplikacji
mobilnej (np. Tynker)?
Urządzenia mobilne i komputery osobiste. Internet of Things. Pytania o to, czego uczyć trudno
obecnie zadać w oderwaniu od pytania: na jakie urządzenie. Odpowiedź na to pytanie wymaga
z kolei pewnej prognozy dot. tego, co w przyszłości będzie dalej w użyciu, a co przejdzie do
lamusa. Dotychczas nauka programowania innych urządzeń (poza komputerami i urządzeniami
mobilnymi) nie jest popularna, ale można się spodziewać, że zacznie zyskiwać na znaczeniu w
przyszłości (czego przejawem jest programowanie robotów).
Big Data, cloud computing, otwarte zasoby, nauczanie hybrydowe, uczenie się online. Jak nauka
programowania powinna odpowiadać na pojawiające się nowe trendy w TIK i edukacji z
wykorzystaniem TIK? Tematy związane z nowinkami technologicznymi pojawiają się w kontekście
nauki programowania raczej rzadko – co może zaskakiwać. (W pewnej mierze można zrzucić to
na karb braku obligatoryjnej nauki programowania na wszystkich poziomach kształcenia w
edukacji szkolnej – programowanie jako przedmiot dodatkowy działa niejako w próżni, nie musi
odpowiadać na inne trendy edukacyjne.) Wyjątkiem są mody wśród dzieci: Anna i Elsa z
Disneyowskiej „Krainy lodu” zachęcały dziewczynki, zombie („Plants vs Zombies”) chłopców do
nauki programowania w ramach Hour of Code, a Minecraft przyciąga chłopców na zajęcia
pozalekcyjne z programowania w San Diego.
NIERÓWNOŚCI SPOŁECZNE
Nauka programowania dla dzieci postrzegana jest jako aktywność elitarna, programy
edukacyjne podmiotów komercyjnych (szczególnie popularne w Stanach Zjednoczonych)
adresowane są do dzieci z rodzin, które nie tylko mają wystarczające środki finansowe by zapłacić
za pozalekcyjne zajęcia, ale rozumieją potrzebę kształcenia umiejętności związanych z
programowaniem. Zgodnie z modelem Jana van Dijka problemem grup wykluczonych cyfrowo
jest brak różnych typów dostępu (nie tylko środków finansowych): materialnego (żeby zacząć
naukę programowania trzeba mieć komputer), kompetencyjnego (żeby uczyć się
programowania trzeba opanować podstawowy materiał z matematyki), użytkowego (żeby
uczyć się programowania trzeba rozumieć przydatność takiej umiejętności, co na ogół
sprowadza się do obecności pozytywnych wzorców osobowych w otoczeniu) oraz
motywacyjnego (żeby uczyć się programowania trzeba odczuwać wewnętrzną motywację do
podjęcia wysiłku I bodźce podtrzymujące zainteresowanie)xii. Dlatego projektując metodykę i
rekrutację do nowego programu edukacyjnego dot. nauki programowania warto wziąć pod
10 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
uwagę wnioski płynące z teorii wyboru i teorii dostępu dotyczące mechanizmów
autowykluczaniaxiii. (Rozwiązaniem może, ale nie musi być dyskryminacja pozytywna).
Biedni i niewykształceni prawdopodobnie nie
zrozumieją, że w dostępie do nowych technologii
nie chodzi wyłącznie o praktyczność – realizację
bieżących potrzeb (np. poznania przepisu na nową
potrawę, czy zakupu części do samochodu), lecz
o kompetencje, które pozwalają na uzyskiwanie
głębszych oraz bardziej szczegółowych
i precyzyjnych informacji, porównanie szerszego
spektrum możliwości,
Korzystanie z mediów a podziały społeczne. Kompetencje medialne
Polaków w ujęciu relacyjnym, M. Filiciak, P. Mazurek, K. Growiec
(Centrum Cyfrowe Projekt:Polska),
http://ngoteka.pl/bitstream/handle/item/215/korzystanie%20z%20me
diow%20a%20podzialy%20spoleczne.pdf
11 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
Przedstawione poniżej dobre praktyki zagraniczne nauki programowania zostały podzielone na
kilka kategorii:
Charakterystyka organizacyjna przedsięwzięć edukacyjnych
1. Nauka programowania jako element edukacji szkolnej
2. Nauka programowania w edukacji nieformalnej
3. Wydarzenia wspierające naukę programowania
Metodyka nauczania programowania
4. Metody pracy z uczniami
NAUKA PROGRAMOWANIA JAKO ELEMENT EDUKACJI SZKOLNEJ
W większości krajów UE programowanie jest lub będzie wprowadzone do programów kształcenia,
jak wynika z raportu Computing Our Future xiv , opracowanego przez European Schoolnet na
zlecenie Komisji Europejskiej. Do krajów przodujących we wprowadzaniu myślenia
komputacyjnego do szkół należy m.in. Wielka Brytania (która wprowadziła programowanie od
najmłodszych lat) oraz Dania. Naukę programowania w szkołach wspierają programy
edukacyjne, prowadzone przez organizacje pozarządowe i podmioty komercyjne. Nie wszędzie
nacisk na wprowadzenie programowania do programów kształcenia jest równie silny – np. w
Stanach Zjednoczonych, gdzie działa najwięcej programów edukacyjnych dot. nauki
programowania jest to przede wszystkim domena edukacji nieformalnej, zarówno komercyjnej
(płatne kursy doszkalające), jak i charytatywnej (programy edukacyjne organizacji
pozarządowych).
KATALOG DOBRYCH PRAKTYK
12 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
COMPUTING AT SCHOOL
Computing at School (CAS) to kompleksowy program wsparcia nauczycieli, mający uczynić z
zajęć komputerowych ( w tym programowania) atrakcyjny dla uczniów przedmiot nauczania.
CAS dostarcza materiałów edukacyjnych, oferty szkoleń dla nauczycieli, a także współtworzy
lokalne kluby (local hubs) prowadzone przez nauczycieli-entuzjastów TIK, którzy chcą swoimi
doświadczeniami dzielić się z innymi nauczycielami. Choć CAS skupia się na myśleniu
komputacyjnym, w związku z wprowadzeniem do szkół w Wielkiej Brytanii obligatoryjnej nauki
kodowania CAS wydało również materiały wspierające nauczycieli w tej zmianie – Quickstart
Computing, zawierające narzędziowniki (toolkit) dla szkół podstawowych i średnich, dostosowane
do nowego programu nauczania TIK. Do nauczycieli szkół podstawowych skierowana jest też
platforma Barefoot Computing CAS, zawierająca materiały edukacyjne i informacje o
warsztatach doszkalających.
Osiągnięcia: 16 000 członków (głównie nauczycieli) należy do CAS. CAS doprowadziło do reformy
programu nauczania TIK (computing) w brytyjskich szkołach, za co m.in. zostało uhonorowane
Informatics Europe Best Practices in Education Award.
Kraj: Wielka Brytania
Co wyróżnia tę dobrą praktykę:
podejście systemowe – nie tylko wspieranie nauczycieli, ale też lobbowanie na rzecz
zmiany programu nauczania
myślenie komputacyjne zamiast poszczególnych umiejetności związanych z TIK
nacisk położony na wsparcie dla nauczycieli i budowanie sieci wymiany doświadczeń
między nimi (Network of Excellence Computer Science Teaching)
Link do źródła
www.computingatschool.org.uk
Zob. też:
Podręczniki do nauki kodowania: www.risingstars-uk.com/series/switched-computing-learn-code-
practice-books
Podręczniki Switched-On Computing: www.risingstars-uk.com/blog/switched-computing-wins-
era-award-best-whole-curriculum-subject-resource-including-ict
Jak włączyć programowanie w Scratchu do programu nauczania:
http://milesberry.net/2012/06/scratch-across-the-curriculum/
13 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
PROGE TIIGER
Proge Tiiger to estoński, ogólnokrajowy program, którego celem jest włączenie TIK do programów
kształcenia na wszystkich poziomach edukacyjnych. Proge Tiiger skupia się na nauce
programowania: z wykorzystaniem graficznych języków programowania na poziomie szkoły
podstawowej (LOGO, KODU Game Lab, Scratch), następnie wprowadzane są elementy robotyki
(Lego Mindstorms I języki programowania NXT-G, NXC), a następnie, na poziomie szkoły średniej,
uczniowie uczą się tworzenia aplikacji na urządzenia mobilne (AppInventor) oraz technologii
webowych. Poza kursami doszkalającymi dla nauczycieli oraz materiałami edukacyjnymi,
program oferuje dofinansowanie do zakupu niezbędnego sprzętu komputerowego i urządzeń
mobilnych. Program realizuje Fundacja HITSA.
Osiągnięcia: Międzynarodowa popularność programu jako przykładu dobrej praktyki
edukacyjnej (www.ncee.org/2014/04/global-perspectives-e-stonia-how-estonias-investment-in-it-
skills-impacted-improvements-in-the-economy/, www.zdnet.com/article/how-do-you-solve-an-it-
skills-crisis-before-it-happens-estonia-has-the-answer/ ). Pomysł naśladują inne kraje (np. Deer
Leap w Gruzji).
Kraj: Estonia
Co wyróżnia tę dobrą praktykę:
nauka programowania na wszystkich etapach edukacyjnych z przemyślanym programem
kształcenia uwzględniającym różne języki programowania, dostosowane do poziomu
umiejętności uczniów
dofinansowanie do zakupu sprzętu komputerowego
Link do źródła
www.hitsa.ee/ikt-haridus/progetiiger
Materiały dot. programowania: www.progetiiger.ee/%C3%B5ppematerjalid
Szkolenia z nauczania programowania dla nauczycieli:
www.progetiiger.ee/%C3%B5petajakoolitus
Zob. też:
www.innovatsioonikeskus.ee/en/programming-schools-and-hobby-clubs
PROGRAMAMOS
Programamos jest stowarzyszeniem, z siedzibą w Hiszpanii, które w roku 2012 założyło 4 nauczycieli
(informatyki oraz edukacji wczesnoszkolnej) by promować myślenie komputacyjne na różnych
poziomach kształcenia. Obecnie Programamos znacznie się rozrosło – poza platformą z
14 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
materiałami edukacyjnymi dla wszystkich etapów kształcenia (m.in. przetłumaczonym na język
hiszpańki podręcznikiem Creative Computing), blogiem, organizacja zarządza społecznością
nauczycieli, prowadzących zajęcia z programowania, a także oferuje kursy dokształcające dla
nauczycieli (w tym kursy online). Programamos szczególnie podkreśla, że choć proponowane
zadania i aktywności mogą być realizowane w formie pozaszkolnych zajęć dodatkowych misją
organizacji jest wprowadzanie nauki programowania do szkół. Do nauki programanowania
wykorzystuje wizualne języki programowania: Scratcha, Scratch Jr, Snapa oraz AppInventora.
Osiągnięcia: Nagroda Google RISE Award za aplikację Dr. Scratch, która wykrywa błędy w
skryptach napisanych w Scratchu.
Co wyróżnia tę dobrą praktykę:
platforma społecznościowa dla nauczycieli, uczących programowania
inicjatywa oddolna nauczycieli
Link do źródła
http://programamos.es
http://programamos.es/traduccion-de-la-guia-creative-computing/
https://comunidad.programamos.es
PROGRAM.AR
Program.AR to ogólnokrajowy program, mający na celu popularyzację nauki informatyki, a
zwłaszcza programowania w Argentynie, który powstał ze współpracy Fundación Sadosky
(Ministerio de Ciencia, Tecnología e Innovación Productiva), Portalu educ.ar (Ministerio de
Educación), Programu Conectar Igualdad (ANSES y Ministerio de Educación)i Gabinetu Premiera.
Pięć regionalnych forów (każde forum składało się z panelu dyskusyjnego, warsztatów i
hackatonu) odbyło się w największych miastach Argentyny (Cordoba, Mendoza, Buenos Aires,
Chaco, Santa Cruz). Przewidziano również narzędzie do dyskusji online, materiały edukacyjne (z
podziałem na różne grupy odbiorców: dyrektorów, nauczycieli szkół podstawowych i średnich, a
także inne osoby zainteresowane), a także tutoaaile online dla początkujących,
średniozaawansowanych i zaawansowanych. Program.AR promuje naukę następujących
języków i programów: Scratch, Alice, Gobstones, Python/Ruby, Pharo Smalltalk, Haskell.
Osiągnięcia: Program, pomimo że ruszył dopiero niedawno przyciągnął uwagę mediów w kraju.
Kraj: Argentyna
Co wyróżnia tę dobrą praktykę:
15 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
fora dyskusyjne – organizatorzy uznają dialog nauczycieli i programistów jako kluczowy dla
popularyzacji nauki programowania (Ministerstwo Edukacji podkreśla partycypacyjny
charakter projektu)
tutoriale online z podziałem na poszczególne poziomy zaawansowania – pozwalają
zobaczyć na czym nauka podstaw programowania może polegać
hackatony, w których uczestniczą też nauczyciele – pokazują praktyczne zastosowania
programowania
Link do źródła
http://program.ar/
Zob. też:
Aplikacje rozwinięte w trakcie jednego z hackatonów w trakcie forów regionalnych:
http://hackdash.org/dashboards/hackatong
Materiały edukacyjne organizacji Programación Scratch para niños (rozwinięte poza Program.AR,
ale polecane w ramach tego projektu): www.programacionscratch.com/
PROGRAMA TUS IDEAS
Chilijski program bardzo zbliżony w swoim zamyśle do Mistrzów Kodowania, również rozwijany przez
Samsung we współpracy z Fundación Pais Digital i Fundación Inria Chile. Program ruszył na
początku tego roku i składa się z cyklu warsztatów dla szkół (5 warsztatów 40 godzinnych),
konkursu AppDate oraz letniego obozu szkoleniowego. Programa Tus Ideas rozwinęło również
zestaw 7 szkoleniowych tutoriali z programowania w AppInventorze.
Osiągnięcia: Program jest na razie w fazie pilotażowej. W warsztatach wzięło udział 50 dzieci.
Kraj: Chile
Co wyróżnia tę dobrą praktykę:
zestaw kompleksowych tutoriali dot. programowania w AppInventorze w formacie
zbliżonym do Mistrzów Kodowania
Link do źródła
http://programatusideas.paisdigital.org
16 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
NAUKA PROGRAMOWANIA W EDUKACJI NIEFORMALNEJ
W odróżnieniu od nauki programowania w edukacji szkolnej inicjatywy, programy i działania, które
odbywają się poza czasem nauki w szkole w większości przypadków przyjmują postać płatnych,
pozalekcyjnych kursów, organizowanych przez podmioty komercyjne. W poniższym zestawieniu
nie omawiamy kursów, które nie wyróżniają się formułą prowadzonych zajęć, a skupiamy się
wyłącznie na tych, które Naszym zdaniem wnoszą coś nowego do myślenia o nauce
programowania dla dzieci.
OBOZY REKRUTACYJNE (BOOTCAMPS)
Coding bootcamps to intensywne, trwające od 8 do 24 tygodni kursy, które wyposażają uczniów
(na ogół absolwentów szkół średnich) w umiejętność programowania (w praktyce: przede
wszystkim kodowania) wystarczającą do podjęcia pracy jako programista (lub software
developer). Tym, co wyróżnia bootcampy jest intensywny, praktyczny program kształcenia w
pełnym wymiarze godzin, ukierunkowany na naukę umiejętności, które szczególnie poszukiwane
są przez pracodawców. Wielu organizatorów bootcampów gwarantuje uczestnikom znalezienie
pracy po zakończeniu nauki (np. uzależniając wysokość czesnego od uzyskania zatrudnienia –
kursant płaci za kurs tylko wtedy, gdy znajdzie pracę). W większości przypadków od uczestników
nie wymaga się uprzedniej wiedzy dot. programowania. Coding Bootcamps szczególnie
popularne są w Stanach Zjednoczonych. Choć adresowane są głównie do uczestników
dorosłych formuła może z pewnymi zastrzeżeniami zostać przystosowana do uczniów szkół
średnich.
Przykłady coding bootcamps: Bit Maker Labs, Brain Station, Code Fellows, bootcampy General
Assmebly. W Polsce coding bootcamps organizuje Coderslab.
Popularność intensywnych kursów programowania powoduje, że istnieją specjalne strony,
będące wyszukiwarkami tego typu kursów m.in.: www.coursereport.com, www.bootcamps.in,
www.thinkful.com/bootcamps oraz rankingi i zestawienia: www.skilledup.com/articles/the-
ultimate-guide-to-coding-bootcamps-the-exhaustive-list/.
PRAKTYKI ZAWODOWE Z PROGRAMOWANIA (APPRENTICESHIP PROGRAMS)
Podobnie jak bootcampy programy praktyk zawodowych skierowane są przede wszystkim do
absolwentów szkół średnich i mają na celu wyposażenie ich w umiejętności gwarantujące
późniejsze zatrudnienie w branży IT. Wiele z programów praktyk zawodowych nie wymaga od
uczestników uprzedniej wiedzy dot. programowania – akceptują absolwentów kierunków
nieinformatycznych i osoby, które właśnie zakończyły naukę na poziomie szkoły średniej. Niektóre
17 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
z tych programów mają komponent teoretyczny (po godzinach pracy), inne skupiają się
wyłącznie na komponencie praktycznym – uczeniu się w miejscu pracy, przy okazji realizacji
projektów w firmie.
Może wydawać się, że praktyki zawodowe nie mają zastosowania dla uczniów szkół
podstawowych. Engineering for kids pokazuje jak można wykorzystać tę formułę w zajęciach dla
dzieci na różnych poziomach edukacyjnych. Programy szkolenia połączone z praktykami oferuje
też This Kid Can Code.
Programy praktyk zawodowych z programowania, nie wymagających wykształcenia
informatycznego oferują m.in. Thoughtbot, Hash Rocket, 8th Light, Launch Code.
HACKATONY DLA DZIECI
Hackatony mogą być bardzo dobrą okazją do nauki programowania – ich zaletą jest to, że z
jednej strony podkreślają znaczenie innych umiejętności związanych z myśleniem komputacyjnym,
poza samym kodowaniem (identyfikowanie i rozwiązywanie złożonych problemów), z drugiej
umożliwiają pracę w grupie i rozwijają umiejętności interpersonalne, z trzeciej wzmacniają
motywację do dalszej nauki (sieć kontaktów, poczucie przynależności do szczególnej grupy
entuzjastów, gratyfikacja związana z osiągnięciem postawionego celu).
Hackatony często odbywają się pod określonym z góry tematem przewodnim – jednym językiem
programowania, określoną grupą odbiorców lub produktem, który ma być efektem prac
uczestników wydarzenia. Mogą mieć postać jednodniowego (częściej całonocnego) maratonu
programistycznego – osobnej imprezy, dedykowanej wyłącznie wspólnemu programowaniu
(HackKidThon, Hack the Future); mogą być wydarzeniem towarzyszącym np. hackaton dla dzieci
jako uzupełnienie imprezy dla dzieci i dorosłych (Code Motion), mogą też odbywać się regularnie,
tworząc w pewnej mierze sformalizowany ruch, lub na bieżąco, nieprzerwanie, dzięki
odpowiednim narzędziom wirtualnym (Hack Baltimore).
Codeathony są zbliżone w swojej formule do Festiwali Kodowania i tematycznych hackatonów –
wykorzystanie innej nazwy motywowane jest złymi skojarzeniami, jakie budzi słowo „hacker” i
dlatego wiele z rządowych i pozarządowych inicjatyw, które w zasadzie są tematycznymi
hackatonami, nosi tę nazwę (np. Health Codeathon organizowany przez Clinton Foundation). Tym,
co też wyróżnia Codeathony jest to, że nacisk położony jest na tworzenie projektów na wolnych
licencjach i dla celów niekomercyjnych (często prospołecznych). Organizowane są Codeathony
dla dzieci i młodzieży: np. Global Codeathon dla uczniów szkół podstawowych odbywa się w
Hanoi (Wietnam).
Wprowadzeniem do hackatonu może być jednodniowe wydarzenie w stylu Kids Hack Day, w
trakcie którego dzieci razem z rodzicami tworzą nowe urządzenia z użyciem przedmiotów
codziennego użytku: roboty ze słomek do picia napojów, świecące w ciemności instalacje i
niezwykłe konstrukcje z rzeczy, znalezionych w kuchennych szufladach. Polska dotychczas nie
uczestniczyła w Kids Hack Day.
18 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
Zob. też:
Hackatony jako narzędzie edukacyjne: http://edtechtimes.com/2015/01/26/using-hackathons-
learning-tool/
Czego uczą hackatony: http://yourstory.com/2015/01/hackathons-2014-learn/
KLUBY KODERÓW
Kluby i dobrowolne stowarzyszenia osób uczących się kodowania mogą wydawać się jedynie
pewną formą organizacji zespołu projektowego i pewnym statusem prawnym, jednak wpływają
na formułę w jakiej odbywa się nauka programowania i jednocześnie w wielu miejscach cieszą
się większą popularnością niż wydarzenia organizowane przez podmioty komercyjne. Mają wiele
zalet – tworzą silniejsze poczucie przynależności, a udzielający się w nich wolonatriusze często
wydają się bardziej wiarygodni, zarażają entuzjazmem uczestników klubów i swoim przykładem
(zawodowo zajmują się programowaniem) dają dowód przydatności umiejętności
programistycznych w życiu.
Coder Dojo działa na zasadzie dobrowolnego stowarzyszenia woluntariuszy-mentorów,
przybliżających programowanie dzieciom, które przychodzą na regularne spotkania i w swoim
czasie wolnym pod okiem mentorów uczą się podstaw kodowania. Na podobnej zasadzie działa,
szczególnie popularny w Wielkiej Brytanii, Code Club, z tym, że skierowany jest do uczniów w wieku
od 9 do 11 lat czy Geek Grils Carrots, które z kolei swoje działania kierują do kobiet i dziewczynek.
Formułę klubu, wzorowaną na Coder Dojo, wykorzystuje też inicjatywa Google’a: CS First Club
również zwraca się do wolontariuszy-mentorów, by zakładali oddolne kluby tematyczne,
pokazujące jak wykorzystać TIK w takich dziedzinach jak: muzyka, moda, opowiadanie
(storytelling), sztuka, społeczności (friends), projektowanie gier i social media, bazując na
wcześniej przygotowanych materiałach edukacyjnych. Młodych programistów zrzesza też Young
Rewired State, którego flagową inicjatywą jest coroczny Festiwal Kodowania.
Tym, co wyróżnia kluby na tle innych inicjatyw związanych z nauką programowania jest ich
oddolny charakter oraz deklarowane wartości. Wizja i misja klubów jest na ogół bardzo wyraźnie
sformułowana i odwołuje się do solidarności społecznej, inicjatywności oddolnej, autonomii,
wolnych zasobów (open source) i inicjowania zmiany społecznej (dla lepszej przyszłości).
KSZTAŁCENIE NA ODLEGŁOŚĆ
Nie dziwi, że kursy e-learningowe (materiał szkoleniowy, uzupełniony moderowanymi zadaniami),
MOOCi (czyli e-learningi z wideowykładami prowadzonymi przez wykładowcę) i tutoriale online
(przewodniki krok po kroku z interaktywnymi ćwiczeniami) wykorzystywane są do nauki
programowania – wydaje się, że to technologie edukacyjne szczególnie wygodne dla tych, którzy
przejawiają już zainteresowanie programowaniem i chcą zachować elastyczny czas realizacji
kursu. Jednocześnie nie jest to narzędzie szczególnie często wykorzystywane do nauki
programowania dla dzieci. Wynika to, jak się zdaje, z kilku przyczyn:
19 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
Udział w kursie online (niezależnie od jego formuły) wymaga silnej motywacji,
systematyczności i umiejętności dobrego zarządzania czasem – są to często
charakterystyki, których brakuje najmłodszym uczniom
Kursy online często dają mniejsze możliwości prośby o pomoc czy konsultację w momencie,
gdy natrafi się na trudność, uniemożliwiającą dalszą naukę
Większość dostępnych kursów online oferowana jest w języku angielskim (wiele też
chińskim i hiszpańskim) – poziom znajomości tego języka wśród polskich uczniów szkół
podstawowych nie pozwala na skorzystanie z nich
Brak interakcji z rówieśnikami może obniżać motywację najmłodszych uczniów
Z tych powodów większość oferowanych kursów online nauki programowania kierowana jest do
odbiorców dorosłych-osób zainteresowanych programowaniem oraz nauczycieli- nie zaś samych
uczniów.
Wyjątkiem jest, ciesząca się dużą popularnością na całym świecie, Khan Academy. W trakcie
kursów, dostępnych na platformie, uczestnicy uczą się programowania w JavaScripcie, HTML’u,
CSS. Z tutorialami poradzą sobie uczniowie ostatnich lat szkoły podstawowej oraz szkoły średniej.
Kursy dostępne są w polskim tłumaczeniu.
Można się spodziewać, że wraz z rosnącym zainteresowaniem nietradycyjnymi metodami
kształcenia, w tym zwłaszcza modelem Odwróconej Lekcji (Flipped Classroom) nauczyciele
zaczną chętniej sięgać po kursy online jako materiał teoretyczny dla uczniów, do opanowania w
domu. Barierą pozostaje dostępność takich kursów w różnych językach, na różnych poziomach
skomplikowania (kursy dla początkujących, zaawansowanych) dla różnych grup wiekowych (w
tym dzieci).
Przykładowe platformy i kursy online (anglojęzyczne).
Darmowe Płatne
Bento BaseRails
CodeAvengers Bloc
Codecademy CareerFoundry
CodeCombat Coder Camps
Codementor Learning Center CodeHS
Code School CodeQuad
Free Code Camp Coding Campus
HowToCode.io Hack Reactor Remote Beta
iLoveCoding Learnable
LiteratePrograms Lynda.com
Odin Project One Month Rails
Quackit Skillcrush Career Blueprints
StudyTonight Stuk
20 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
Thinkful Tealeaf Academy
Tuts+ Team Treehouse
Udemy theFirehoseProject
Viking Code School Prep Thinkful
W3Schools Udacity
Web Tech Learning
SZKOŁY LETNIE I ZIMOWISKA
Czas wolny od szkoły to dla wielu rodziców dobra okazja by zachęcić swoje pociechy do nauki
czegoś zupełnie nowego. Stąd popularność kilku- lub kilkunastodniowych obozów
tematycznych poświęconych nauce programowania, (zwłaszcza w Stanach Zjednoczonych i
Kanadzie.)
Znaczna część firm, które oferują komercyjne kursy programowania jako zajęcia pozalekcyjne
mają również w swojej ofercie letnie i zimowe (lub wiosenne tj. w trakcie Spring Break) obozy
programistyczne, w większości przeznaczone dla nastolatków. Np. uczestnicy the Make School
(wcześniej MakeGamesWithUs) Summer Academy, która trwa 8 tygodni i skierowana jest do
uczniów szkół średnich w San Francisco, Palo Alto i NYC, którzy mają już jakieś przygotowanie
programistyczne, tworzą w trakcie kursu aplikację na urządzenie mobilne. Clevio Coder Camp
organizuje obozy letnie dla dzieci w dwóch grupach wiekowych (6-12 i 7-18) w Indonezji, w
trakcie których dzieci uczą się tworzyć aplikacje edukacyjne, które następnie mogą sprzedać.
Ofertę letniego obozu z nauką programowania posiada też wspomniana wcześniej inicjatywa
Programa Tus Ideas z Chile, a także liczne organizacje promujące naukę programowania dla
dziewczyn (Girls Who Code, Ladies Learning Code).
Często szkoły letnie i zimowiska przyjmują formułę bardzo zbliżoną do obozów rekrutacyjnych
(bootcamps) – intensywny program szkoleniowy, zakończony konkretnym produktem (aplikacją,
grą komputerową, programem) lub portfolio produktów. Rzadziej zdarzają się programistyczne
obozy rekreacyjne, gdzie nauka programowania pomyślana jest jako aktywność stymulująca
ogólny rozwój intelektualny dziecka (nie zaś przepustka do większych możliwości zawodowych) i
połączona z beztroską zabawą.
Przykłady letnich programów nauki programowania:
https://www.kidscodecs.com/resources/technology-summer-camps-kids/
JEDNODNIOWY KURS DE-KODOWANIA
Jednodniowe kursy Decoded skierowane są do tych, którzy w jeden dzień chcieliby zrozumieć
konkretny wycinek kompetencji związanych z programowaniem (Code_in a Day, Hacker_in a Day,
Data_in a Day, Tech_in a Day). Ale organizacja oferuje też jednodniowe kursy dla nauczycieli,
którzy chcieliby uczyć programowania (CodeED_in a Day). Filozofią, jaka przyświeca działalności
21 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
Decoded jest Cyfrowe Oświecenie – przekonanie, że programowanie i wiedza informatyczna są
bardziej przystępne niż nam się wydaje, a dostęp do nich ogranicza po prostu hermetyczne,
żargonowe słownictwo i nieznajomość kilku kluczowych konceptów, na których się opiera.
Dlatego jednodniowe kursy, choć nie uczynią z nikogo profesjonalnego programisty, przyczyniają
się do demistyzacji programowania i branży IT. Kursy uzupełnia platforma Playto, zawierająca
narzędzia edukacyjne, które przyśpieszą naukę.
Choć Decoded kieruje swoją ofertę przede wszystkim do odbiorców dorosłych (w tym zwłaszcza
klientów biznesowych) pomysł jednodniowego wydarzenia od-kodowującego specjalistyczny
język programowania może znaleźć swoje zastosowanie w edukacji.
KURSY POZALEKCYJNE DLA GRUP WYKLUCZONYCH CYFROWO
Część pozaszkolnych programów stawia sobie za cel wyrównywanie szans edukacyjnych poprzez
stwarzanie możliwości dokształcania dla grup, które nie mają dostępu do płatnej oferty
doskonalenia lub które z jakiś powodów są defaworyzowane w środowisku szkolnym:
Code for Progress to program dedykowany grupom, które historycznie z różnych powodów zostały
wykluczone z procesu rozwijania nowych technologii (grupy wykluczone społecznie: LGBTQ,
mniejszości etniczne, kobiety). Roczny kurs rozpoczyna się 16-tygodniowym stacjonarnym kursem
w Waszyngtonie, który łączy w sobie naukę programowania i trening antydyskryminacyjny.
Uczestnikom ułatwia się znalezienie zatrudnienia w organizacjach, które walczą o sprawiedliwość
społeczną.
Code now w partnerstwie z lokalnymi organizacjami pozarządowymi oferuje bezpłatne,
pozalekcyjne zajęcia z programowania dla uczniów szkół średnich o zmniejszonych szansach
edukacyjnych i ze społeczności dyskryminowanych. Hack the Hood to z kolei organizacja, która
uczy młodzież z grup wykluczonych społecznie i ekonomicznie, z ubogich środowisk i mniejszości
etnicznych programowania (głównie technologii webowych), by tworzyli strony internetowe dla
małych, lokalnych przedsiębiorstw.
Grand Circus stara się zmienić oblicze obecnego Detroit. Kieruje swoje działania do osób z
ubogich dzielnic tego industrialnego miasta. Kobietom, które ukończą organizowane przez Grand
Circus bootcampy daje możliwość przećwiczenia innych umiejętności, niezbędnych do
otrzymania pracy np. prezencji podczas rozmowy kwalifikacyjnej. Code in the schools daje
możliwość nauki programowania dzieciom z rodzin zagrożonych wykluczeniem społecznym w
Baltimore. Kids Code It skupia się na dzieciach z rodzin pochodzących z Kenii, zaś Zamrize z Zambii.
Transcode oferuje naukę programowania dla osób transgenederowych i transseksualnych.
Obecnie wiele inicjatyw związanych z programowaniem kierowanych jest do kobiet i dziewcząt,
jako grupy niedoreprezentowanej w branży IT. Uwagę tych organizacji skupia raczej wyposażenie
ich w niezbędne umiejętności, w tym programowanie, niż walka ze stereotypami, które
funkcjonują w branży IT i które często podzielają pracodawcy. Trudno jest znaleźć kursy
22 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
przeznaczone dla mniej zdolnych uczniów, czy takich którzy stwarzają trudności wychowawcze
a jednocześnie nie wywodzą się ze środowisk defaworyzowanych.
WYDARZENIA PROMUJĄCE NAUKĘ PROGRAMOWANIA
Poniżej omawiamy jednorazowe (często jednodniowe lub kilkugodzinne) inicjatywy i wydarzenia,
których rolą jest nie tyle nauka programowania, co rozpropagowanie idei, że każdy może
spróbować swych sił w programowaniu i że nie jest to dziedzina zarezerwowana tylko dla
nielicznych, wyjątkowo zdolnych uczniów, którzy planują w przyszłości zatrudnić się jako
programiści.
FESTIWALE KODOWANIA
Największe tego typu wydarzenie organizuje Young Rewired State (sieć młodych entuzjastów
programowania). Festival of Code odbywa się w Wielkiej Brytanii co roku od 2009. Edycja 2015
odbędzie się w dniach 27 lipca do 2 sierpnia w Plymouth. W innych miastach na świecie (np. Berlin,
San Francisco) odbyły się mniejsze, ale identyczne w swojej formule festiwale z tym, że pod hasłem
Young Rewired State Fest.
Festival of Code trwa tydzień i gromadzi średnio 1200 młodych entuzjastów programowania z
Wielkiej Brytanii. Uczestnicy, pod okiem mentorów-wolontariuszy, proponują cyfrowe rozwiązania
do rzeczywistych problemów, z jakimi borykamy się we współczesnym świecie i rywalizują ze sobą
w kilku kategoriach: Best in show, Best example of code, Best example of design, Code a better
country I Should exist award. Uczestnikami mogą być osoby, które nie ukończyły 18 lat. Festiwal
kończy się prezentacją projektów finalistów i galą rozdania nagród.
DNI I GODZINY KODOWANIA
Wydarzenia mające na celu popularyzację nauki programowania o międzynarodowym zasięgu.
Na ogół inicjatorzy akcji zachęcają do organizowania w wyznaczonych terminach własnych
wydarzeń i informowania na stronach inicjatywy. Niektóre z najpopularniejszych to:
Code Day – 22-23 maja 2015 – trwający 24 godziny maraton kodowania, jednocześnie w 29
miastach w Stanach Zjednoczonych.
23 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
Scratch Day – 9 maja 2015 – jednodniowe wydarzenie na całym świecie, każdy może zgłosić
swoją inicjatywę. Inspiracje do różnych typów zajęć, jakie w ramach dnia Scratcha można
przeprowadzić znajdują się tu.
Code Week – ostatnia edycja 11-17 października 2014, wzięło w niej udział 38 państw i blisko
100 000 uczestników. Inicjatywa Komisji Europejskiej, mająca na celu popularyzację nauki
programowania.
Hour of Code – jednogodzinne wprowadzenie do programowania. Godzina kodowania odbywa
się w trakcie Tygodnia Edukacji Nauk Informatycznych . Poprzednia edycja odbyła się 8-14
grudnia 2014. Organizator: code.org.
CODE PARTY
Pomysł na imprezę tematyczną związaną z programowaniem dla najmłodszych jest adaptacją
podobnych wydarzeń, organizowanych dla dorosłych (np. Mozilla Summer Code Party).
Pomysłów na to, jak taka impreza miałaby wyglądać i o czym nie należy zapominać organizując
ją dostarczają materiały opracowane przez Made with Code Google (Made with Code Party Kit).
Połączenie muzyki, tańca, dobrej zabawy i kodowania to zdaniem Reshmy Saujani z Girls Who
Code pomoże przyciągnąć do programowania dziewczyny.
HACKERSPACE
Hackerspace’e (też makerspace lub creative space) to przestrzenie, często tworzone i/lub
zarządzane przez grupę kreatywnych osób, zainteresowanych kulturą hackerską i
makerspace’ową, ruchem DIY (zrób to sam), technologiami i nauką. Hackerspace’e funkcjonują
jako laboratoria, w których odbywają się warsztaty tematyczne np. stolarskie, elektroniczne,
robotyczne, dotyczące wolnego oprogramowania lub Open Hardware. Fab Laby przypominają
makerspace’e, z tym, że większy nacisk położony w nich jest na technologie wytwórcze i
protypowanie – stąd na wyposażeniu Fab Labu musi znaleźć się np. drukarka 3D i/lub maszyny
CNC (np. maszyny sterowane numerycznie). W Polsce hackerspace/Fab Laby są w większości
dużych miast.
Fab Laby/ Makerspace często mają również ofertę dla młodzieży i dzieci (np. warsztaty robotyki
czy animacji dla najmłodszych w Fab Lab Gdynia), która uzupełnia ofertę dla dorosłych.
Popularność zyskują też jednak Fab Laby specjalnie dla dzieci. O ich zaletach przekonują twórcy
takich przestrzeni: Paolo Blikstein z programu FabLab@School, będącego częścią Stanford
University’s Transformative Learning Technologies Lab czy Wanny Hersey z Bullis Charter School.
Wiele Fab Labów oferuje warsztaty z programowania np. w Scratchu dla dzieci (np. Fab Lab El
Paso). Inne z kolei skupiają się na programowaniu maszyn CNC, które wymagają znajomosci
podstaw programowania i projektowania 3D (np. Fab Lab Kids Barcelona, NYC The Makery).
Przestrzenie kreatywne dają możliwość popularyzacji nauki programowania przez stworzenie
przestrzeni, gdzie nauka programowania odbywa się niejako „przy okazji”. Tego typu przestrzenie
24 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
powstają w bibliotekach, świetlicach szkolnych oraz parkach naukowo-technologicznych, a
wskazówek jak je zorganizować można znaleźć na stronach poświęconych kulturze DIY (np.
Create a makerspace for kids) czy w publikacjach Centrum Edukacji Obywatelskiej dot. projektu
Educational spaces 21. Open up!
WEHIKUŁ CYFROWEJ INKLUZJI
Vehicle of Mass Inclusion to interesujące przedsięwzięcie Future Techies, przedsiębiorstwa
społecznego na rzecz cyfrowej inkluzji (wyrównywania szans). Wehikułem jest Volkswagen
Camper, którym grupa ochotników przemierza Wielką Brytanię zatrzymując się co tydzień w innej
miejscowości by tam, w wybranej szkole (lub Domu Młodzieży) przeprowadzić warsztaty z
umiejętności cyfrowych: programowania, druku 3D i wykorzystania np. kontrolerów z sensorami
ruchu. W ciągu najbliższego roku Vehicle of Mass Inclusion odwiedzi 52 miejscowości, gdzie
przeprowadzi swoje warsztaty z myślą o włączeniu grup, których dostęp do nowych technologii,
a zwłaszcza oferty edukacyjnej ją popularyzującej jest ograniczony.
METODY PRACY Z UCZNIAMI
Do nauki programowania można wykorzystać szerokie instrumentarium metod wykorzystywanych
do nauki z TIK, m.in. opisywane w publikacjach Centrum Edukacji Obywatelskiej. Opisywane
poniżej dobre praktyki odzwierciedlają interesujące trendy w metodyce nauki programowania –
należy je potraktować jako nie tyle wyczerpujące zestawienie dostępnych metod i narzędzi, co
przegląd inspirujących trendów, których skuteczność i nowatorstwo przekłada się na ich rosnącą
popularność.
COLLABORATIVE LEARNING – UCZENIE OPARTE NA WSPÓŁPRACY
Metody oparte na współpracy (tłumaczone też niekiedy jako uczenie kolaboratywne) zyskują na
popularności w pedagogicznej refleksji dot. nowych technologii w edukacji. Liczne badaniaxv
dowodzą ich skuteczności nie tylko w rozwijaniu umiejętności interpersonalnych, ale też
kompetencji podstawowych i przekrojowych (meta-umiejętności): rozwiązywania problemów,
wyszukiwania informacji itp. Szczególnie entuzjastycznie postrzega się ich wpływ w nauczaniu
STEM. Uczenie się oparte na współpracy wyrasta z filozofii społeczności uczących się – założenia,
że proces uczenia się nie ogranicza się do uczniów, ale obejmuje całą społeczność szkolną, a
zatem uczniowie uczą się również od innych uczniów, nauczyciele od swoich podopiecznych i od
siebie nawzajem.
25 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
Według sondażu przeprowadzonego w ramach badania opublikowanego w „Survey of Schools:
ICT in Education” wykorzystanie nowych technologii ułatwia pracę w grupie i wpisuje się uczenie
się oparte na współpracy. I vice versa. Collaborative learning (lub cooperative learning) jest
również zyskującym na znaczeniu trendem w kształceniu kompetencji cyfrowych – uczniowie
pracujący w tandemach lub grupach są bardziej kreatywni i chętniej podejmują zadania
wymagające samodzielności i eksperymentowania, wykazują się zatem podejściem i postawami
szczególnie pożądanymi w uczeniu się programowania i nowych technologii.
Aby uczenie oparte na współpracy przebiegało harmonijnie i dawało oczekiwane rezultaty nie
wystarczy podzielić uczniów na grupy i zlecić im realizację określonego zadania. Ważne jest by
obecne były 5 komponentówxvi:
pozytywna współzależność członków grupy – uczniowie otrzymują zadanie, które aby
wykonać muszą działać wspólnie, jest dla nich zrozumiałe, że strategie indywidualne nie
będą skuteczne
zachęcająca interakcja twarzą-w-twarz – opierająca się na życzliwym i chętnym do
pomocy innym stosunku do innych członków grupy, z tego powodu wielu entuzjastów
nauczania opartego na współpracy zwraca uwagę na potrzebę aktywnego
kształtowania postaw prospołecznych w klasie, w tym wzajemnego zaufania
odpowiedzialność indywidualna i zbiorowa – pomimo, że za efekt pracy uczniowie
odpowiadają zbiorowo jako grupa, muszą istnieć narzędzia monitorowania
indywidualnego zaangażowania, tak że minimalizować sytuacje w których pojawiają się
jednostki nie przykładające się do wspólnego celu
umiejętności interpersonalne – praca w grupie wymaga sprawnej komunikacji i empatii
członków grupy, dlatego rozwijanie tych umiejętności powinno odbywać się od
najmłodszych lat, również w środowisku szkolnym
proces grupowy – członkowie grupy powinni umieć ocenić, jak przebiega proces grupowy
i umieć na niego wpływać, gdy nie funkcjonuje dobrze (np. poprzez przydzielanie ról,
ustalanie działań monitorujących, proaktywne rozwiązywanie konfliktów)
Badania Johnson and Johnsonxvii pokazują, że uczenie oparte na współpracy wpływa pozytywnie
na ilość wysiłku wkładaną w wykonywane zadanie, jakość relacji wewnątrz grupy oraz zdrowie
psychologiczne, definiowane przez badaczy jako umiejętność to tworzenia i podtrzymywania
relacji z innymi.
Niektóre przedstawione niżej metody (PLTL, PP, mentoring) wpisują się w filozofię nauczania
opartego na współpracy. Nauczanie oparte na współpracy można włączać jako jedną z metod
wykorzystywanych na zajęciach z nauki programowania, ale też jako przyświecającą im myśl
przewodnią – że programowania najlepiej uczyć się w grupie.
Zastosowanie metody w nauczaniu programowania dla dzieci - uwagi metodyczne:
Uczniowie mogą być niechętni nauce w tej formie – praca młodszych dzieci wymagać
będzie od nauczyciela bliższej obserwacji i moderowania dynamiki grupy. Nie zawsze
dzieci będą dysponować wystarczającą dojrzałością społeczną, by moderować pracę
26 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
grupy samodzielnie, dodatkowo odpowiedzialność indywidualna może powodować stres
u najmłodszych dzieci. Warto w takim przypadku zmniejszać poczucie indywidualnej i
grupowej odpowiedzialności na rzecz zabawy i budowania pozytywnych relacji w grupie.
Nauczyciele mogą czuć się nieprzygotowani do prowadzenia zajęć nietradycyjnymi
metodami – nauczanie oparte na współpracy, choć może wydawać się metodą w jakieś
mierze stosowaną już w środowisku szkolnym (np. nauczanie metoda projektu) i w związku
z tym intuicyjną, w rzeczywistości również wymaga odpowiedniego przygotowania
metodycznego i refleksji w kontekście wykorzystywanej dotychczas metodyki.
Chaos – praca w grupie wiąże się z mniejszą kontrolą nauczyciela nad przebiegiem pracy.
Trudniej jest monitorować jej tempo, niekiedy uczniowie tracą z oczu cel ich pracy i nie
pracują efektywnie. Stąd zwrócenie uwagi na proces grupowy (zwłaszcza w starszych
grupach) ma znaczenie – uczniowie sami uczą się zarządzania czasem i pracą swojej
grupy poprzez refleksję nad dynamiką ich pracy po zakończeniu zadania (Co poszło
dobrze? Co poszło nie tak? Czy w grupie były konflikty? Jak zostały zażegnane?)
Praca grupowa jako eksperyment – badacze tej metody przestrzegają przed podejściem
w którym nauczyciel sam nie uważa nauczania opartego na współpracy za skuteczną
metodę. W takich sytuacjach istnieje ryzyko, że uczniowie nie zaangażują się w
przydzielone im zadanie i zniechęcą się do kolejnych prób takiej organizacji ich pracy w
przyszłości.
Jeden komputer i grupa uczniów? – nauczanie oparte na współpracy wymaga
przemyślenia przez nauczyciela jako przebiegać będzie programowanie (np. wstępnego
podzielenia pracy uczniów na mniejsze moduły, tak by uczniowie mogli na etapie
kodowania pracować równolegle).
Zob. też: Technology-enhanced collaborative learning. Briefing Paper, European Schoolnet
Observatory
PEER-LED TEAM LEARNING
Peer-Led Team Learning (PLTL) narodziło się w latach dziewięćdziesiątych w Nowym Jorku –
nauczyciel chemii na uczelni wyższej zauważył, że studenci mieli problem z zaliczeniem
nauczanego przez niego przedmiotu i postanowił poprosić studentów starszych lat, którym udało
się zdać egzamin by pomogli młodszym kolegom i koleżankom. Eksperyment zakończył się
sukcesem – okazało się, że studenci pod okiem instruktora, który dopiero co sam borykał się z
podobnymi trudnościami, opanowali materiał z którym mieli takie trudności. Zaletą okazało się to,
że uczestnicy nie obawiali się zadawania starszym kolegom pytań (podczas gdy w trakcie
wykładów obawiali się odsłonić ze swoja niewiedzą przed profesorem), a ich tutor potrafił
antycypować to, z czym będą mieli szczególne problemy (znał to bowiem z autopsji). Metoda
PLTL polega na, na ogół uzupełniających wykłady, warsztatach w grupach 8-12 osobowych
prowadzonych przez studenta, który niedawno ukończył dany kurs (co istotne, okazało się, ze
metoda nie jest równie skuteczna, gdy ćwiczenia prowadzą studenci, którzy egzamin zdali kilka
lat wcześniej) i który zgodnie ze wskazówkami wykładowcy omawia z grupą kolejne,
problematyczne dla nich zagadnienia.
27 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
Badania edukacyjne potwierdziły wysoką skuteczność metody PLTL w nauczaniu programowania
oraz informatyki (computer science)xviii, zwłaszcza wśród grup niedostatecznie reprezentowanych
tj. kobiet i mniejszości etnicznychxix. Co ciekawe, badania pokazują również, że efekt edukacyjny
PLTL utrzymuje się w wirtualnych środowiskach uczenia się i w kształceniu na odległość xx .
Włączanie elementów typowych dla uczenia opartego na współpracyxxi dodatkowo wpływa na
osiągany efekt edukacyjny: zwrócenie uwagi na proces grupowy, analiza dynamiki grupy i metod
rozwiązywania konfliktów może dodatkowo wzmocnić poczucie przynależności grupowej i
wsparcia ze strony innych członków grupy.
Zastosowanie metody w nauczaniu programowania dla dzieci - uwagi metodyczne:
Nadzór nauczyciela – w trakcie warsztatów prowadzonych metodą PLTL nie uczestniczy
nauczyciel/wykładowca. Jego obecność obniża skuteczność metody – członkowie grupy
czują się bardziej skrępowani i nie zadają pytań równie chętnie jak w sytuacji, gdy
nauczyciel jest nieobecny. Ponadto sam tutor może czuć, że jest to tylko symulacja i nie
poczuwać się do odpowiedzialności za efekt edukacyjny. Wyzwaniem zatem w
środowisku szkoły podstawowej jest odpowiedni wybór ucznia prowadzącego tego typu
zajęcia oraz pozostawienie uczniów bez opieki nauczyciela. Dlatego warto rozważyć:
o Wybór ucznia starszego od pozostałych uczniów (nie będącego ich rówieśnikiem),
który sprawdził się w sytuacjach wymagających odpowiedzialności (np. sprawdził
się jako gospodarz klasy lub skarbnik)
o Zastąpienie jednego tutora tandemem – dwóch uczniów nie tylko będzie siebie
wspierać, w sytuacji gdyby nie znali na jakieś pytanie, ale też łatwiej poradzi sobie
z innymi trudnościami (np. z moderowaniem zachowania grupy), a także w razie,
gdyby sytuacja zaczęła przerastać tutora drugi prowadzący może zareagować i
wezwać nauczyciela
o Zorganizowanie zajęć w bibliotece – obecność bibliotekarza pozwoli spełnić
warunek formalny dot. niepozostawiania dzieci bez opieki nauczyciela,
jednocześnie uczniowie nie postrzegają bibliotekarza tak samo jak nauczyciela i
presja związana z jego oceną jest mniejsza
o Nauczyciel powinien być dostępny w trakcie warsztatów (np. w drugiej sali) – tak,
żeby był w stanie zareagować, gdyby pojawiły jakieś problemy
Motywacja tutora/ów – problemem może być utrzymanie zainteresowania starszych
uczniów prowadzeniem zajęć dla młodszych kolegów/koleżanek przez dłuższy okres czasu.
Aby zapobiec sytuacji, w której warsztaty przestają się odbywać, bo instruktorzy nie chcą
ich dalej prowadzić można rozważyć
o komunikowanie możliwości bycia tutorem jako wyróżnienia (i bieżącej komunikacji
np. na stronie szkoły sukcesów grupy i ich prowadzącego)
o wyznaczanie krótszych cykli (np. miesięcznych) warsztatów (tzn. trwających np. 4
tygodnie po 1 godzinie tygodniowo)
o rotacyjnego systemu tutorów (co tydzień inny tandem) 4) wprowadzenia
elementów grywalizacji jako motywacji dla tutorów
Przygotowanie tutorów – młodzi tutorzy nie posiadają wystarczającego przygotowania
dydaktycznego, dlatego nauczyciel powinien zadbać o to, żeby:
28 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
o Przed zajęciami omówić z tutorem/ami zagadnienia, które planują omówić na
zajęciach
o Przed zajęciami: omówić z tutorami metody, którymi chcą te zajęcia
przeprowadzić (nie wchodząc w szczegóły, ale sprawdzając jak uczniowie chcą
te zajęcia poprowadzić)
o Po zajęciach: omówić problemy, jakie ewentualnie się pojawiały i sposoby, jak
uniknąć ich w przyszłości
o Uwrażliwiać uczniów-tutorów, że PLTL nie polega na prowadzeniu wykładu, ale
pracy grupowej (maksymalnie nieformalnej) z grupą
o Przygotować grupę na nową formułę zajęć – upewnić się, że rozumieją, że jest to
dobrowolna inicjatywa ich starszych kolegów/koleżanek którą powinni doceniać
Na warsztaty PLTL najlepiej wybrać zagadnienia z którymi uczniowie mają szczególny
problem lub takie, które szczególnie ich zainteresowały. Warsztaty PLTL powinny
uzupełniać zajęcia prowadzone tradycyjną metodą.
Dlaczego PLTL jest skuteczne.
Zob. też:
animacja na temat PLTL: https://youtu.be/CHeV3VqnPqM
Jak PLTL pomaga zaangażować dziewczynki w naukę programowania i STEM:
www.ncwit.org/resources/how-do-you-retain-women-through-collaborative-learning-peer-led-
team-learning-case-study-2
29 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
PAIR PROGRAMMING
Pair programming, czyli programowanie w parach, to technika stosowana nie tylko w nauce
programowania (początkowo wykorzystywana przede wszystkim w trakcie kursów dla
poczatkujących, z czasem zaadaptowana do kursów bardziej zaawansowanych), ale też w
środowisku biznesowym, w profesjonalnym środowisku programistycznym, w firmach
specjalizujących się w IT i software development (np. Pivotal Labs, Xtreme Labs). Pair
programming to również jedna z technik promowanych przez Agile Alliance jako poprawiające
efektywność pracy programisty. Efektywność programowania w parach została dowiedziona w
badaniachxxii, zarówno w przypadku zaawansowanych jak i poczatkujących programistów.
Na czym polega programowanie w parach? Dwie osoby otrzymują wspólne zadanie, siadają
przed jednym komputerem i … zaczynają programować. Jedna osoba pisze kod, druga
„nawiguje” tj. mówi, co powinno być kolejnym krokiem, komentuje bieżącą pracę, stara się
przewidzieć trudności. Następnie następuje zamiana ról. Aby programowanie w parach
przyniosło oczekiwane efekty należy zadbać o to, żeby:
o Osoby w parze były na zbliżonym poziomie zaawansowania. Pair programming to nie to
samo co mentoring, dlatego ważne jest, żeby członkowie tandemu mieli poczucie, że ich
poziom wiedzy i umiejętności jest zbliżony. W innym przypadku powstaje ryzyko, że jedna
osoba będzie bardziej aktywna, podczas gdy druga przyjmie postawę pasywną.
o Planowanie. Najskuteczniejsze są krótkie, ale regularne spotkania, a także wydzielona
przestrzeń (choćby wizualnie).
o Komunikacja. Programowanie w parach wymaga rozmawiania – w związku z tym
szczególnie istotna staje się umiejętności komunikacyjne i ustalenie zasad dot. komunikacji
w parze (uprzejmość, dopytywanie początkowo mogą wydawać się sztuczne, ale z
czasem przełożą się na większą efektywność pracy pary)
o Mity dot. produktywności pracy w parze. Opór przed programowaniem w parze wynikają
z przekonań, ze takie programowanie będzie mniej skuteczne, bardziej czasochłonne i w
związku z tym, w środowiskach biznesowych, bywa oceniane jako mniej opłacalne
ekonomicznie. Tymczasem badania empiryczne dowodzą czegoś zupełnie przeciwnego
– dlatego omawianie i demistyfikowanie funkcjonujących mitów jest istotne, żeby efekt
pracy pary programistycznej nie był obniżany przez brak entuzjazmu jego członków.
o Badania empirycznexxiii pokazują, że programowanie w parach jest najskuteczniejsze przy
rozwiązywaniu problemów niestandardowych, takich co do których żaden z członków
tandemu nie ma jeszcze całkowitej jasności i gdzie komunikacja będąca częścią pracy w
parze potrafi naświetlić wielość możliwych definicji oraz rozwiązań problemu (open-ended
problems).
Zastosowanie metody w nauczaniu programowania dla dzieci - uwagi metodyczne:
Dobór członków pary – ważne jest, żeby były to dzieci na zbliżonym poziomie
zaawansowania, o podobnych umiejętnościach. Umieszczenie w tandemie osoby
zaawansowanej i dopiero uczącej się będzie skutkował wycofaniem się słabszej osoby z
pracy. Skład par nie powinien się zmieniać na przestrzeni czasu.
30 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
Dobór tematu – do programowania w parach najlepiej wybrać zadanie będące
zamkniętym projektem (nie ćwiczenia powtórkowe), wymagający od uczniów
kreatywności i umożliwiający szukanie różnych rozwiązań.
Zmiana ról – uczniom należy przypominać o tym, aby zmieniali się rolami – aby raz jedno,
a raz drugie pisało lub układało kod, a drugie w tym czasie planowało kolejny fragment
kodu.
Poszukiwanie błędów – warto przypominać uczniom, że druga „para oczu” ma im również
pomóc wyszukiwać błędy w kodzie, dlatego osoba niekodująca w danym momencie
powinna przyglądać się na bieżąco wprowadzanym zmianom. Dobrze poinformować
uczniów, jak mówić kolegom/koleżankom, że popełnili błąd w taki sposób by nie poczuli
się dotknięci.
Zob. też:
Pivotal Labs – dlaczego wykorzystują pair programming: www.airpair.com/pair-programming
Uwagi Agile Alliance dot. pair programming: http://guide.agilealliance.org/guide/pairing.html
O zaletach pair programming (film): https://youtu.be/rIcUXcyC6BA
Jak wdrożyć pair programming?: www.wikihow.com/Pair-Program
Podręcznik dot. pair programming: Pair Programming Illuminated, Laurie Williams, Robert R.
Kessler
Jak programowanie w parach pomaga zaangażować dziewczynki w naukę programowania:
www.ncwit.org/sites/default/files/resources/pairprogramming_retainingwomencollaborativelear
ning_practice.pdf
MENTORING
Pomimo, że w przypadku mentoringu nauka również odbywa się w parach między mentoringiem
a pair programming występuje jedna, istotna różnica, a mianowicie mentorzy i ich
uczniowie/uczennice różnią się między sobą poziomem wiedzy i umiejętności. Rola mentora
polega się na inspirowaniu ucznia, pomaganiu mu w zdobywaniu potrzebnych informacji i
umiejętności, nie zaś na współwykonywaniu z nim zadania. Dlatego wyraźne określenie w jakiej
roli występuje drugi programujący (mentor czy partner w pair programming) ma znaczenie dla
uzyskiwanego efektu edukacyjnego. Mentoring szczególnie dobrze sprawdza się w grupach,
rekrutujących się spośród uczniów o zmniejszonych szansach edukacyjnych lub stereotypowo nie
zajmujących się programowaniem (dziewczynki, niektóre mniejszości etniczne i narodowe) –
wówczas warto zadbać by mentor również reprezentował mniejszość do której należy dany uczeń.
W ten sposób bowiem wzmacnia się jednocześnie pozytywne wzorce osobowe, których brak
często decyduje o mniejszej obecności danej grupy wśród osób programujących.
31 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
Zastosowanie metody w nauczaniu programowania dla dzieci - uwagi metodyczne:
Dobór mentorów – w środowisku szkolnym możliwe są tu dwie strategie: mentorami mogą
być uczniowie starszych klas, którzy potrafią już trochę programować i wykorzystują swoje
umiejętności do np. tworzenia gier. Tacy mentorzy dobrze sprawdzą się jako osoby
zachęcające do nauki programowania na samym początku nauki. Mentorami mogą być
jednak również absolwenci szkoły, a nawet świeżo upieczeni studenci. Ich podopiecznymi
w tej sytuacji powinni być nieco starsi uczniowie – mentorzy będę w takiej sytuacji dobrym
wzorcem osobowym dla uczniów, pokazującym do czego nauka programowania może
się przydać w przyszłości.
Mentorzy jako przewodnicy szczególnie zdolnych. Mentorzy (np. wolontariusze-studenci)
dobrze sprawdzą się jako osoby, które mogą pomóc rozwinąć się osobom szczególnie
uzdolnionym. Dla nauczyciela może to być wygodne rozwiązanie w sytuacji, gdy wydaje
mu się, że sam nie posiada już wystarczającej wiedzy, żeby sprostać potrzebom i
oczekiwaniom swoich podopiecznych.
Mentoring w klasie. Mentoring najlepiej sprawdzi się jako formuła uzupełniająca kurs nauki
programowania, po godzinach nauki szkolnej. Dzięki temu kontakt z mentorem będzie dla
ucznia wyróżnieniem i okazją do realizacji bardziej ambitnych projektów.
Mentor nie jest korepetytorem. Główną rolą mentora jest zachęcanie ucznia do
podejmowania coraz ambitniejszych wyzwań i doradzanie mu w rozwiązywaniu
problemów, nie zaś rozwiązywanie trudności za niego czy powtarzanie z nim materiału
omawianego w szkole.
Zob też.
Program uczący programowania w Scratch w całości prowadzony w formule mentor-uczeń:
http://breakoutmentors.com/
PROGRAMOWANIE BEZ KOMPUTERA
Nauka programowania bez komputera może brzmieć nieprawdopodobnie. A jednak powstaje
wiele materiałów, które uczą umiejętności potrzebnych do programowania bez użycia
komputera. Jest to możliwe, ponieważ jak już wspomniane zostało we wstępie programowanie to
nie tylko kodowanie. Umiejętności analitycznego myślenia, wymyślania rozwiązań i budowania
algorytmów (a także szerzej: myślenie komputacyjne) można rozwijać przy pomocy znacznie
prostszych środków dydaktycznych i bez nowych technologii. Kodowanie również wymaga
innych umiejętności, które zdobyć można zanim opanuje się jakikolwiek język programistyczny:
dostrzeganie błędów w skrypcie, zrozumienie syntaktyki języka programistycznego nie byłoby
możliwe bez znajomości logiki i podstaw gramatyki jakiekolwiek języka naturalnego.
Rozwijanie myślenia komputacyjnego może odbywać się przy pomocy specjalnie
zaprojektowanych w tym celu ćwiczeń. Bogaty zbiór takich ćwiczeń znaleźć można na stronie
Computer Science Unplugged. Choć ćwiczenia dotyczą nie tylko samego programowania, ale
szerzej informatyki (np. teorii informacji) mogą stanowić uzupełnienie praktycznych zajęć ze
32 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
Scratchem lub innym językiem programowania. Ćwiczenia nie wymagające komputera są też
elementem kursu na code.org.
Myślenie komputacyjne świetnie rozwijają również gry, w tym gry planszowe oraz karciane.
Przykładem gry wykorzystywanej do nauki programowania jest promowany w trakcie CodeWeek
Cody&Roby. O tym, jak nauka trików karcianych może pomóc zrozumieć niektóre z koncepcji
informatycznych dowiemy się ze strony Computer Science for Fun. Wprowadzeniem do
programowania może być też refleksja nad tym w jaki sposób różne urządzenia działają (i na czym
polega ich zaprogramowanie, jakie komendy trzeba im wydać w tym celu) – można to zrobić
przy okazji Caine’s Arcade Cardboard Challenge.
Dostępne są również książki dla dzieci, które pomagają im w lekki i zabawny sposób zrozumieć
zagadnienia informatyczne: Computational Fairy Tales czy Best Practices of Spell Design
Jeremy’ego Kubicy albo Lauren Ipsum Carlosa Bueno.
Zastosowanie metody w nauczaniu programowania dla dzieci - uwagi metodyczne:
Środki dydaktyczne. To, że dane zadanie nie wymaga komputera nie oznacza, że w ogóle
nie będą potrzebne specjalne rekwizyty, dlatego często ich wykorzystanie w trakcie lekcji
może wymagać poniesienia większych kosztów lub zachęcenia dzieci do przyniesienia
materiałów z domu.
Ponieważ większość ćwiczeń z myślenia komputacyjnego wymaga myślenia bardziej
abstrakcyjnego niż kodowanie może być wyzwaniem dla niektórych uczniów (tego typu
zadania wyraźniej unaoczniają różnice intelektualne między uczniami). Warto po
zakończeniu zadania poświęcić dodatkowy czas na przedyskutowanie wniosków, do
których dane zadanie prowadzi.
WŁĄCZANIE GRUP WYKLUCZONYCH
Wśród grup, które są niedostatecznie reprezentowane wymienia się kobiety oraz mniejszości
etniczne (w Stanach Zjednoczonych) i narodowe (w tym dzieci imigrantów). Do tej grupy
należałoby również dołączyć uczniów i uczennice, którzy nie uczą się programować ze względu
na trudną sytuację materialną ich rodziny (wiele z programów edukacyjnych związanych z
programowaniem jest płatnych) czy mniejsze szanse edukacyjne (w Polsce dot. zwłaszcza
uczniów szkół zawodowych, którzy nie kontynuują nauki na poziomie wyższym).
Do metod zwiększających szanse grup wykluczonych na ogół zalicza się metody oparte na
współpracy, a także takie metodyxxiv, które:
budują i upowszechniają pozytywne wzorce osobowe
zwiększają dostęp użytkowy i motywacyjny
tworzą i wykorzystują materiały dostosowane kulturowo do grupy odbiorców
Budowanie pozytywnych wzorców osobowych (model building) – szczególnie użyteczne okazują
się omówione powyżej metody PLTL i mentoring. Młodzież z grup wykluczonych może dzięki nim
poznać osoby podobne do nich, dla których programowanie okazało przydatną umiejętnością.
33 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
Istotny jest odpowiedni dobór wzorców osobowych (nie mogą być zbyt odległe od uczniów –
dobrze żeby wywodziły się z lokalnej społeczności), ale również wzmacnianie identyfikacji między
uczniami a ich wzorcami, a także zachęcanie ich do podejmowania wspólnych działań, w trakcie
których mogą się od siebie nawzajem uczyć.
Zwiększanie dostępu użytkowego i motywacyjnego. Powodem dla którego wiele osób nie
podejmuje się nauki programowania jest poczucie, że nie jest to umiejętność, która będzie dla
nich w jakikolwiek sposób użyteczna. To nie niezdolność do nauczenia się programowania, ale
brak motywacji do jej poznania powoduje, że wiele osób z grup o mniejszych szansach
edukacyjnych nie próbuje swoich sił w programowaniu. Dotyczy to zwłaszcza uczniów szkół
zawodowych. W ich przypadku nauka programowania powinna być priorytetem – wiele z
zawodów, do których wykonywania się przygotowują będzie w przyszłości w jakiejś mierze
wymagać umiejętności związanych z programowaniem. Pokazanie tego, do czego
programowanie mogliby wykorzystać również w swoim czasie wolnym teraz może być kolejnym
sposobem zwiększania ich zainteresowania. Odpowiednie ukierunkowanie rekrutacji do
programów edukacyjnych (programy dedykowane grupom niedostatecznie reprezentowanym)
oraz zwiększanie obecności programowania w nauce od szkoły podstawowej, nie tylko w ramach
pozaszkolnych zajęć, powinno uzupełniać te starania.
Nauka programowania dostosowana treściowo do grup o szczególnych potrzebach. Nawet, jeśli
treści nauczania wydają się nam neutralne kulturowo, niekiedy ich treść i forma może
faworyzować pewną grupę w stosunku do innych. Wiele z programów i wizualnych języków
programowania dla dzieci np. można by przypisać określonym grupom odbiorców na podstawie
grafiki, jaką wykorzystują czy zadań, do których realizacji są wykorzystywane (porównaj np.
Robocode versus Alice). Odpowiednie przygotowanie zarówno materiałów szkoleniowych (dla
różnych grup) jak i całościowej strategii programu edukacyjnego może przełożyć się na efekt
edukacyjny, jaki odniesie on w danej grupie odbiorców.
Zastosowanie metody w nauczaniu programowania dla dzieci - uwagi metodyczne:
Rekrutacja. To, ze teoretycznie na dane zajęcia pozalekcyjne mogą zgłosić się wszyscy
zainteresowani nie oznacza, że będzie to grupa reprezentatywna dla społeczności
szkolnej. Warto pamiętać o silnym wpływie autowykluczania grup wykluczonych i niskiego
dostępu motywacyjnego tych grup. Z tego powodu zapewnienie równego udziału
różnych grup może niekiedy wymagać ukierunkowanej rekrutacji. Podobnie
przedstawiciele tych grup (np. uczniowie nie posiadający dostępu do urządzeń mobilnych
w domu) mogą się samowykluczać na lekcjach – nie uważać, okazywać bierną i
defetystyczną postawę. W takich wypadkach zaplanowanie specjalnie ukierunkowanych
działań, pomagających im poczuć się równoprawnymi członkami grupy może mieć
decydujący wpływ na ich zaangażowanie.
Choć nierówności w udziale dziewczynek w IT i programach nauki programowania
uwidoczniają się dopiero na etapie gimnazjum przyczyn tego stanu rzeczy upatrywać
można o wiele wcześniej. Nauka programowania dla najmłodszych dzieci powinna już
uwzględniać elementy edukacji równościowej. Warto też dbać o budowanie
pozytywnych wzorców osobowych oraz o zachęcanie dzieci do pracy w grupach i
tandemach niejednopłciowych.
34 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
Podobnie jak w przypadku dziewcząt, osoby, które decydują się na kształcenie w
szkołach zawodowych często podejmują tę decyzje w odpowiedzi na informację zwrotną
otrzymaną od nauczycieli. Z tego powodu, na późniejszych etapach kształcenia mogą
niechętnie patrzeć na możliwość nauki programowania – umacniane w nich stereotypy
mogą skłaniać ich do wniosku, że programowanie zarezerwowane jest wyłącznie dla
uczniów, którzy doskonale radzą sobie z przedmiotami ścisłymi i matematyką i że ma sens
tylko w sytuacji, gdy dana osoba planuje podjęcie studiów informatycznych. Zwracanie
szczególnej uwagi na to, żeby również uczniowie słabiej radzący sobie z nauką brali udział
w zajęcia pozaszkolnych z programowania od najmłodszych lat przełoży się na ich większą
motywację do poznawania nowych technologii później.
O dziewczynach w IT i skutecznej metodyce nauki programowania dla nich:
http://www.ncwit.org/sites/default/files/resources/girlsinit_thefacts_fullreport2012.pdf
PROGRAMOWANIE +
Nauka programowania nie zawsze odbywa się w formule osobne, tematycznego kursu. Często
programowanie jest tylko elementem innego cyklu zajęć lub uatrakcyjnia je
program/gra/aniamcja, która jest akurat popularna wśród dzieci:
Programowanie + opowieści
Wielu autorówxxv podkreśla, ze programowanie w gruncie rzeczy polega na opowiadaniu pewnej
opowieści (storytelling). Okazuje się też, że włączenie elementów związanych z opowiadaniem
historyjek zachęca zwłaszcza dziewczęta do programowania xxvi . Przykładem wersji programu
specjalnie dostosowanej do tworzenia fabuł i animacji jest np. Storytelling Alice. (Choć inne
wizualne języki programowania również dają takie możliwości).
Programowanie + roboty
Popularność robotów, które można zaprogramować wpływa na popularność programowania.
Większość z tych robotów lub kontrolerów można zaprogramować w określonym języku
programowania (np. Lego Mindstorms, LEGODo czy Arduino, ale też nasz rodzimy Lo-Fi Robot w
Scratchu), pozostałe wykorzystują własne uproszczone systemy. Programowanie z elektroniką
łączy z kolei Hackaway.
Programowanie + Minecraft
To coraz popularniejszy nurt. Wykorzystując popularność gry Minecraft wśród dzieci edukatorzy
budza w nich zainteresowanie kodowaniem. Programy, wykorzystujące Minecrafta prowadzone
są np. przez Thoughtstem czy Camp Crusader. Istnieją również materiały edukacyjne z projektami
w Pythonie w Minecrafcie.
Programowanie + matematyka
35 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
To dość naturalne skojarzenie. Przykładu tego, jak programowanie można wykorzystywać do
nauki matematyki dostarcza Bootstrap.
Programowanie + Angry Birds
Dla najmłodszych z kolei ciekawszą i prostszą alterntywą może okazać się zabawa z Angry Birds:
Angry Birds Playground to propozycja FunLearning.
Programowanie + gry
Możliwość tworzenia własnych gier to jeden z powodów, które przyciąga dzieci do
programowania. Oczywiście, wiele jezyków programowania daje taką możliwość. Można jednak
również zauważyć, że coraz popularniejsze są gry, które uczą programowania (Code Spells lub
Code Combat), a także specjalne dedykowane nauce tworzenia gier portale edukacyjne takie
jak Game Salad.
Programowanie + Kinect
A nawet materiały edukacyjne dot. tego, jak stworzyć gry w Scratchu z wykorzystaniem Kinecta:
Kinect2Scratch
Programowanie + filmy
Do programowania można też zachęcić dzięki krótkim filmikom. 5-minute Film Festival: Teaching
Kids to Code.
36 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
Przypisy:
i https://ec.europa.eu/digital-agenda/sites/digital-agenda/files/KK-31-13-401-EN-N.pdf
ii http://www.eun.org/c/document_library/get_file?uuid=d4a707ed-270b-4864-912c-53b2470d4185&groupId=43887 iii Students perspective on improving programming courses, Michal Blaho, Martin Foltin, Peter Fodrek, Ján Murgaš, w:
INTERNATIONAL JOURNAL OF EDUCATION AND INFORMATION TECHNOLOGIES, Issue 1, Volume 6, 2012.
iv http://www.eun.org/c/document_library/get_file?uuid=521cb928-6ec4-4a86-b522-9d8fd5cf60ce&groupId=43887 v http://www.edutopia.org/blog/radically-transforming-teaching-programming-1-ajit-jaokar
vi Students perspective…, op.cit.
vii http://blog.codecombat.com/3-reasons-why-computational-literacy-is-ruining-coding-education
viii http://www.bbc.co.uk/education/guides/zp92mp3/revision
ix Stephenson, Chris; Valerie Barr (May 2011). "Defining Computational Thinking for K-12". CSTA Voice 7 (2): 3–4.
x http://www.eun.org/c/document_library/get_file?uuid=d4a707ed-270b-4864-912c-53b2470d4185&groupId=43887
xii
http://ngoteka.pl/bitstream/handle/item/215/korzystanie%20z%20mediow%20a%20podzialy%20spoleczne.pdf?sequenc
e=3
xiii https://nowoczesnapolska.org.pl/wp-content/uploads/2012/05/Cyfrowa-Przyszlosc-Katalog-Kompetencji-Medialnych-
i-Informacyjnych1.pdf
xiv Computing, op.it.
xv Johnson, D.W., R.T. Johnson, Cooperation and Competition: Theory and Research. 1989, Edina: Interaction Book
Company. 257.; Masten, S.J., et al., A web-based and group learning environment for introductory environmental
engineering. Journal of Engineering Education, 2002. 9(1): p. 69-80.; DeLyser, R.R., Thompson, S. S., Edelstein, J., Lengsfeld,
C., Rosa, A. J., Rullkoetter, P., et al., Creating a student centered learning environment at the university of delawar.
Journal of Engineering Education, 2003. 92(3): p. 269-273. ; Gates, A., et al., Expanding Participation in Undergraduate
Research Using the Affinity Group Model. Journal of Engineering Education, 1999. 88(4): p. 409-414; Rutar, T. and G.
Mason, A learning community of university freshman design, freshman graphics, and high school technology students:
Description, projects, and assessment. Journal of Engineering Education, 2005. 94(2): p. 245-. ; Wells, P., Different and
equal: Fostering interdependence in a learning community, in Learning communities in education. 1999, Routledge:
London. p. 131-148. ; Zeichner, K., Contradictions and tensions in the professionalization of teaching and the
democratization of schools. Teachers College Record, 1991. 92(3): p. 263-379. 2; Calderón, M., Teachers learning
communities for cooperation in diverse settings. . Theory into Practice, 1999. 38(2): p. 94-99. ; Achinstein, B., Conflict amid
community: The micropolitics of teacher collaboration. Teachers College Record, 2002. 104(3): p. 421-455. ; Strahan, D.,
Promoting a collaborative professional culture in three elementary schools that have beaten the odds. The Elementary
School Journal, 2003. 104(2): p. 127-146.
xvi Johnson, D.W., R.T. Johnson, and E.J. Holubec, Cooperation in the classroom. 4th ed. 1984, Edina, Minnesota:
Interaction Book Company. Zob. też Why isn’t cooperative learning used to teach science?, Clyde Freeman Hereid w:
Start with a Story, The case study method of teaching college science.
xvii Johnson D. W., & Johnson, R., Cooperation and competition: Theory and research, 1989. Edina, MN: Interaction Book
Company, op.cit.
xviii Improving Student Achievement in Introductory Computer Science Courses Using Peer-Led Team Learning, Dennis,
Sonya Maria, Ph.D., WALDEN UNIVERSITY, 2013 (http://gradworks.umi.com/35/87/3587205.html); Benefits of
Peer-led Team Learning in CS, Dr. Barbara G. Ryder, J. Byran Maupin Professor of Engineering Head - Dept. of Computer
Science, Virginia Tech , 2008 (http://people.cs.vt.edu/ryder/SEES-Nov2012-PLTL.pdf); Using peer led team
learning to assist in retention in computer science classes, Carolee Stewart-Gardiner, Kean University, Union, NJ, Journal
of Computing Sciences in Colleges archive, Volume 25 Issue 3, January 2010, s. 164-171; Leo Gafney and Pratibha
Varma-Nelson, Peer-Led Team Learning: Evaluation, Dissemination and Institutionalization of a College-Level Initiative,
Dordrecht, The Netherlands: Springer, 2008; An argument: Why not have Peer-Led Team Learning in Computer Science?
Peer-Led Team Learning: Implementation, Igor Labutov, Progressions: The Peer-Led Team Learning Project Newsletter,
Volume 10, Number 2, Winter 2012.
xix Using Peer-Led Team Learning to Increase Participation and Success of Under-represented Groups in Introductory
Computer Science, Susan Horwitz, Susan H. Rodger, SIGCSE’09, March 3–7, 2009, Chattanooga, Tennessee, USA
(http://research.cs.wisc.edu/wpis/papers/sigcse09.pdf)
37 | S t r o n a
Oprac. Centrum Edukacji Obywatelskiej na zlecenie Programu Mistrzowie Kodowania, Warszawa, 2015
xx Cyber Peer-Led Team Learning (cPLTL): Development and Implementation, Educause Review,
2011.( http://www.educause.edu/ero/article/cyber-peer-led-team-learning-cpltl-development-and-implementation)
xxi Enhancing Peer0Led Team Learning through Cooperative Learning, Steve Roach, Elsa Villa, University of Texas-El Paso.
(http://search.asee.org/search/fetch;jsessionid=l2gd81p0a9d9?url=file%3A%2F%2Flocalhost%2FE%3A%2Fsearch%2Fconfer
ence%2F17%2FAC%25202008Full1154.pdf&index=conference_papers&space=129746797203605791716676178&type=app
lication%2Fpdf&charset=)
xxii Hannay, Jo E.; Tore Dybå; Erik Arisholm; Dag I.K. Sjøberg (July 2009). "The Effectiveness of Pair Programming: A Meta-Analysis". Information and Software Technology 51 (7): 1110–1122. Cockburn, Alistair; Williams, Laurie (2000). "The Costs and Benefits of Pair Programming" (PDF). Proceedings of the First International Conference on Extreme Programming and Flexible Processes in Software Engineering (XP2000), (http://collaboration.csc.ncsu.edu/laurie/Papers/XPSardinia.PDF)
xxiii Lui, Kim Man (September 2006). "Pair programming productivity: Novice–novice vs. expert–expert" International Journal of Human–Computer Studies 64 (9): 915–925. (http://www.cs.utexas.edu/users/mckinley/305j/pair-hcs-2006.pdf)
xxiv
http://ngoteka.pl/bitstream/handle/item/215/korzystanie%20z%20mediow%20a%20podzialy%20spoleczne.pdf?sequenc
e=3
xxv http://www.cse.wustl.edu/~ckelleher/MotivatingProgrammingCACM.pdf,
https://www.seas.upenn.edu/~eas285/Readings/IDC_StorytellingAndProgramming.pdf,
http://pressupinc.com/blog/2014/08/programming-storytelling/
xxvi http://www.csta.acm.org/Research/sub/Projects/ResearchFiles/kelleherThesis_CSD.pdf