TIUTIUN (dot) COM
Resume Articles Projects Blog

Compression algorithms applied to education (RU)

25 January 2005

Linux: Алгоритмы сжатия применительно к обучению.

Несколько месяцев назад мне предложили провести курс обучения операционной системе Линукс на магистратуре в Техническом Университете. Один курс расчитан на две недели, это 10 лекций по 3 часа, то есть итого 30 часов начитки.

Конечно задача перед преподавателем стоит такая: студенты после курса должны выйти с пониманием азов работы системы и базовыми навыками администирования.

Теперь скажите, кто из вас самостоятельно ставил систему? Сколько времени вы потратили самостоятельно проходя все этапы? А сколько времени вы потратили на понимание смысла партиций базовой и свапа? Как долго возились с первой разбивкой? Сколько времени настраивали сеть?

И на засыпку - вы уместились в 30 часов?

Сложно описать все ключевые пакеты, настройки системы, основные файлы, привить какие-то навыки и уместиться в такое короткое время. Поэтому я переиначил подход: я не буду вдаваться в теорию и подробно разбирать каждый пакет, а поставлю себе задачей подготовить студента к самостоятельному управлению Линуксом на уровне администратора простейшей офисной сети. Это включает в себя умение выбрать дистрибутив в соответствии с задачей, установить его, настроить доступ в интернет для сервера и локальной сети.

Поскольку студенту откровенно неинтересно сидеть и слушать преподавателя, то спустя полчаса после начала лекции большая часть аудитории бродит по сайтам. Чтобы этого не происходило - ребят нужно вовлекать в процесс обучения. Можем использовать такие подходы как:
  • Семинары. Ребятам раздаем темы, в процессе подготовки реферата они вынуждены использовать какие-то инструменты системы, набираются опыта. Если реферат обзорный - то им доставляет удовольствие опустить Windows в сравнении с Линуксом, или, что редко, наоборот. В любом случае человек эмоционально вовлекается в процесс критики - и ОП, он попался на крючок, он уже относится к Линуксу неравнодушно, что нам и нужно. Также, после того как студент отчитал реферат, группа задает вопросы, и часто дискуссия съезжает на идеологические темы или исторические сплетни типа "как все начиналось" - опять же идет эмоциональный треп.
  • Синхронная работа. Если в аудитории есть проектор, то преподаватель работает с системой и объясняет слушателям каждый свой шаг, студенты повторяют все действия преподавателя. В этом случае студент работает самостоятельно, что способствует лучшему запоминанию материала. Очень легко отслеживать процесс работы группы - если есть отстающие, то при таком пошаговом методе работы они быстро выявляются и преподаватель поясняет всей группе место, где возникла сложность. Лучше выявить и объяснить неясные места сразу, чем возвращаться к ним на следующих лекциях.
  • Лабораторные. Это контроль усвоеного материала. Студент сам сражается с системой и учится находить информацию самостоятельно. Сам подход администрирования таков, что если нужно понять какую-то новую вещь, найти о чем-то информацию или просто вспомнить опцию, с которой запускается команда - пользователю приходится пользоваться справочником man, набором HOWTO, или поисковой системой Google. На лабораторных работах студент вынужден искать информацию сам.

Исходя из поставленных целей составлен следующий план занятий:
  1. Введение в ОС Linux.
    1.1 История.
    1.2 За и против - Windows и Linux.
    1.3 Структура директорий.
    1.4 Командный процессор bash.
  2. Установка ОС Linux
    2.1 Разница между режимами Expert и User (графический и текстовый).
    2.2 Дистрибутивы для сервера и SOHO.
    2.3 Работа с fdisk. Разбивка на партиции. Рекомендуемые разбивки.
    2.4 Файловая система. Типы файловых систем.
  3. Базовая конфигурация системы.
    3.1 Загрузка системы. Процесс init. Конфигурационный файл inittab.
    3.2 Режимы работы. Скрипты в директории /etc/rc.d
    3.3 Планировщик заданий cron. Конфигурационный файл crontab
    3.4 Служба ведения логов syslog. Конфигурационный файл syslog.conf
    3.5 Монтирование устройств. Команда mount. Конфигурационные файлы fstab, mtab. Монтирование сетевой файловой системы NFS.
  4. Базовая конфигурация сети.
    4.1 Gateway. Его задачи и принцип работы. Роутинг.
    4.2 Резолвинг символического имени хоста. Конфигурационный файл resolv.conf
    4.3 Драйвера. Управление драйверами. Команды modprobe и rmmod.
    4.4 Интерфейсы. Команда ifconfig.
  5. Компиляция ядра
    5.1 Описание опций.
    5.2 Этапы компиляции ядра и модулей.
    5.3 Установка ядра в систему.
    5.4 Загрузчик lilo. Конфигурационный файл lilo.conf
  6. Процессы в ОС Linux.
    6.1 Фоновые и интерактивные процессы. Перевод процесса в фоновый режим, и обратно, в интерактивный. Жизненный цикл процесса. Демоны.
    6.2 Сигналы. Обработка сигналов. Отсылка сигналов. Команда kill.
  7. Установка пакетов
    7.1 Система управления пакетами RPM. Надстройка apt.
    7.2 Сборка пакета из исходных кодов.
  8. Proxy.
    8.1 Его задачи и принципы работы.
    8.2 SQUID. Описание опций, типы решаемых задач на примерах.
  9. Лабораторная работа: установка системы с "нуля".
    9.1 Установить сеть, настроить SQUID с доступом в интернет через parent proxy.
  10. Обзор альтернативных ОС: Menuet, Aros, ReactOS, BeOS…
Лабораторную работу (р. 9) выполнило самостоятельно, без помощи преподавателя, 75% студентов.

Курсовые работы:
В магистратуре ребята ленивые, готовиться долго не любят, у них есть весомая отмазка: я работаю и мне некогда. Поэтому темы для курсовиков подбирались теоретические.

  1. Обзор мини-дистрибутивов (QNX, Minix, FreeOS, ...).
  2. Сравнение популярных дистрибутивов - RedHat, Fedora, Mandriva (бывший Mandrake), Debian, Suse.
  3. Движение свободного ПО (Free Software Fondation) - плюсы и минусы. (Литература: "Собор и Базар", "Повторный взгляд на Собор и Базар", литература на сайте www.gnu.org).
  4. Сравнительный анализ ПО для Windows и Линукс: офисные приложения, почтовые клиенты, браузеры, обработка графики и музыки, игры.
  5. Сравнительный анализ ОС Windows и Linux - их плюсы и минусы.
  6. Обзор систем управления пакетом: RPM, deb. Система apt.
  7. История судебного процесса между SCO и Linux. (C чего началось, этапы процесса, участники и заинтересованые лица, ваши предположения об итоге процесса)
  8. Сравнительный анализ браузеров Mozilla (Firefox, SeaMonkey) и Internet Explorer.
  9. Сравнение UNIX-like систем: разница в ПО, назначении, внутрисистемные различия, распространенность, применение. (QNX, BSD, Solaris, ...)
  10. Сравнительный анализ пакетов офисных программ: Microsoft Office и OpenOffice.
  11. CVS - система разработки конкурентных версий ПО.

Когда я начал составлять план лекций, то столкнулся с такой проблемой, что дидактических материалов по Линуксу нет вообще. Есть книги, справочники, ориентированые на самообучение, но не дидактика.

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

Дидактический материал, скомпилированый из разных источников (EN):
ЗДЕСЬ (DOC, 510Kb)


Linux: Алгоритмы сжатия применительно к обучению


Keywords: Линукс Linux обучение план обучения дидактические материалы

(C) Сергей Тютюн ( tiutiun AT gmail.com )

2005 Jan 15