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

Janusz Korczak pisał prostym ( a jednak pięknym) językiem, więc zasadniczo nie powinno być problemów...
Znaczy, jeśli ja NIGDY nie nauczyłem się trygonometrii, to moja klasa nigdy nie powinna wyjść poza n...
To działa automatycznie, jeśli człowieka coś faktycznie bardzo interesuje. Nie sądzę jednak, by zadz...
Jako nauczyciel potwierdzam,że konsekwencja i sumienność może przynieść rewelacyjne efekty.Talent ow...
Bardzo ważna kwestia, ubolewam nad tym, że tak w dyskursie publicznym (debaty wokół reform oświatowy...
Bartosz napisał/a komentarz do Inżynieria sukcesu zamiast "talentu" do matematyki
Dziękuję za ten głos. Nie twierdzę, że talent nie istnieje. Ale nie można korzystać z twierdzenia "n...
Ppp napisał/a komentarz do Notatki nadają sens uczeniu się
Uczniowie nie maja czasu na to wszystko - lepiej notatkę po prostu podyktować, a do prawdziwej nauki...
Likwidacja egzaminów likwiduje WSZYSTKIE problemy z egzaminami - kiedy to wreszcie zrozumiecie?Pozdr...

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