Menu Zamknij

Zachodniopomorska Szczecińska Szkoła Ćwiczeń

Kurs ten napisałem w ramach Zachodniopomorskiej Szczecińskiej Szkoły Ćwiczeń jako poradnik dla nauczycieli w bloku przedmiotów informatycznych pod tytułem:

Nauka programowania w szkole z wykorzystaniem systemów wbudowanych

Jego pełna treść jest dostępna w formacie pdf na stronach projektu https://szkoly.usz.edu.pl/materialy-edukacyjne/#informatyka. Znaleźć tam też można poradniki z innych, a nie tylko informatyki, przedmiotów.

Wprowadzenie

Tradycyjne metody nauki programowania są w większości zorientowane tekstowo, i nie chodzi tu tylko o samą czynność kodowania, lecz także o komunikację działający program – użytkownik. Dla dojrzałego ucznia taka konsolowa metoda, oparta na tak zwanym standardowym wejściu i wyjściu, może być ciekawa i wystarczająca, ale większość oczekiwałaby możliwości co najmniej graficznych. Ponieważ jest to tylko kłopotliwym dodatkiem, bowiem wymaga dużo nakładu pracy, a nie stanowi istoty nauczanych elementów języka, w trakcie nauczania linia poleceń pozostaje podstawowym narzędziem komunikacji.

Systemy wbudowane, szczególnie w ich przyjaznym współczesnym wydaniu, mogą pozwolić na naukę najważniejszych konstrukcji programistycznych, wychodząc przy tym poza standardowe wejście i wyjście. Dają one, nieosiągalną dotychczas dla nieprofesjonalistów, możliwość interakcji pomiędzy aplikacją a światem fizycznym. Pozwalają nawet niedoświadczonym programistom na sterowanie pracą robotów.

Przedstawione w tej książce projekty stosują konkretne rozwiązania sprzętowe i programowe w celu stworzenia fizycznych urządzeń. Niektóre z nich stanowią systemy pomiarowe i kontrolne, a niektóre są prostymi zabawkami. Wykorzystano do tego najpopularniejsze platformy sprzętowe: Arduino oraz Raspberry Pi , chociaż najwięcej miejsca poświęcono mało popularnej w Polsce, a zaprojektowanej specjalnie dla celów edukacyjnych platformie BBC Micro Bit.

Pomimo zamkniętego charakteru należy te pomysły traktować elastycznie, przede wszystkim dobierać zagadnienia do możliwości i zapału uczniów. Zanim jednak zapadnie decyzja o wyborze projektu, należy określić własne preferencje, a w szczególności dotyczące doboru platformy i metod jej programowania w zależności od narzędzi już wykorzystywanych na lekcjach. Każdy z tych projektów można wykonać, choć może to być trudne, na dowolnym układzie i w dowolnym języku, dlatego zastosowane rozwiązania należy traktować przykładowo. Niektóre systemy wbudowane preferują pewne języki programowania, a inne mogą być trudne do wdrożenia, dlatego dopasowując język do platformy, należy także uwzględnić mogące pojawić się przeszkody. Niektóre projekty wymagają też manualnych umiejętności montażowych. Zakładam, że wybierając taki projekt, którego nie składa się gotowymi łączami, wykonawca dysponuje odpowiednimi narzędziami i umiejętnościami. Na szczęście nie będzie potrzeby używania narzędzi specjalistycznych. Wystarczy wkrętak, nóż i szczypce, a płytki stykowe uwolnią nas od konieczności lutowania.

Ważnym elementem nauki programowania jest kreatywność – zarówno w aspekcie wielości dróg prowadzących do celu, jak i możliwości modyfikacji gotowego produktu. W punkcie „Modyfikacje” próbowałem zamieścić najbardziej oczywiste zmiany, o które można rozbudować projekt, ale w niektórych, bardzo ogólnych rozdziałach, należy włączyć własną pomysłowość. Kreatywność to nie tylko umiejętność rozbudowy, lecz także upraszczania, wykorzystywania tylko części projektu i jego najbardziej podstawowych elementów.

Najtrudniejszą koncepcją, z którą należy się oswoić, jest konieczność pracy na innym komputerze niż docelowy. Stanowi to dodatkowy element do opanowania, poza samą kompilacją, którą często standardowo wykonujemy pojedynczym kliknięciem w dedykowanym IDE.

Nazwy rozdziałów są tylko pewnymi hasłami, bardziej kojarzącymi się z samym fizycznym projektem niż informatycznymi zagadnieniami z nim związanymi. Dlatego zamieszczono punkt „Cel”, w którym w najbardziej zwięzłej, jak to było możliwe, formie przedstawiono poruszane w rozdziale zagadnienia programistyczne.

Wyposażeniem podstawowym koniecznym do realizowania wszystkich projektów jest komputer typu desktop (ogólnego przeznaczenia) z dostępem do internetu. W większości przypadków komputer może działać pod kontrolą dowolnego systemu operacyjnego, w szczególności przy projektach realizowanych w chmurze online. Jednakże przykłady prezentowane i testowane były w systemie Fedora, jednej z dystrybucji Linuxa. Przeniesienie ich na system Windows, przeważnie bardzo łatwe, pozostaje po stronie czytelnika.

Wszystkie rysunki, zrzuty ekranowe, zdjęcia, wykresy i schematy są mojego autorstwa, otrzymane przy pomocy otwartych standardów.

Część pomysłów pochodzi z przeprowadzonych przeze mnie zajęć z uczniami klas VI, VII i VIII oraz III gimnazjum (w roku szkolnym 2018/19) i I liceum (2019/20) w ramach projektu „Zostań młodym odkrywcą świata” finansowanego są ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego.

Wszystkie prezentowane projekty nie stanowią eksperymentów myślowych, ale zostały fizycznie zmontowane podczas tworzenia skryptów. Wszystkie zostały przetestowane i działały prawidłowo, czego dowodem jest dokumentacja zdjęciowa. Trzeba jednak mieć świadomość, że konkretna instalacja i konfiguracja, a także ciągle aktualizowane oprogramowanie może sprawić, że nie wszystko zadziała „od ręki”. Nie należy się jednak zniechęcać, bo poszukiwanie błędów i nowych rozwiązań może być równie fascynujące, co samo tworzenie.

Powodzenia w realizacji projektów

Marcin Olszewski

Lider projektu

Partnerzy projektu

Lider projektu

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *