О вычислительном обеспечении практикума по программированию на младших курсах

Сутырин П. Г., Курячий Г. В.

АННОТАЦИЯ
В докладе дается обзор методики проведения семинарских занятий по практикуму на первом курсе очного отделения специалистов факультета ВМК МГУ им. М.В. Ломоносова. Основное внимание уделяется принципам и особенностям использования вычислительной техники и программного обеспечения, в том числе свободного.

Проведение семинарских занятий по практикуму

Вначале дадим обзор программистских дисциплин, изучаемых на первом курсе отделения специалистов. В первом семестре это основы теории алгоритмов (машины Тьюринга, нормальные алгоритмы Маркова), основы алгоритмизации с использованием языка программирования Паскаль (стандарт ISO 7185), динамические структуры данных и алгоритмы их обработки.

Во втором семестре изучаются основы архитектуры ЭВМ и язык ассемблера для машины на основе ЦП Intel 8086 (MASM4). Вначале изучается концепция машин фон Неймана (кодирование команд, хранимая программа, последовательность выполнения команд) на примере модельных машин с разной системой команд (одно-, двух- и трехадресные машины, безадресные стековые машины), затем систематически изучается язык ассемблера процессора 8086, а также язык макроассемблра (все это на примере MASM 4.0).

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

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

Требования к обеспечению учебного процесса

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

Требования к программному обеспечению

В случае с первым курсом в настоящее время актуальным является следующий перечень требований и соответствующих программных инструментов:

  1. Реализация машины Тьюринга и нормальных алгоритмов Маркова.
    • чаще всего используется студентами самостоятельно в первые недели, когда теоретически изучаются эти формализмы
  2. Реализация ISO Pascal (или его расширения, но с возможностью контроля используемого диалекта языка)
    • Варианты:
    • Borland Pascal 7.0 (DOS-окно)
      • интегрированная среда с редактором и отладчиком;
      • библиотеки для построения текстового UI.
    • GNU Pascal
      • хорошо поддерживает ISO Pascal и другие диалекты (BP, Free Pascal, и еще несколько);
      • реализует свое расширение Паскаля, достаточно полезное для практического программирования;
      • увы, последние несколько лет не разрабатывается (есть проблемы с современными версиями GCC).
    • Free Pascal
      • имеет IDE, аналогичный BP;
      • хорошо интегрируется в современные ОС (но это не нужно для первого семестра);
      • увы, компилятор языка содержит грубые расхождения даже с базовым стантдартом;
      • не поддерживается ограничение ISO Pascal.
  3. Реализация ассемблера и макроассемблера.
    • MASM 4.0 (DOS-окно)
      • использовался произвольный редактор, не специализированный для текстов программ (чаще всего из Norton Commander, т.к. дело происходило в DOS-окне).
      • отладка программ отягощалась крайне лаконичной и однообразной диагностикой системы на чаще всего допускаемые ошибки (неправильный доступ к памяти).

Опыт использования инструментария, в т.ч. основанного на СПО

В рассматриваемый период времени (с 2000 года) использовались два варианта обеспечения.

В процессе эксплуатации загрузочного образа FreeBSD было выявлено объективных и субъективных недостатков:

Вместе с тем, сама мультизагрузочная среда (вполне стандартно реализованная на базе FreeBSD) позволила:

Загрузочный образ на основе ALT Linux 6.0

Предлагаемый загрузочный образ (для краткости — «прошивка») сделан на базе LiveCD дистрибутива семейства ALT Linux 6.0 Centaurus. Технология создания описана в статье «Сетевая установка и сетевая загрузка», существенных изменений не претерпела. Особенности прошивок такого типа:

Эти особенности предопределили особенности поддержки учебного процесса:

В частности, последнее свойство позволяет расширить список ПО, устанавливаемого в прошивку, предлагать различные варианты, экспериментировать. Так, помимо «старых» инструментов для DOS, в новом загрузочном образе используются:

Кроме того, предполагается вынести на суд преподавателей «промежуточный» вариант с использованием DOS-овских компиляторов, запускаемых в режиме командной строки из Linux-IDE (например, Geany).

В обеспечении учебного процесса важную роль предполагается отвести т. н. сайту практикума, на котором будут размещены учебно-методические и справочные материалы (либо ссылки на них), а также заведены персоналдьные страницы учащихся для хранения файлов. Требования к работе этого сайта (например, определение прав доступа преподавателя и студентов к файлам и страничкам, запрет доступа на запись во время зачёта и т. п.) будут определены в дальнейшем, после согласования с преподавателями.

Нелишне заметить, что загружаемый образ на базе ALT Linux третий год используется для проведения практических занятий в Вечерней Математической Школе при ВМиК МГУ (программирование на языке Python, с этого года — также и на C).

Выводы

Технология бездискового клиента, использованная в «прошивке» на базе ALT Linux, позволяет создавать и видоизменять произвольное унифицированное окружение для проведения широкого спектра практических занятий. Для эффективной организации учебного процесса необходимо соблюдение трёх требований:

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

PavelSutyrin/ALTPracReport (последним исправлял пользователь PavelSutyrin 2017-10-16 12:48:46)