Dimdim SoftWare
Мастерская Dr.dimdim
ГлавнаяПоискНаписать письмо
ГлавнаяМоделированиеПроектированиеТЗРазработкаИнтерфейсСтатьиСсылкиАвтор
Главная > Программная инженерия
Программирование. Как учиться?

"Профессиональное программирование. Системный подход." И.Одинцов

Подход на основе рекомендаций ACM/IEEE
Итак, рассмотрим методологический подход на уровне следования рекомен­дациям ACM/IEEE.
Первая группа рекомендаций основывается на том факте, что в программи­ровании присутствуют одновременно математические, естественно-научные и инженерные корни. Обучающиеся должны познакомиться с тремя раз­личными подходами, используемыми в своей профессиональной деятельно­сти исследователями и специалистами-практиками.
?  Первый из этих подходов — теория — присущ математике и включает
в себя следующие элементы:

  1. определения и аксиомы;
  2. теоремы;
  3. доказательства;
  4. интерпретацию результатов.

Этот подход применяется в собственно математических дисциплинах и при изучении теоретических основ информатики.
?  Второй подход — абстракция — присущ естественным (эксперименталь­
ным) наукам и включает в себя следующие элементы:

  1. сбор данных и выработку гипотез;
  2. моделирование и предсказание;
  3. планирование эксперимента;
  4. анализ результатов!

В программировании постоянно создаются модели, определяются струк­туры данных, предлагаются новые архитектуры и т. д. Формулируются гипотезы относительно этих моделей, проверяются альтернативные про­ектные решения и даже теоретические построения.
?  Третий подход — конструирование — присущ инженерным дисциплинам,
заключается в создании системы или устройства для решения поставлен­
ной задачи и включает в себя следующие элементы:

  1. определение требований;
  2. написание спецификаций;
  3. разработку и реализацию;
  4. тестирование и анализ.

Обучающиеся должны не только создавать самостоятельные разработки (по возможности, реальных систем), но и изучать разработки других. От них нужно требовать оценки производительности и стоимости, а также изучения альтернативных решений.
Вторая группа рекомендаций советует обучающимся получать подготовку в следующих трех направлениях по каждому предмету:
П курс лекций;

  1. практические занятия с преподавателем;
  2. практикум (самостоятельная работа).

Подход Г. С. Цейтина
Методологический подход Григория Самуиловича Цейтина исходит из того, что целью курса программирования следует считать переход от непонима­ния программирования к его пониманию. Тогда для формирования навыков программирования нужно изучить их структуру у подготовленных програм-
мистов и определить содержание курса в соответствии с выделенными эле­ментами. Предполагая, что программирование — это переход от знания о задаче, выраженного в обычной, не программной форме, к выражению этого знания (точнее, части его) в форме программы, предлагается выделить три элемента программирования по такому преобразованию знания.

  1. Первый элемент — переход от знания в математической форме к знанию
    в форме программы. Ему соответствует программирование математиче­
    ских формул, программирование рекуррентно решаемых задач посредст­
    вом рекурсивных процедур (во всех этих случаях не требуется даже при­
    сваивания) и элементы доказательного программирования, в частности,
    использование инвариантов цикла.
  2. Второй элемент — моделирующий, включает построение последовательно­
    сти действий в программе по образцу последовательности действий в мо­
    делируемой реальной системе или моделируемом поведении человека,
    решающего задачу стандартным способом (именно здесь нужна память и
    присваивания). Примерами такого подхода могут быть задачи моделиро­
    вания физических процессов. В рамках этого же подхода можно научить­
    ся использованию стандартных элементов программ, например, циклов
    для суммирования.
  3. Третий элемент программирования — преобразования, программ. Они вклю­
    чают сборку сложной программы из элементарных программ и эквива­
    лентные преобразования. Конструкции используемого языка программи­
    рования излагаются не по логике описания этого языка, а в связи с их
    конкретным использованием (например, массив как представление век­
    тора или матрицы в линейной алгебре и массив как способ хранения
    промежуточных результатов с целью избежать повторного вычисления
    рассматриваются порознь).

Роль наставника в процессе обучения
Эмпирически найденные правила хорошего программирования передаются от мастера к ученикам. Наставничество существовало и существует практи­чески во всех специальностях, в том числе и в программировании.
Классическое обучение любому делу состояло в том, что ученик в течение многих лет выполнял вспомогательные операции, перенимая основные приемы у более опытных работников. Постепенно на него возлагались более серьезные обязанности, и после формальной проверки навыков он получал свидетельство о своей профессиональной компетентности. Бывший ученик становился ремесленником, сам получал заказы и выполнял работу. Рано или поздно он представлял на суд гильдии свои лучшие работы и мог под­няться на высшую ступень профессиональной иерархии, становясь мас­тером.
Наиболее развита традиция наставничества в России и в Японии. Японцы в целом расположены к помощи друг другу. Они не привыкли держать свои методы и приемы работы в тайне, а предпочитают учиться друг у друга. Эта традиция называется "минарай" — наблюдение за опытными рабочими с целью освоения их навыков [Психология 2000]. Интересно то, что многие японцы не доверяют официальному обучению в ВУЗах, поскольку оно по­строено по западным образцам. Они считают, что официальное обучение дает только основы специальности и развивает общие способности, но на­учиться тому, что им действительно нужно, можно только в процессе рабо­ты и через индивидуальное обучение.

Вверх

<<Назад

Главная| ИС.. | Моделирование | Проектирование | ТЗ | Разработка | Интерфейс | Статьи | Ссылки | Автор
DimDim SoftWare Мастерская Dr. dimdim Copyright 2003-2004
Администратор info-system@mail.ru
Последнее обновление 26-Дек-2003