Суперобучение с помощью карточек
От: velkin Удмуртия https://kisa.biz
Дата: 07.11.24 00:11
Оценка:
Предыдущая тема называлась Обучение с помощью карточек (2020.11.21)
Автор: velkin
Дата: 21.11.20
. В ней затрагивался вопрос можно ли научиться программированию с помощью карточек. С точки зрения спонтанного исследования и попытки создать карточки тема написана достаточно грамотно. В ней так же описаны проблемы возникающие в этом процессе и размышления на этот счёт.

С другой стороны идею карточек я тогда забросил, потому что их сложно набирать. Я пробовал таблицы LibreOffice Calc и массовое преобразование в Anki. Так же мне не хватало обычного редактора текста в качестве ввода ответа. На десктопе я использовал плагин и он был неудобен. А в андроиде пришлось извращаться с псевдоформатом, когда перенос строки представлялся другим символом, например, точкой и идея была испорчена.

Где-то между тем периодом и настоящим днём я создал грубый прототип на C++ с STL назвав его "воспоминания" (memories). В readme.ru там так же было написано следующее.

структура программы:
Sets
 Decks
  Cards
   Fields (question, answer, hint)

критика программ интервального повторения:
1) интерфейс перегружен отвлекающими элементами
2) переключение внимания на оценку собственного ответа
3) исключение из ответов лишает ещё одного повторения
4) формат не позволяет быстро набирать и читать карточки и колоды
5) программы не работают в чистой консоли

Я решил переписать и немного изменить прототип. В целом, конечно, неплохая идея для платной программы, но не в текущем функционале.

Объясняю идею формата файла колоды.
1. Первая строка нужна для настроек файла колоды.
Пока она ничего не делает, её можно оставить пустой или чем-то заполнить. Кодировка текста всегда будет восприниматься как utf-8.

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

3. Далее идёт массив карт по исходному шаблону. Считывается с помощью машины состояний. За раз берёт одну строчку или линию.

Пример файла в комплекте с программой.
utf-8
-------------------------
-------------------------
-------------------------
-------------------------

-------------------------
Программирование / Язык / C++ / Автор
-------------------------
Автор C++.
-------------------------
Страуструп Бьёрн
-------------------------

-------------------------
Программирование / Язык / C++ / Проектирование / Шаблоны / Интерфейс
-------------------------
Шаблон проектирования интерфейс.
-------------------------
class Интерфейс
{
public:
    virtual ~Интерфейс() {}
    virtual void метод() = 0;
};
-------------------------

По идее эта программа поддерживает не только простой текст, но и html, но есть нюанс. В текущей версии 0.1, а это по сути только проверка идеи формата колоды нет инструментов помогающих править html. Даже я захотел поменять размер изображения, но прямо так в лоб это не сработало. Но когда я скопировал чужой html код, то он почему-то заработал включая изображение svg.

Ответы она выдаёт в строке состояния или цветом фона. Это как говорится "еду, еду, ёлка вижу", то есть интерфейс пользователя не проектировался.

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



Вопрос в том нужно ли давать кому-то первый прототип? Это ведь не нормальная программа, а просто на коленке написанная версия чтобы я мог исследовать карточки читая книги и документацию. Но с другой стороны была бы она нормальной, она бы была платной.

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

Скачать: memories_0.1_release.7z (12 937 066 байт) (проверьте на всякий случай на вирусы, можете запустить в виртуалке для максимальной безопасности)

Для развёртывания использовал утилиту windeployqt из пакета Qt, так что файлов может быть многовато.

Проверил на пустой виртуалке.
1. Windows 7 x64 Max работает.
2. Windows XP x86 Prof не работает.

Скомпилирована на рабочей Windows 10 и естественно тоже работает.

Что ещё написать?

Нашёл интересные статьи.
1. Дерек Сиверс: «Метод интервального повторения — лучший способ изучения языков программирования»
2. Ультимативный Гайд По Эффективному Обучению (для влёта в IT с двух ног).

В первой есть ссылка на статью от SuperMemo.
3. Effective learning: Twenty rules of formulating knowledge
Очень рекомендую почитать через переводчик тем, кто собрался составлять свои карточки. Там написали то, что я писал в статье Обучение с помощью карточек (2020.11.21)
Автор: velkin
Дата: 21.11.20
и до которых додумался сам, но так же есть вопросы, которые я не затронул. К тому же я занимался практикой, а не записывал готовую теорию.

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