Czołgi na Pascalu: jak uczono dzieci programowania w latach 90-tych i co było w tym nie tak

Trochę o tym, jak wyglądała szkolna „informatyka” w latach 90-tych i dlaczego wszyscy programiści byli wtedy głównie samoukami.

Czołgi na Pascalu: jak uczono dzieci programowania w latach 90-tych i co było w tym nie tak

Na czym uczono dzieci programować

Na początku lat 90-tych moskiewskie szkoły zaczęły wybiórczo wyposażać klasy w komputery. W pomieszczeniach natychmiast zakładano kraty w oknach i ciężkie żelazne drzwi. Znikąd pojawiał się nauczyciel informatyki (wyglądał jak najważniejszy towarzysz po dyrektorze), którego głównym zadaniem było pilnowanie, aby nikt niczego nie dotykał. Absolutnie niczego. Nawet drzwi wejściowych.
W klasach najczęściej można było spotkać systemy BK-0010 (w jego odmianach) i BK-0011M.

Czołgi na Pascalu: jak uczono dzieci programowania w latach 90-tych i co było w tym nie tak
Zdjęcie wzięte stąd

Dzieciom opowiadano o ogólnej budowie, a także o kilkunastu komendach „Baisika”, aby mogły narysować na ekranie linie i kółka. Dla młodszych i średnich klas prawdopodobnie wystarczało.

Z zapisywaniem swoich twórczości (programów) były wtedy osobne problemy. Najczęściej komputery za pomocą kontrolerów jedno-kanałowych łączono w sieć o topologii „wspólna szyna” i prędkości przesyłu 57600 bod. Napęd dyskietek, zazwyczaj, był jeden, i z nim często były problemy. Raz działał, raz nie działał, raz sieć się zawieszała, raz dyskietka nie była odczytywana.

Wtedy nosiłem ze sobą takie twór o pojemności 360 kB.

Czołgi na Pascalu: jak uczono dzieci programowania w latach 90-tych i co było w tym nie tak

Szanse, że wydobędę ponownie mój program, wynosiły 50-70%.

Jednak głównym problemem wszystkich tych historii z komputerami „BK” były niekończące się zawieszenia.

Mogło to się zdarzyć w każdej chwili, czy to podczas wpisywania kodu, czy wykonywania programu. Zawieszony system oznaczał, że 45 minut czasu spędziłeś na próżno, ponieważ trzeba było robić wszystko od nowa, ale na to nie wystarczało już czasu lekcji.

W pobliżu 1993 roku w niektórych szkołach i liceach zaczęły pojawiać się normalne klasy z maszynami 286, a miejscami stały nawet „trojki”. Jeśli chodzi o języki programowania, były dwie opcje: tam, gdzie kończył się „Baisik”, zaczynał się „Turbo Pascal”.

Programowanie w „Turbo Pascal” na przykładzie „czołgów”

Na 'Pascalu' dzieci uczyły się budować pętle, rysować różne funkcje i pracować z tablicami. W fizmat-liceum, gdzie przez pewien czas 'rezydowałem', na informatykę przeznaczano jedną parę lekcji w tygodniu. I przez dwa lata to była ogromna nuda. Oczywiście chciałem zrobić coś bardziej poważnego niż wyświetlanie wartości tablicy lub jakiejś sinusoidy.

Czołgi

Battle City była jedną z najpopularniejszych gier na konsolach klonach NES (Dendy i inne).

Czołgi na Pascalu: jak uczono dzieci programowania w latach 90-tych i co było w tym nie tak

W 1996 roku popularność 8-bitowych konsol minęła, od dawna kurzyły się w szafach, a mi się wydawało fajne, aby zrobić właśnie klon 'Czołgów' na PC. Później opowiem o tym, jak wtedy trzeba było się wysilić, aby stworzyć na 'Pascalu' coś z grafiką, myszką i dźwiękiem.

Czołgi na Pascalu: jak uczono dzieci programowania w latach 90-tych i co było w tym nie tak

Można rysować tylko patyczki i kółeczka

Zacznijmy od grafiki.

Czołgi na Pascalu: jak uczono dzieci programowania w latach 90-tych i co było w tym nie tak

W podstawowej wersji 'Pascal' pozwalał rysować niektóre figury, wypełniać je i określać kolory punktów. Najbardziej zaawansowane procedury w module Graph, przybliżające nas do sprite'ów, to GetImage i PutImage. Dzięki nim można było przechwytywać w wcześniej zarezerwowanej przestrzeni pamięci fragment ekranu i później używać tego kawałka jako obraz rastrowy. Innymi słowy, jeśli chcesz wielokrotnie używać na ekranie jakichś elementów lub obrazów, najpierw je rysujesz, kopiujesz do pamięci, znikasz ekran, rysujesz następne i tak dalej, aż stworzysz w pamięci potrzebną bibliotekę. Ponieważ wszystko dzieje się szybko, użytkownik tych sztuczek nie zauważa.

Pierwszy moduł, w którym użyto sprite'ów - edytor map.

Czołgi na Pascalu: jak uczono dzieci programowania w latach 90-tych i co było w tym nie tak

W nim było oznaczone pole gry. Kliknięcie myszką wywoływało menu, w którym można było wybrać jedną z czterech opcji przeszkód. Przechodząc do myszki...

Mysz to już koniec lat 90.

Myszy, oczywiście, miało każdy, ale do połowy lat 90. korzystano z nich głównie w Windows 3.11, pakietach graficznych i w niewielu grach. W Wolf i Doom grano tylko z klawiatury. A w środowisku DOS myszka nie była zbytnio potrzebna. Dlatego w Borland moduł obsługi myszki nawet nie był włączany w standardowej ofercie. Trzeba było go szukać u znajomych, którzy rozkładali ręce i w odpowiedzi krzyczeli 'po co ci to?'.

Jednak znalezienie modułu do obsługi myszki to tylko połowa sukcesu. Aby myszka mogła klikać na przyciskach na ekranie, trzeba je było narysować. A w dwóch wariantach (wciśnięty i niewciśnięty). W przypadku przycisku niewciśniętego górna część jest jasna, a pod nim cień. W przypadku wciśniętego jest odwrotnie. I należy go narysować na ekranie trzykrotnie (niewciśnięty, wciśnięty, a potem znów niewciśnięty). Plus nie zapomnieć o opóźnieniach wyświetlania oraz ukryć kursor.

Czołgi na Pascalu: jak uczono dzieci programowania w latach 90-tych i co było w tym nie tak

Na przykład, obsługa głównego menu w kodzie wyglądała tak:

Czołgi na Pascalu: jak uczono dzieci programowania w latach 90-tych i co było w tym nie tak

Dźwięk – tylko piszczenie z PC Speakera

To osobna historia z dźwiękiem. Na początku lat dziewięćdziesiątych klony Sound Blaster dopiero zaczynały swoje triumfalne marsze, a większość aplikacji działała tylko z wbudowanym głośnikiem. Maksimum jego możliwości to jednoczesne odtwarzanie tylko jednego tonu. I właśnie to umożliwiało Turbo Pascal. Przez procedurę sound można było "piszczeć" różnymi częstotliwościami, co było wystarczające do dźwięków strzałów i eksplozji, ale do muzycznej wstawki, która była wtedy modna, zupełnie się nie nadawało. W efekcie znaleziono dość sprytne rozwiązanie: w swoim archiwum oprogramowania odkryłem "ekstrawersja", pobraną kiedyś z jakiejś BBS-ki. Potrafiła czynić cuda – odtwarzała nieskompresowane pliki wav przez PC Speakera, a robiła to z wiersza poleceń i nie miała własnego interfejsu. Wszystko, co trzeba było zrobić, to wywołać ją przez paskalową procedurę exec i upewnić się, że ta konstrukcja nie zawiedzie.

W efekcie na ekranie pojawiła się odjazdowa muzyka, ale z tym wyszła zabawna sytuacja. W 1996 roku miałem system na Pentium 75, podkręconym do 90. Na nim wszystko działało doskonale. Na uczelni, gdzie w drugim semestrze wprowadzono Pascal, w klasie stały widziane czasy "trójki". Zgodnie z umową z wykładowcą przyniosłem na drugie zajęcia te czołgi, aby zaliczyć ćwiczenia i więcej tam nie chodzić. I oto po uruchomieniu z głośnika dobiegł głośny ryk wymieszany z bulgoczącymi dźwiękami. Generalnie, 33-megahercowa "trójka" nie dała rady normalnie uruchomić tego "ekstrawersji". Ale poza tym wszystko było w porządku. Oczywiście z wyjątkiem opóźnionego odczytu klawiatury, który psuł całą rozgrywkę niezależnie od wydajności PC.

Odtwarzaj wideo

Ale główny problem nie leżał w "Pascalu".

Moim zdaniem «Tankówki» to maksimum, co można było wycisnąć z Turbo Pascala bez użycia wstawek assemblerowych. Wyraźnymi wadami końcowego produktu są wolne skanowanie klawiatury i wolne renderowanie grafiki. Sytuację pogarszało skrajnie niskie liczba zewnętrznych bibliotek i modułów. Można je było zliczyć na palcach jednej ręki.

Ale najbardziej frustrował mnie podejście w szkolnictwie. Dzieciom nikt wtedy nie opowiadał o zaletach i możliwościach innych języków. Na lekcjach od razu zaczynano mówić o begin, println i if, co zamykało uczniów w paradgimie bazika-pascalowego. Oba te języki można uznać wyłącznie za edukacyjne. Ich «bojowe» zastosowanie jest rzadkim zjawiskiem.

Dlaczego uczyć dzieci fałszywymi językami – to dla mnie zagadka. Niech będą bardziej przejrzyste. Niech różne wersje «BASIC-a» są gdzieś używane. Ale w każdym razie, jeśli ktoś myśli o związaniu swojej przyszłości z programowaniem, będzie musiał uczyć się od zera innych języków. Więc czemu dzieciom nie postawić tych samych zadań edukacyjnych, ale już na normalnej platformie (języku), w ramach której mogłyby dalej samodzielnie rozwijać się?

Przy okazji o zadaniach. W szkole i na uczelni zawsze były abstrakcyjne: oblicz coś, zbuduj funkcję, narysuj coś. Uczyłem się w trzech różnych szkołach, plus mieliśmy «Pascal» na pierwszym roku uczelni, i ani razu nauczyciele nie stawiali żadnych realnych zadań praktycznych. Na przykład zrób notatnik lub coś innego użytecznego. Wszystko było wymyślone. A kiedy człowiek przez miesiące rozwiązuje puste zadania, które później trafiają do kosza… Generalnie, z uczelni ludzie wychodzą już wypaleni.

Przy okazji, na trzecim roku tej samej uczelni dodali nam do programu «plusy». Wydaje się, że to dobry krok, ale ludzie byli zmęczeni, najedzeni fałszywymi i «edukacyjnymi» zadaniami. Entuzjazmu, jak na początku, nikt nie miał.

P.S. Wyszukałem temat dotyczący tego, jakie języki obecnie są nauczane w szkołach na informatyce. Wszystko tak jak 25 lat temu: Basic, Pascal. Sporadycznie wkracza Python.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster