Путь химика в программирование - ч12
От: Pavel Dvorkin Россия  
Дата: 13.02.24 10:38
Оценка: 135 (7) :)
Университет. Учебная работа.


Предыдущие части

https://rsdn.org/forum/philosophy/1016582.1
Автор: Pavel Dvorkin
Дата: 09.02.05

https://rsdn.org/forum/philosophy/1016773.1
Автор: Pavel Dvorkin
Дата: 09.02.05

https://rsdn.org/forum/philosophy/1019433.1
Автор: Pavel Dvorkin
Дата: 10.02.05

https://rsdn.org/forum/philosophy/1239359.1
Автор: Pavel Dvorkin
Дата: 24.06.05

https://rsdn.org/forum/education/8671596.1
Автор: Pavel Dvorkin
Дата: 20.01 18:38

https://rsdn.org/forum/education/8675759.1
Автор: Pavel Dvorkin
Дата: 26.01 15:58

https://rsdn.org/forum/education/8676523.1
Автор: Pavel Dvorkin
Дата: 28.01 12:33

https://rsdn.org/forum/education/8679535.1
Автор: Pavel Dvorkin
Дата: 01.02 07:12

https://rsdn.org/forum/education/8684148.1
Автор: Pavel Dvorkin
Дата: 05.02 07:11

https://rsdn.org/forum/education/8685871.1
Автор: Pavel Dvorkin
Дата: 08.02 14:00

https://rsdn.org/forum/education/8688728.1
Автор: Pavel Dvorkin
Дата: 10.02 08:39


В предыдущих частях я описал свои действия за примерно 15 лет. Приступая к этой части, задумался — а сколько же частей получится, если в университете я проработал 34 года ?
Нет, десятки не получатся. В общем, никаких драматических событий за эти годы не было. Все шло, как ему положено идти, из года в год. Менялись курсы, менялись студенты, а особо запоминающегося, пожалуй, и не было. Так что просто по порядку.

В карьерном плане — все как положено. Был избран доцентом, потом представлен к ученому званию "доцент", его и получил, аккурат в конце 1991 года, так что в госкомитете, куда я поехал получать диплом доцента, мне его выдали, но сказали — мы успели Вам его оформить, но имейте в виду, что сейчас мы уже не существуем. Шли последние дни существования СССР...

Возможно, тут нужны некоторые пояснения. Доцент (или профессор) — это и название должности и ученое звание. Кандидат наук обычно избирается на должность доцента, еще не имея ученого звания доцента. Избирается он решением Совета вуза или факультета. После того, как он проработает 1-3 года, его представляют к ученому званию доцента, его дает ВАК или министерство, обычно без проблем. Это звание у него останется, даже если он уволится. Аналогично доктор наук — профессор. Впрочем, доцентом или профессором может быть и человек, не имеющий ученой степени, но это чаще всего относится к представителям творческих профессий. Например, профессор по кафедре скрипки в музыкальном институте может быть просто известным скрипачом, который учит студентов. Кандидатскую или докторскую он не делал, ему это совсем не нужно.

О химиках воспоминаний немного. В общем, было примерно то же самое, что и в пединституте — они не очень понимали, зачем им это нужно. К тому же это были студенты 1 курса — им объяснить, что в химии расчетов много, не удастся. Был один толковый парень, вполне мог бы стать программистом, судьбу его дальнейшую я не знаю. Были средние, кое-что освоившие.

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

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

Далее последовал такой диалог

— Как найти среднее ?
— (Думает) Сложить и поделить на 2
— Хорошо. А если чисел несколько ?
— (Думает) Сложить и поделить на 2
Нет, думаю, ты отсюда без зачета не уйдешь
— 3, 4, 5 — чему равно среднее
— (Думает долго) 4
Уф, вроде есть основание поставить зачет
— Так на сколько разделить ?
— На 2.

Зачет я поставил.

Впоследствии прочитал анекдот (а может, и не анекдот) на эту тему

После экзамена
Студент : Уж он меня топил-топил, топил-топил, но не утопил.
Преподаватель : Уж я его тащил-тащил, тащил-тащил, еле вытащил.

Что касается математиков — педагогов, то о них я мало помню. Единственное, что запомнилось — одна из них попросила быть научным руководителем ее дипломной работы. Она и стала мое первой дипломницей. Дипломников потом у меня было много, не всех и помню, а вот ее запомнил, конечно.

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

Переходя в университет, я был готов к тому, что придется осваивать новые машины и новые ОС. Однако на первых порах оказалось, что осваивать ничего не надо. Вот язык пришлось освоить — Паскаль. Знал я о его существовании давно, в пединституте его немного пробовал, но детально не вникал. Пришлось срочно с ним разобраться.

А машины — те, с которыми я и так был знаком. Был класс Ямах, но уже Ямах-2, с памятью 128 Кбайт. Turbo Pascal умел работать только с 64 Кбайтами, но и их вполне хватало. Из остальных 64 Кбайт делался электронный диск, на который он в начале занятия загружался с машины учителя. Там же располагались и тексты программ. А вот рабочая программа по умолчанию на диск не записывалась, создавалась в оперативной памяти. Компилятор, текстовый редактор, компилируемая программа и рабочая программа — и все в 64 Кбайтах, и компилируется за несколько секунд!

А еще в университете была "Эра" — польский вариант СМ-4, с большей памятью и десятком терминалов. Правда, выяснилось, что несмотря на эту память, она все же "затыкается", когда 10 студентов почти одновременно посылают свои задания. Может, надо было что-то подкрутить, но я не стал этим заниматься, а вместо этого взял на себя функции диспетчера процессов . Студент, готовый пропустить свою задачу, говорил об этом мне, а я в порядке очереди
этих запросов разрешал посылать программу на компиляцию и запуск м следил, чтобы больше 2-3 задач одновременно не исполнялось.

Была в университете и ЕС (кажется, ЕС-1045) с терминальным классом, но возвращаться к ЕС не хотелось и вести занятия на ней я не стал.

Техники типа IBM PC почти не было. Было на кафедре 3 машины, 2 — XT и одна — AT, но студентам доступ к ним не давали, они были только для сотрудников. Вот тут я всерьез с этими машинами и познакомился, потратил немало времени, чтобы разобраться в деталях и подробностях. Интернета еще не было, но книги уже были, так что было по чему учиться. С особенной теплотой вспоминаю книгу Питера Нортона, она хоть была и достаточно поверхностной, но оказала неоценимую помощь на начальном этапе. А потом был Джордейн (он же Журден) "Справочник программиста персональных компьютеров типа IBM PS, XT и AT ". Вот это было уже всерьез. Кстати, и с ООП я впервые тут познакомился, на базе Turbo Pascal 6.0

Спустя примерно год министерство выделило университету 10 штук машин Искра — 1030 — отечественный клон IBM PC XT. На первых порах эры IBM PC в СССР пытались делать клоны. Сделали свой процессор (K1810), аналогичный Intel 8088, и 2 типа машин — ЕС-1840/1841 и эти самые Искры. И вот один класс этих Искр попал в университет. В университете хватило ума из них учебный класс не делать, раздали по кафедрам, к одной (у химиков) я получил доступ. Что о ней можно сказать ? Хорошего ничего. Программно она была совместима с IBM PC XT, а вот аппаратно — нет.

Помню такой курьез с ней. Взял я флоппи диск с нее, вставил в IBM PC — не читается. И так, и так пробую — все без толку. Начал разбираться. Оказалось, дело вот в чем. Дискеты (тогда еще 5.25 дюймов) на IBM PC могли быть нескольких форматов. Односторонние одинарной плотности (180 Кб), двусторонние одинарной плотности (360 Кб) и односторонние и двусторонние двойной плотности (соответственно 360 и 720 Кб). Создатели же этой Искры сделали односторонние дискеты (головку сэкономили) двойной плотности, но логически они рассматривались как двусторонние одинарной плотности. На Искра это все работало, ну а IBM PC такой формат распознавать категорически не хотел. Пришлось для переноса файлов использовать формат односторонние одинарной плотности (180 Кб), этот формат понимали оба компьютера.

Ну и чтобы уж закончить с машинами и дискетами, расскажу еще про один клон IBM — "Поиск". В университете их, слава богу, не было, а вот в институте усовершенствования учителей была, и мне довелось за ней немного посидеть. Пришел, вставил дискету в дисковод — не читается, и вообще, похоже , не крутится диск. Вытащил дискету и обалдел — у меня в руках оказалась не одна, а целых две дискеты. Я, не посмотрев, вставил свою, а там уже была другая. Вставилась ведь!

Впрочем, спустя несколько лет появился на матфаке наконец класс 80286 машин, потом их проапгрейдили до 80386, потом появились Pentium разных версий, потом всякие Celeron, Athlon и прочее, как-то преимущественно с процессорами от AMD.

В самом начале машинное время в этих классах было большим дефицитом. Декан даже издал распоряжение о том, что дипломники имеют преимущественное право работы на них во время, когда занятий по расписанию нет. Иными словами, придя в класс и не найдя свободной машины, дипломник имел право согнать какого-нибудь младшекурсника и занять его место. Насколько реально такое происходило — не знаю. Другим распоряжением декана категорически запрещались игры в учебном классе, под угрозой строгого выговора.

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

А потом... Потом интерес к этим машинам у студентов начал резко падать. Какое там преимущественное право для дипломников — и во время занятий половина машин простаивает, а уж вне занятий в классе просто никого нет. И запрет на игры просто потерял всякий смысл — никто и не играет. Отменен он, кажется, так и не был, просто вполне по-английски перестал действовать. Студенты обзавелись домашними компьютерами, потом ноутбуками ,с которыми начали ходить на занятия. Я ничего против этого не имел — зачем их заставлять работать на машине, на которой до этого работали другие и неизвестно какие изменения внесли, если они могут работать на своей машине, подстроенной под их интересы. Хотя надо сказать, вести занятия в классе, где набор разнотипных ноутбуков — удовольствие так себе. Где-то Fn нажимать надо, где-то не надо, где-то клавиши расположены так, а где-то немного иначе... Впрочем, все это мелочи, да и хозяин машины рядом, подскажет, если нужно будет.

Первое время жестко требовал делать резервные копии на дискетах. Предупреждал, что если за неделю до зачета мне скажут — пропала вся работа, файл не читается — посочувствую, но предложу начать все с начала. Потом в практику вошли Git/Mercurial и это перестало быть актуальным.

Работал на 2, а потом на 3 курсе. На втором курсе вел "Структуры данных", курс, в основу которого была положена известная книга Вирта "Алгоритмы + структуры данных = программы". Вначале курс читался на Паскале, а потом перевел весь курс на С, и в таком виде передал его коллеге, когда закончил работу на втором курсе и взял третий. Параллельно с этим курсом читал спецкурс по внутреннему устройству MS-DOS — копались в ее функциях (а также в функциях BIOS), регистрах и т.д. По ходу действия освоил ассемблер x86.

Немного о спецкурсах (они же курсы по выбору). Это не самодеятельность факультета, они прописаны в учебном плане. Однако в большинстве вузов они превращаются в курсы по выбору преподавателя — какой курс он поставит, на тот студенты и обязаны ходить. У нас это были в основном курсы по выбору студента (обязательные тоже были, но немного). В начале сентября (или февраля) на доске объявлений появлялось множество объявлений от преподавателей о спецкурсах в этом семестре. Как правило, один преподаватель ведет один спецкурс. Тематика самая различная, в общем, та тематика, в которой этот преподаватель является специалистом. Может быть даже очень узкая тематика, что-то из какого-то раздела математики, например. Студент имеет возможность выбрать те спецкурсы, которые ему хочется посещать, но при этом должен набрать столько-то "лет" спецкурсов, чтобы считать, что он выполнил учебный план своего курса. "Полгода" спецкурса — это 2 часа в неделю на протяжении семестра. "Год" — это или 2 "полугода", или один годовой спецкурс. Пока было 5-летнее обучение, после третьего курса надо было иметь 2 таких "года", после 4 — 4 и к окончанию — 6. Потом значения поменялись, конечно. Студенту рекомендовалось обсудить выбор спецкурсов с научным руководителем, но это было необязательно и мнение научного руководителя не могло быть решающим. Ко мне мои студенты с вопросом о выборе спецкурсов обращались редко, чаще решали сами. Кроме спецкурсов, были еще и спецсеминары. Все так же, только преподаватель не читает лекцию, а раздает студентам темы, с которыми они должны сами ознакомиться, а потом на семинаре сделать доклад с последующим обсуждением.

Вот такой спецкурс по внутренностям MS-DOS я и вел в начале 90-х годов. Потом сделал спецкурс по программированию для Windows 3.x, а потом превратил этот спецкурс в основной курс, который и читал много лет, и вел по нему практику, конечно, уже под Win32. Правда, при выборе темы спецкурса долго колебался, что выбрать — Windows или OS/2. Некоторое время они котировались примерно одинаково в середине 90-х. К счастью, не ошибся. А вот что OS/2 не выжила — жаль. Были бы две конкурирующие ОС. Всякие программы для переноса быстро бы написали, зато MS не получила бы монопольного положения в области десктопных ОС (про Линукс я , конечно, помню, но его роль на десктопе и до 10% не доходит), и была бы аккуратнее в том, что предложила в итоге конечному пользователю. Когда Intel занесло "не туда" из-за Itanium, на авансцену вышла AMD, создала amd64 архитектуру, и Intel должна была срочно исправляться и догонять, что, кстати, она с блеском и сделала. А у Microsoft конкурента не нашлось.

Одновременно сделал спецкурс "Внутреннее устройство Windows NT", (в основном на базе Соломона — Руссиновича, но, конечно, весьма урезанный, только наиболее важное) и тоже читал его много лет, вплоть до ковида. Хотел было
в свое время сделать спецкурс по внутреннему устройству Windows 95, но, более или менее разобравшись в нем, понял, что объяснить на занятиях не смогу — это не архитектура, а костыль на костыле.

Ну а потом... Потом, когда стало ясно, что основное направление больше не десктопные приложения, а приложения в web, сделал курс по серверной части web-приложений, на Java и вел его до последних дней работы в университете,
последние 3 года — в дистанционном режиме из-за ковида.

Практика всегда следовала за основным курсом. Ряд заданий по теме курса. Еще в самом начале своей преподавательской карьеры я дал себе слово — никогда не употреблять имеющуюся у меня власть в отношении студентов. А чтобы
лишить себя даже подсознательной пристрастности по отношению к ним, я на первой же лекции объявлял, что зачет получат все автоматически , после того, как выполнят все задания (экзаменов у меня не было). Так что предвзято к кому угодно из них я относиться не мог : сделал все задания — получи зачет, независимо от того, что я о тебе думаю, не сделал — жалуйся на себя. Правда, тут есть один момент. Задания у всех примерно одни и те же (не совсем, я делал варианты, но 25 вариантов сделать не мог), и гарантии, что код написан именно этим студентом, в общем, нет. Про одних я и так знал, что они писали все сами, а вот в отношении других — не всегда уверен, поэтому обычно задавал вопросы по коду. Легче стало, когда появился Git — я им просто говорил, что мне более интересно видеть процесс написания кода, чем конечный результат, и что если весь семестр студент ничего не делал, а за неделю до зачета запушил код, который хоть на выставку посылай, то я просто и смотреть этот код не буду.

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

Учебная нагрузка в университете не была большой. В 90-е — 2000-е годы у меня стабильно было 12 часов "звонковой" нагрузки — 2 лекции по 2 часа и 2 лабораторные по 4 часа. Пока был относительно молод — просил ставить 10 часов в один день и 2 часа (спецкурс) во второй, потом , когда 10 часов в день стало много — 6+6. Так что занят был 1 день в неделю полностью и еще один — немного. Работа с курсовиками, дипломниками и прочая практика в расписание не ставились, равно как и научная работа, которой тоже положено было заниматься, этими делами я занимался тогда когда хотел.

В общем, была возможность заниматься чем-то еще, кроме преподавательской работы в университете. Но об этом в следующих частях.
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.