Licealiści z Oświęcimia i Python w walce robotów….

Źródło: pixabay.com
Źródło: pixabay.com

Dzisiaj miałem okazję wraz z kolegą Robertem Bednarzem prowadzić warsztaty z programowania Pythona w Liceum prowadzonym przez Salezjanów w Oświęcimiu.

Piszę ten tekst na gorąco w PKP z Krakowa do Warszawy, więc mam chwilę czasu. Plan zajęć był prosty – najpierw szybkie przedstawienie podstaw Pythona w IPython QT Console, potem krótka aplikacja konsolowa w Geany, następnie sztuczna inteligencja robotów walczących na wirtualnej arenie RobotGame, na koniec programowanie robotów EDISON również w Pythonie. Wszystko w 5 godzin lekcyjnych z młodzieżą, która nigdy Pythona nie widziała na oczy – chyba, że gada w Zoo 😉

A więc zaczęliśmy – jako środowisko pracy użyliśmy remiks edukacyjny FREE_Desktop – tak, tak, Linux w najczystszej postaci – pozwoliło to sprawnie uruchomić wszystko, co niezbędne, bez konieczności godzinnych instalacji.

Kto chce sam spróbować – http://wiki.cyfrowaszkola.waw.pl/doku.php/public:fd:install_iso

Podstawowe informacje o Pythonie moim zdaniem najlepiej pokazywać w aplikacji IPython QT Console. To quasi graficzna interaktywna konsola, która posiada wiele możliwości. Dla mnie największa jest dostępna on-line pomoc z kodu źródłowego Pythona oraz możliwość „podglądu” metod dostępnych dla obiektów – ponieważ w Pythonie

„everything is an object”.

Przyznam się, że największe zdziwienie wywołała moja odpowiedź na pytanie jednej z uczennic, czy w Pythonie można zliczyć występowanie litery w łańcuchu znaków. Po prostu pokazałem metodę dostępną do obiektu, który jest stringiem.

Następnie przyszedł czas na realną aplikację – nasz wybór padł na Toto Lotka, czyli losowanie i zgadywanie. I tu czas na pewnego rodzaju wyjaśnienie – skąd w ogóle nasze pomysły na to, czego uczymy na zajęciach? Otóż istnieją od kilku lat bezpłatne i legalne materiały wypracowane przez nas (ambasadorów Języka Python) w projekcie „Koduj z Klasą” prowadzonym przez Centrum Edukacji Obywatelskiej dzięki wsparciu Ministerstwa Cyfryzacji, Ministerstwa Edukacji Narodowej czy firmy Google. W tych materiałach dostępnych na licencji Creative Commons znajdziecie na pewno kilka inspiracji do prowadzenia zajęć.

Link do materiałów: http://python101.readthedocs.org/

Kiedy już wykonaliśmy kilka modyfikacji kodu w Geany (a to świetne i lekkie IDE dla różnych języków programowania, jak C, PHP, Python, HTML, JavaScript…), młodzież mogła się przekonać, jak w praktyce wygląda PEP-8 (poszukajcie w Internecie) – i zapewniam Was, że całkiem im się to spodobało. I bardzo byli zaciekawieni, jak mogą działać pętle for w Pythonie.

Teraz przyszła kolej na RobotGame – to biblioteka do Pythona, która wraz z kilkoma dodatkami umożliwia realizowanie walk robotów – trzeba „tylko” napisać kod sztucznej inteligencji takiego robota. I tutaj okazało się, że młodzi już „połknęli haczyk” Pythona i z wielką chęcią zaczęli testować kod robotów…

Tu uczniowie u Roberta…

a tu u mnie.

Gdy już stworzyli inteligencję pierwszego prostego robota, przyszedł czas na platformę http://robotgame.edu.pl – stworzoną przez Superbelfrów dla innych belfrów i dla każdego, kto tylko chce spróbować swoich sił w grze robotów. Jest tam kilkanaście naszych, lecz w większości są identyczne, dlatego potrzebne są inne, aby sprawdzić, jak potraficie programować. Przy okazji tych robotów nagle przeskoczyliśmy do klas, pełnych obiektów i metod, do rozpakowywania tupli, do takich elementów języka Python, których chyba nie ma nigdzie indziej. Bo w jakim języku można jeszcze wykonać polecenie:

a, b, c, d = 5, 4, 3, 2

 

Uczniowie z zaciekawieniem przyglądali się platformie.

Link do platformy: http://robotgame.edu.pl

Na koniec przyszedł czas na fizyczne roboty EDISON, które można również programować poprzez jerzyk Python. Możecie spokojnie sprawdzić informacje na stronie http://robot-edison.pl – a oprócz Pythona dziewczyny wykorzystały wbudowane tryby pracy do stworzenia robota reagującego na światło (podążaj za światłem).

A już jako wisienkę na torcie pokazaliśmy im CodeCombat – świetny portal do samodzielnej nauki języka Python poprzez grę – bo tam trzeba za pomocą komend sterować bohaterem w labiryncie. Naszym zdaniem to bardzo ciekawe środowisko do edukacji poprzez grę – młodzież była zaciekawiona.

Link do platformy: http://codecombat.com/

Konkluzja:
Ktoś mógłby powiedzieć, że Oświęcim to niezbyt duże miasto, chociaż od wczorajszego wieczoru sławne. Młodzież ze szkoły prowadzonej przez Salezjanów zaskoczyła nas tak bardzo swoim podejściem („chciało” im się przyjść na kilka godzin w Sobotę z własnej woli na spotkanie z jakimiś nudnymi programistami), że do tej chwili nie możemy wyjść z podziwu. Myślę, że mają doskonałe zadatki na to, aby w przyszłości być dobrymi programistkami / programistami. Oczywiście znów kobiety stawiam na pierwszym miejscu, gdyż są częstokroć lepsze od mężczyzn w programowaniu. Tak, wiem co mówię (piszę). I w ogóle nie mieli żadnych, nawet najmniejszych
problemów z systemem Linux, z językiem Python, z konsolą. Po prostu użyli ich – i to jest najcenniejsze, że nie maja oporów przed próbowaniem nowych narzędzi. Życzę wszystkim nauczycielom, aby również nie mieli takich oporów.
Wracam do domu z poczuciem, że znów pokazałem kilkunastu osobom ciekawe systemy, środowiska i język programowania. Mam nadzieję, że w tym artykule znajdziecie inspiracje do nauki programowania.


Adam Jurkiewicz – haker edukacji, absolwent kursów Massachusetts Institute of Technology z języka programowania Python.
Trener technologii Web 2.0 ze szczególnym uwzględnieniem otwartych zasobów edukacyjnych. Programista, administrator systemów UNIX/Linux, twórca remiksu edukacyjnego FREE_Desktop – remiksu systemu operacyjnego dla wolnych ludzi, legalnego i darmowego dla wszystkich.
Współpracownik Fundacji Wolnego i Otwartego Oprogramowania,  Fundacji Interkl@sa, oraz Centrum Edukacji Obywatelskiej, w projekcie „Koduj z Klasą” ambasador i trener nauczycieli w zakresie języka programowania Python.
Propagator Wolnego i Otwartego Oprogramowania, otwartej cyfrowej mapy OpenStreet Map i wszelkich „otwartych” rozwiązań. Prywatnie – miłośnik szant, stateczny mąż i ojciec, zwariowany nauczyciel młodzieży, jeśli tylko ma okazję.

Zapisz

Zapisz

Zapisz

Print Friendly, PDF & Email

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Time limit is exhausted. Please reload CAPTCHA.