JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

37
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

Transcript of JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

Page 1: 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

Page 2: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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.

Page 3: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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

Page 4: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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

Page 5: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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

Page 6: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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

Page 7: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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

Page 8: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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

Page 9: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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

Page 10: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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

Page 11: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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

Page 12: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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/

Page 13: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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

Page 14: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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ę:

Page 15: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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

Page 16: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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

Page 17: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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.

Page 18: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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:

Page 19: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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

Page 20: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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

Page 21: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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

Page 22: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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.

Page 23: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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

Page 24: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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.

Page 25: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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ę

Page 26: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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.

Page 27: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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:

Page 28: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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

Page 29: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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.

Page 30: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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.

Page 31: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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

Page 32: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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ą.

Page 33: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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.

Page 34: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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

Page 35: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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.

Page 36: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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)

Page 37: JAK UCZĄ PROGRAMOWANIA NA ŚWIECIE?

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