Танчики В Паскале: Как Детей Учили Программированию В 90-Е И Что В Этом Было Не Так

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



Танчики в Паскале: как детей учили программированию в 90-е и что в этом было не так



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

В начале 90-х годов московские школы начали выборочно оснащать классами ВМ.

Комнаты тут же оборудовали решетками на окнах и тяжелой железной дверью.

Откуда-то появился учитель информатики (он выглядел самым главным товарищем после директора), главной задачей которого было следить, чтобы никто ничего не трогал.

Ничего вообще.

Даже входная дверь.

В учебных аудиториях чаще всего можно было встретить системы БК-0010 (в его разновидностях) и БК-0011М.



Танчики в Паскале: как детей учили программированию в 90-е и что в этом было не так

Фотография сделана отсюда Детям рассказали об общей структуре, а также о десятке БЕЙСИК-команд, чтобы они могли рисовать на экране линии и круги.

Для младших и средних классов этого, наверное, было достаточно.

Были некоторые проблемы с сохранением своих творений (программ).

Чаще всего компьютеры с использованием одноканальных контроллеров объединялись в сеть с топологией «общая шина» и скоростью передачи данных 57600 бод. Как правило, дисковод был только один, и с ним часто что-то шло не так.

Иногда работает, иногда нет, иногда зависает сеть, иногда дискета не читается.

Я тогда возил с собой это творение объемом 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-е и что в этом было не так



Звук – только динамик ПК

Отдельная история со звуком.

В начале девяностых клоны Sound Blaster только готовились к своему победному шествию, и большинство приложений работало только со встроенным динамиком.

Максимум его возможностей – одновременное воспроизведение только одного тона.

И это именно то, что позволяет вам сделать Turbo Pascal. За счет звуковой процедуры можно было «пищать» разными частотами, чего достаточно для звуков выстрелов и взрывов, но для музыкальной заставки, как это было тогда модно, это не подходило.

В результате было найдено весьма хитрое решение: в собственном архиве программы был обнаружен «exe-файл», скачанный когда-то с какой-то BBS. Он мог творить чудеса — проигрывать несжатые wav-файлы через динамик ПК, причем делал это из командной строки и не имел реального интерфейса.

Все, что нужно было — вызвать его через процедуру Pascal exec и убедиться, что эта конструкция не рухнет. В результате на заставке появилась убойная музыка, но с ней случился забавный момент. В 1996 году у меня была система на Pentium 75, провернутая до 90. На ней все работало нормально.

В университете, где нам установили Паскаль во втором семестре, в классе стояли потрепанные «трешки».

По договоренности с преподавателем я взял эти танки на второй урок, чтобы сдать контрольную и больше туда не идти.

И вот после запуска из динамика раздался громкий рев, смешанный с булькающими гортанными звуками.

В общем, 33-мегагерцовая DX-«трёшка» оказалась неспособной нормально раскрутить тот самый «экзешник».

Но в остальном все было хорошо.

Конечно, не считая медленного опроса клавиатуры, портившего весь игровой процесс вне зависимости от производительности ПК.



Но главная проблема не в Паскале

В моем понимании «Танки» — это максимум, что можно было выжать из Турбо Паскаля без сборочных вставок.

Очевидными недостатками конечного продукта являются медленный опрос клавиатуры и медленный рендеринг графики.

Ситуацию усугубляло крайне малое количество сторонних библиотек и модулей.

Их можно было пересчитать по пальцам одной руки.

Но больше всего меня расстроил подход к школьному образованию.

Никто тогда детям не рассказывал о преимуществах и возможностях других языков.

В классе почти сразу заговорили о Begin, println и if, что заперло студентов внутри парадигмы BASIC-Pascal. Оба этих языка можно считать исключительно учебными.

Их «боевое» применение — редкое явление.

Зачем учить старшеклассников фальшивым языкам для меня загадка.

Пусть они будут более наглядными.

Пусть вариации BASIC используются здесь и там.

Но, в любом случае, если человек решит связать свое будущее с программированием, другие языки ему придется изучать с нуля.

Так почему же детям не давать те же образовательные задания, но только на нормальной платформе (языке), в рамках которой они могли бы дальше развиваться самостоятельно? Кстати о задачах.

В школе и институте всегда были абстрактными: что-то посчитать, построить функцию, что-то нарисовать.

Я учился в трех разных школах, плюс у нас на первом курсе института был «Паскаль», и ни разу преподаватели не поставили какой-либо реальной прикладной задачи.

Например, сделайте блокнот или что-нибудь еще полезное.

Все было надуманно.

А когда человек месяцами решает пустые задачи, которые потом отправляются в мусор.

В общем, люди выходят из института уже сгоревшими.

Кстати, на третьем курсе того же университета нам поставили «плюсы» по программе.

Вроде бы дело хорошее, но народ устал, полно фейков и «тренировочных» заданий.

Никто не проявил энтузиазма, как в первый раз.

P.S. Я погуглил, какие языки сейчас преподают на уроках информатики в школах.

Все то же, что и 25 лет назад: Бейсик, Паскаль.

Python поставляется в виде спорадических включений.

Теги: #программирование #История ИТ #Образовательный процесс в ИТ #учиться программировать #учиться программировать

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.