Суперобучение с помощью карточек

velkin velkin
Предыдущая тема называлась Обучение с помощью карточек (2020.11.21). В ней затрагивался вопрос можно ли научиться программированию с помощью карточек. С точки зрения спонтанного исследования и попытки создать карточки тема написана достаточно грамотно. В ней так же описаны проблемы возникающие в этом процессе и размышления на этот счёт.

С другой стороны идею карточек я тогда забросил, потому что их сложно набирать. Я пробовал таблицы 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.

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

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

http://files.rsdn.org/99832/memories_0.1_release.png

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

Опять же пользы от других людей как всегда никакой. Но может кому интересно попробовать формат файлов, а терять время тоже нет смысла. В конце концов в прошлый раз я писал на эту тему 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) и до которых додумался сам, но так же есть вопросы, которые я не затронул. К тому же я занимался практикой, а не записывал готовую теорию.

Вы так же можете создавать свои карточки в моём формате и делиться ими в том числе здесь или с кем-то в чате, но я знаю, что вы этого делать не будете. На этом пока всё, всего вам доброго и хорошего настроения.
icezone
icezone
07.11.2024 08:09
Здравствуйте, velkin, Вы писали:

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


то что не является оффтопом
andyp
andyp
07.11.2024 08:43
Здравствуйте, velkin, Вы писали:

V>2. Ультимативный Гайд По Эффективному Обучению (для влёта в IT с двух ног).


Ты серьезно? У многих здешних обитателей, включая меня, вынос из айти вперёд ногами уже не за горами
falcoware
falcoware
07.11.2024 09:01
Здравствуйте, andyp, Вы писали:


A>Ты серьезно? У многих здешних обитателей, включая меня, вынос из айти вперёд ногами уже не за горами


³¹ Я каждый день умираю:1 Коринфянам 15:31
© Библия Онлайн, 2003-2024.


Это значит каждый день надо жить как последний!
Tai
Tai
07.11.2024 09:15
Здравствуйте, andyp, Вы писали:


A>Ты серьезно? У многих здешних обитателей, включая меня, вынос из айти вперёд ногами уже не за горами



А дальше куда? Кому ты нужен вне айти?
andyp
andyp
07.11.2024 09:17
Здравствуйте, Tai, Вы писали:

Tai>А дальше куда? Кому ты нужен вне айти?


Куда и все — на кладбище. А ты рассчитываешь жить вечно?
Нomunculus
Нomunculus
08.11.2024 03:22
Здравствуйте, velkin, Вы писали:

Ох уж эти «революционные методы обучения».
Но последние пару-тройку тысяч лет метод один. Кровь, пот и слезы и практика-практика-практика.
Все эти ваши интерактивы-ролики-карточки не научат дураков ничему.
Nuzhny
Nuzhny
08.11.2024 07:36
Здравствуйте, Нomunculus, Вы писали:

Н>Ох уж эти «революционные методы обучения».


"Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью." (Л.Н. Толстой)

"От живого созерцания к абстрактному мышлению, и от него к практике — таков диалектический путь познания истины, познания объективной реальности" (В. И. Ленин)
falcoware
falcoware
08.11.2024 07:50
Здравствуйте, Nuzhny, Вы писали:


N>"Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью." (Л.Н. Толстой)

N>"От живого созерцания к абстрактному мышлению, и от него к практике — таков диалектический путь познания истины, познания объективной реальности" (В. И. Ленин)

¹ но знание надмевает, а любовь назидает.1 Коринфянам 8:1
© Библия Онлайн, 2003-2024.


АПОСТОЛ ПАВЕЛ!
Nuzhny
Nuzhny
08.11.2024 08:09
Здравствуйте, falcoware, Вы писали:

F>АПОСТОЛ ПАВЕЛ!


Типа, авторитет какой-то? Участвовал в гонениях на христиан и убийстве мученика Стефана. Чем он авторитетнее того же Толстого?
falcoware
falcoware
08.11.2024 08:22
Здравствуйте, Nuzhny, Вы писали:


N>Типа, авторитет какой-то? Участвовал в гонениях на христиан и убийстве мученика Стефана. Чем он авторитетнее того же Толстого?


⁷ для которого я поставлен проповедником и Апостолом, — истину говорю во Христе, не лгу, — учителем язычников в вере и истине.1 Тимофею 2:7
© Библия Онлайн, 2003-2024.

Nuzhny
Nuzhny
08.11.2024 08:29
Здравствуйте, falcoware, Вы писали:

F>

F>⁷ для которого я поставлен проповедником и Апостолом, — истину говорю во Христе, не лгу, — учителем язычников в вере и истине.1 Тимофею 2:7
F>© Библия Онлайн, 2003-2024.


Ну, то есть авторитет для язычников, хорошо. Но мы тут все не язычники, зачем нам такой авторитет? В то время как Толстой был авторитетом в том числе и для христиан и учил их нравственности и милосердию. На минутку, текущие иерархи РПЦ находят слова и мотивацию в Библии для ведения войны, а толстовство в принципе отрицает сопротивление злу насилием. Так что твой Павел — детский сад.
falcoware
falcoware
08.11.2024 08:33
Здравствуйте, Nuzhny, Вы писали:

N>Ну, то есть авторитет для язычников, хорошо. Но мы тут все не язычники, зачем нам такой авторитет? В то время как Толстой был авторитетом в том числе и для христиан и учил их нравственности и милосердию. На минутку, текущие иерархи РПЦ находят слова и мотивацию в Библии для ведения войны, а толстовство в принципе отрицает сопротивление злу насилием. Так что твой Павел — детский сад.


Толстой — Еретик и отлучен от Церкви!

А Павел писал Библию! БИБЛИЮ ПИСАЛИ СВЯТЫЕ МУЖИ БУДУЧИ ДВИЖИМЫ ДУХОМ СВЯТЫМ!
wantus
wantus
08.11.2024 12:51
Н>Здравствуйте, velkin, Вы писали:

Н>Ох уж эти «революционные методы обучения».


Это не "революционный" метод, а оптимизированнй вариант стандартного "повторение — мать учения" с динамически адаптируемым интервалом.

https://www.google.com/search?hl=en-us&q=spaced+repetition

Ясное дело, что он используется не для всего, а когда надо запоминать факты, даты, словари, произношение слов и всё такое. В этом приложении он работает крайне хорошо.
DiPaolo
DiPaolo
08.11.2024 09:47
Ну пока на основе описания и скриншота лично мне ничего непонятно

Хотелось бы на примере увидеть, как это работает. Как, например, выучить таблицу умножения с ее помощью?

Тут поможет либо короткий ролик, либо тезисно 3-5 пунктов, либо делать в программе онбоардинг.

Концепция должна выхватываться буквально за первые 15-30 секунд. Дальше уже далеко не все пойдут смотреть что там к чему.
velkin
velkin
08.11.2024 12:11
Здравствуйте, DiPaolo, Вы писали:

DP>Ну пока на основе описания и скриншота лично мне ничего непонятно

DP>Хотелось бы на примере увидеть, как это работает. Как, например, выучить таблицу умножения с ее помощью?
DP>Тут поможет либо короткий ролик, либо тезисно 3-5 пунктов, либо делать в программе онбоардинг.
DP>Концепция должна выхватываться буквально за первые 15-30 секунд. Дальше уже далеко не все пойдут смотреть что там к чему.

Там как раз из статей всё понятно. Ещё в SuperMemo задолго до меня всё продумали. Но эти программы используют базы данных. И если уж говорить откровенно, даже если бы там был человеко-читаемый формат, типа xml или json, всё равно это было бы стрёмно. Человеко-читаемый не значит человеко-удобный.

Я хочу создавать карточки просто набирая текст в любом редакторе. И точно так же их копипастить, если надо. А хранить их в том же git. Я тогда ещё замучился переводить из таблиц в базы данных, где ни то, ни другое, не чистый текст. Банальные проблемы синхронизации решаются отсутствием синхронизации.

Если же всё набирать в программах интервальных повторений, то без них ничего не сделаешь. За их рамки тоже не выйти. У меня ведь программа не свободная, но формат более чем свободен.

Я сам ещё не пробовал набирать массово содержимое именно в этом формате, хотя идеи у меня есть ещё с Anki и MyTestXPro. Причём не расплывчатые, а более ли менее чёткие. А тем кому лень вникать во всё это я через какое-то время, может быть продолжительное, скажу работает это или нет.

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

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

И я не идеолог чтобы продвигать какие-то идеи. Надо пробовать, у меня уже в голове вертятся мысли как лучше порезать книги и документацию. Я даже ЕГЭ посмотрел как сделан. Моя давнишняя критика ЕГЭ, что обучаться и сдавать экзамен надо по одной системе и одним данным, как в ПДД. Там сдают по билетам, а книжка с теорией по боку.
velkin
velkin
08.11.2024 11:47
В общем я тут думал и решил скомпилировать пакет для андроида. Понятное дело дурацкая идея, для него надо переделывать интерфейсы и не только. Последний раз я компилировал для андроид на Debian 9, сейчас у меня Debian 12. Скачал новую Android Studio под названием леди баг.

Столкнулся с блокировкой Oracle, пришлось качать старую JDK 8 с какого-то зеркала mirrors.huaweicloud.com. Кстати, если это huawei, а не подражатели, то их по идее тоже должны забанить. Потом долго подбирал конфигурацию и хоть ты тресни для Qt 5.9.9 SDK из Android Studio роли не играет, хотя там написано 26 с чем-то, а вот NDK только 16.

А Qt такой старый потому, что мне лень что-то делать. Больше версии корявые установщики и в целом пакеты, меньше ещё старее. В итоге повозился и подобрал версии перечитав кучу инструкций, но так и не изучил откуда берутся эти параметры, но это всё не важно.

То сборка пакета требовала gradle, причём судя по адресу она его качает с сайта, а я браузером и нашёл нужную ссылку. То какие-то проблемы с ключами, люди советуют стереть папку .android и это действительно работает.

Самое плохое случилось потом, причём не только с пакетом, но и с моим смартфоном, просто я заметил это только сейчас. Если кратко произошла такая вещь ОФИЦИАЛЬНО! В Android 14 НЕЛЬЗЯ установить старые приложения. И это интересным образом совпадает с Китай объявляет Android войну на уничтожение. Крупнейшие техногиганты отворачиваются от этой ОС в пользу ее «убийцы».

А проблема в том, что мой Samsung A52 всё это время обновлялся. Так в итоге он с 11 версии обновился до 14. Galaxy A52 больше не будет получать обновления функций Android и One UI. Лучше бы он вообще не обновлялся. Гугл затеял очень мерзопакостную вещь испортив мне смартфон. А выхода нет, только рутовать.

Так вот после компиляции сборки apk и закачки его автоматически на смартфон, мне смартфон заявлял, что не будет это устанавливать, потому что оно скомпилировано для старой версии. Google росчерком пера сломает сотни тысяч Android-приложений. Они перестанут запускаться на новых смартфонах. Отлично гугл.

В общем мне даже смена targetSdkVersion и minSdkVersion не помогла Требования к целевому уровню API для приложений Google Play.

Все обновления и новые приложения, отправляемые на проверку в Google Play, должны поддерживать Android 14 (уровень API 34). Исключение – приложения для Wear OS и Android TV, которые должны поддерживать Android 13 или более поздних версий.

Существующие приложения должны поддерживать Android 13 (уровень API 33) или более поздних версий. Так они будут доступны новым пользователям на устройствах Android с ОС уровня выше, чем целевой уровень API приложения. Приложения, поддерживающие Android 12 (уровень API 31) или более ранних версий (для Wear OS – Android 10 или ниже, для Android TV – Android 11 или ниже), будут доступны только на устройствах Android с ОС не более высокого уровня, чем целевой уровень API приложения.

После 31 августа 2024 года приложения для Android 12 (уровень API 31)* или ниже станут недоступны новым пользователям на устройствах с ОС Android уровня выше, чем целевой уровень API приложения.

После 1 ноября 2023 года приложения для Android 11 (уровень API 30) и ниже стали недоступны новым пользователям на устройствах с ОС Android уровня выше, чем целевой уровень API приложения.

А Android 14 это уже почти что анальное яблоко. В итоге я скопировал закачки и фото со смартфона на диск, плюс забекапился в самсунговском облаке и сбросил смартфон до заводских настроек. Но не тут то было, загрузился он так же 14 версией. И, конечно, сразу после этого я нашёл статью самсунга, что так и должно быть.

Но приложение теперь почему-то стало устанавливаться. Так-то оно ругалось и сразу посылало меня куда подальше, а тут ругается, но устанавливает. На этом я заблокировал обновления. И что я понял из всей этой истории, что не нужно было обновляться.

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

Но это ладно, вот получившаяся программа.

memories_0.1_release.apk (7 031 439 байт)

Здесь явно вышел трешачок. У меня шрифты сильно увеличенные, а диалоговое окно в андроиде на Qt это не нормальное диалоговое окно. И плюс непонятно, что там вообще открывается.

http://files.rsdn.org/99832/memories_0.1_android.png

Но в целом можно было бы всё поправить. Только вот Android 14 и гуглятина меня расстроили своими действиями. Они же кучу крутых приложений убили и радуются. Я то понятное дело могу всё перекомпилировать убив не один день как сейчас, а сколько-то недель, а что насчёт старых проектов.

И вот думаешь знал бы остался на Android 11. Но я помню как яблоко выворачивает руки. Просто есть искусственный нижний диапазон после которого на старых операционках перестают работать новые приложения. А те приложения тоже по другому не могут, потому что яблы так выкручивают настройки. Теперь вот гуглы занимаются тем же самым.

Ну ладно, мне всё равно не до этого. Просто гуглы и подсосы самсунги испортили хорошую идею. А вот тем кто хочет купить Android 14 стоит призадуматься. Так же лучше не обновляться до этой версии тем кто использует программы скомпилированные больше года назад. Это я утрирую, конечно, но суть думаю понятна.
TailWind
TailWind
08.11.2024 03:46
V>Скачать: .. (проверьте на всякий случай на вирусы, можете запустить в виртуалке для максимальной безопасности)

Вот вы сами уже увидели свою ошибку
Вам надо делать web версию
Там никто вирусов бояться не будет