Programowanie komputerowe, inaczej kodowanie, to ważna umiejętność, którą powinno nabyć każde dziecko. Komputerów używamy do rozwiązywania problemów, grania w gry, usprawniania pracy, wykonywania monotonnych zadań, przechowywania i wyszukiwania informacji, tworzenia czegoś nowego i łączenia się z przyjaciółmi oraz całym światem. Jeśli rozumiesz, na czym polega programowanie, to całą tę moc masz w małym palcu.
Programowania może nauczyć się każdy; to jak układanie puzzli lub rozwiązywanie zagadek. Wykorzystujesz logikę, testujesz rozwiązanie, przeprowadzasz dodatkowe doświadczenia, a następnie rozwiązujesz problem. A najlepsza chwila na rozpoczęcie nauki to właśnie teraz! Jesteśmy w bezprecedensowym momencie historii: nigdy wcześniej miliardy ludzi nie mogły łączyć się ze sobą tak jak teraz, za pomocą komputerów. Żyjemy w świecie wielu nowych możliwości, od elektrycznych samochodów i robotów-opiekunów po drony dostarczające przesyłki, a nawet pizzę.
Jeśli twoje dzieci już dziś rozpoczną naukę programowania, to będą mogły uczestniczyć w definiowaniu tego szybko zmieniającego się świata.
DLACZEGO DZIECI POWINNY SIĘ UCZYĆ KODOWAĆ?
Jest wiele istotnych powodów, aby uczyć się programowania komputerów, ale dla mnie dwa najważniejsze to:
- Programowanie to zabawa.
- Programowanie to umiejętność przydatna na rynku pracy.
PROGRAMOWANIE TO ZABAWA
Technologia staje się częścią codziennego życia. Każda firma, każda organizacja charytatywna i każda idea mogą z niej korzystać. Są aplikacje, które pomagają kupować, dawać, przyłączać się, grać, uczestniczyć, komunikować się, udostępniać - praktycznie cokolwiek, co można sobie wyobrazić.
Czy twoje dzieci chciały kiedyś zrobić dodatkowy poziom w swojej ulubionej grze komputerowej? Właśnie tym zajmują się programiści! A co z utworzeniem własnej aplikacji na telefon? Mogą zrealizować ten pomysł, pisząc program na komputerze! Każdy program, gra, system, czy aplikacja, którą kiedykolwiek widziały, zostały napisane za pomocą tych samych programistycznych cegiełek, o których uczy ta książka. Programując, dzieci aktywnie uczestniczą w technologii - nie tylko bawią się, ale robią coś zabawnego!
PROGRAMOWANIE TO UMIEJĘTNOŚĆ PRZYDATNA NA RYNKU PRACY
Programowanie to ważna umiejętność w XXI wieku. Dzisiaj wykonywanie pracy zawodowej, znacznie bardziej niż kiedykolwiek w historii, wymaga zdolności do rozwiązywania problemów, a technologia jest integralnym wymaganiem coraz większej liczby ścieżek kariery.
Amerykański Urząd Statystyczny Pracy przewiduje, że w ciągu kolejnych pięciu lat powstanie ponad 8 milionów stanowisk związanych z technologią. Publikacja Occupational Outlook Handbook za lata 2014-2015 podaje, że siedem na dziesięć najszybciej rozwijających się zawodów, które nie wymagają stopnia magistra ani doktora, jest związanych są z informatyką albo technologią informacyjną (IT).
Gdy w 2004 r. Mark Zuckerberg opracował pierwszą wersję Facebooka, był uczniem liceum i pracował, mieszkając w akademiku. Zaledwie 10 lat później z Facebooka korzystało 1,39 miliarda osób miesięcznie (źródło: http://newsroom.fb.com/company-info/). Nigdy wcześniej w historii żadna idea, produkt ani usługa nie potrafiły zainteresować miliarda osób w czasie krótszym niż dziesięciolecie. Przykład Facebooka świadczy o tym, że technologia ma wielką moc, pozwalającą na dotarcie do liczby osób większej niż kiedykolwiek wcześniej.
GDZIE DZIECI MOGĄ SIĘ UCZYĆ PROGRAMOWANIA?
Ta książka to dopiero początek. Miejsc, w których można nauczyć się programować, jest mnóstwo; witryny takie jak Code.org, Codecademy (patrz rys. 1) i wiele innych uczą podstawowych i zaawansowanych zasad programowania w całej gamie potrzebnych języków. Gdy już przerobisz tę książkę ze swoimi dziećmi, możesz zapisać je na darmowe kursy na witrynach, takich jak EdX, Udacity i Coursera, aby nauczyły się jeszcze więcej.
Rysunek 1. Codecademy uczy krok po kroku wielu języków programowania
"Kluby kodowania" to świetny sposób, aby uczyć się w trakcie zabawy z przyjaciółmi. Uzyskanie na uczelni tytułu w konkretnej dziedzinie to wciąż jeden z najlepszych sposobów, aby przygotować się do kariery, ale skoro studiowanie nie wchodzi jeszcze w grę, twoje dzieci już dziś mogą zacząć tworzyć swoje programistyczne portfolio i demonstrować sprawność jako programiści i osoby potrafiące rozwiązywać problemy.
JAK KORZYSTAĆ Z TEJ KSIĄŻKI
To nie jest książka wyłącznie dla dzieci - jest też dla rodziców, nauczycieli, studentów i dorosłych, którzy chcą zrozumieć podstawy programowania komputerów, zarówno dla zabawy, jak i po to, by mieć dostęp do nowych ofert pracy w zaawansowanej technicznie gospodarce. Niezależnie od tego, ile masz lat, możesz świetnie spędzić czas, poznając podstawy programowania. Najlepszym sposobem, aby to zrobić, jest wspólna praca i eksperymentowanie.
EKSPLORUJ!
Jeśli tylko nie brak ci ochoty, aby poznawać nowe rzeczy, nauka programowania jest fascynująca. Wykonując programy z tej książki wraz z dziećmi, próbuj zmieniać liczby i tekst w kodzie, aby zobaczyć, co się dzieje z programem. Nawet jeśli coś zepsujesz, to naprawiając program, nauczysz się czegoś nowego. W najgorszym razie trzeba będzie ponownie przepisać przykład z książki, albo otworzyć ostatnio zapisaną działającą wersję. Celem nauki programowania jest próbowanie czegoś nowego, zdobywanie nowych umiejętności i znajdowanie nowych sposobów na rozwiązywanie problemów. Testuj swój kod wprowadzając zmiany, zapisując program, uruchamiając go, obserwując, co się dzieje i naprawiając wszelkie błędy.
Ja na przykład napisałem kod, aby utworzyć kolorowy rysunek (patrz rys. 2), a następnie cofnąłem się, zmieniłem kilka liczb tu i tam, i ponownie spróbowałem uruchomić program. W ten sposób uzyskałem kolejny rysunek, który był zupełnie inny, ale równie zachwycający. I znów wróciłem, zmieniłem kilka innych liczb i uzyskałem jeszcze jeden piękny, niepowtarzalny rysunek. Widzisz, co można osiągnąć samą zabawą?
Rysunek 2. Trzy wielobarwne spiralne rysunki, które utworzyłem, testując różne wartości w wierszu kodu programu
RÓBMY TO RAZEM!
Eksperymentowanie z kodem to świetny sposób, aby dowiedzieć się, jak działają programy, a jeszcze lepszy efekt jest wtedy, gdy pracujesz z kimś innym. Niezależnie od tego, czy uczysz dziecko czy studenta czy sam(a) siebie, wspólna zabawa z kodem to nie tylko większa radość, ale też większa efektywność.
Na przykład przy nauce muzyki metodą Suzuki, rodzice uczęszczają na zajęcia wraz z dziećmi i nawet uczą się z wyprzedzeniem, aby umieć pomóc swoim dzieciom między lekcjami. Wczesne rozpoczynanie nauki to kolejny znak rozpoznawczy metody Suzuki; dzieci mogą rozpocząć formalne studiowanie w wieku trzech lub czterech lat.
Ja zacząłem wprowadzać moich dwóch synów w programowanie, gdy mieli dwa i cztery lata, zachęcając ich do zabawy poprzez zmienianie krótkich fragmentów każdego programu, jak kolory, kształty i rozmiary.
Sam nauczyłem się programować w wieku 13 lat, przepisując przykładowe programy z książki, a następnie modyfikując je, aby zrobić coś nowego. Teraz, na prowadzonych przeze mnie zajęciach z informatyki, często daję studentom program i namawiam do zabawy z kodem i tworzenia czegoś nowego.
Jeśli korzystasz z tej książki do samodzielnej nauki, możesz pracować z innymi, znajdując przyjaciela do przerabiania przykładów, albo zakładając świetlicowy bądź osiedlowy klub programowania (pomysły i wskazówki znajdziesz na stronach http://coderdojo.org.pl/ lub http://www.codecademy.com/afterschool/). Programowanie to sport zespołowy!
ZASOBY W INTERNECIE
Wszystkie pliki z programami omawianymi w tej książce, jak również przykładowe rozwiązania zadań programistycznych i inne informacje, są dostępne na stronie http://smartkids.pwn.pl/material/uczymy_dzieci_programowania/. Pobierz programy i eksperymentuj z nimi, aby nauczyć się jeszcze więcej. Jeśli zabrniesz w ślepy zaułek, sięgnij po przykładowe rozwiązania. Warto spróbować!
PROGRAMOWANIE = ROZWIĄZYWANIE PROBLEMÓW
Niezależnie od tego, czy twoje dziecko ma dwa latka i dopiero uczy się liczyć, czy też ma 22 lata i szuka nowego wyzwania, książka ta wraz z omawianymi w niej zagadnieniami to świetny sposób na dającą satysfakcję, inspirującą rozrywkę i zwiększenie możliwości zawodowych. Osoby, które potrafią programować, a tym samym rozwiązują problemy szybko i skutecznie, są dziś bardzo cenione i zwykle wykonują ciekawą, satysfakcjonującą pracę.
Sama technologia nie wystarczy do rozwiązania wszystkich problemów tego świata, ale umożliwia komunikację, współpracę, zdobywanie wiedzy i działanie w takiej skali i z taką szybkością, jakie wcześniej nie mieściły się w wyobrażeniach. Jeśli potrafisz programować, to potrafisz rozwiązywać problemy. A skoro tak, to masz moc, aby ulepszać ten świat i dlatego zacznij programować już dzisiaj.
Praktycznie każdy przedmiot może mieć w sobie komputer - telefon, samochód, zegarek, konsola do gier wideo, przyrząd do ćwiczeń, urządzenie medyczne, wyposażenie przemysłowe, wizytówka czy robot. Programowanie komputerów, inaczej kodowanie, oznacza sposób, w jaki nakazujemy komputerowi wykonywać jakieś zadania, i wymaga zrozumienia, jak za pomocą kodu zapanować nad potężnymi możliwościami komputera.
Programy komputerowe - zwane również aplikacjami lub apkami - mówią komputerom, co mają robić. Aplikacja internetowa może nakazać komputerowi śledzenie twojej ulubionej muzyki; gra może powiedzieć komputerowi, jak wyświetlać epickie pole bitwy z realistyczną grafiką; prosta aplikacja może nakazać komputerowi narysowanie pięknej spirali sześciokątnej, jak ta na rysunku 1.1.
Rysunek 1.1. Kolorowa spiralna grafika
Niektóre aplikacje składają się z tysięcy wierszy kodu, a inne mogą mieć zaledwie kilka wierszy długości, tak jak program FajnaSpiralaSześciokątna.py na rysunku 1.2.
Rysunek 1.2. FajnaSpiralaSześciokątna.py, krótki program w Pythonie, który rysuje spiralę z rysunku 1.1
Ten krótki program rysuje kolorową spiralę pokazaną na rysunku 1.1. Chciałem użyć ładnego obrazka jako przykładu w tej książce, więc postanowiłem zrobić to za pomocą programu komputerowego. Najpierw naszkicowałem pomysł, a następnie zacząłem programować.
W tym rozdziale pobierzemy, zainstalujemy i nauczymy się używać programów, które pomogą nam pisać kod każdej aplikacji, jaką tylko można sobie wyobrazić.
PIERWSZE KROKI W PYTHONIE
Aby zacząć programować, musimy posługiwać się językiem komputera. Komputery wymagają instrukcji krok po kroku i rozumieją tylko pewne języki. Tak jak obywatel(ka) Rosji nie zawsze potrafi porozumieć się po angielsku, tak i komputery rozumieją tylko języki specjalnie dla nich wymyślone. Kod komputerowy jest pisany w językach programowania takich jak Python, C++, Ruby czy JavaScript. Języki te pozwalają nam "rozmawiać" z komputerem i wydawać mu polecenia. Pomyśl chwilę, w jaki sposób każesz psu wykonywać proste sztuczki - gdy wydajesz polecenie "siad", pies siada; gdy powiesz "daj głos", pies szczeka. Pies rozumie te proste polecenia, ale niewiele więcej z tego, co mówisz.
Komputery podobnie: mają swoje ograniczenia, ale potrafią zrobić to, co im każesz w ich języku. Język, którego będziemy używać w tej książce, to Python - prosty, a zarazem potężny język programowania. Pythona uczy się na kursach informatycznych dla początkujących w liceum i na studiach, a poza tym jest używany w niektórych z najpotężniejszych aplikacji na świecie, jak Gmail, Mapy Google i YouTube.
Abyś mógł(a) zacząć używać Pythona na swoim komputerze, wspólnie wykonamy trzy poniższe kroki:
1. Pobierzesz Pythona.
2. Zainstalujesz Pythona na swoim komputerze.
3. Przetestujesz Pythona prostym programem albo dwoma.
1. POBIERANIE PYTHONA
Pythona można z łatwością i za darmo uzyskać na witrynie Pythona (patrz rys. 1.3).
Rysunek 1.3. Pobieranie Pythona z witryny Pythona jest bardzo proste
W swojej przeglądarce internetowej wejdź na stronę https://www.python.org/. Najedź wskaźnikiem myszy na znajdujący się u góry przycisk menu Downloads i kliknij przycisk, którego nazwa zaczyna się od Python 3[1].
2. INSTALOWANIE PYTHONA
Znajdź plik pobrany w poprzednim punkcie (prawdopodobnie znajduje się w folderze Pobrane) i dwukrotnie go kliknij, aby uruchomić i zainstalować Pythona oraz edytor IDLE. IDLE to program, którego użyjemy do wpisywania i uruchamiania programów napisanych w Pythonie. Szczegółowe instrukcje dotyczące instalacji znajdziesz w dodatku A.
3. TESTOWANIE PYTHONA ZA POMOCĄ PROGRAMU
W menu Start albo folderze Aplikacje znajdź program IDLE i uruchom go. Zobaczysz okno poleceń tekstowych, takie jak na rysunku 1.4. Nazywa się ono powłoką Pythona. Powłoka to okno, czyli ekran, na którym możesz wpisywać polecenia albo wiersze kodu.
Rysunek 1.4. Powłoka IDLE Pythona - nasze centrum dowodzenia w trakcie nauki Pythona
Znaki >>> to zgłoszenie wiersza poleceń, które oznacza, że komputer jest gotowy na wprowadzenie pierwszego polecenia. Komputer pyta cię, co ma zrobić. Wpisz
print("Hello, world!")
i naciśnij enter lub return na swojej klawiaturze. W odpowiedzi powłoka Pythona powinna wyświetlić tekst wpisany w nawiasie w znakach cudzysłowu: Hello, world!. I to jest właśnie to - pierwszy napisany przez ciebie program!
PISANIE PROGRAMÓW W PYTHONIE
Zwykle chcesz pisać programy, które są dłuższe niż jeden wiersz i właśnie do tego w Pythonie służy edytor. W IDLE przejdź do menu File (Plik) i wybierz kolejno File i New Window (Nowe okno) albo File i New File (Nowy plik). Pojawi się pusty ekran ze słowem Untitled (Bez tytułu) na pasku tytułu.
Napiszmy nieco dłuższy program w Pythonie. W nowym, pustym oknie, wpisz trzy poniższe wiersze kodu:
# TwojeImię.py
imię = input("Jak masz na imię?\n")
print("Hej, ", imię)
Pierwszy wiersz to komentarz. Komentarze, które zaczynają się od krzyżyka (#), to uwagi lub przypomnienia, ignorowane przez komputer. W tym przykładzie komentarz po prostu przypomina, jaka jest nazwa programu. Drugi wiersz prosi użytkownika o podanie imienia i zapamiętuje je w zmiennej imię. Trzeci wiersz wyświetla "Hej, ", a następnie nazwę użytkownika. Zwróć uwagę na przecinek oddzielający tekst w cudzysłowie, "Hej, " od zmiennej imię.
WYKONYWANIE PROGRAMÓW W PYTHONIE
Z menu nad kodem programu wybierz kolejno Run i Run Module. W ten sposób instrukcje znajdujące się w twoim programie zostaną wykonane, czyli zrealizowane. Najpierw trzeba będzie zapisać program. Nazwijmy nasz plik TwojeImię.py. W ten sposób nakazujemy komputerowi, aby zapisał plik jako program o nazwie TwojeImię.py, a część .py oznacza, że chodzi o program w Pythonie.
Gdy zapiszesz plik i uruchomisz go, przekonasz się, że okno powłoki Pythona uruchamia program, wyświetlając pytanie Jak masz na imię?. W kolejnym wierszu wpisz swoje imię i naciśnij enter. Program wyświetli Hej, a następnie wpisane przez ciebie imię. Ponieważ to już wszystko, co ten program ma robić, program zakończy się, a ty ponownie zobaczysz znak zgłoszenia, >>>, taki jak na rysunku 1.5.
Rysunek 1.5. Komputer wie, jak mam na imię!
Wyjaśnienie młodszym uczniom, takim jak mój trzyletni synek, że program pyta użytkownika o imię, sprawia ogromną radość. Max zna litery w swoim imieniu, więc wpisuje na klawiaturze m-a-x i bardzo się cieszy, gdy mu mówię, że program odpowiada mu Hej, max. Zapytaj swojego ucznia lub uczennicę, czy chcieliby, żeby program powiedział coś innego. Max powiedział "Cześć", więc zmodyfikowałem trzeci wiersz poprzedniego programu, aby zamiast Hej mówił Cześć.
A potem zmieniłem trzeci wiersz tak jak poniżej:
print("Cześć, ", imię, imię, imię, imię, imię)
Max był wniebowzięty, gdy program odpowiedział mu Cześć, max max max max max. Poeksperymentuj z drugim i trzecim wierszem programu, aby komputer zadawał inne pytania i wyświetlał inne odpowiedzi.
CO JUŻ UMIESZ
Uczenie się programowania to jak nauka układania puzzli, rozwiązywania zagadek i łamigłówek. Na początku masz problem, podchodzisz do niego za pomocą tego, co wiesz, a po drodze dowiadujesz się nowych rzeczy. Gdy kończysz, masz za sobą umysłowe ćwiczenie oraz odpowiedź na pytanie. A także, mam nadzieję, satysfakcję.
W tym rozdziale rozwiązaliśmy pierwszy podstawowy problem: zainstalowaliśmy język programowania Python na naszych komputerach, abyśmy mogli zacząć programować. Sprowadziło się to do pobrania, zainstalowania i uruchomienia pliku.
W następnych rozdziałach nauczysz się rozwiązywać problemy, używając kodu. Zaczniesz od prostych wizualnych zadań, jak rysowanie kształtów na ekranie komputera (albo tabletu lub telefonu), a następnie dowiesz się, jak tworzyć proste gry typu zgadywanka liczbowa, "kamień, papier, nożyce" i Pong.
Dzięki fundamentom położonym w tych pierwszych programach, później będzie można przejść do programowania gier, aplikacji mobilnych, aplikacji internetowych i innych rzeczy.
Zakładam, że na tym etapie nauki:
- masz w pełni funkcjonalne środowisko programowania w Pythonie i edytor tekstu;
- potrafisz wprowadzać polecenia programistyczne bezpośrednio do powłoki Pythona;
- potrafisz pisać, zapisywać, uruchamiać i modyfikować krótkie programy w IDLE;
- jesteś gotowy(a) na wypróbowanie bardziej zaawansowanych i fajniejszych programów w rozdziale 2.
ZADANIA PROGRAMISTYCZNE
Na zakończenie każdego rozdziału możesz przećwiczyć przerobiony materiał - a nawet napisać fajniejsze programy - próbując wykonać kilka zadań. (Jeśli będziesz mieć problemy, poszukaj przykładowych odpowiedzi na stronie http://smartkids.pwn.pl/material/uczymy_dzieci_programowania/.)
ZADANIE 1: MAD LIBS
Prosty kod TwojeImię.py zawiera wszystkie komponenty niezbędne do tego, aby można było napisać o wiele bardziej interesujący program, taki jak staromodne gry słowne Mad Libs (jeśli nie wiesz co to jest, wejdź na stronę http://www.madlibs.com/).
Zmodyfikujmy program TwojeImię.py i zapiszmy go jako MadLib.py. Zamiast pytać o imię użytkownika, zapytamy o przymiotnik, rzeczownik i czasownik w czasie przeszłym (w odpowiedniej liczbie i rodzaju) i zapiszemy je w trzech różnych zmiennych, tak jak to zrobiliśmy w przypadku imię w oryginalnym programie. Następnie wyświetlimy zdanie takie jak "przymiotnik rzeczownik czasownik nad leniwym brązowym psem". Po tych zmianach ten kod powinien wyglądać tak:
MadLib.py
przymiotnik = input("Podaj przymiotnik: ")
rzeczownik = input("Podaj rzeczownik: ")
czasownik = input("Podaj czasownik w czasie przeszłym: ")
print("Twoje zdanie:")
print(przymiotnik, rzeczownik, czasownik, "nad leniwym brązowym psem.")
Możesz wprowadzić dowolny przymiotnik, rzeczownik i czasownik. Oto, co powinniśmy zobaczyć po zapisaniu i uruchomieniu MadLib.py (ja wpisałem mądry, nauczyciel i kichnął):
>>>
Podaj przymiotnik: mądry
Podaj rzeczownik: nauczyciel
Podaj czasownik w czasie przeszłym: kichnął
Twoje zdanie:
mądry nauczyciel kichnął nad leniwym brązowym psem.
>>>
ZADANIE 2: JESZCZE WIĘCEJ MAD LIBS!
Zróbmy coś, aby nasza gra Mad Libs była trochę bardziej interesująca. Zacznij tworzyć nową wersję MadLib.py, zapisując ją jako MadLib2.py. Wstaw kolejny wiersz do wprowadzania danych, który pyta o gatunek zwierzęcia. Następnie zmień instrukcję print, usuwając słowo psem i dodając nową zmienną zwierzak po zakończeniu cytowanego zdania (w instrukcji print, przed nową zmienną, wstaw przecinek). Jeśli zechcesz, możesz jeszcze bardziej zmodyfikować to zdanie. Na końcu możesz zobaczyć zdania takie jak miłosne wzruszenia obiecywałaś nad leniwym brązowym baran - albo jeszcze śmieszniejsze!