Blog Doktora No

Blog geeka o komiksach, filmie, anime oraz nauce i technice - A Geek's blog about anime, film, sci and tech

Weekend z Quick Basic 64

qb64Dawno temu, w latach 80-tych zeszłego wieku firma Microsoft, obok MS-DOSa i raczkującego Windowsa, sprzedawała kompilatory języka BASIC dla wczesnych „pecetów” pod nazwą GW-BASIC a następnie QuickBasic. Był on stosunkowo popularny, zarówno do celów edukacyjnych i profesjonalnych, aż zastąpiony został przez Visual BASIC (który sam został wyparty przez min. makra MS Office i BASIC dla .NET), po czym już pokrył się kurzem zapomnienia, wykorzystywany już jedynie przez zagorzałych entuzjastów… 8)  Czytaj dalej

Uczmy nasze dzieci programowania! – c.d.

Nieco ponad rok temu napisałem, w kontekście nauczania informatyki w szkołach, że szkoła "powinna uczyć podstaw zaplecza teoretycznego współczesnej informatyki, gdyż obsługi programów użytkowych można nauczyć się chociażby z instrukcji obsługi. Dzieciaki opuszczając gimnazjum w XXI wieku powinny mieć świadomość, że cała "magia" komputerów polega na tym, że po prostu wykonują one po kolei zadane polecenia, bez ustanku licząc. Taką wiedzę może im dać tylko nauka programowania.".

Ostatnio znalazłem kolejny argument na rzecz nauki programowania w szkole, w postaci wykład Conrada Wolframa na TED Talk w Oxfordzie, poświęcony nauczaniu matematyki w szkole, jako przedmiotu wyjątkowo istotnego dla rozwoju naszej cywilizacji. Pan Wolfram twierdzi, że zamiast tępego uczenia dzieci liczenia, powinny być one uczone matematyki przy pomocy komputerów, a dokładnie ich programowania, z naciskiem na logiczne myślenie i formułowanie problemów:

Uczmy nasze dzieci BASICa!

Dawno temu, w epoce komputerów 8-mio bitowych, każdy użytkownik tych maszyn musiał zapoznać się z językiem BASIC, nawet po to, aby załadować grę czy program użytkowy do pamięci.

Zaowocowało to lepszą znajomością możliwości sprzętu i oferowanych przez niego możliwości, oraz sprzyjało jego bardziej twórczemu wykorzystywaniu.

W dzisiejszych czasach, gdzie obsługa komputera jest banalnie prosta i intuicyjna, widać pewien regres, gdyż użytkownicy nie widzą potrzeby pogłębiania swej wiedzy i umiejętności. 

Jest to szczególnie frustrujące w przypadku dzieci i młodzieży, które to marnują czas na bierne przeglądanie internetu i granie, zaprzepaszczając możliwości jakie daje nowoczesna technologia w dziedzinie edukacji i rozwoju intelektualnego.

Wbrew obiegowej opinii, obecność komputerów w domach NIE poprawia wyników w nauce, gdyż są one często wykorzystywane do rozrywki, w szczególności gier i Internetu, odrywając dzieci od nauki. Dowodem na to niech będą badania poczynione w Rumunii przez profesora Ofera Malamuda, według których obecność komputerów podnosi co prawda znajomość obsługi tych urządzeń, ale kosztem wyników w szkole.

Postanowiłem sprawdzić, czy w Polsce istnieje obowiązek nauczania programowania w szkole. Poguglałem za publikacjami poświęconymi podstawie programowej nauczania informatyki w gimnazjum, i uderzyło mnie to, że poza jednym napomknięciem o języku LOGO, nie ma ani słowa o wymogu nauczaniu programowania w konkretnym języku wysokiego poziomu na lekcjach informatyki w gimnazjum. Jest nauczanie podstawy algorytmów ale to wszystko. Większość wymagań programowych dotyczy uczenia obsługi systemu Windows, edytora tekstu, arkusza kalkulacyjnego, programów do grafiki i Internetu itp. – można to zobaczyć w założeniach reformy programowej Ministerstwa Edukacji Narodowej. W liceach programowanie ma status "materiałów nadobowiązkowych", co jest moim zdaniem nieporozumieniem.

Mam duże wątpliwości co do takiego postępowania, gdyż większość tych rzeczy dzieciaki mogą się dowiedzieć od rówieśników, rodziców czy prasy komputerowej. Twórcy reformy programowej w MENie zapominają, że nasycenie technologią informatyczną samo z siebie wymusza elementarną wiedzę na ten temat wśród najmłodszych. Mam na myśli wiedzę na poziomie powierzchownym, charakterystycznym dla szarego użytkownika.  

Dlatego szkoła powinna iść krok dalej, i powinna uczyć podstaw zaplecza teoretycznego współczesnej informatyki, gdyż obsługi programów użytkowych można nauczyć się chociażby z instrukcji obsługi. Dzieciaki opuszczając gimnazjum w XXI wieku powinny mieć świadomość, że cała "magia" komputerów polega na tym, że po prostu wykonują one po kolei zadane polecenia, bez ustanku licząc. Taką wiedzę może im dać tylko nauka programowania.

I nie jest to wcale "sztuka dla sztuki". Trudno wyobrazić sobie, aby kierowca samochodu nie wiedział jak działa silnik czterosuwowy, mechanik nie miał pojęcia o podstawowych prawach fizyki, a lekarz nie znał się na biologii. Podstawowa wiedza z dziedziny programowania sprzyja bardziej dogłębnemu poznaniu tajników funkcjonowania systemów operacyjnych i oprogramowania, co może zaprofitować wyższą kulturą techniczną, rozumianą jako bardziej twórcze wykorzystywanie możliwości jakie daje technologia. Pierwszy kontakt z komputerem w roli programisty może wzbudzić zainteresowanie informatyką wśród uczniów, co ma potencjalnie duży wpływ na  wybór drogi edukacji i kształcenia zawodowego.

Jaki język wybrać do szkolnych pracowni? Moim zdaniem oczywistym wyborem jest język BASIC, pomyślany od początku swego istnienia jako narzędzie edukacyjne. Dlaczego nie słynny Pascal? Pascal jest już zbyt skomplikowany jak na pierwszy kontakt z językiem programowania, gdyż rozróżnia on typy zmiennych i posiada złożone typy danych (w najnowszych wersjach posiada nawet wskaźniki i obiekty).

Jeśli chodzi o BASICa, to do wyboru mamy sporo mutacji tego języka, min. VisualBASIC Microsoftu, czy FreeBASIC, ale na szczególną uwagę zasługuje darmowy, na otwartym źródle, język BASIC-256 (dawniej KidsBASIC), pomyślany jako język dla dzieci i młodzieży szkolnej. 

Okno BASIC-256 z programem do rysowania fraktali.

Jest on dostępny w wersji na Linuxa i Windows i posiada zintegrowane środowisko programistyczne, umożliwiające łatwą edycję kodu, podgląd grafiki, podgląd zmiennych i wyjście tekstowe. Sama aplikacja nie jest skomplikowana, pewną niedogodnością może być brak polskiego tłumaczenia interfejsu i dokumentacji.  Nauka programowania z użyciem tego narzędzia powinna polegać na tworzeniu prostych programów, które pozwalały by na ogarnięcie przez uczniów zmiennych, instrukcji warunkowych, iteracji itp., w celu np. rozwiązywania zadań z matematyki (np. rozwiązywanie równań z dwiema niewiadomymi), czy zabawy w tworzenie grafiki (proszę mi wierzyć, dzieci to lubią). 

Reasumując: nauczanie programowania powinno być obowiązkowe w gimnazjum i liceum. Do tego celu idealnie nadaje się język BASIC, a w szczególności BASIC-256. Nie rozumiem argumentu w stylu "to jest za trudne dla dzieciaków", gdyż jest to po prostu nieprawda. Gdybyśmy kierowali się podejściem, że wiele rzeczy jest za trudnych dla dzieci (bo muszą się ich nauczyć, w toku edukacji, często najeżonej niepowodzeniami) to najlepiej to by było w ogóle ich niczego nie uczyć.

Do poczytania:

http://www.basic256.org

"Why Johnny can’t code?"

 

Moje wspomniena ze szkoły – felieton na początek Września.

Pierwszy Września to nie tylko rocznica wybuchu wojny, to także początek nowego roku szkolnego. Swoją edukacje zaczynałem już w III RP, choć podręczniki do języka polskiego pisały jeszcze o tym, że mieszkam w PRLu, a niektóre atlasy geograficzne miały ZSRR i NRD na mapach Europy. Sama szkoła aż do reformy, w której została zmieniona w połączone gimnazjum z podstawówką, nosiła imię komunistycznego herosa.

Jako że moje dzieciństwo przypadło na okres raczkującego kapitalizmu, to zaopatrzenie było zdecydowanie leprze niż w poprzednim okresie. Tornistry, zeszyty i podręczniki już w latach 90-tych były kolorowe (jak chodziłem do liceum, już zaczęli robić okładki w konwencji japońskich komiksów), a rewelacją był sklepik gdzie można było kupić oranżadę czy „ciepłe lody” i paluszki za banknoty z Kopernikiem. Denominacja akurat zbiegła zbiegła się wraz z popularnością chipsów, batoników i innego kalorycznego badziewia.

Telefony komórkowe w tym czasie były synonimem bogactwa, i klasy wyższej, menadżerskiej. Dopiero pod koniec dekady „komórki” weszły do powszechnego obiegu, akurat jednocześnie z Tamagochi; w 8 klasie widziałem dziewczynkę z młodszej klasy, co nosiła cały pęk (sic!) zawieszonych na obręczy tych elektronicznych „stworzonek”.

A propos’ gadżetów… Kiedy chodziłem do podstawówki, posiadanie komputera było jeszcze czymś raczej niezwykłym, i sporo mówiło o statusie materialnym rodziców. Muszę przyznać, że dla większości moich kolegów przygoda z komputerem zaczynała i kończyła się na grach…

Dziewczyny, po wyrośnięciu z lalek, bawiły się rysowaniem „rewii mody” w zeszytach, a chłopaki, gdy wyrośli z żołnierzyków „G.I. Joe” i „resoraków”, debatowali o wyższości Commodore 64 nad Atari, czy Amigi nad IBMem.

Co do nauki to było jak było: na języku polskim czytelnictwo było sukcesywnie wypierane przez oglądalnictwo wideo. Szło się po prostu do świetlicy, i w 2 godziny przerabiało „Krzyżaków” na postawie filmu Forda. Nawiasem mówiąc, brak posiadania VHSa w domu był powodem obniżenia swego statusu w grupie.

Innym fenomenem były masowe spędy do kina na szlagiery dużego ekranu, co było tradycją honorowaną już od czasu, gdy chodziłem do przedszkola. Robiło się zrzutkę, a potem szło na „Alladyna” czy „Króla Lwa”, a po powrocie polonistka w przepływie pedagogicznej weny kazała nam streszczać fabuły i rysować scenki z filmu w zeszycie.

Kiedy chodziłem do liceum akurat wyrzucono „Quo Vadis” z listy lektur obowiązkowych, ale nasza nauczycielka, młoda idealistka, zmusiła nas do jej przeczytania. Ale i tak zawsze trzeba było zaliczyć ekranizacje, jak nie na wideo, to podczas kolejnego spędu do kina (zaliczyłem „Ogniem i Mieczem” w liceum).

Z przedmiotami ścisłymi było akurat zdecydowanie lepiej. Chemia i fizyka były na dobrym poziomie, tak w podstawówce, jak i w liceum, podobnie z królową nauk, matematyką, więc nie będę się tu rozwodził. Moje liceum, zamienione w profilowane (ech, te reformy…) szczyciło się posiadaniem Internetu w pracowniach informatyki, co w tamtych czasach było rzeczą rzadko spotykaną na prowincji.

Niedawno wróciłem w rodzinne strony aby zobaczyć jak wyglądała moja pierwsza szkoła. Boisko, zamiast obleśnego asfaltu, jest zrobione z jakiejś syntetycznej nawierzchni, podobnie jak bieżnia. Od zewnątrz budynek odremontowano, w auli płaskorzeźba (na całą ścianę!) ku czci komunistycznego herosa ciągle jest, choć już zamalowana. Na podwórku stary dzwonek przyczepiony do ściany zastąpiła kamera monitoringu, a autobus szkolny ma gdzie zaparkować. Dzieciaki mają książki i zeszyty jeszcze bardziej kolorowe niż za moich czasów (nie wnikam w zawartość), i mogą więcej korzystać z dobrodziejstw Internetu.

Mówiąc krótko, sporo się zmieniło na leprze, nauczyciele nie są już tak obciążeni jak dawniej ze względu na niż demograficzny (w moich czasach efektem pomysłów ministrów edukacji było dzielenie sali gimnastycznej na ćwiartki, aby organizować W-F według nowej normy), tym bardziej mnie zadziwia niemoc edukacyjna. Ale to temat na inne rozważania…

(Podziękowania dla Marcina Janowskiego za inspiracje)