W pewne sobotnie, majowe popołudnie nagle do mnie dotarło, że następnego dnia jest Dzień Matki, a ja nie mam niczego dla mamy. Zacząłem myśleć, co mógłbym jej podarować. Może zrobić dla niej interaktywną kartkę, używając programu Scratch, nad którym wtedy pracowałem wraz z grupą badaczy z MIT Media Lab? Celem programu jest ułatwienie tworzenia interaktywnych historyjek, gier i animacji, a następnie dzielenia się nimi z innymi. Pomyślałem, by użyć Scratcha do stworzenia interaktywnej kartki dla mamy. Postanowiłem najpierw zerknąć na zasoby strony Scratch. Dzieci w wieku powyżej 8 lat dzielą się tam swoimi projektami. Byłem ciekaw, czy wśród 3 mln projektów znajdę jakąś kartkę na Dzień Matki. W polu wyszukiwania wpisałem "Dzień Matki”. Z zaskoczeniem i zachwytem zobaczyłem listę dziesiątek kartek na Dzień Matki, które pojawiły się na stronie Scratch, wiele w ciągu ostatniej doby, bo nie tylko ja odkładam wszystko na ostatnią chwilę. Zacząłem je przeglądać. (Muzyka) Na jednej był kotek z mamą, życzył jej szczęśliwego Dnia Matki. Twórczyni była tak miła, że dała mamie opcję replay. W kolejnym interaktywnym projekcie po przesunięciu myszą nad literami "Szczęśliwego Dnia Mamy” ukazuje się specjalne hasło. Ta twórczyni opowiedziała, jak znalazła w Internecie, kiedy wypada Dzień Matki. (Wpisywanie) I jak tylko się dowiedziała, wysłała mamie życzenia i napisała, jak bardzo ją kocha. Naprawdę cieszyłem się, oglądając te projekty i włączając się do nich. Spodobało mi się to aż tak, że zamiast zrobić własny projekt, wysłałem mamie linki do tych kilkunastu kartek. (Śmiech) Zareagowała tak, jak oczekiwałem. Odpisała mi: „Jestem taka dumna, że mam syna, który stworzył oprogramowanie, które pozwala tym dzieciom robić dla swoich matek kartki na Dzień Matki”. Mama była więc szczęśliwa i to mnie cieszyło, ale tak naprawdę byłem jeszcze szczęśliwszy z innego powodu. Byłem szczęśliwy, bo te dzieci używały Scratch właśnie w ten sposób, jak oczekiwaliśmy. Widać, że tworząc swoje interaktywne kartki na Dzień Matki, naprawdę stawały się biegłe w używaniu nowych technologii. Co mam na myśli mówiąc „biegłe”? Były w stanie uzewnętrznić się, wyrazić swoje pomysły. Kiedy stajesz się biegły w języku, oznacza to, że możesz wpisać coś w swoim dzienniku, opowiedzieć komuś dowcip lub napisać list do przyjaciela. Podobnie jest z nowymi technologiami. Tworząc te interaktywne kartki na Dzień Matki, te dzieci pokazały, że są naprawdę biegłe w nowych technologiach. Być może nie będziecie tym tak zaskoczeni, ponieważ bardzo często uważa się, że młodzi dzisiaj są w stanie zrobić z technologią wszystko. Każdy z nas słyszał określenie, że młodzi ludzie, to „cyfrowi tubylcy”. Jestem dość sceptycznie nastawiony do tej nazwy. Nie jestem pewien, czy możemy myśleć o młodych ludziach jako o cyfrowych tubylcach. Jak zazwyczaj młodzi ludzie używają nowych technologii? Często można dostrzec sytuację jak ta, lub ta, i nie ma wątpliwości, że młodzi ludzie są bardzo swobodni i obeznani w Internecie, w rozmowach, SMS-ach i grach. Ale to wcale nie czyni ich biegłymi. Młodzi ludzie mają wiele doświadczenia i mnóstwo obeznania w interakcji z nowymi technologiami, ale o wiele mniej kreatywności i zdolności wyrażania siebie w nowych technologiach. To prawie tak, jakby byli w stanie przeczytać, ale nie pisać z pomocą nowych technologii. I jestem bardzo ciekaw, jak możemy pomóc młodym ludziom stać się biegłymi tak, by mogli pisać w nowych technologiach? Oni muszą być w stanie pisać własne programy komputerowe. Coraz częściej dostrzega się, jak ważna jest nauka kodowania. W ostatnich latach powstały setki nowych organizacji i stron internetowych, które pomagają młodym ludziom nauczyć się programowania. Możecie sprawdzić w Internecie, miejsca jak Codecademy i wydarzenia takie jak CoderDojo, i strony takie jak Girls Who Code lub Black Girls Code. Wydaje się, że wszyscy zabierają się do działania. Na początku roku, zaraz na przełomie, Burmistrz Nowego Jorku Michael Bloomberg powziął noworoczne postanowienie, że w roku 2012 zamierza nauczyć się kodowania. Kilka miesięcy później rząd Estonii zdecydował, że pierwszoklasiści powinni uczyć się kodować. To wywołało debatę w Wielkiej Brytanii, czy wszystkie dzieci nie powinny uczyć się kodować. Niektórym z was może wydawać się dziwne, że wszyscy mieliby uczyć się kodować. Wielu ludziom kodowanie kojarzy się jako coś, co jest dostępne tylko bardzo wąskiej sub-społeczności osób, które będą kodować, i myślą, że kodowanie jest właśnie takie. Jeśli kodowanie takie będzie, to rzeczywiście będzie służyć tylko wąskiej sub-społeczności osób ze specjalnymi umiejętnościami matematycznymi i wykształceniem technicznym, które potrafią kodować. Ale kodowanie nie musi tak wyglądać. Pozwólcie, że pokażę wam, jak wygląda kodowanie w Scratch. W Scratch po prostu zestawiasz bloki. W tym przypadku przesuwasz blok, przekładasz go na stos, stos bloków kontroluje zachowania różnych postaci w twojej grze lub historyjce, w tym przypadku kontroluje dużą rybę. Po utworzeniu programu możesz kliknąć na „udostępnij” i pokazać swój projekt innym ludziom, żeby mogli z niego korzystać i również coś stworzyć. Oczywiście tworzenie gry z rybą to nie jedyne, co można zrobić ze Scratch. Na stronie są miliony projektów, wszystko - od animowanych historyjek do szkolnych projektów naukowych, animowanych oper mydlanych, wirtualnych zestawów budowlanych, klasycznych gier wideo, sondażów politycznych, samouczków trygonometrii, interaktywnej grafiki, a także interaktywnych kartek na Dzień Matki. Istnieje wiele różnych sposobów, poprzez które ludzie mogą wyrażać siebie używając tej strony, aby móc realizować swoje pomysły i dzielić się nimi ze światem. A one nie pozostają jedynie na ekranie. Można również używać kodu do interakcji ze światem fizycznym wokół nas. Oto przykład z Hong Kongu, gdzie dzieci stworzyly grę, a następnie zbudowaly własne fizyczne urządzenie. Miało ono czujnik światła, który wykrywał dziury w płycie. Kiedy porusza się fizyczną piłą, czujnik światła wykrywa dziury i kontroluje wirtualną piłę na ekranie i ścina drzewo. Mamy zamiar nadal szukać nowych sposobów połączenia świata fizycznego ze światem wirtualnym i łączenia się z otaczającym nas światem. To jest przykład z nowej wersji Scratch, którą udostępnimy w ciągu kilku najbliższych miesięcy. Znów poszukujemy sposobu, by popchnąć was w nowym kierunku. Oto przykład. Używa kamery. Ruchem ręki mogę przebijać balony lub przenieść robaka. Trochę jak z Microsoft Kinect, z którym komunikujesz się za pomocą gestów. Ale zamiast grać w cudzą grę, możesz tworzyć własne. Widząc czyjąś grę, można powiedzieć "zajrzyjmy do środka”, i zobaczyć, z jakich bloków się składa. Ten blok mówi, ile jest ruchu wideo Jeśli jest go dosyć, balon pęknie. Za pomocą kamery można wprowadzić informacje do Scratcha, można też użyć mikrofonu. To przykład użycia mikrofonu. Dam wam kontrolować grę przez użycie głosów. (Odgłosy świerszczy) (Okrzyki) (Żucie) (Śmiech) (Oklaski) Tworząc takie projekty, dzieci uczą się kodować, ale co ważniejsze, kodują, by się uczyć. Gdy uczą się kodować, dowiadują się wielu innych rzeczy, otwiera się wiele nowych możliwości. Warto posłużyć się analogią do czytania i pisania. Kiedy uczysz się czytać i pisać, otwierają się możliwości uczenia się też wielu innych rzeczy. Gdy nauczysz się czytać, możesz czytać, żeby się uczyć. Tak samo jest z kodowaniem. Jeśli nauczysz się kodować, kodujesz, by się uczyć. Pewne z tych rzeczy są oczywiste. Można dowiedzieć się więcej o działaniu komputerów. Ale to dopiero początek. Gdy nauczysz się kodowania, otwiera się wiele innych możliwości. Pozwócie mi pokazać przykład. Oto inny projekt, który zobaczyłem podczas wizyty w pewnym klubie komputerowym. To pozaszkolne ośrodki kształcenia, które pomogliśmy założyć, by młodzież ze społecznych nizin mogła się uczyć wyrażać się twórczo w nowych technologiach. W jednym z takich klubów, kilka lat temu, zobaczyłem 13-letniego chłopca, który używał Scratch do tworzenia gry nieco podobnej do tej, i był z niej bardzo zadowolony i dumny, ale też chciał zrobić więcej. Chciał utrzymać się na czele. To była gra, w której duża ryba zjada małe ryby. A on chciał, by za każdym razem, gdy duża ryba zjada małą rybę, wynik szedł w górę i był rejestrowany. Nie wiedział, jak to zrobić. Więc pokazałem mu, że w Scratch można stworzyć zmienną. Nazwijmy to wynikiem. Tworzy kilka nowych bloków dla ciebie, a także małą tablicę wyników. Za każdym razem, gdy klikam na „zmień wynik”, wynik się zwiększa. Pokazałem to członkowi klubu, nazwijmy go Victor. Gdy zobaczył, że ten blok pozwala mu zwiększyć wynik, wiedział dokładnie, co zrobić. Wziął blok i włożył go do programu dokładnie tam, gdzie duża ryba zjada małe rybki. Teraz za każdym razem, gdy duża ryba zjada małą, on zwiększy wynik i wynik pójdzie w górę o jeden. I to rzeczywiście działa. Gdy to zobaczył, był tak podekscytowany, że wyciągnął do mnie rękę i powiedział: „Dziękuję, dziękuję, dziękuję”. I zapytałem wtedy samego siebie, jak często uczniowie dziękują nauczycielom za nauczenie ich zmiennych? (Śmiech) Nie zdarza się to w większości sal lekcyjnych, ale to dlatego, że w większości sal lekcyjnych, kiedy dzieci uczą się o zmiennych, nie wiedzą, po co się uczą. Nie jest to dla nich coś, z czego mogliby skorzystać. Kiedy uczysz się takich rzeczy w Scratch, robisz to w sposób naprawdę znaczący i motywujący. Możesz zrozumieć, po co uczyć się o zmiennych. Widzimy również, że dzieci uczą się dogłębniej i lepiej. Jestem pewien, że Victor uczył się o zmiennych w szkole, ale nie zwrócił na to uwagi. Teraz zyskał powód, by uczyć się o zmiennych. Kiedy więc uczysz się kodując i kodujesz, aby uczyć się, to uczysz się w kontekście, który coś znaczy i to jest najlepszy sposób uczenia się. Podczas gdy dzieci jak Victor tworzą takie projekty, uczą się ważnych pojęć jak zmienne, ale to dopiero początek. Gdy Victor pracował nad tym projektem i tworzył skrypty, uczył się również o procesie projektowania. Jak iskierkę pomysłu przekształcić w pełnowartościowy, funkcjonujący projekt jak ten, który tu widać. Uczył się różnych podstawowych zasad projektowania, eksperymentowania z nowymi pomysłami, dzielenia złożonych pomysłów na prostsze części, współpracy z innymi ludźmi, znajdowania i naprawiania błędów, gdy coś pójdzie nie tak, konsekwencji i wytrwałości w obliczu frustracji, gdy praca nie odnosi oczekiwanych skutków. To ważne umiejętności, które są istotne nie tylko w kodowaniu. Są istotne dla wszelkich innych działań. Może Victor zostanie programistą lub informatykiem? Pewnie nie, ale niezależnie od tego, co będzie robić, będzie mógł korzystać z umiejętności, które nabył. Niezależnie od tego, czy zostanie kierownikiem działu marketingu czy mechanikiem lub koordynatorem środowiskowym. To umiejętności przydatne dla każdego. Znów warto przywołać tę analogię z językiem. Kiedy uczysz się czytać i pisać, to nie po to, żeby zostać zawodowym pisarzem. Niewiele osób zostaje pisarzami. Ale umiejętność czytania i pisania jest przydatna dla wszystkich. Tak samo jest z kodowaniem. Większość ludzi nie wykonuje zawodu informatyka czy programisty, ale umiejętność twórczego myślenia, wnioskowania, pracy zespołowej - zdolności wykształcane podczas kodowania w Scratch - to umiejętności, z których można korzystać bez względu na wybrany zawód. I nie chodzi tu tylko o życie zawodowe. Kodowanie pozwala również wyrażać swoje pomysły i uczucia w codziennym życiu. Pozwólcie mi zakończyć jeszcze jednym przykładem, który narodził się z tego wysyłania kartek mojej mamie na Dzień Matki. Mama zdecydowała, że chce nauczyć się kodować w Scratch. Ten projekt zrobiła na moje urodziny. Wysłała mi kartkę zrobioną w Scratch. Ten projekt nie wygra może żadnej nagrody i możecie mieć pewność, że moja 83-letnia mama nie zamierza zostać programistką lub informatykiem. Ale praca nad tym projektem umożliwiła jej nawiązanie kontaktu z kimś, kogo kocha oraz umożliwiła jej naukę nowych rzeczy, wykorzystania swojej kreatywności oraz rozwijanie nowych sposobów na wyrażanie siebie. Widząc zatem Michaela Bloomberga uczącego się kodować, wszystkie dzieci w Estonii uczące się kodować, nawet moją mamę uczącą się kodować, czy nie czas, żebyście i wy zaczęli myśleć o nauce kodowania? Jeśli macie ochotę spróbować, zachęcam was do wejścia na stronę Scratch. www.scratch.mit.edu, i spróbować kodowania. Dziękuję bardzo. (Oklaski)