Open Source w edukacji – cz.2
W poprzednim wpisie opisałem jakie powody kierowały mną przy wyborze Otwartego Oprogramowania, jako podstawowego środka dydaktycznego w nauczaniu informatyki w szkole. Dzisiaj chciałbym opowiedzieć jakie oprogramowanie wykorzystuję do realizacji programu nauczania.
Program nauczania i podręcznik
Nauczyciel jest zobowiązany do realizacji podstawy programowanej z informatyki oraz zajęć komputerowych. Jednak ta w żaden sposób nie narzuca narzędzi pracy użytych do osiągania przez nauczyciela założonych celów. Wspomina się tyko o tym, że warto używać darmowego oprogramowania (podstawa z 2011r.) Problemem w nauczaniu informatyki w oparciu o Linuksa jest brak podręcznika dedykowanego takiemu rozwiązaniu. Swego czasu WSiP miał wersję elektroniczną dla systemu Linux. Jednak obecnie o ile wiem, to nie kontynuują tego projektu. Osobiście uważam, że podręcznik w dzisiejszych czasach jest zbędny. Z jednej strony rozleniwia ucznia, który oczekuje, że każdy wepchnie mu wiedzę do głowy bez wysiłku. Z drugiej strony każdy podręcznik IT staje się szybko nieaktualny, nie pokrywa nigdy w pełni wiadomości, które ma opanować uczeń, a tymczasem sieć internetowa jest pełna wszelkiej wiedzy, po którą bez problemu można sięgnąć. Trudno też dopasować podręcznik do konkretnego planu nauczania jaki przyjmuje nauczyciel, chyba, że realizuje on bezkrytycznie to co jest w podręczniku. Większość nauczycieli nie tworzy samodzielnie rozkładów nauczania (planów wynikowych), tylko korzysta z tych, które przygotowują wydawnictwa. Też często to robię, przerabiając je pod swoje potrzeby, w najprostszym przypadku wystarczy w takich rozkładach zmienić nazwy programów, chociaż w moim przypadku wychodzi z tego zazwyczaj zupełnie inny plan.
Metody nauczania
Nauczyciel przedmiotów IT jest w świetnej sytuacji, dysponując stanowiskiem komputerowym dla każdego ucznia, ponieważ umożliwia mu to stosowanie bogatego wachlarza metod nauczania, niedostępnego dla większości nauczycieli, ograniczonych do korzystania z tradycyjnych środków dydaktycznych. Moim zdaniem ważne jest że komputer umożliwia odrzucenie metod podających wiadomości, a uczący zdobywa wiedzę i umiejętności przez czynne działanie. Dlatego staram się na zajęciach, aby większa część pracy polegała na wykonywaniu jak największej ilości różnego rodzaju ćwiczeń. Cały plan pracy jest podporządkowany właśnie zestawowi tych ćwiczeń, a wiadomości teoretyczne są ograniczone tylko do tego co niezbędnie konieczne, do wykonania zadań przez ucznia. Bardzo często owa teoria sprowadza się do demonstrowania pracy na komputerze za pomocą rzutnika. Rzutnik sprawdza się znacznie lepiej niż oprogramowanie transmitujące ekran nauczyciela na pulpity uczniów, ponieważ mogą oni w czasie patrzenia na ekran rzutnika korzystać ze swojego komputera i próbować wykonać to samo we własnym zakresie. W pracy z uczniami zdolnymi warto stosować metodę problemową i dawać zadania o różnym stopniu trudności, również regularnie takie, których podejrzewamy, że uczniowie nie zrobią. Jeśli uczeń nie wykona zadania (a nuż się zdziwimy, że jednak mu się udało), pokazujemy mu jak można było to zrobić. Praca jaką wykonał, zastanawiając się wcześniej nad zadaniem, nie tylko ułatwi mu zrozumienie prezentowanego przez nauczyciela rozwiązania, ale również jest głównym czynnikiem powodującym rozwój ucznia. Uczenie przez małpowanie jest skuteczne tylko gdy chcemy wychować małpę ;)
Stosuję również metodę zbliżoną do "odwróconej klasy". Przygotowuję materiały wprowadzające ucznia do zagadnienia w formie strony internetowej z wykorzystaniem oprogramowania, które sam napisałem. Uczniowie wykorzystują te materiały na lekcji, sam posiłkuję się nimi gdy chce im coś wyjaśnić, a uczniowie mają do nich dostęp 24h na dobę, po zalogowaniu.
Oprogramowanie
Komputery w dwóch pracowniach, którymi się opiekuję pracują z wykorzystaniem Ubuntu (używam zawsze tylko LTSy). Ponieważ dysponuję wystarczająco dobrym sprzętem, nie muszę stosować alternatywnych menadżerów okien, więc korzystam z Unity. Uczniowie szybko uczą się jak je wykorzystywać. Biorąc pod uwagę fakt, że ucząc informatyki skupiamy się na uczeniu pewnych ogólnych zasad, typów oprogramowania czy też algorytmiki, wykorzystany system operacyjny w sensie dydaktycznym ma drugorzędne znaczenie. Ubuntu za to jest łatwe w instalacji i administracji. Nie stosuję też żadnej dystrybucji dedykowanej edukacji (np. Edubuntu), gdyż nie jest to konieczne, a często te dystrybucje różnią się tylko tym od standardowego systemu, że mają na płycie instalacyjnej programy edukacyjne (jeśli ktoś potrzebuje czegoś takiego to może sięgnąć po SRU ). Jednak okazuje się, że czasami mają już coś skonfigurowanego inaczej, co może stanowić problemy albo i tak z tego nie korzystam. Przyczyna wybrania dystrybucji z rodziny Ubuntu jest też oczywista gdy zobaczymy ile pakietów jest dostępnych dla niej, a ile dla innych dystrybucji. W pracowni najlepiej używać własnego routera oddzielającego nas od sieci szkoły. Na routerze stosuję ustawienie przydzielania określonym MAC‑adresom stałego IP (rezerwacja adresów IP). Zaś każdy komputer w pliku /etc/hosts otrzymuje adres komputera nauczycielskiego.
Epoptes
Jest to program pozwalający dostarczać podgląd pulpitów uczniów na komputerze nauczyciela. Można też pokazywać uczniom własny pulpit, wyłączać im zdalnie programy (np. gdy robią coś innego niż powinni robić), wyłączać komputery lub wylogowywać, włączać komputery (dzięki ustawieniu Wake on LAN, w biosie), wykonywać polecenia na wszystkich komputerach jednocześnie, mieć dostęp do konsoli z prawami root, albo przejmować kontrolę nad wybranym komputerem. Podobnym rozwiązaniem do Epoptes jest Italc.
Konfiguracja Epoptes wymaga instalacji na komputerze ucznia pakiety epoptes-client, dodania do pliku /etc/hosts nazwy i adresu IP komputera nauczycielskiego, ustawienia w pliku /etc/default/epoptes-client adresu IP w linijce oznaczonej jako SERVER i pobraniu certyfikatu z serwera:
sudo epoptes-client -c
Na komputerze nauczyciela instalujemy pakiet epoptes, dodajemy też użytkownika, na którego się logujemy do grupy epoptes, co umożliwia mu dostęp do programu:
sudo gpasswd -a użytkownik epoptes
Dzięki Epoptes w zasadzie znika konieczność podchodzenia do komputerów uczniów. Osobiście i tak wolę podjeść do ucznia, aby mu coś wytłumaczyć niż pracować przez program, ale w sprawach administracji komputerami nigdy tego nie robię.
Ansible
To niesamowicie użyteczne narzędzie. Pozwala nam zautomatyzować wykonywanie wielu czynności, ale głównie stosuję je do instalacji oprogramowania. Instalacja oprogramowania na każdym komputerze w pracowni nawet z użyciem Epoptes, nie jest zbyt wygodna, a do tego jest czasochłonna. Tymczasem w Ansible jednym poleceniem instaluję, za jednym razem, całą masę programów od razu na wszystkich komputerach uczniowskich. W programie możemy uruchamiać pojedyncze polecenia lub korzystać z tzw. playbooków, czyli prostych w budowie plików tekstowych w formacie YAML. Korzystam właśnie głównie z tych drugich. Przykładowy plik playbooka:
- hosts: all remote_user: administrator sudo: yes tasks: - name: add key from epodrecznik repository apt_key: url=http://deb.epodrecznik.edu.pl/mikolajsochacki@gmail.com.gpg.key state=present - name: add epodrecznik repository apt_repository: repo='deb http://deb.epodrecznik.edu.pl precise main' state=present - name: install kojo apt: pkg=kojo2 state=latest
Służy mi do instalacji programu Kojo, który znajdując się w niestandardowym repozytorium wymaga dodania klucza podpisu pakietu, repozytorium i na koniec samej instalacji. Taki plik raz napisany można kopiować, podmieniać nazwy pakietów i adresy repozytoriów. Gdy chcemy zrobić coś bardziej skomplikowanego dostępna dokumentacja jest bardzo przejrzysta i pomocna. Wielką zaletą Ansible jest fakt, że nie wymaga on dedykowanego klienta po stronie zarządzanych komputerów, a jedynie działającego ssh‑server.
Instalacja na komputerach uczniów wymaga zainstalowania pakietu ssh‑server oraz pobrania klucza ssh z komputera nauczyciela:
sudo ssh-keyscan SERVER > ~/.ssh/authorized_keys
Ponieważ polecenia wykonywane są po połączeniu na konto z prawami do uruchamiania sudo, to należy na wszystkich komputerach posiadać tego samego użytkownika – administratora (o tej samej nazwie) i z tym samym hasłem (jak podejrzewam i tak każdy to robi). Na komputerze nauczyciela instalujemy ansible, generujemy klucz ssh, jeśli go nie mamy i dodajemy adresy IP komputerów uczniowskich do pliku /etc/ansible/hosts
Instaluję Ansible w pracowni zawsze na początku, a wszystkie dodatkowe czynności wykonuję już dzięki niemu. (np. instaluję Epoptes).
Apt-cacher
Program pomaga gdy chcemy pobierać pakiety instalacyjne programów, a dysponujemy słabym łączem. Normalnie gdy instalujemy na każdym komputerze jakiś program za pomocą apt‑get, ściągamy dla każdego komputera osobną kopię programu. W przypadku słabej sieci, może to na długi czas zablokować innym możliwość korzystania z niej. Apt‑cacher pośredniczy w dostarczaniu pakietów, przechowując je. Gdy na jednym komputerze instalujemy pakiet, Apt‑cacher pobiera go, zapisuje, a przekazuje kopię. Gdy następny komputer poprosi o ten sam pakiet, dostaje następną kopię bez pobierania go z zewnętrznego serwera. Program wymaga instalacji Apache2 i samego pakietu apt‑cacher oraz ustawienia w pliku /etc/apt-cacher/apt-cacher.conf adresów IP hostów mogących korzystać z usługi. Po stronie klientów, w każdym repozytorium poprawiamy adresy repozytoriów, dodając dodatkową ścieżkę serwer:3142/ po http://
Ilość czasu jaką zaoszczędzam dzięki odpowiednim narzędziom i Linuksowi jest olbrzymia, gdy porównam to do sposobu w jaki pracowałem z Windowsem. Oczywiście można sobie uprościć również pracę na Windowsie (choć nie sądzę, że w takim samym stopniu) dzięki Active Directory, ale jest się uzależnionym od faktu czy szkoła zakupi rozwiązania serwerowe. Poza tym mam bardzo złe doświadczenia z pracy SBS okrojonego w wydaniu dla szkół. Fakt, że w przypadku Ansible nauczenie się jego wykorzystania wymaga trochę wysiłku i nauki, ale zwraca się to z nawiązką. Zdarza się, że na początku lekcji okazuje się, że czegoś brakuje w systemie, więc szybko zapuszczam Ansible i w kilka minut wszystkie komputery mają zainstalowane komponenty.
W następnym wpisie przedstawię oprogramowanie typowo edukacyjne, wykorzystywane w szkole.