Поиск по сайту


Каталог учебных материалов

Свежие работы в разделе

Наша кнопка

Разместить ссылку на наш сайт можно воспользовавшись следующим кодом:


Контакты

Если у вас возникли какие либо вопросы, обращайтесь на email администратора: admin@kazreferat.info

Программирование для математиков

Узнать стоимость написания работы

Наталья Дубова

В 1980 году на мехмате МГУ был введен новый курс программирования

Вместе с появлением первых вычислительных машин возникла потребность в фундаментальной подготовке тех, кто научит этих электрических монстров осмысленной деятельности, то есть программистов. На мехмате МГУ в начале 50-х Алексей Андреевич Ляпунов читал первый учебный курс по принципам программирования. В 1980 году здесь же возникает новый курс программирования, который в конечном итоге оказал серьезное влияние не только на несколько поколений «мехматян», но и в целом на преподавание информатики в стране.

В заголовок статьи мы вынесли название учебника по мехматскому курсу программирования, который вышел восемью годами позже. Авторы курса Геннадий Викторович Лебедев и Анатолий Георгиевич Кушниренко подчеркивают, что название это отражало не просто принадлежность предмета главному математическому факультету страны. К 80-м стало очевидно, что мехмат, проложивший дорогу преподаванию теоретического программирования, уже не имеет соответствующего его высокой научной планке курса по этому предмету. Преподавание программирования сводилось к изложению Фортрана — языка, авторитет которого в сфере научных расчетов был непререкаем, и описанию архитектуры машин IBM 360, с которых делались наши ЕС ЭВМ. Качество этих курсов никак не отвечало мехматским требованиям. Вызревала потребность в абсолютно новом курсе, способном внести вклад в общую математическую культуру студентов.

Теперь его авторы уверены, что в итоге, когда курс окончательно сформировался, им удалось достигнуть этой цели. Правда, накануне 1 сентября 1980 года такие глобальные идеи не формулировались. Просто молодые преподаватели решили, что каждый студент, пришедший на первое занятие по программированию, должен уйти с него с распечаткой готовой программы. Для этого решили написать пакет программ с использованием библиотек системы «Асфор» — сокращенной версии Фортрана, разработанной на мехмате специально для программирования студенческих задач. Студенты должны были построить алгоритм передвижения некого «путника» через заданный набор препятствий и составить программу, состоящую только из вызовов стандартных программ. Дальше оставалось только собрать нужные перфокарты с набитыми на них программами, запустить их обработку и получить результат.

После нескольких дней борьбы с библиотеками на Фортране создать такой пакет программ не удалось.

«В последнюю ночь в полном отчаянии и от безысходности в голове родилась шальная мысль, что Фортран здесь не нужен. Надо написать интерпретатор. С этой идеи и стартовал мехматский курс», — вспоминает Лебедев. За два часа был написан интерпретатор, обрабатывающий линейные операторы вновь придуманного языка с русской лексикой. Первое занятие прошло с полным успехом. Вся группа ушла с выполненными программами и уже приобретенным опытом исправления типовых ошибок. В прежних курсах студенты получали первые результаты не раньше чем через два-три месяца освоения языка.

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

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

Два других кита — технология программирования «сверху вниз», cхематическое изображение которой вынесено на обложку учебника, и иерархия структур данных с описанием методов реализации одних структур на базе других — важнейшие компоненты, без которых не обходится программист-практик. Мехматский курс программирования действительно закладывал базу для грамотной разработки сложных систем. Однако только изложение важных понятий, не подкрепленное практикой, мало что дало бы студентам. Поэтому в курсе предлагалось разобраться с несколькими законченными проектами (построение выпуклой оболочки, реализация компилятора с языка арифметических формул, построение изображения полиэдра) и, что самое главное, модифицировать эти проекты, то есть, изучив 6-8 тыс. строк эталонных программ, добавить тысячу-другую своих. Так студент на практике закреплял полученные теоретические знания и одновременно готовился к реальной работе. Ведь в жизни часто все так и происходит — решение задачи сводится к модификации готовых программных систем.

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

Опасения эти были безосновательны. Новая постановка преподавания программирования на мехмате не мешала изучению классических математических дисциплин. Оказалось, что сильные студенты вполне способны увлечься таким «приземленным» занятием, как программирование, найдя его интересным и своевременным. Создатели курса вложили в него всю свою энергию, увлеченность и талант. «Мы были довольно яркие ребята и делали курс с большим вкусом и интересом», — вспоминает с присущим ему юмором Кушниренко. К середине 80-х на курсе программирования для математиков была взращена группа молодых специалистов, которая вместе с ветеранами составила элиту факультетского программистского сообщества.

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

Список литературы

Для подготовки данной работы были использованы материалы с сайта http://www.osp.ru

Другие материалы

  • Чемпионаты мира по программированию
  • ... СПбГУ ИТМО и по три раза - студенты СПбГУ и МГУ. При проведении первых в России полуфинальных соревнований командного чемпионата мира по программированию из-за большой протяженности территории и больших транспортных расходов было решено провести соревнования одновременно в двух городах: в Санкт- ...

  • O Л. В. Канторовиче и линейном программировании
  • ... идеи в те годы получали дополнительную поддержку, если в них почему-либо были заинтересованы военные круги, и исследование операций, в частности линейное программирование, - один из примеров того. Никто из военных специалистов (среди них инженеры, очень неплохо знавшие математику; некоторые из них ...

  • Работа со структурами в языке программирования Си++
  • ... : day (день), month (месяц), year (год). Структура типа person (человек) содержит четыре элемента: fam[20] (фамилия), im[20] (имя) , ot[20] (отчество), f1 (дата рождения). Последний из них (f1) – это вложенная запись типа date. Результаты работы программы: Укажите фамилию, имя, отчество, день, ...

  • Прикладная математика
  • ... формулу (ее придется объяснить при защите курсовой работы!) и найдите по ней худшую и лучшую операции. Произвести математико-статистический анализ за T лет Xt, Kt, Lt (t = 1, …, T) о выпуске продукции (в стоимостном виде), ОПФ и числе занятых исследуемого производственного экономического ...

  • Является ли математика частью информатики?
  • ... в программирование из математической логики. Главное отличие от математики, хотя бы и рассматривались одни и те же объекты, состоит, на мой взгляд, в том, что в информатике определяющим является человеческий фактор. Программы пишутся людьми, часто большими коллективами; даже если программу пишет ...

  • Методы информатики в обучении математике
  • ... особенности учащихся данного класса. Примерами алгоритмов обучения математике могут служить: обучение доказательству теорем, обучение. решению задач и другие. Алгоритмы обучения являются составной частью педагогических технологий. Информатика занимается также созданием аппарата, удобного для ...

  • Разработка электронного учебника по математике для студентов I курса, отделения "информатика - иностранный язык"
  • ... я считаю, что тема моей дипломной работы «Разработка электронного учебника по математике для студентов I курса отделения информатика-иностранный язык» является актуальной в силу того, что потребность в таком электронном учебнике несомненно есть, а самих учебников по данной теме либо совсем нет, либо ...

  • Применение методов линейного программирования в военном деле. Симплекс-метод
  • ... говорилось, Нобелевской премией в 1975 году.II.ОСНОВНЫЕ НАПРАВЛЕНИЯ ИСПОЛЬЗОВАНИЯ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ В ВОЕННОМ ДЕЛЕ.Наиболее распространенными направлениями использования линейного программирования в военном деле являются: задача о перевозках (транспортная задача) задача на распределение ...

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

  • Программирование и достижения компьютерной техники
  • ... пакетов прикладных программ. Эти разработки должны обеспечивать высокое качество и вестись примерно так же, как и выпуск промышленной продукции. Достижения компьютерной техники   1.         Универсальные настольные ПК Что такое настольный компьютер ...

  • Транспортная задача линейного программирования
  • ... ;   Требуется в области допустимых решений системы уравнений (2.1) и (2.1.1) найти решение, минимизирующее линейную функцию (2.4). Таким образом, мы видим, что транспортная задача является задачей линейного программирования. Для ее решения применяют также симплекс-метод, но в силу специфики ...

  • Использование ЭВМ при обучении математике
  • ... программы буквально за считанные минуты овладевает теми знаниями, требованиями необходимыми при работе с программой, что немаловажно при использовании компьютера при обучении математики. Курс ОИВТ в средней школе изучается в 10-11 классах, а если учесть, что программа написана для 5 или 6 класса, ...

  • Основы дискретной математики
  • ... общий список книг в порядке убывания спроса. 50) 200 учеников шести школ города (номера школ заданы) принимают участие в тестировании по математике. Правильные численные ответы к пяти предложенным задачам даны. О каждом ученике известно: фамилия, номер школы и пять ответов на задачи. Сведения об ...

  • Решение задачи линейного программирования графическим методом
  • ... , теория массового обслуживания, и др. 1. ПОСТАНОВКА ЗАДАЧИ   Целью нашего курсового проекта является решение задачи линейного программирования графическим методом. 1.1    Математическое программирование. Математическое программирование ("планирование")  ...

Rambler's Top100 Рейтинг@Mail.ru
Рефераты и материалы размещенные на сайте принадлежат их законным правообладателям. При использовании материалов сайта, ссылка на KazReferatInfo обязательна!
Казахстанские рефераты
Copyright © 2007-2016г. KazReferatInfo