Привет всем!
Я , как и писал, не смог принять участие в дискуссии по причине своего отъезда. Более того, вернувшись, я тут же угодил в еще одну командировку. Так что посмотреть ответы я смог только на этой неделе. В общем, я бы не стал продолжать эту тему, но вот на некоторые замечания уважаемого Геннадия Васильева я счел необходимым ответить.
Генадий, заранее приношу свои извинения за то, что я объединил Ваши ответы из разных писем, а также переставил их местами. Надеюсь, я тем самым не исказил смысл Ваших высказываний.
PD>Сейчас — Win32 + MFC (3 курс МФ).
ГВ>Эта хрень уже стала академической дисциплиной?
ГВ>Я что-то всегда был уверен, что рассказы о конкретных особенностях тех или иных технических платформ — суть обязанность аспирантов, лаборантов или начинающих преподавателей. Кроме того всю жизнь были факультативы, НИРС-ы, заказные разработки и т.п. Да и договорные отношения с предприятиями никто не отменял. Вот вам и вечноживой источник практики!
PD>>Нет уж, спасибо. Я предпочитаю не подниматься до роли теоретического
PD>>лидера, а вместо этого быть в состоянии просто отвечать на вопросы моих
PD>>студентов по реальным программистским проблемам, да и не только
PD>>программистским, а и другим, связанным с живым миром реальной
PD>>вычислительной техники.
ГВ>Это дело вкуса, разумеется. Но тогда, вероятно, и не стоит рассуждать о том, "чему нужно учить студентов". Вы не в состоянии ответить на такой вопрос и занимаетесь противопоставлением "наука vs. практика". Вы уверены, что правильно понимаете роль науки в нашем деле? Поверь, знание API библиотек — это... ну... в справочнике вычитать можно.
PD>>А, кстати, господа, кого мы готовим-то ? Теоретиков от информатики или
PD>>программистов в нашем нынешнем мире ? Если первое — о да, тогда в
PD>>основном мудрецы и требуются. А вот если все же второе — то не является
PD>>ли более важным знание реальных технологий ?
ГВ>Стыдно противопостовлять-то.
Ай-яй-яй. Вы готовите тех, кто может использовать теорию на практике. Инженеров, то бишь. Это — не ясно? Или вузы уже стали превращаться в филиал курсов повышения квалификации сисадминов?
Итак...
Ну, насчет того, в чем обязанности аспирантов и начинающих преподавателей, а в чем профессоров и доцентов — об этом я дискутировать не буду, так как к делу отношения не имеет. Но вот насчет тематики выскажу свое решительное несогласие.
Является ли Win32 + MFC академической дисциплиной или нет — сильно зависит от того, что понимать под академическими дисциплинами. Это во-первых. Физика, безусловно, является академической дисциплиной, но из этого не следует, что изучени устройства спектроскопа или атомного реактора никак не может входить в университетский курс физики. А между тем современный спектроскоп так же похож на спектроскоп начала 20 века, как IBM PC — на ЭНИАК. В химии — аналогично, да и во всех естественных дисциплинах изучение приборов, с помощью которых ведутся исследования — необходимая часть подготовки.
А у нас еще серьезнее. С прибором в конце концов можно (до определенной степени) работать как с черным ящиком. С компьютером — не получится. Программист, который знает теорию программирования и алгоритмы, а IBM PC для него черный ящик — не программист вообще.
"В справочнике вычитать можно..." Можно, конечно. Можно и справочник по математике взять, выучить все стандартные интегралы, прочитать, что такое интегрирование по частям и замена переменной, и на этом основании заявить, что Вы знаете интегральное исчисление. Можно и физику пытаться по справочнику учить , и химию. Только вот вряд ли что получится. Попробуйте сами
Не согласны ? Ну что же, приведу еще один аргумент. Вот сейчас, когда я это пишу, в форуме по WinAPI 12094 тем. По MFC — 10500. А между тем и по Win API, и по MFC справочник замечательный есть — MSDN. Ну и отошлем всех к этому справочнику, и дело с концом! Зачем тогда форумы нужны вообще ?
Впрочем, давайте подойдем к вопросу немного иначе. Из Ваших замечаний явно прослеживается деление дисциплин на те, которые изучать в вузе надо, и те, которые не надо ( или как максимум на спецкурсах и т.п.). К первым относятся теоретические вопросы и, как я понимаю, все же языки программирования. Ко вторым относятся все системы программирования (если Win API + MFC исключаются, то, по-видимому, и Delphi, и .net тоже , не говоря уж об устройстве Windows и администрировании (а то ведь и впрямь превратимся в курсы сисадминов

. Т.е. реальные технологии выбросить (или свести до минимума) исходя из того, что они явно не академические, очень зависят от текущего состояния дел и вообще к области высокого и вечного отношения не имеют (что правда). Кстати, не совсем ясно, почему языки программирования надо все же изучать — они так же зависят от текущего состояния дел (я лично студентом Алгол и Фортран изучал
Программу такую сформировать, конечно, можно, и внедрить тоже. Один только вопрос остается — а где же студенты будут эти реальные технологии изучать ? Спецкурсов для этого не хватит. Самостоятельно ? Возможно. Но тогда получается, что пообещав им программистскую подготовку, мы исключили из этой подготовки то, с чем им реально придется иметь дело, как только они выйдут из стен университета (а то и раньше) и предложили им это изучать самостоятельно. Не думаю, что они нас за это поблагодарят, и не думаю, что захотят у нас учиться. По той простой причине, что по окончании им придется все же иметь дело с реальным миром, а не только с высокой теорией. Программы, проще говоря, писать придется , а там не только сети Петри и теория массового обслуживания, но и работа с файлами, окнами, графикой, аппаратурой, Интернетом и сетями (не Петри) и т.д.!
Да и вообще, что за деление на чистых и нечистых (академически и нет). Есть реальное состояние технологии (а программирование и ВТ — это технология). Есть ее компоненты. По каким критериям одни допускаются на Парнас , а другие нет ? Только потому, что одни из них не содержат высокой теории ?
PD>>Так может, современному преподавателю информатики стоит быть не столько
PD>>мудрецом в тиши кабинета, сколько специалистом в области современных
PD>>информационных технологий, т.е. реально действующим лицом в реальном
PD>>мире, а не кабинетным затворником ? А в реальном мире действуют реальные
PD>>законы, которые изменить нам не дано, а бороться с ними — донкихотство.
ГВ>Дык расскажите о них студентам наконец! И нехай они ими пользуются!
Так мы же это и делаем — рассказываем студентам о реальном мире с его реальными законами

. А вот Вас это почему-то злит и Вы говорите — не надо
ГВ>Проблема в другом. Если все ломанутся в слесаря, то откуда кесарей-то брать будем? Я ничуть не против того, чтобы преподаватель ИТ был специалистом в практических аспектах применения тех или иных технологий. Только вот ммм... Хотелось бы, чтобы он совмещал и одно и другое. Т.е., чтобы как минимум, мог дать студенту понятные объяснения, привязанные к теории и практике одновременно.
Вот с этим я почти готов согласиться. Почти — по одной простой причине. Как говорил Козьма Прутков, нельзя объять необъятное. Прежде чем я решился вести практику по Win API, я 3 года писал программы под него. И то шел на эту практику с некоторыми опасениями. Поверьте, это совсем не легкое дело — найти ошибку в программе , которую сам не писал, впервые видишь, а времени на все про все тебе отведено минут 10-15, потому что в группе 12-15 человек. А компьютер, увы, вполне реальный, а не учебный, не хочет он ничего принимать во внимание, не работает программа, и все! Не верите ? Попробуйте сами взяться за преподавание конкретной технологии, убедитесь.
ГВ>А наша "промышленность" как стояла на одном месте, фактически, так и стоит.
Насчет промышленности говорить не буду, а с тем,что у нас программирование в загоне — решительно не согласен.
ГВ>Вчерашние студенты ни спорить не умеют, ни теоретические знания на практике применять. Бред! А ну ка, навскидку, ответьте мне, чем отличается WWW от терминального режима OS/360? Правильный ответ: кардинально — ничем, кроме набора графических функций.
Тот же самый запрос-ожидание-ответ. Что из этого следует? Что к интернет-сайтам в полной мере применим тот же аппарат теории массового обслуживания, что и для терминалов ЕС3127.
И расчёт нагрузки на сервер можно делать исходя из тех же самых теоретических постулатов.
Правильный ответ — тем же, чем IBM PC Pentium IV 3 ГГц отличается от БЭСМ 1960 года. И там и тут фон-Неймановская архитектура. И там и тут процессор , оперативная и внешняя память. И многие алгоритмы, которые сейчас используются, тогда уже были известны. И программисты тогда существовали. Только вот сомневаюсь сильно, что программист 1960 года, перенеси его в наш 2004, даже понял бы, что перед ним компьютер, не говоря о том, что смог бы что-то для него написать.
ГВ>Смогут на этот вопрос ваши студенты так ответить?
Думаю, что нет. По причине полного незнания терминального режима OS/360? равно как и самой OS и терминалов

.
ГВ>Не уверен, потому что начнут выходить те, кто считает терминалы "вчерашним днём", а WWW-сегодняшним.
А Вы что, считаете, что имеет место противоположное ?
ГВ>Надеюсь, ATL/STL/MFC ещё в экзамены не попали?
У нас нет экзаменов по программированию вообще после первого курса. Не нужны они и не имеют смысла.
With best regards
Pavel Dvorkin