как учили детей программированию в 90-х и что с этим было не так / Хабр
Немного о том, что из себя представляла школьная «информатика» в 90-х, и почему все программисты тогда были исключительно самоучки.
На чем учили программировать детей
В начале 90-х московские школы начали выборочно оснащать классами ЭВМ. В помещениях сразу ставили решетки на окна и тяжелую обитую железом дверь. Откуда-то появлялся учитель информатики (выглядел как самый важный товарищ после директора), основной задачей которого было следить, чтобы никто ничего не трогал. Вообще ничего. Даже входную дверь.
В классах чаще всего можно было встретить системы БК-0010 (в его разновидностях) и БК-0011М.
Фото взято отсюда
Детям рассказывали про общее устройство, а также с десяток команд «Бейсика», чтобы могли нарисовать на экране линии и кружки. Для младших и средних классов, наверное, этого было достаточно.
С сохранением своих творений (программ) тогда были отдельные проблемы. Чаще всего компьютеры с помощью контроллеров моноканала объединяли в сеть с топологией «общая шина» и скоростью передачи 57600 бод. Дисковод, как правило, был один, и с ним частенько не ладилось. То работает, то не работает, то сеть подвисла, то дискетка не читается.
Я тогда таскал с собой вот это творение емкостью 360 кБ.
Шансы на то, что в очередной раз я вытащу с нее свою программку, были процентов 50-70.
Однако главной проблемой всех этих историй с компьютерами «БК» были бесконечные зависания.
Это могло произойти в любой момент, будь то набор кода или выполнение программы. Зависшая система означала, что 45 минут времени ты прожил зря, т.к. приходилось делать все сначала, но оставшегося времени урока для этого было уже не достаточно.
Ближе к 1993 году в отдельных школах и лицеях появлялись нормальные классы с 286-ми машинами, а местами стояли даже «трешки». По части языков программирования было два варианта: там, где заканчивался «Бейсик», начинался «Турбо Паскаль».
Программирование на «Турбо Паскале» на примере «танчиков»
На «Паскале» детей учили строить циклы, отрисовывать всякие функции, работать с массивами. В физмат-лицее, где я одно время «обитал», на информатику отводили одну пару в неделю. И два года там была вот эта вот скукотища. Разумеется, хотелось сделать что-то посерьезнее, чем вывод на экран значений массива или некой синусоиды.
Танчики
Battle City была одной из самых популярных игр на приставках клонах NES (Dendy и др.).
В 1996-м популярность 8-биток прошла, они давно пылились в шкафах, и мне показалось прикольным в качестве чего-то масштабного сделать именно клон «Танчиков» для ПК. Далее как раз о том, как тогда надо было извернуться, чтобы запилить на «Паскале» что-то с графикой, мышкой и звуком.
Рисовать можно только палочки и кружочки
Начнем с графики.
В базовом варианте «Паскаль» позволял рисовать некоторые фигуры, закрашивать и определять цвета точек. Самые продвинутые процедуры в модуле Graph, приближающие нас к спрайтам, это GetImage и PutImage. С их помощью можно было захватывать в предварительно зарезервированную область памяти участок экрана и потом использовать этот кусок как растровое изображение. Другими словами, если вы хотите многократно использовать на экране какие-то элементы или изображения, вы их сначала отрисовываете, копируете в память, стираете экран, отрисовываете следующее и так до тех пор, пока не создадите в памяти нужную библиотеку. Поскольку все происходит быстро, пользователь этих фокусов не замечает.
Первый модуль, где в ход пошли спрайты – редактор карт.
В нем было размеченное игровое поле. Клик мышкой вызывал меню, где можно было выбрать один из четырех вариантов препятствий. Кстати о мышке…
Мышь – это уже конец 90-х
Мыши, разумеется, были у всех, но до середины 90-х пользовались ими лишь в Windows 3. 11, графических пакетах и еще небольшом числе игр. В Wolf и Doom рубились только с клавиатуры. Да и в DOS-среде мышь была не особо нужна. Поэтому в Borland модуль работы с мышью даже не включали в стандартную поставку. Его надо было искать по знакомым, которые разводили руками и в ответ восклицали «а нафига он тебе?».Однако найти модуль для опроса мышки – это лишь половина дела. Чтобы мышью клацать по экранным кнопкам, их надо было нарисовать. Причем в двух вариантах (нажатую и не нажатую). У не нажатой кнопки верх светлый, а под ней тень. У нажатой наоборот. И отрисовать затем на экране трижды (не нажатая, нажатая, потом опять не нажатая). Плюс не забыть поставить задержки на отображение, ну и спрятать курсор.
Например, обработка главного меню в коде выглядела вот так:
Звук – только пищалка PC Speaker
Отдельная история со звуком. В начале девяностых клоны Sound Blaster только готовились к своему победному шествию, и большинство приложений работали лишь со встроенным динамиком. Максимум его возможностей – это одновременное воспроизведение только одного тона. И именно это позволял сделать Turbo Pascal. Через процедуру sound можно было «попищать» разными частотами, чего достаточно для звуков выстрелов и взрывов, но для музыкальной заставки, как тогда было модно, это все не подходило. В итоге нашлось весьма хитрое решение: в собственном архиве софта обнаружился «экзешничек», скачанный когда-то с какой-то BBS-ки. Он умел творить чудеса – воспроизводить несжатые wav-ы через PC Speaker, причем делал это из командной строки и не имел собственно интерфейса. Все, что нужно было – это вызвать его через паскалевскую процедуру exec и проследить, чтобы эта конструкция не рухнула.
В итоге забойный музон на заставке появился, но с ним вышла забавная штука. В 1996 году у меня была система на Pentium 75, раскочегаренным до 90. На нем все работало прекрасно. В вузе же, где нам на второй семестр поставили Pascal, в учебном классе стояли видавшие виды «трешки». По договоренности с преподавателем я потащил на второе занятие эти танчики, чтобы получить зачет и больше туда не ходить. И вот, после запуска из спикера повалил громкий рев вперемешку с булькающими гортанными звуками. В общем, 33-мегагерцовой «трешке» DX оказалось не под силу нормально крутить тот самый «экзешничек». Но в остальном все было нормально. Конечно, не считая заторможенного опроса клавиатуры, который портил весь геймплей вне зависимости от производительности ПК.
Но основная проблема не в «Паскале»
Но больше всего меня расстраивал подход в школьном образовании. Детям никто тогда не рассказывал о преимуществах и возможностях других языков. На уроках практически сразу начинали говорить про begin, println и if, что запирало учеников внутри бейсико-паскалевской парадигмы. Оба эти языка можно считать исключительно учебными. Их «боевое» применение — редкое явление.
Зачем учить старшеклассников фейковым языкам – для меня загадка. Пусть они более наглядные. Пусть разновидности «Бейсика» кое-где используются. Но, в любом случае, если человек задумает связать свое будущее с программированием, ему придется учить с нуля другие языки. Так почему бы детям не ставить те же учебные задачи, но только уже на нормальной платформе (языке), в рамках которой они могли бы развиваться дальше самостоятельно?
Кстати о задачах. В школе и институте они всегда были абстрактные: посчитать то-то, построить функцию, нарисовать что-то. Я учился в трех разных школах, плюс у нас был «Паскаль» на первом курсе института, и ни разу преподаватели не ставили сколь-нибудь реальной прикладной задачи. Например сделать записную книжку или еще что-то полезное. Все было надуманное. А когда человек месяцами решает пустые задачи, которые потом идут в корзину… В общем, из института люди уже выходят выгоревшими.
Кстати, на третьем курсе того же вуза нам в программу поставили «плюсы». Вроде и дело благое, но народ был уставший, наевшийся фейков и «учебных» задач. Энтузиазма, как в первый раз, ни у кого не наблюдалось.
P.S. Погуглил на тему того, какие языки сейчас преподают в школах на уроках информатики. Все как и 25 лет назад: Basic, Pascal. Единичными вкраплениями идет Python.
альтернатив PascalABC.NET в 2023 году — сообщество проголосовало за SaaSHub
Лучшие альтернативы PascalABC.NET на основе проверенных продуктов, голосов сообщества, обзоров и других факторов.
Последнее обновление:
Бесплатный Паскаль
↔ PascalABC.NET
Free Pascal (он же FPK Pascal) — это 32- и 64-битный профессиональный компилятор Pascal.
org/ListItem»> GNU Паскаль
↔ PascalABC.NET
Компилятор GNU Pascal (GPC), как следует из названия, является компилятором Pascal семейства GNU,
Эмбаркадеро Дельфи
↔ PascalABC.NET
Delphi — это самый быстрый способ написания, компиляции, упаковки и развертывания кроссплатформенных собственных приложений для Windows, macOS, iOS, Android и Linux.
Дев-Паскаль
↔ PascalABC.NET
[ПРЕРЫВНО] Dev-Pascal — это полнофункциональная интегрированная среда разработки (IDE), которая.
питон
↔ PascalABC.NET
Python — это понятный и мощный объектно-ориентированный язык программирования, сравнимый с Perl, Ruby, Scheme или Java.
Microsoft Visual Studio
↔ PascalABC.NET
Microsoft Visual Studio — это интегрированная среда разработки (IDE) от Microsoft.
Ржавчина
↔ PascalABC.NET
Безопасный, параллельный, практичный язык
Карманная студия
↔ PascalABC.NET
PocketStudio представляет собой комбинацию 32-битного компилятора Pascal и адаптируемого интегрированного средства разработки. ..
Куинси
↔ PascalABC.NET
Простая бесплатная среда программирования C/C++ для Windows
Код Visual Studio
↔ PascalABC.NET
Создание и отладка современных веб-приложений и облачных приложений от Microsoft
Создатель Qt
↔ PascalABC.NET
Qt Creator — это кроссплатформенная интегрированная среда разработки на C++, JavaScript и QML. Это самый быстрый, простой и интересный опыт, который только может пожелать разработчик C++.
чистая процентная маржа
↔ PascalABC. NET
GB64.COM является домом для The Gamebase Collection игр C64.
Лазарь
↔ PascalABC.NET
Lazarus — это кроссплатформенная среда разработки для компилятора Free Pascal.
Предложите альтернативу
Если вы считаете, что мы что-то упустили, предложите альтернативу PascalABC.NET.
Общее обсуждение PascalABC.NET
PascalABC.NET Отзывы
Пока нет отзывов о PascalABC.NET.
Будьте первым, кто опубликует
Было ли это Список альтернатив PascalABC.NET полезный? Ваш отзыв важен!
Да № 6 из
7
люди считают этот список полезным.
Это эквивалентно
4.3
/
5
рейтинг.
Автор:
С. Брайт
| Издатель: SaaSHub
Категории: IDE, язык программирования, текстовый редактор
Не пропустите самые популярные стартапы в нашем еженедельном отчете!
Терминал
COM-порт исправен. Это виртуально! Что это?Терминал представляет собой простой терминал последовательного порта (COM) программа эмуляции. Может использоваться для связи с различными устройства, такие как модемы, маршрутизаторы, встроенные системы UC, телефоны GSM, модули GPS… очень полезный инструмент отладки для приложений последовательной связи. Особенности
!! ! Если у вас возникли проблемы с новой версией, вы все равно можете скачать старые версии внизу страницы!!! Макросы В макросах можно использовать все символы с клавиатуры и любые символы ASCII
char, если вы используете $xx или #xxx. Где $xx — шестнадцатеричный формат, а #xxx dec — формат
ascii-код. Если вы хотите использовать # или $ char в макросе, вы должны ввести его
дважды ($$=$ и ##=#). Для вычисления байта контрольной суммы XOR используйте команду %XORxx. Для вычисления байта контрольной суммы SUM (сумма 1 байт) используйте команду %SUMxx. Где xx — смещение первого байта для расчета. Макрос можно сохранить в файле макроса. Активный макрос «сохранено», даже если вы его не сохраните, и будет доступно в следующий раз, когда вы запустите Терминал. Строка макроса может содержать до 256 символов. некоторые примеры: X1##Y2##Z3##$0D$0A — это отправит ‘X1#Y2#Z3#»CR»»LF»‘ АВС% DLY1000DEF — отправит ABC и через ~1000 мс DEF %RUN»cmd.exe» — это вызовет приглашение командной строки %URL»http://www.google.com» — угадайте что?! 😉 %URL»mailto:[email protected]?subject=terminal&body=test» — %M03 — это отправит/запустит макрос #3 (есть некоторые ограничения при использовании этого) %LOGS — начать регистрацию %LOGE — остановить регистрацию %SCRS»script. |