Nauka programowania w Akademii Khana

Typografia
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

Programowanie to język przyszłości, który warto rozwijać od najmłodszych lat. Tego języka powinny uczyć się już dzieci w szkole podstawowej, nie można tej nauki zaniedbać i na kolejnych etapach kształcenia. KhanAcademy jest najbardziej znana z zasobu filmów i ćwiczeń dotyczących matematyki, a w dalszej kolejności nauk przyrodniczych. Malo kto wie, że w KhanAcademy można się także uczyć informatyki, i to na dwa sposoby.

fot. sxc.hu

Pierwszy z nich Computer programming – programowanie będę opisywać dokładniej.

Drugi – Computer Science, to charakterystyczne dla Akademii Khana filmy z objaśnieniami i ćwiczenia. Zawiera on dwa rozbudowane działy:

  • Journey into cryptography – podróż po (krainie) kryptografii; z tym działem łączą się challenges – problemy, ćwiczenia z kryptografii;
  • Journey into information theory – podróż po teorii informacji.

Nie ma tu programowania, są podstawy matematyczne i algorytmiczne, programy stanowią ilustrację przedstawianych problemów. Jako próbkę (np. na lekcji informatyki w gimnazjum) proponuję obejrzenie dziesięciominutowego filmu Measuring information (Mierzenie informacji), a następnie przejście do logarytmów, obejrzenie filmu Logarithms (7 min.) i wykonanie ćwiczenia Evaluating logarithms. Daje to niezły przegląd możliwości, które oferuje Akademia Khana.

Computer programming – środowisko i zestaw lekcji programowania

Środowisko jest szybko rozwijane. Opisuję jego stan na koniec maja 2014. Uczy ono programowania w języku JavaScript, a do grafiki używa nakładki ProcessingJS. JavaScript jest popularnym językiem wykorzystywanym przy tworzeniu stron WWW.

Podstawy programowania w JavaScript zawiera pierwsza ścieżka: Intro to JS: Drawing & Animation (Wprowadzenie do JS: rysowanie i animacje). Jest tu znacznie więcej materiału niż sugeruje tytuł. Przechodzimy kolejno:

  • Intro to programming (Wprowadzenie do programowania),
  • Drawing Basics (Podstawy rysowania),
  • Coloring (Kolorowanie),
  • Variables (Zmienne),
  • Animation basics (Podstawy animacji),
  • Text and Strings (Teksty i łańcuchy),
  • Functions (Funkcje),
  • Logic and if Statements (Logika i instrukcje warunkowe if),
  • Looping (Pętle),
  • Arrays (Tablice),
  • Objects (Obiekty),
  • Object-Oriented Design (Projektowanie zorientowane obiektowo),
  • Becoming a better programmer (Stań się lepszym programistą).

Każdy z tych działów zawiera interaktywne lekcje i ćwiczenia. Odbywają się one w stworzonym na potrzeby Akademii specjalnym środowisku składającym się z dwóch okien. W lewym wpisywany jest kod programu, w prawym znajduje się kanwa – okno wykonania programu. Każda zmiana kodu jest widoczna w oknie wykonania. To wszystko odbywa się oczywiście on-line na stronie Akademii.

Menu środowiska umożliwia:

  • Tworzenie nowego programu (New Program),
  • Przejście do biblioteki utworzonych programów (My Programs),
  • Przeglądanie programów innych użytkowników (Browse Programs),
  • Sięgnięcie do dokumentacji środowiska (Documentation),
  • Zadanie pytania (prośby o pomoc)…

Programowanie nie jest tu oczywiście tak proste, jak w Scratchu, bo wymaga wpisywania kodu, ale dość łatwo można np. zaimplementować elementy grafiki żółwia i korzystać z rekurencji.

W trakcie badania możliwości środowiska zdołałem utworzyć:

Fraktale:

Symulacje:

Więcej bardziej rozbudowanych programów zawierają kolejne 3 ścieżki nauki programowania:

  • Advanced JS: Games & Visualizations (Zaawansowany JS: gry i wizualizacje);
  • Advanced JS: Natural Simulations (Zaawansowany JS: symulacje natury);
  • Meet the Professional (Spotkaj się z zawodowcem);

Jest tu sporo materiału opisowego przeplatanego interaktywnymi przykładami programów, są także ćwiczenia (Challenges).

Trwają prace nad spolszczeniem tego środowiska (patrz: http://cs-blog.khanacademy.org/2013/11/call-for-volunteers-caption-our.html), ale póki co korzystanie z niego wymaga przynajmniej podstawowej znajomości angielskiego. Sądzę, że jest to jednak dobra propozycja dla uzdolnionych i zainteresowanych programowaniem uczniów gimnazjum. Rola nauczyciela może ograniczyć się do śledzenia postępów (Pokaż co zrobiłaś/zrobiłeś). Wierzę, że znajdziemy takich uczniów.

Jesteśmy na facebooku

fb

Ostatnie komentarze

Jan napisał/a komentarz do Odwrót od ekranów w edukacji?
Żeby napisać coś tradycyjnie potrzebne są tylko dwie rzeczy: 1. długopis i 2. papier (kreda i tablic...
Sebastian Matysiak napisał/a komentarz do Odwrót od ekranów w edukacji?
Człowiek dorosły wchodzi do świata technologii z już ukształtowanym układem nerwowym, wypracowanymi ...
Ppp napisał/a komentarz do Wytrwałość ucznia
Przypominam, że poza Pani przedmiotem, uczeń ma do obsłużenia jeszcze kilkanaście innych, plus dodat...
Pełna zgoda, tylko potrzebny jest CZAS. Plus świadomość, że lektury szkolne bywają trudne i nie możn...
Sebastian Matysiak napisał/a komentarz do Smartfon na lekcji. Zło piekielne czy narzędzie edukacyjne? 
Bil Gates powiedział: „Postęp technologii polega na dostosowaniu jej tak, abyś nawet jej nie zauważa...
Stanisław Czachorowski napisał/a komentarz do Dlaczego nauka przez całe życie i małymi porcjami?
Szkopuł w tym, że tak do końca to nie wiemy co jest na prawdę potrzebne, czyli czego uczyć.
Sebastian Matysiak napisał/a komentarz do Czy rankingi szkół rzeczywiście mierzą jakość edukacji?
To trochę tak, jakby oceniać trenera wyłącznie po wynikach zawodników — bez patrzenia na to, z kim z...
Wspaniałe zrozumienie tematu. Uważam dokładnie tak samo jak Autor artykułu. Pracuje w szkole jako pe...

E-booki dla nauczycieli

Polecamy dwa e-booki dydaktyczne z serii Think!
Metoda Webquest - poradnik dla nauczycieli
Technologie są dla dzieci - e-poradnik dla nauczycieli wczesnoszkolnych z dziesiątkami podpowiedzi, jak używać technologii w klasie