[Из песочницы] Предотвращение устаревания учебных материалов
Кратко о ситуации с ВУЗах (личный опыт)
Для начала стоит оговорить, что изложенный материал субъективен, так сказать «взгляд изнутри», но по ощущениям информация актуальна для многих государственных ВУЗов постсоветского пространства.
Ввиду спроса на специалистов ИТ, многие учебные заведение открыли соответствующие направления подготовки. Более того, даже до студентов вовсе не «айтишных» специальностей дошло множество предметов ИТ-ого профиля, зачастую это Python, R, менее везучим многим приходится осваивать «пыльные» учебные языки, вроде Pascal.
Если посмотреть глубже, то все не так просто. Не все преподаватели успевают за «трендами». Лично я, учась на «программистской» специальности столкнулся с тем, что у некоторых преподавателей нет актуальных конспектов лекций. Если говорить точнее, преподаватель скинул старосте на флешку фото конспектов, написанных от руки каким-то студентом. Об актуальности таких материалов как методички по WEB-программированию (2010-ого года) я вовсе молчу. Также остается догадываться, касательно того, что происходит в техникумах и худших из худших учебных заведениях.
В итоге:
- Печатают массу неактуальной информации в погоне за количественными академическими показателями;
- Выпуск новых материалов происходит неорганизованно;
- Часто упускаются «трендовые» и актуальные детали ввиду обыкновенного незнания;
- Затруднена обратная связь с автором;
- Обновленные издания выходят редко и нерегулярно.
«Не согласен — критикуй, критикуешь — предлагай…»
Первое что приходит на ум — внедрение систем на основе движка Медиа-вики. Да да, все слышали про Википедию, но она имеет справочный энцеклопедический характер. Нас же больше интересуют учебные материалы. Викиучебник нам больше подходит. Из недостатков можно выделить:
- обязательную открытость всех материалов (цитата: «Здесь в вики-среде совместно пишется образовательная литература, распространяемая свободно и доступная всем.»)
- наличие некой зависимости от правил сайта, внутренней иерархи пользователей
Множество вики-движков плавают в открытом доступе, но считаю что не нужно даже начинать рассуждать о возможности развернуть вики-систему в масштабах университета. Из опыта скажу, что: а) у подобных само-хостных решений страдает отказоустойчивость; б) про обновления системы можно забыть (за очень редким исключением).
Долгое время я безрезультатно размышлял над тем как улучшить ситуацию. И вот однажды один знакомый сказал что давным-давно напечатал черновик книги на А4, а электронную версию потерял. Интересовался как обратить это все в электронный вид.
Это был учебник со значительным количеством формул и графиков, поэтому популярные OCR инструменты, например abbyy finereader, помогали на половину. Finereader выдавал куски обычного текста, которые мы стали заносить в обычные текстовые файлы, разбивая по главам, размечали все в MarkDown. Очевидно, использовали git для удобства кооперации. В качестве удаленного репозитория мы использовали BitBucket, причиной стала возможность создания приватных репозиториев с бесплатным тарифным планом (это справедливо и для GitLab). Для формульных вставок нашелся Mathpix. На этом этапе окончательно повернули в сторону «MarkDown + LaTeX», так как формулы конвертировались в LaTeX. Для конвертации в pdf использовали Pandoc.
Со временем простого текстового редактора стало не хватать, начал искать замену. Пробовал Typora и несколько других подобных программок. В итоге пришли к web решению и начали использовать stackedit, там было все необходимое, от синхронизации с github до поддержки LaTeX и комментариев.
Если говорить конкретно, то по итогу был написан простенький скрипт за который мне стыдно, который выполнял задачу сборки и конвертации набранного текста в WEB. Для этого было достаточно простенького HTML шаблона.
Вот команды для конвертации в WEB:
find ./src -mindepth 1 -maxdepth 1 -exec cp -r -t ./dist {} +
find ./dist -iname "*.md" -type f -exec sh -c 'pandoc "${0}" -s --katex -o "${0::-3}.html" --template ./temp/template.html --toc --toc-depth 2 --highlight-style=kate --mathjax=https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML' {} \;
find ./dist -name "*.md" -type f -exec rm -f {} \;
Ничего умного он не делает, из того что можно отметить: собирает заголовки контента, для удобной навигации и конвертит LaTeX.
В данный момент есть мысль автоматизировать сборку при совершении пушей в реп на github, с помощью Continuous Integration сервисов (Circle CI, Travis CI…)
Ничто не ново…
Заинтересовавшись этой мыслью, начал искать насколько это сейчас популярно.
Очевидно было что данная идея не нова для документация ПО. Не мало видел примеров учебных материалов для программистов, например: курсы JS learn.javascript.ru. Также заинтересовала идея wiki-движка основанного на git под названием Gollum
Немало видел репозиториев с книгами, полностью написанных в LaTeX.
Вывод
Многие студенты переписывают по несколько раз конспекты, которые много-много раз писал до них (не ставлю под сомнение пользу письма от руки), каждый раз информация теряется и обновляется очень медленно, не все конспекты, как мы поняли, есть в электронном виде. По итогу, было бы классно залить конспекты на github (переконверить в pdf, web-вид), это же предложить сделать преподавателям. Это в определенной степени привлекло бы учеников и преподов в «живое» конкурентное github-ое сообщество, не говоря уже о повышении кол-ва усваиваемой информации.
Для примера оставляю ссылку на первую главу книги о которой говорил, вот она и вот ссылка на сам реп.