Tanchiki u Pascala: jak dzieci uczono programowania w latach 90. i co było w tym złego

Trochę o tym, jak wyglądała szkolna „informatyka” w latach 90. i dlaczego wszyscy programiści byli wówczas wyłącznie samoukami.

Tanchiki u Pascala: jak dzieci uczono programowania w latach 90. i co było w tym złego

Na czym uczono dzieci programować

Na początku lat 90. moskiewskie szkoły zaczęto selektywnie wyposażać w zajęcia komputerowe. Pokoje natychmiast wyposażono w kraty w oknach i ciężkie, żelazne drzwi. Skądś wyłonił się nauczyciel informatyki (wyglądał jak najważniejszy po reżyserze towarzysz), którego głównym zadaniem było pilnowanie, żeby nikt niczego nie dotykał. Nic. Nawet drzwi wejściowe.
W salach lekcyjnych najczęściej można było spotkać systemy BK-0010 (w jego odmianach) oraz BK-0011M.

Tanchiki u Pascala: jak dzieci uczono programowania w latach 90. i co było w tym złego
zrobiona fotografia stąd

Dzieciom zapoznano się z ogólną budową, a także z kilkunastu poleceniami PODSTAWOWYMI, dzięki którym mogły rysować linie i okręgi na ekranie. W przypadku klas młodszych i średnich to prawdopodobnie wystarczyło.

Były pewne problemy z utrwaleniem własnej twórczości (programów). Najczęściej komputery wykorzystujące kontrolery jednokanałowe łączono w sieć o topologii „wspólnej magistrali” i prędkości transmisji 57600 bodów. Z reguły był tylko jeden napęd dyskowy i często coś z nim szło nie tak. Czasem działa, czasem nie, czasem sieć się zawiesza, czasem dyskietka jest nieczytelna.

Nosiłem wówczas ze sobą to dzieło o pojemności 360 kB.

Tanchiki u Pascala: jak dzieci uczono programowania w latach 90. i co było w tym złego

Szanse, że uda mi się ponownie wydostać z tego programu, wynosiły 50–70 procent.

Jednak głównym problemem wszystkich tych historii z komputerami BC były niekończące się zawieszania.

Może się to zdarzyć w dowolnym momencie, podczas pisania kodu lub wykonywania programu. Zamrożony system sprawił, że na próżno spędziłeś 45 minut, bo... Musiałem robić wszystko od nowa, ale pozostały czas lekcji już nie wystarczał.

Bliżej 1993 roku w niektórych szkołach i liceach pojawiły się normalne klasy z 286 samochodami, a w niektórych miejscach nawet po trzy ruble. Jeśli chodzi o języki programowania, opcje były dwie: tam, gdzie kończył się „BASIC”, zaczynał się „Turbo Pascal”.

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

Używając Pascala, dzieci uczono budować pętle, rysować wszelkiego rodzaju funkcje i pracować z tablicami. W liceum fizyko-matematycznym, gdzie „mieszkałem” przez jakiś czas, jedna para tygodniowo była przydzielana do informatyki. I przez dwa lata było to nudne miejsce. Chciałem oczywiście zrobić coś poważniejszego niż wyświetlanie na ekranie wartości tablicy czy jakiejś sinusoidy.

czołgi

Battle City było jedną z najpopularniejszych gier na konsolach-klonach NES (Dendy itp.).

Tanchiki u Pascala: jak dzieci uczono programowania w latach 90. i co było w tym złego

W 1996 roku popularność 8-bitów minęła, od dawna zbierały one kurz w szafach i wydało mi się fajne stworzenie klona „Tanks” na PC jako coś na dużą skalę. Poniżej o tym, jak wtedy trzeba było zrobić unik, aby napisać coś za pomocą grafiki, myszy i dźwięku w Pascalu.

Tanchiki u Pascala: jak dzieci uczono programowania w latach 90. i co było w tym złego

Możesz rysować tylko patyki i kółka

Zacznijmy od grafiki.

Tanchiki u Pascala: jak dzieci uczono programowania w latach 90. i co było w tym złego

W podstawowej wersji Pascal umożliwiał rysowanie kształtów, malowanie oraz określanie kolorów punktów. Najbardziej zaawansowane procedury w module Graph przybliżające nas do spriteów to GetImage i PutImage. Za ich pomocą możliwe było przechwycenie fragmentu ekranu w zarezerwowanym wcześniej obszarze pamięci, a następnie wykorzystanie tego fragmentu jako obrazu bitmapowego. Innymi słowy, jeśli chcesz ponownie wykorzystać jakieś elementy lub obrazy na ekranie, najpierw je narysujesz, skopiujesz do pamięci, wymażesz ekran, narysujesz następny i tak dalej, aż utworzysz w pamięci żądaną bibliotekę. Ponieważ wszystko dzieje się szybko, użytkownik nie zauważa tych sztuczek.

Pierwszym modułem, w którym wykorzystano sprite'y, był edytor map.

Tanchiki u Pascala: jak dzieci uczono programowania w latach 90. i co było w tym złego

Miało wyznaczone pole do gry. Kliknięcie myszką wywołało menu, w którym można było wybrać jedną z czterech opcji przeszkód. Skoro mowa o myszce...

Mysz to już koniec lat 90-tych

Myszki oczywiście mieli wszyscy, ale do połowy lat 90. używano ich jedynie w Windowsie 3.11, pakietach graficznych i niewielkiej liczbie gier. W Wolfa i Dooma grało się wyłącznie na klawiaturze. A w środowisku DOS mysz nie była szczególnie potrzebna. Dlatego firma Borland nie dołączyła nawet modułu myszy do standardowego pakietu. Trzeba było go szukać poprzez znajomych, którzy w odpowiedzi rozkładali ręce i pytali: „Po co wam on?”

Jednak znalezienie modułu do odpytywania myszy to tylko połowa sukcesu. Aby kliknąć myszką w przyciski ekranowe, należało je narysować. Ponadto w dwóch wersjach (tłoczona i nietłoczona). Przycisk, który nie jest wciśnięty, ma jasną górę i cień pod nią. Po naciśnięciu jest odwrotnie. A następnie narysuj go na ekranie trzy razy (nie wciśnięty, wciśnięty i ponownie nie wciśnięty). Ponadto nie zapomnij ustawić opóźnień wyświetlania i ukryć kursor.

Tanchiki u Pascala: jak dzieci uczono programowania w latach 90. i co było w tym złego

Przykładowo przetwarzanie menu głównego w kodzie wyglądało następująco:

Tanchiki u Pascala: jak dzieci uczono programowania w latach 90. i co było w tym złego

Dźwięk – tylko głośnik komputerowy

Osobna historia z dźwiękiem. Na początku lat dziewięćdziesiątych klony Sound Blastera dopiero przygotowywały się do swojego zwycięskiego marszu, a większość aplikacji działała wyłącznie z wbudowanym głośnikiem. Maksymalne jego możliwości to jednoczesne odtwarzanie tylko jednego tonu. I to jest dokładnie to, na co pozwolił Ci Turbo Pascal. Dzięki procedurze dźwiękowej można było „piszczeć” z różnymi częstotliwościami, co wystarczało do odgłosów wystrzałów i eksplozji, ale w przypadku muzycznego wygaszacza ekranu, jak było wówczas modne, nie było to odpowiednie. W rezultacie znaleziono bardzo sprytne rozwiązanie: we własnym archiwum oprogramowania odkryto „plik exe”, pobrany raz z jakiegoś BBS-a. Potrafił zdziałać cuda - odtwarzać nieskompresowane pliki WAV przez głośnik PC, a robił to z linii poleceń i nie miał rzeczywistego interfejsu. Wystarczyło wywołać ją przez procedurę Pascal exec i upewnić się, że ta konstrukcja się nie zawali.

W rezultacie na wygaszaczu ekranu pojawiła się zabójcza muzyka, ale wydarzyła się z nią zabawna rzecz. W 1996 roku miałem system na Pentium 75, podkręcony do 90. Wszystko działało na nim dobrze. Na uniwersytecie, gdzie w drugim semestrze zainstalowano dla nas Pascala, w klasie były wysłużone „trzy ruble”. Za zgodą nauczyciela zabrałem te czołgi na drugą lekcję, aby zaliczyć sprawdzian i nie wracać tam ponownie. I tak po starcie z głośnika dobiegł głośny ryk zmieszany z bulgoczącymi, gardłowymi dźwiękami. Ogólnie rzecz biorąc, 33-megahercowa „karta trzech rubli” DX okazała się nie być w stanie poprawnie obrócić tego samego „pliku wykonywalnego”. Ale poza tym wszystko było w porządku. Oczywiście nie licząc powolnego odpytywania klawiatury, które psuło całą rozgrywkę, niezależnie od wydajności komputera.

Ale główny problem nie leży w Pascalu

W moim rozumieniu „zbiorniki” to maksimum, jakie można wycisnąć z Turbo Pascala bez wkładek montażowych. Oczywistymi wadami produktu końcowego są powolne odpytywanie klawiatury i powolne renderowanie grafiki. Sytuację pogarszała wyjątkowo mała liczba bibliotek i modułów innych firm. Można je było policzyć na palcach jednej ręki.

Najbardziej jednak zmartwiło mnie podejście do edukacji szkolnej. Nikt wtedy nie mówił dzieciom o zaletach i możliwościach innych języków. Na zajęciach niemal natychmiast zaczęli rozmawiać o Begin, println i if, co zamknęło uczniów w paradygmacie BASIC-Pascal. Obydwa te języki można uznać za wyłącznie edukacyjne. Ich „bojowe” użycie jest rzadkością.

Po co uczyć dzieci fałszywych języków, jest dla mnie tajemnicą. Niech będą bardziej wizualne. Niech tu i tam będą używane odmiany BASIC-a. Ale w każdym razie, jeśli ktoś zdecyduje się związać swoją przyszłość z programowaniem, będzie musiał od podstaw nauczyć się innych języków. Dlaczego więc nie należy dawać dzieciom tych samych zadań edukacyjnych, ale tylko na normalnej platformie (języku), w ramach której mogłyby dalej samodzielnie się rozwijać?

Skoro mowa o zadaniach. W szkole i na studiach zawsze były one abstrakcyjne: oblicz coś, skonstruuj funkcję, coś narysuj. Uczyłem się w trzech różnych szkołach, a w pierwszym roku instytutu mieliśmy „Pascala” i ani razu nauczyciele nie stwarzali żadnego realnego problemu praktycznego. Na przykład zrób notatnik lub coś innego przydatnego. Wszystko było naciągane. A kiedy człowiek miesiącami rozwiązuje puste problemy, które potem lądują w koszu... Generalnie ludzie już wychodzą z instytutu wypaleni.

Swoją drogą, na trzecim roku tej samej uczelni, dostaliśmy w programie „plusy”. Wydawało się, że to dobrze, ale ludzie byli zmęczeni, pełni podróbek i zadań „szkoleniowych”. Nikt nie był tak zachwycony jak za pierwszym razem.

PS Szukałem w Google, jakich języków uczy się obecnie na lekcjach informatyki w szkołach. Wszystko jest takie samo jak 25 lat temu: Basic, Pascal. Python pojawia się sporadycznie.

Źródło: www.habr.com

Dodaj komentarz