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

Robert Raczyński napisał/a komentarz do Natura matury
Miałem wrażenie, że dość jasno dałem do zrozumienia, że nie rozważam tu zasadności ani prawidłowości...
Mikołaj napisał/a komentarz do Natura matury
Trafne pokazuje to, że matura to nie tylko test wiedzy, ale rytuał przejścia, który ma sens tylko wt...
Ppp napisał/a komentarz do Natura matury
Maturę nalezy ZLIKWIDOWAĆ, ponieważ jest niesprawiedliwym egzaminem, którego można PRZYPADKOWO nie z...
Zapisałem dziecko na karate kontaktowe przez takich własnie małych gnojków by sam umiał się bronić
Nauczyciel napisał/a komentarz do Jeszcze większa automatyzacja pracy twórczej
Są też aplikacje które skutecznie potrafią wykrywać czy dany tekst został napisany przez AI czy nie ...
Kajtek napisał/a komentarz do Po co jest szkoła?
Szkoły niczego nas nie uczą oprócz polskiego oraz matematyki nic więcej nie jest nam potrzebne a nau...
Ludzie nie umieją słuchać bo są skupieni na sobie, na swoim ja. Do tego dochodzą narcystyczne wzorce...
Rafał Kapica napisał/a komentarz do Szkolna klasa - dobre miejsce do współpracy
tak tablice są bardzo dobrym rozwiązaniem - polecam

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