Экспорт экзаменов из Visual CertExam в Anki

в 23:14, , рубрики: anki, python, vce, системное администрирование, Учебный процесс в IT, метки: , ,

Учась на курсе MCITP, я, как и многие другие айтишники, столкнулся с дампами экзаменов, по которым можно вызубрить конкретные вопросы и правильные ответы на них. Даже хорошо зная теорию, дампы сильно повышают шанс пройти сам экзамен, ну и по ходу дела закрепить в памяти детали самой темы. Это, само собой, и так все знают.

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

Я уже довольно давно использую Anki, в которой используется алгоритм интервального повторения(Spaced Repetition).

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

У этого подхода есть много плюсов:

  • Хорошо выученный материал показывается реже, следовательно, не нужно тратить на него время
  • Новый/забытый материал повторяется чаще
  • Anki есть для всех платформ (Windows, Linux, Mac)
  • Есть клиенты Anki для Android, iOS и прочих мобильных платформ. То есть можно учить материал на своем мобильнике, стоя в очереди, в автобусе и т.д.
  • Еще в Anki есть режим зубрежки, в котором можно пройтись по всему материалу, игнорируя интервалы, чтобы, скажем, повторить материал перед экзаменом

Это очень краткое описание Anki. В программе есть очень много настроек, поддержка многих языков и все такое.

Anki можно скачать вот здесь.

Поэтому я решил написать скрипт, который экспортирует дамп из формата Visual CertExam в колоду Anki. Он еще довольно сырой и ограничен, но он работает и уже помог мне сдать экзамены, сильно экономя время.

Скрипт написан на Python и его можно скачать вот здесь.

Работает он примерно так. Экзамен экспортируется из VCE Designer в текстовый формат, после чего скрипт из этого текстового файла создает готовую колоду Anki.

Вопрос и список ответов идет на лицевую сторону карточки, а правильный ответ (или ответы, если их несколько) идет на заднюю сторону. Если к ответу есть заметки или дополнительное объяснение, они тоже добавляются на заднюю сторону карточки.

Текущая версия скрипта заточена под работу с ankimini. В основном потому, что в этой сборке есть все необходимые зависимости.

Я лично проверял его только на Windows, но теоретически он должен сработать и на других системах.

Как пользоваться скриптом:

  1. Качаем Python 2.7(32 bit) (Python 3 и 64бит опять же не тестировал).
  2. Качаем ankimini отсюда.
  3. Распаковываем ankimini.
  4. В Visual CertExam Designer открываем экзамен .vce .
  5. Нажимаем File->Export to, и экспортируем в папку с ankimini. Файл зовем test.txt (важно выбрать формат .txt — с rtf скрипт не работает).
  6. Открываем файл test.txt в Notepad++.
  7. Жмем Encoding->Convert to utf-8 и сохраняем файл. (теоретически должен подойти любой редактор, который сможет сохранить файл в формате utf-8).
  8. Копируем скрипт vcetoanki.py в папку ankimini.
  9. Запускаем vcetoanki.py

Все. Если все прошло успешно, в папке ankimini должен появиться файл test.anki, который можно открыть в Anki и начать по нему учиться.

Минус скрипта в том, что он не сохраняет картинки, если они есть в дампе. Их, к счастью, обычно очень немного. Я начал интереса ради разбирать бинарный формат .vce, чтобы можно было конвертировать напрямую, без экспорта в txt, и с минимальными потерями данных (как картинки), но я зашел недалеко и всего лишь успел расшифровать название экзамена и первый вопрос. Если кому-то это интересно, я могу выложить то, что успел разобрать на gist.github или pastebin.

Надеюсь, этот маленький скрипт поможет кому-нибудь так же, как он помог мне.

Автор: Irwin1138


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js