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

Ppp napisał/a komentarz do Jak książeczki uczą rozmawiać?
Mama opowiadała mi, że zacząłem mówić bardzo późno, ale jak już zacząłem - od razu pełnymi zdaniami,...
Przerażająca wizja. Z jednej strony trzeba gonić za technologią która rozwija świat, z drugiej stron...
Stanisław Czachorowski napisał/a komentarz do Wykład w czasach postpiśmienności, czyli szukanie drogi we mgle
Tak, najważniejszy jest tok rozumowania, opowieść o wiedzy i dochodzeniu do wniosków, odkryć. To się...
Wykładam matematykę i staram się postępować na przekór pewnego określenia czym jest wykład: to trans...
Stanisław Czachorowski napisał/a komentarz do Wykłady w stylu programów popularnonaukowych?
Zawsze najważniejszym jest mieć coś do powiedzenia. Interesującego, ważnego, wartościowego. Dobrze j...
Jak widzę, odniósł się Pan do mojego komentarza, więc odpowiem.Programy B. Wołoszańskiego były różne...
Pani Anno, to co zamierzam napisać dotyczy zarówno psychologów szkolnych jak i pedagogów. I jedni i...
Drodzy Państwo, czy głupotę można nazywać po imieniu? Czy głupota ministra jest głupotą szkodliwą? C...

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