Найти в Дзене
Беседка

Как я учился программированию в СССР

Оглавление

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

Некоторые читатели высказывали сомнения, что занятия в онлайн формате будут плодотворными и детей хватит надолго.

Я пообещал рассказать как устроен процесс обучения, нравится или нет, но пока писал статью, неожиданно вспомнил как я сам обучался программированию :) И я был поражен, насколько текущая ситуация отличается от того, что было 30-40 лет назад!

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

Программирование в школе. Счастливые билеты

С программированием я впервые столкнулся в 10 (11) классе, когда учился в ФМШ. Тогда это была уникальная возможность, недоступная большинству школьников (если не считать программирования на калькуляторе Элетроника-60, но это не совсем "то")

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

Я до сих пор помню что это была за программа - нужно было подсчитать количество "счастливых" автобусных билетов.

Счастливыми назывались билеты, сумма первых трёх цифр которых равнялась сумме последних трех цифр (все билеты имели шестизначный уникальный номер).

Я тут же бросился выводить аналитическую формулу, чтобы потом ее запрограммировать. Меня осадили, сказав что не надо ничего выдумывать, надо просто составить программу, которая переберет все миллион номеров (от 000 000 до 999 999) и вычислит сколько из них оказались "счастливые".

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

Примечание:
сейчас я бы, все-таки, по другому решал эту задачу. Не стал бы использовать "тупой" перебор из миллиона комбинаций, а только нашел бы перебором сколько каких сумм в сумме цифр числа от 000 до 999. (понятно что это "варианты сумм" от 0+0+0=0 до 9+9+9=27) А потом нашел бы сумму квадратов количества каждого "варианта суммы".
Это сократило бы количество итераций в корень раз, и для 6-значных номеров означало бы сокращение перебора с 1 000 000 до 1 000.
))

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

Далее преподаватель относил их в "Вычислительный центр НГУ", где операторы переносили программу с листочка на перфокарты на специальных машинах, что-то типа печатных. Т олько они не буковки печатали, а пробивали прямоугольные отверстия и получалось что-то типа такого:

Перфокарта. Теперь от них остался только перфодед))
Перфокарта. Теперь от них остался только перфодед))

И через НЕДЕЛЮ преподаватель приносил завернутые в ТВОЙ изначальный листочек, пробитые на основе его перфокарты ТВОЕЙ программы, и все это завернутое в распечатку результатов этой программы.

Из распечатки следовало, что... в программе ошибка и машина отказалась ее считать!))

Процесс разработки программы уходил на новый круг, то есть на новую НЕДЕЛЮ!))

Вот такой неспешной была раньше жизнь!))

Еще запомнилось, что подпрограмму в этой программе преподаватель назвал BASIC, что вместе с процедурой ее "вызова" CALL давало "CALL BASIC".

Преподаватель произносил это на русский манер получалось "КАЛБАСИК". Естественно, за ним закрепилось это прозвище... и как его звали я не помню, а вот то, что мы его называли Калбасиком помню до сих пор!))

Ну хоть не протухшая ливерная, как сейчас называют Шольца!))

Программирование на 1-м курсе

На следующий год уже на 1-м курсе НГУ стал ИНОГДА доступен терминальный класс. На терминалах самостоятельно можно было вводить программу и получать результат. Вот что-то типа такого:

-3

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

Все они работали в режиме разделения времени от центральной машины (ЦМ) и нередко на экране, если считалась какая-то другая сложная задача или просто ЦМ зависала, висела надпись "Жду память" и ничего делать на нем было нельзя((

Это даже стало, как бы сейчас сказали, мемом, и в сценке на капустнике КБрД студен на экзамене на вопрос экзаменатора ответил "Жду память"))

Программирование в армии. Главное найти документацию

В армии я тоже столкнулся с программированием.

В нашей авиационной части был лётный тренажер. На нем была установлена ЭВМ (2 стойки у меня за спиной). Какая - не помню. В остальных стойках, а их было еще 2 или 3, располагалось сопряжение с периферией и авиационным оборудованием.

Фотосчитыватель на переднем плане и перфолента для него у меня в руках.
Фотосчитыватель на переднем плане и перфолента для него у меня в руках.

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

Хотя они (офицеры) тоже были простые АОшники (спецы авиационного оборудования) и никто из них в их военном училище работе на вычислительных комплексах не учился.

Процесс запуска программы был достаточно муторный.

1. Сначала надо было сходить в секретку и под роспись взять портфель с перфолентами.

Перфолента
Перфолента

Но так должно было быть в теории.

В реальности перфоленты часто рвались (фотосчитыватель их протягивал через себя со скоростью несколько метров в секунду).

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

Соответственно офицеры просто откопировали перфоленты. Копии хранили на тренажере и уже никто никуда не ходил.

2. Далее нужно было вручную клавишами (8 или 16 штук?) задать несколько начальных регистров.

3. Прогнать короткую, в 2-3 метра, перфоленту начального загрузчика.

4. Затем несколько полных катушек перфолент всей программы.

5. После этого еще обратно смотать все перфоленты.

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

Процесс запуска программы тренажера сократился до одной минуты!

Жесткие диски были приблизительно вот такие. Диаметр около 50 см. Емкость дисков не помню, но почему-то крутится цифра в 3 или 7 МБ))
Жесткие диски были приблизительно вот такие. Диаметр около 50 см. Емкость дисков не помню, но почему-то крутится цифра в 3 или 7 МБ))

Вся программа была, наверное, около 100 кБ (100м перфолент, по 1 мм на байт)

Видео на тренажере было "реальным". Был 6 метровый макет местности,по которому ездила видеокамера и транслировала изображение в кабину тренажера!))

Программирование для научных исследований

На третьем курсе у нас был предмет ТСАНИ (технические средства автоматизации научных исследований).

Там на базе ЭВМ электроника-60 (не путать с калькулятором!) в стойках КАМАК мы программировали на языке BASIC взаимодействие с различной измерительной аппаратурой.

Стойка КАМАК.
На экскурсии в НГУ. 2021 год. Лаборатория новых методов регистрации ионизирующих излучений. Разрабатывают и делают сцинтилляционные детекторы для комплекса TAIGA в Бурятии
Стойка КАМАК. На экскурсии в НГУ. 2021 год. Лаборатория новых методов регистрации ионизирующих излучений. Разрабатывают и делают сцинтилляционные детекторы для комплекса TAIGA в Бурятии

В это же время начали появляться первые "персоналки" (IBM PC XT/AT). Где уже было доступно более менее привычное для наших дней программирование))

В следующей статье я расскажу как сейчас учатся программированию наши дети и какие у нас всех впечатления от процесса обучения))

Алексей

ps

Послушайте романтическую песенку КБрД про эту эпоху))