Танчики на Паскалі: як навчали дітей програмуванню у 90-х і що з цим було не так

Трохи про те, що являла собою шкільна «інформатика» в 90-х, і чому всі програмісти тоді були виключно самоуками.

Танчики на Паскалі: як навчали дітей програмуванню у 90-х і що з цим було не так

На чому вчили програмувати дітей

На початку 90-х московські школи почали вибірково оснащувати класами ЕОМ. У приміщеннях одразу ставили грати на вікна та важкі оббиті залізом двері. Десь з'являвся вчитель інформатики (виглядав як найважливіший товариш після директора), основним завданням якого було стежити, щоб ніхто нічого не чіпав. Взагалі нічого. Навіть вхідні двері.
У класах найчастіше можна було зустріти системи БК-0010 (у його різновидах) та БК-0011М.

Танчики на Паскалі: як навчали дітей програмуванню у 90-х і що з цим було не так
фото взято звідси

Дітям розповідали про загальний пристрій, а також із десяток команд «Бейсіка», щоб могли намалювати на екрані лінії та гуртки. Для молодших та середніх класів, мабуть, цього було достатньо.

Зі збереженням своїх творінь (програм) тоді були окремі проблеми. Найчастіше комп'ютери за допомогою контролерів моноканалу об'єднували в мережу з топологією «загальна шина» та швидкістю передачі 57600 XNUMX бод. Дисковод, як правило, був один, і з ним часто не ладналося. То працює, то не працює, то мережа підвисла, то дискетка не читається.

Я тоді тягав із собою ось цей витвір ємністю 360 кБ.

Танчики на Паскалі: як навчали дітей програмуванню у 90-х і що з цим було не так

Шанси на те, що вкотре я витягну з неї свою програму, були відсотків 50-70.

Проте головною проблемою всіх цих історій із комп'ютерами «БК» були нескінченні зависання.

Це могло статися в будь-який момент, будь то набір коду або виконання програми. Зависла система означала, що 45 хвилин ти прожив даремно, т.к. доводилося робити все спочатку, але часу уроку, що залишився, для цього було вже мало.

Ближче до 1993 року в окремих школах та ліцеях з'являлися нормальні класи з 286 машинами, а місцями стояли навіть «троячки». Щодо мов програмування було два варіанти: там, де закінчувався «Бейсик», починався «Турбо Паскаль».

Програмування на "Турбо Паскалі" на прикладі "танчиків"

На «Паскалі» дітей навчали будувати цикли, малювати різні функції, працювати з масивами. У фізмат-ліцеї, де я у свій час «мешкав», на інформатику відводили одну пару на тиждень. І два роки там була ось ця нудьга. Зрозуміло, хотілося зробити щось серйозніше, ніж виведення на екран значень масиву чи синусоїди.

Танчики

Battle City була однією з найпопулярніших ігор на приставках клонах NES (Dendy та ін.).

Танчики на Паскалі: як навчали дітей програмуванню у 90-х і що з цим було не так

У 1996-му популярність 8-биток пройшла, вони давно припадали пилом у шафах, і мені здалося прикольним як щось масштабне зробити саме клон «Танчиків» для ПК. Далі якраз про те, як тоді треба було викрутитися, щоб запиляти на «Паскалі» щось із графікою, мишкою та звуком.

Танчики на Паскалі: як навчали дітей програмуванню у 90-х і що з цим було не так

Малювати можна тільки палички та кружечки

Почнемо із графіки.

Танчики на Паскалі: як навчали дітей програмуванню у 90-х і що з цим було не так

У базовому варіанті «Паскаль» дозволяв малювати деякі фігури, зафарбовувати та визначати кольори крапок. Найпросунутіші процедури в модулі Graph, що наближають нас до спрайтів, це GetImage та PutImage. З їхньою допомогою можна було захоплювати в попередньо зарезервовану область пам'яті ділянку екрана і потім використовувати цей шматок як растрове зображення. Іншими словами, якщо ви хочете багаторазово використовувати на екрані якісь елементи або зображення, ви їх спочатку малюєте, копіюєте в пам'ять, праєте екран, малюєте наступне і так доти, доки не створите в пам'яті потрібну бібліотеку. Оскільки все відбувається швидко, користувач цих фокусів не помічає.

Перший модуль, де пішли спрайти – редактор карт.

Танчики на Паскалі: як навчали дітей програмуванню у 90-х і що з цим було не так

У ньому було розмічене ігрове поле. Клік мишкою викликав меню, де можна було вибрати один із чотирьох варіантів перешкод. До речі про мишку…

Миша – це вже кінець 90-х

Миші, зрозуміло, були у всіх, але до середини 90-х користувалися ними лише в Windows 3.11, графічних пакетах та ще невеликій кількості ігор. У Wolf та Doom рубалися тільки з клавіатури. Та й у DOS-середовищі миша була не особливо потрібна. Тому в Borland модуль роботи з мишею навіть не включали до стандартного постачання. Його треба було шукати за знайомими, які розводили руками і у відповідь вигукували «а нафіга він тобі?».

Однак знайти модуль для опитування мишки – це лише половина справи. Щоб мишею клацати екранними кнопками, їх треба було намалювати. Причому у двох варіантах (натиснутий і не натиснутий). У не натиснутої кнопки верх світлий, а під нею тінь. У натиснутої навпаки. І відмалювати потім на екрані тричі (не натиснута, потім натиснута, потім знову не натиснута). Плюс не забути поставити затримки на відображення, та й заховати курсор.

Танчики на Паскалі: як навчали дітей програмуванню у 90-х і що з цим було не так

Наприклад, обробка головного меню в коді виглядала так:

Танчики на Паскалі: як навчали дітей програмуванню у 90-х і що з цим було не так

Звук – тільки пищалка PC Speaker

Окрема історія зі звуком. На початку дев'яностих клони Sound Blaster тільки готувалися до своєї переможної ходи, і більшість програм працювали лише з вбудованим динаміком. Максимум його можливостей – це одночасне відтворення лише одного тону. І саме це дозволяв зробити Turbo Pascal. Через процедуру sound можна було «пищати» різними частотами, чого достатньо для звуків пострілів та вибухів, але для музичної заставки, як тоді було модно, це все не пасувало. У результаті знайшлося дуже хитре рішення: у своєму архіві софту виявився «екзешничок», скачаний колись із якоїсь BBS-ки. Він умів творити дива - відтворювати несжаті wav-и через PC Speaker, причому робив це з командного рядка і не мав власне інтерфейсу. Все, що потрібно було – це викликати його через паскалівську процедуру exec та простежити, щоб ця конструкція не впала.

У результаті забійний музон на заставці з'явився, але з ним вийшла кумедна штука. У 1996 році у мене була система Pentium 75, розкочегареним до 90. На ньому все працювало чудово. У вузі ж, де нам на другий семестр поставили Pascal, у навчальному класі стояли види «троячки». За домовленістю з викладачем я потягнув на друге заняття ці танчики, щоб отримати залік і більше не ходити туди. І ось, після запуску зі спікера повалило гучне ревіння впереміш з гортанними звуками, що булькають. Загалом, 33-мегагерцової «троячки» DX виявилося не під силу нормально крутити цей «екзешничок». Але в решті все було нормально. Звичайно, крім загальмованого опитування клавіатури, яке псувало весь геймплей незалежно від продуктивності ПК.

Але основна проблема не в Паскалі

У моєму розумінні «Танчики» – це максимум, що можна було вичавити з Turbo Pascal без асемблерних вставок. З явних недоліків кінцевого продукту – повільне опитування клавіатури та повільне малювання графіки. Погіршувала ситуацію вкрай мала кількість сторонніх бібліотек та модулів. Їх можна було порахувати на пальцях однієї руки.

Але найбільше мене засмучував підхід у шкільній освіті. Дітям ніхто тоді не розповідав про переваги та можливості інших мов. На уроках практично відразу починали говорити про begin, println та if, що замикало учнів усередині бейсико-паскалівської парадигми. Обидві ці мови можна вважати виключно навчальними. Їхнє «бойове» застосування — рідкісне явище.

Навіщо вчити дітей фейковим мовам – для мене загадка. Нехай вони наочніші. Нехай різновиди «Бейсіка» подекуди використовуються. Але, в будь-якому випадку, якщо людина задумає пов'язати своє майбутнє з програмуванням, йому доведеться вивчати інші мови. То чому б дітям не ставити ті ж самі навчальні завдання, але тільки вже на нормальній платформі (мові), в рамках якої вони могли б розвиватися далі самостійно?

До речі про завдання. У школі та інституті вони завжди були абстрактні: порахувати те, побудувати функцію, намалювати щось. Я навчався у трьох різних школах, плюс у нас був «Паскаль» на першому курсі інституту, і жодного разу викладачі не ставили реального прикладного завдання. Наприклад зробити записник або ще щось корисне. Все було надумане. А коли людина місяцями вирішує порожні завдання, які потім ідуть до кошика… Загалом з інституту люди вже виходять вигорілими.

До речі, на третьому курсі того ж вишу нам у програму поставили плюси. Начебто й справа добра, але народ був втомлений, наївся фейків і «навчальних» завдань. Ентузіазму, як уперше, ні в кого не спостерігалося.

PS Погугли на тему того, які мови зараз викладають у школах на уроках інформатики. Усі як і 25 років тому: Basic, Pascal. Поодинокими вкрапленнями йде Python.

Джерело: habr.com

Додати коментар або відгук