home Преподавание Информационных Технологий в России
Открытая всероссийская конференция

АПКИТ

Конференция
Информационное сообщение

Место проведения

Программа конференции

Регистрация

Участники

Фоторепортаж

Программный комитет

Программный комитет

Спонсоры
Информ. спонсоры
 
Орг. поддержка

AT-SOFTWARE

НОВЫЕ ТЕХНОЛОГИИ И ФУНДАМЕНТАЛЬНОЕ ОБРАЗОВАНИЕ

Биллиг Владимир Арнольдович (Vladimir.Billig@tversu.ru)
к.т.н., профессор
Тверской государственный университет, г. Тверь

АннотацияДва фактора подвигли на написание этого доклада – окончание записи видеокурса «Основы объектного программирования на C# 3.0» на сайте intuit.ru и чтение курса «Алгоритмы и алгоритмические языки» для студентов первого курса специальности ПОВТ. Доклад посвящен обсуждению проблем, возникающих при обучении студентов началам программирования.

Задачей современного обучения в IT-области является обеспечение технологической подготовки, под которой понимается процесс получения студентами знаний и навыков в области создания программного продукта в условия разработки, соответствующих уровню СММI не ниже третьего. В рамках данного доклада обсуждаются практические рекомендации развития навыков промышленной верификации программного обеспечения [1]. Существенное влияние на формирование предлагаемой точки зрения оказало тридцатипятилетнее сотрудничество кафедры «Кибернетика» МИФИ с предприятиями авиационной промышленности в области разработки бортового программного обеспечения и, в частности, опыт применения DO-178B [2].

Как устроен курс «Основы ОП на C#»

Написанный и прочитанный курс ориентирован на тех, кто уже знаком с началами программирования. На лекциях для первого курса он излагается в адаптированном варианте, хотя и рекомендуется для самостоятельного изучения. Он содержит две части: «Ядро программирования» и «Программирование в классах».

В ядро входят 10 глав, посвященных типам и классам данных, переменным и объектам, основным операторам языка, процедурам и функциям – методам класса, основным структурам данных – строкам и массивам, рекурсивным вычислениям и рекурсивным, динамическим типам данных. Вторая часть курса содержит 10 глав. В них рассматриваются классы как ссылочные типы данных, и все частные случаи классов – структуры, интерфейсы, перечисления и шкалы, функциональные типы данных – делегаты и события. Подробно рассматриваются отношения между классами – клиенты и поставщики, родители и потомки, классы с параметрами и родовые порождения. Одна из глав посвящена декларативным элементам – атрибутам и тегам, роли документируемого программного текста. В последней главе этой части обсуждаются вопросы построения корректных и устойчивых программных систем, стилю промышленного программирования.

Апрельские тезисы

Приведу несколько возможно спорных постулатов, применяемых при обучении.

Тезис 1: Знания должны быть фундаментальными, а язык программирования и среда разработки – современными.

Возможно, одна из причин отсутствия фундаментального, всеми признанного учебника по программированию состоит в несоответствии языка и содержания. Не видно, как можно решить эту проблему. Трехтомник Дональда Кнута «Искусство программирования» хорош, но только не в той части, которая связана с описанием MIX машины и программирования на ней. Книга Дэвида Гриса «Наука программирования» не соответствует современному языку и средам разработки. Попытки других авторов также пока безуспешны.

Тезис 2: Что важнее: учебник или задачник?

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

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

Тезис 3: Должны ли быть теоремы?

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

Тезис 4: Важен ли стиль программирования

Прививать стиль программирования, близкий к промышленным разработкам следует с создания первых программ. Ясность написания кода, документируемые комментарии, осмысленные имена, построение системы тестов, ответственность за качество создаваемой программы – все это важно для начального этапа обучения.

Литература

  1. В. Биллиг «Основы программирования на C#», www.intuit.ru
  2. В. Биллиг «Алгоритмы и задачи на C#» www.microsoft.com/Rus/Msdnaa/Curricula/
  3. В. Биллиг «Основы объектного программирования на C# 3.0. Учебник и задачник» www.microsoft.com/Rus/Msdnaa/Curricula/
  4. В. Биллиг Видео материалы мастер-класса www.intuit.ru/video/16

В начало :: О конференции :: Программа :: Доклады :: Контакты

Техническая поддержка сайта:
Copyright © АП КИТ, 2005
hosted by AT-SOFTWARE
webmasters: perez&helga
webmasters: Arta