English translation (by Computer)
Другие статьи В.Очкова – http://twt.mpei.ac.ru/ochkov/work2.htm (in Russian)
http://twt.mpei.ac.ru/ochkov/work2_eng.htm
(in English)
Здравствуйте, Валерий Фёдорович!
Пишет вам ваш коллега – преподаватель информатики – из < >. Я знаком с
вами заочно – благодаря книге «Mathcad 7 Pro для
студентов и инженеров», которую я 3 года назад (будучи ещё аспирантом)
купил и прочитал. Тогда необходимость в использовании Mathcad как-то не
возникла. А вот весной этого года книга очень помогла, когда надо было вести
занятия по Mathcad.
Вы преподаватель и популяризатор информатики с многолетним стажем, мне
импонирует ваша манера изложения материала, в которой всегда
присутствует <>, и я решил обратиться за советом именно к вам.
Наша кафедра Инженерной Кибернетики ведёт курс информатики у всего института.
Сейчас назрела необходимость его изменения, связанная с
тем, что значительная часть курса основана на программировании на Турбо
Бейсике, а это никак не отвечает современному развитию
информационных технологий (ИТ).
Я хочу принять активное участие в этом процессе. Куда мне лезть в это дело с
моим стажем 2 года, можете вы сказать. Но как мне кажется,
человек со свежим взглядом на вещи (как на учебный процесс, так и на текущее
состояние ИТ) и работающий программистом, лишним никак не
будет.
А вот чего мне не хватает (да и, думаю, моим коллегам) – понимания того, что же
нужно знать и уметь современному инженеру (Тут, правда,
встаёт большой вопрос – а сколько выпускников будет работать по специальности,
пойдёт работать на завод в моём или на АЭС в вашем случае? И может, лучше
научить их тому, что им больше пригодится в реальной жизни?).
Поэтому хотелось бы узнать ваше видение преподавания информатики в техническом
ВУЗе. Какой следует давать теоретический материал, какие
задачи учить решать и, главное, на какой программной базе?
Вопрос «на чём» является принципиальным потому, решается он надолго, так как в
отличие от остального изменить сделанный выбор весьма не просто – надо менять
учебные пособия (а это, понятно, недёшево).
Насколько я понял (просмотрев ваш сайт, на котором доступны учебные планы), вы
однозначно сделали выбор в пользу Mathcad. (Кстати, за сайт
отдельное спасибо: вы выложили на нём все свои книги и статьи для всеобщего
доступа. Все бы так делали.) Не могли бы вы кратко изложить
основные аргументы в пользу такого выбора в ущерб традиционным языкам
программирования? И как здесь быть с требованием умения
программировать для всех инженерных специальностях?
Возможно, Вам будет интересно узнать, что представляет из себя наш курс
информатики, и мои соображения по его изменению,
подготовленные ещё летом (прикреплённый файл – plain text – чтобы не опасаться
вирусов).
В данный момент учебный план выглядит следующим образом:
1 семестр – 2ч. лекций и 2ч. практических занятий
Программирование на Турбо Бейсике. 5 лабораторных работ, ориентированных на
овладение приёмами программирования (циклы, условные операторы, массивы,
подпрограммы, работа с файлами).
2 семестр – 3ч. (неделю 2, неделю 4) практических занятий.
Программирование на Турбо Бейсике – численные методы (построение графиков,
нахождение корней, интерполяция, интегрирование, решение систем линейных
уравнений), Основы работы с Mathcad, Word, Excel, Access.
Что касается предложений, которые находятся в файле, то, пожалуй, я несколько
отошёл от категорического отказа от программирования под
ДОС. Возможно, под влиянием того, что среди коллег наиболее распространено
мнение о необходимости перехода на Паскаль. Однако, в этом случае, по причинам,
о которых вы, кстати, тоже упоминали в одной из статей (про Mathcad MM), я
считаю необходимым выбор языка Си (к тому же Си является основой множества
новых интернет-ориентированных языков). Если хорошо продумать, то его можно
изложить практически не сложнее, чем Паскаль.
Другой возможный вариант – это изложенный в файле (т.е. программирование на
VBA, Mathcad). Думаю, что у него меньше шансов, так как профессор
<> (вы, вероятно, видели написанные им книги), ответственный за программу
курса, является жёстким сторонником наличия в курсе программирования на
алгоритмическом языке.
Что является более правильным, я уже сам не знаю.
Извините за столь длинное письмо.
Буду очень вам благодарен за любые соображения по затронутым мной вопросам.
С уважением, Роман <>.
Вернее, имеет такое же отношение, как и любая другая «техническая» дисциплина – математика, физика, химия. Информатика – это наука о методах переработки информации. Информацию человечество более-менее успешно перерабатывает с самих истоков цивилизации. Компьютеры (как, 500 лет назад, и книгопечатание) дали этому процессу переработки невиданное ранее ускорение, по сути, не меняя его сущность. В докомпьютерную эру «Информатика» была как бы «размазана» по другим учебным дисциплинам. Сейчас все это пытаются собрать в учебный курс, которому дали название «Информатика». По идее этот курс должен называться Computer Science, но это термин (компьютерная наука) у нас не прижился по причине, как можно предположить, своей амбициозности, претензии на некую универсальность (сравните – математическая наука). Но, скорее, из-за того, что учебный курс «Информатика» обычно наполняется содержанием, у которого должно быть другое, вполне определенное, название: «Программирование», «Численные методы», «Операционные системы», «Офисные приложения», «Работа с Internet» и т.д. Но обычно «Информатика» – это «Основы компьютерных знаний». Студентов учат тому, что они уже давно должны знать (освоить в средней школе), но не знают по разным причинам – недостаточное число компьютеров (и в школе, и дома), нет учителей по этому предмету и т.д. Другой («родственный») пример расхождения названия учебной дисциплины и ее наполнения. Во многих вузах следом за курсом «Информатика» идет курс другим «модным» названием Математическое моделирование, который, как правило, сводится к… изучению численных методов – решение уравнений и систем (алгебраических и дифференциальных, интерполяция, регрессионный анализ и т.д. и т.п. Тут часто «телегу ставят впереди лошади» – сначала изучают программирование, а потом, алгоритмы, которые с помощью программирования приходится кодировать.
Этот тезис можно было начать словами «очень часто», «как правило», «иногда» и т.д. Можно также спорить и том, вина это преподавателей или беда. Поговорим сначала о «беде». В настоящее время уровень оплаты преподавателей таков, что их надо благодарить только за то, что они продолжают входить в аудитории и вести занятия на довольно высоком методическом уровне пусть и по устарелым программным продуктам. До кардинального изменения содержание курса руки не доходят. На это нужно время, а оно уходит на… халтуру (надеемся, на высокоинтеллектуальную халтуру), кормящую преподавателя и его семью. Выход из положения. Во многих вузах сейчас есть и платные группы. Новые методики можно сначала обкатывать на платных группах, а потом уже переносить на основную (госбюджетную) массу студентов. Другой (более «скользкий») путь – платные консультации для «бесплатных» студентов по темам, вынесенным за рамки учебных программ, или для неуспевающих студентов. «Скользкость» этого пути в том, что границу между успевающими и неуспевающими студентами очень часто проводит сам преподаватель и довольно произвольно. К финансовой стороне можно отнести и вопрос об издании новых учебников и пособий, поддерживающих новый курс. Но здесь проблема может быть решена через издание таких пособий в «виртуальном» виде и публикации их в сети Internet или Intranet (вузовский Internet) – пример http://twt.mpei.ac.ru/ochkov/Potoki.htm. Кстати, формирование таких пособий и учебных планов прямо на лекции – хорошее практическое занятие по теме «Создание персональной странички в Internet». Работая с такой “виртуальной” методикой, выполняя лабораторную работу по информатике, будет непрерывно переключаться между изучаемой программной средой и, например, Internet Explorer. Другой «финансовый аспект». Новые программные продукты нужно, как правило, покупать, а старые зачастую лежат на бесплатном доступе в Internet. Если говорить о «вине» преподавателей, то тут можно вспомнить времена, когда на доцентскую, например, зарплату можно было жить и неплохо жить, но, тем не менее, содержание «компьютерных» курсов не менялось десятилетиями.
В ориентации на устаревшие программные продукты в качестве базы преподавания Информатики нередко слышатся отголоски борьбы с космополитизмом. Дело в том, что старые программы в основном русифицированы легальным (Framework – Информонтаж) или нелегальным (dBase – Ребус) путем. Такие «доморощенные», вернее «домоДОрощенные» программы многими преподавателями считаются «нашинскими». Их использование как бы защищает от возможных упреков в недостаточном патриотизме, в преклонении перед Западом т.д.
Занятия по Информатике во многих наших вузах можно свести к такой простой модели. Преподаватель учит брать квадратный корень на калькуляторе с четырьмя простейшими действиями. Появляется более современный калькулятор с клавишей взятия квадратного корня. Преподаватель просит не обращать внимания (умалчивает) на эту новинку и по-прежнему учит сводить взятие корня к элементарным арифметическим действиям. Самое интересное в этой модели то, что основная масса учащихся… не имеет никакого калькулятора и все эти действия проводит на бумаге…
В заголовке тезиса 2 число 20 можно заменить на число 2-3, не меняя сути проблемы. Бывает так, что на занятиях по информатике учат не тому, пригодится будущему специалисту, а тому, программному продукту, который выбрала профилирующая кафедра для выполнения своих НИРовский (коммерческуих) проектов, слабо связанных с учебным процессом. Третья ситуация – выбор программного продукта для учебного процесса определяется не его полезностью, а его лицензионностью.
По идее лучше всего преподавать студентам азы той учебной дисциплины, которую мы называем Информатика на примере элементарных команд процессора (машинные коды) компьютеров, установленных в компьютерном классе, где проводятся лабораторно-практические занятия. В этом случае можно полностью раскрыть теоретическую и практическую базу, на которой зиждется современная информатика с ее битами, байтами и т.д. Но…читаем следующий тезис.
Не только можно, но и, по-видимому, необходимо, если мы хотим курсом информатики привить у студентов вкус к решению учебных задач, типовых, курсовых и дипломных работ на компьютере. Здесь важно в том или ином примере того или иного учебного курса увидеть типовую задачу (решение уравнений и систем, алгебраических и дифференциальных и т.д. и т.п.) и решить ее на компьютере в «рафинированном» виде. В этом ключе тезис 3 (предыдущий) уже не работает – важно решать такие задачи современными компьютерными средствами.
Примеры таких примеров.
Черчение – AutoCAD, математический анализ – компьютерная символьная математика (Maple, Mathematica, Mathcad и др.), численные методы – программирование т.д. При таких межпредметных связях хорошим преподавателям (ассистентом лектора) будет молодой выпускник данного вуза (факультета), знающим и компьютеры, и современные методы решения конкретных учебных задач на нем.
(Автор сделал попытку привлечь Информатику даже к решению задач гуманитарных курсов – см. статью «Mathcad и некоторые тайны художественной литературы» – http://twt.mpei.ac.ru/ochkov/Gerasim/Gerasim.htm).
Это связано в первую очередь с тем, что Computer Science – это сейчас одна из самых динамично развивающихся наук. Если на занятиях рассматриваются «живые», а не «мертвые» программные средства, программные средства, развиваемые и поддерживаемые реальными фирмами и дистрибьюторской сетью (торговцами «черных» копий), то это означает, что почти каждый год появляются новые версии программ с новыми возможностями, которые необходимо отображать в учебном курсе Информатика. Особо богат на такие новинки был 2000-й год, когда как из мешка на рынок были выброшены программные продукты с припиской «2000». Теперь следует ожидать некой паузы для освоения новинок и включения их в учебный процесс.
Здесь важна преемственность курса «Информатики» по отношению к другим дисциплинам, других лет обучения (старшие курсы), к курсам, тесно связанным с Computer Science. Плохо (а может даже и хорошо), если на разных учебных курсах будут даваться разные подходы и разные программные средства (языки программирования) для решения разных задач.
Компьютеры, информационные технологии не просто пронизывают все технические дисциплины (точные науки) – они меняют и их самих и методику их преподавания. Этому процессу пока очень «сопротивляется» классическая (не прикладная) математика. Когда автор учился в начальной школе, то в рамках уроков по арифметике были занятия по устному счету. Преподаватель говорил, например, «83 на 56?» и считал до пяти. Если ответа не было или он был неверный, то ставилась двойка. Мотивация была такова – ты должен быстро и точно считать в уме, иначе тебя в реальной жизни будут обсчитывать в магазине, к примеру. Сейчас микрокалькуляторы и электронные магазинные весы эту мотивацию свели на нет. Уроки арифметики (по крайней мере, домашние задания по этой дисциплине) можно (приходится) строить с учетом того, что у школьников есть под рукой калькулятор. Подобная критическая ситуация складывается в настоящее время с высшей математикой, с ее «устным счетом» – ручное взятие пределов, производных, интегралов т.д. Компьютерные аналитические преобразования (символьная математика) автоматизируют эту работу, ликвидируя тем самым ее мотивацию. Все это требует коренного пересмотра содержания и методики преподавания в вузах высшей математики, чему вольно или невольно противятся многие преподаватели. В свое время запрещалось приносить в школу микрокалькуляторы – сейчас многие преподаватели не одобряют, когда при решении задач по высшей математике используется компьютер даже по такой невинной теме как построение графиков функций. Внедрение компьютеров в преподавание математики может даже поменять… название этой учебной дисциплины. Как вам понравиться «Kомпьюматека»! (В январе 2002 года проводился конкурс на лучшее название журнала по компьютерным математическим пакетам. Варианты названий, предложенные автором «тезисов» – Компьюматека, Gauss.exe, MathWare… )
Очень часто защитники той точки зрения, что «Информатика» должна быть наполнена в первую очередь программированием, ссылаются на то, что студентам должен быть привит алгоритмический тип мышления, тип мышления, основанный на технологии пошагового (последовательного) решения задачи с конечным числом этих шагов. Но алгоритмическое мышление препятствует распараллеливанию процесса решения; оно не в силах помочь решить некорректно поставленную задачу и т.д. Алгоритмическое мышление служит в первую очередь для решения задач на компьютере численными методами, в то время как все большую роль приобретают аналитические методы (символьная математика).
Есть мнение, что студент, прежде чем, например, искать корень системы алгебраических уравнений должен изучить алгоритм решения этой задачи и его реализацию на одном из алгоритмических языков. Такое же мнение бытовало лет 30 назад в отношении, например, квадратного корня: прежде, чем работать с этой встроенной функцией, нужно изучить, как она разлагается в ряд элементарных функций, и поработать сначала с ними, развивая свое алгоритмическое мышление. В настоящее время современные математические пакеты и научные калькуляторы (суперкалькуляторы) позволяют одним оператором решать большинство типовых задач курса высшей математики без кодирования алгоритма. Это дает возможность изучать алгоритм решения задачи, так сказать, в познавательных, а не в утилитарных целях, выясняя, например, суть ограничений того или иного оператора или функции конкретного математического пакета.
Очень часто содержание курса «Информатика» определяется не желаниями и знаниями преподавателя, а… теми компьютерами, на которых приходится вести занятия. Если требования перехода на лицензионное программное обеспечение будут ожесточаться, то содержание курса будет определять не только «железо», но «софт». Тема нелицензионного «софта» в учебном процессе автором затронута в статье «Открытое письмо пирата в адрес компьютерных изданий». http://twt.mpei.ac.ru/ochkov/mc8Pro.book/6_text.htm#_Toc525449695.
Первый этап – работа с машинными кодами
Второй этап – работа с языками программирования высокого уровня
Третий этап – работа с физико-математическими пакетами
Сейчас многие преподаватели «цепляются» за языки программирования, примерно также и с теми же доводами (см. тезис 7), как в свое время (лет 20-30 назад) они или их предшественники «цеплялись» за машинные коды. Физико-математические пакеты позволяют на порядок сократить сроки выполнения расчетных (учебных) проектов, вернуть в расчеты физические величины (полнокровное использование единиц измерения – см. статью автора «Mathcad & Mathcad – работа с единицами измерений» http://twt.mpei.ac.ru/ochkov/Unit_MC_MP/Unit_MC_MP.htm). Физико-математические пакеты позволяют передавать преподавателю учебные расчеты без опаски, что он в них не разберется, не зная того или иного языка программирования. Физико-математические пакеты позволяют богато иллюстрировать записки научной и деловой графикой, дополнять анимацией для иллюстрации тех или иных выводов. Физико-математические пакеты позволяют перейти к безбумажной технологии выполнения и защиты учебных проектов.
Главное (вернее, первое), что студент должен получать на занятиях, – это не знания, не навыки, а… удовольствие. Учить студентов азам программирования для выполнения учебного плана можно, но проку, а главное, удовольствия от этого почти не будет. Начинать лекцию по информатике с рассказа об основных программистских конструкциях – это сразу делить аудиторию на две части: одной части аудитории это непонятно, другой – неинтересно. И в том и другом случаях – удовольствия никакого. Компьютер, как показывает статистика, на 80-90% используется как игровая приставка. Человек основные свои навыки и умения (ходить, говорить, ездить на велосипеде, кататься на лыжах и т.д.) приобретает играючи. Компьютеры дают нам хороший шанс размыть грань между игрой и (пока скучной) учебой, подтащив (растянув) период, когда все познается в игре, с младенческих лет в юношеские и даже зрелые годы.
Некий Эрик
Берн(э) в книге, называемой в русском переводе "Игры и люди, люди и
игры" показывает, что кроме игры и работы есть некое
"структурирование времени", "занятость", как сказали бы
пионервожатые о детях в лагере. Коротко излагая, человеку, по Берну, легче
"делать ничего", чем ничего не делать. И компьютеры способствуют
тому. Особливо дома, (где только одно поколение знакомо с ПК): в малых
квартирах, где невозможны перегородки, реализуется виртуальное отгораживание:
пока подросток за компьютером, взрослые не лезут к нему с советами и
критикой, так как не понимают (многие). И вот ради ЭТОГО можно выучить что
угодно (эдак каждому четвертому ребенку).
В группах,
где я преподаю, ПК имеется только у каждого 5-го и среди них заметны ребята,
для которых "изучение" информатики это способ распараллеливания с
родителями. IMHO[1].
Расскажу о собственной учебе.
Это было и есть отвратительно. Обучение страдает каким-то
догматизмом. Вот только так и не иначе. Имея нормальные компьютеры (300-400
PII), до сих пор долбят Pascal под DOS.
Только потому, что преподаватель не знает другого. Если проходят 3х-мерные
системы проектирования, то тут обратная ситуация, много не рассказывают, так
как это стоит денег, а за свою зарплату не хотят открывать секреты. Зачем?
Научат строить трехмерные кубики и то хорошо. Начальство, которое не видело это
в своем обучении, будет счастливо. А что еще нужно?
Вот мы проходили Mathcad и что же? Преподаватель купил
книжку и вместе с нами проходил ее, не готовясь к семинарам? В итоге за семестр
мы не успели ровным счетом ничего, зато нам задали курсовой и сказали: "А
теперь, покажите свою способность работать с книгами". И не так важно, что
книг в библиотеке нет и проконсультироваться не с кем. Вообще, Высшая Школа и
метод построения на меня тоску нагоняет. В институтах никто не остается
работать. А если остаются, то заикающиеся тормоза, которые не могут
объяснить ничего, да и еще мучают студентов, только потому что у самих личная
жизнь не удалась и теперь кругом все виноваты.
Знаете, смешно. Сначала говорят, что знание безлично, а
потом заставляют учить имена и даты.
Поэтому я так обрадовался Вашей статье.
Какие могут быть дополнение!? Разве что в правительство –
зарплату поднять преподавателям, чтобы была конкуренция. Тогда и программы
начнут меняться.
С уважением, Денис
·
совершенствование
заочной формы обучения;
·
создание
методических комплексов на новой основе.
Для «оживления» такой вычислительной сети
специалист должен уверенно владеть всеми приемами, используемыми специалистами
в области Computer Science.
Однако большую часть того, о чем говорилось
выше, не следует «впихивать» в курс Информатика. «Кнопочным» технологиям
следует обучаться на старших курсах, тогда и обновление курса Информатика
придется проводить реже.
[1] (In My Humble Opinion) по моему скромному мнению (в сетях употребляется также непосредственно в виде "имхо" (существительное среднего рода))