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

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 версию
Там никто вирусов бояться не будет
velkin
velkin
06.12.2024 11:32

Версия 0.2 Бета 1


Хотел обсудить карточки и их виды, а текущую версию программы публиковать не хотел по причине говнокодистости. Дело даже не в том, что она снаружи выглядит уродско, внутри она ещё хуже.

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

Потому я решил обозвать текущую версию beta1 и опубликовать. Просто чтобы было понятно, для меня нет никаких релиз или бета, а есть просто программа, которую я меняю когда мне вздумается. Если мне лень думать, будет говнокод, зато потрачу не 10 часов, а 10 минут на достижение результата.

Скачать


teacher_0.2_beta1.7z (13 070 816 байт)

readme.txt


Файл readme.txt в комплекте с программой.
Для озвучки скачать RHVoice Anna.
https://github.com/RHVoice/anna-rus/releases/download/4.1/RHVoice-voice-Russian-Anna-v4.1.2015.21-setup.exe
Озвучка происходит автоматически и не отключаема.

Примеры колод в папке decks вместе с программой.

Открыть колоду из файла.
Главное меню > Файл > Открыть

Открыть колоду из буфера обмена.
Главное меню > Файл > Загрузить

Включить/выключить обратные карточки.
Главное меню > Вид > Порядок > Прямой
(не сохраняется в настройках)

Остальной функционал существует лишь в виде макета.
1. Главное меню > Инструменты > Построитель
2. Главное меню > Инструменты > Настройки
3. Главное меню > Справка > Руководство
3. Главное меню > Справка > О программе

Изменения


1. В главном окне теперь можно менять пропорции размеров виджетов мышкой не только по горизонтали, но и вертикали.

2. Официальное разрешение колод сменилось с "*.txt" на "*.deck" чтобы можно было их отличать от других файлов.

3. Можно назначить в проводнике или другом файловом менеджере "Открыть с помощью" и выбрать эту программу в качестве главной, она распарсит пути и сразу откроет колоду без того, чтобы открывать её в меню с помощью пунктов "Открыть" или "Загрузить".

4. Теперь программа озвучивает карточки, но выбрать синтезатор речи нельзя, потому что мне пока было влом писать эту функциональность. Настройки тоже залочены намертво под мои предпочтения. Рекомендую скачать синтезатор речи RHVoice-voice-Russian-Anna-v4.1.2015.21-setup.exe. Я так понимаю, что RHVoice использует SAPI5, а с синтезатором речи на SAPI4 может всё вылететь. По крайне мере пример hello_speak из стандартной поставки у меня автоматически закрывается. А что сделает это программа я не проверял, потому что не сделал выбор синтезатор речи.

5. Сменилось название программы.

Сами программы по задумке это модули кибер системы. Но я понял, что сразу её не напишу, если вообще напишу, потому решил делать standalone версии модулей.
Английское Русское Альтернатива
teacher учитель воспоминания, репетитор
recoder перекодировщик кодировщик, декодировщик, расшифратор, аналитик, исследователь, учёный
player проигрыватель
reader читатель лектор, чтец, говорящая голова
gamer игрок геймер

Обсуждение карточек


А теперь главная тема ради которой я и решил написать этот комментарий.

Что такое исходный код и из чего он состоит?

1. Название (краткое, полное).
2. Сигнатура (обозначение).
3. Решение (тело).
4. Вывод (результат).
5. Образ (модель, чертёж).
6. Документация (объяснения).

Спрашивается для чего это написано?

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

Я специально запихнул в beta1 пример колоды qtexttospeech.deck, и вот отрывок из неё.
-------------------------
Qt / Текст в речь / Состояние / Свойство
-------------------------
Свойство состояние.
-------------------------
Q_PROPERTY(State state READ state NOTIFY stateChanged)
-------------------------

Есть пара Название->Сигнатура. Обернув карту наоборот получим пару Сигнатура->Название. Причём сигнатура это общее определение для меня лично, оно может не соответствовать каким-то определениям из языка программирования. Это скорее то, что я хочу запомнить условно считая это сигнатурой.
    Qt   / Текст в речь / Состояние / Свойство /        Пара
+--------+--------------+----------------------+---------------------+
Категория    Область            Понятие          Название->Сигнатура

Область действия это то, что можно игнорировать создавая карточку, если учитывать, что это есть.

1.Без области.
Свойство состояние.

2. С областью.
Свойство состояние текста в речь.

3. С областью и категорией.
Свойство состояние текста в речь в qt.

4. С областью, категорией и парой.
Свойство состояние текста в речь в qt из название в сигнатуру.

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

В этом и есть главная мысль. Хорошо сокращать названия не прописывая лишних данных, то есть исключая контекст в виде области действия, категории и пары, но при расширении всё равно придётся это сделать.

Сочетания из n=6 по k=2. (калькулятор)
Название
Сигнатура
Решение
Вывод
Образ
Документация

Сочетания парами, то есть где k=2.
01. Название->Сигнатура      Сигнатура->Название
02. Название->Решение        Решение->Название
03. Название->Вывод          Вывод->Название
04. Название->Образ          Образ->Название
05. Название->Документация   Документация->Название

06. Сигнатура->Решение       Решение->Сигнатура
07. Сигнатура->Вывод         Вывод->Сигнатура
08. Сигнатура->Образ         Образ->Сигнатура
09. Сигнатура->Документация  Документация->Сигнатура

10. Решение->Вывод           Вывод->Решение
11. Решение->Образ           Образ->Решение
12. Решение->Документация    Документация->Решение

13. Вывод->Образ             Образ->Вывод
14. Вывод->Документация      Документация->Вывод

15. Образ->Документация      Документация->Образ

Образы


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

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

Другое дело, что всё это надо делать в программе и записывать в карточку в виде текста в виде команд с координатами, тогда это действительно будет работать. В примитивном же случае можно использовать ascii-графику.

Математические формулы


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

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

Завершение


Пока всё, что хотел написал. Этот комментарий в основном для заинтересованных сторон, если кто-то хочет обсудить или по тихому воспользоваться результатами. Опять же очередной сброс мыслей не помешает. И плюс я скорее буду проводить опыты с карточками, чем писать программу, потому продолжение по программе вряд ли будет скоро.
velkin
velkin
12.12.2024 05:06

Версия 0.2


В ходе набора карточек я понял кое-что новое и решил опубликовать текущую версию, так как следующая будет работать на расширенных принципах.

Скачать Windows


teacher_0.2_windows_x86.7z (13 102 064 байт)

http://files.rsdn.org/99832/teacher_0.2_windows_x86.png

Здесь никаких неожиданностей. Проверяйте на вирусню и всё в таком роде.

Скачать Android


teacher_0.2_android_armv7.apk (7 104 662 байт)

http://files.rsdn.org/99832/teacher_0.2_android_armv7.jpg

А вот здесь Google поднасрал. Для тех кто не знает появилась такая штука Google Play Integrity, это такая вещь, которая не позволит вам установить программы для смартфона. Текущая версия скомпилирована для Android 10. А вот не факт, что она у вас запустится. Я грохнул смартфон до заводских настроек, отключил сервисы Google Play и теперь вроде как с натяжкой запускается на Android 14. А хотелось бы чтобы программа работала на Android 4.x-14 без ограничений. Но Google такая вот скотина превращающая Android в анальный iPhone от Apple.

Функционал


Немного слов о функционале. На Android открыть карточки из файла "Файл > Открыть" пока не получится, потому что хранилище закрытое, а писать функционал запроса настроек мне пока влом. Но есть возможность открыть скопированный файл карточек в буфер обмена с помощью "Файл > Загрузить". Естественно придётся использовать другой текстовый редактор.

На Android как и на Windows рекомендую ставить RHVoice Anna движком по умолчанию. У меня по крайне мере везде озвучка работает. А ничего не изменилось, голосовой движок выбрать нельзя, что в системе по умолчанию установлено, то есть в настройках Android, то и будет работать.

Направленные пары


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

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

Чисто для примера.

Ширина. Width.
Изображение
    ?
+-------+
|       |
|       |
|       |
+-------+

Высота. Height.
Изображение
+-------+
|       |
|       |?
|       |
+-------+

А вот такое уже не катит, так как требует набрать порядковый номер, а не английское или русское название.
Изображение
    1
+-------+
|       |
|       |2
|       |
+-------+

Если только не попытаться обмануть систему.
Изображение
    1
+-------+
|       |
|       |2
|       |
+-------+

Текст
2


А что касается колод, то если шаблон сейчас выглядит вот так,
utf-8
-------------------------
-------------------------
-------------------------
-------------------------

где utf-8 можно игнорировать и обозначает строку настроек колоды.

То нужно вести количество разделителей (separators) со значением по умолчанию 4. Если их не 4, а например, 5, тогда будет введена дополнительная настройка.
utf-8 --separators=5
-------------------------
-------------------------
-------------------------
-------------------------
-------------------------

В свою очередь это поможет создавать больше, чем одну пару значений, или даже меньше.
Путь Русское название Английское название Ключевое слово
C++ / Ключевое слово / bool Бу́левский. Boolean. bool
C++ / Ключевое слово / const Постоя́нная. Constant. const
C++ / Ключевое слово / dynamic_cast Динами́ческое приведе́ние. Dynamic cast. dynamic_cast
А дальше можно использовать прямые и обратные сочетания, чтобы выучить таблицу. Да и в принципе люди думают, что этим можно учить только слова, вроде пар английского названия, английского произношения, русского названия, китайского названия, китайского произношения и так далее, но это не так. Учить можно, что угодно, в том числе фразы, выражения и так далее.

Значит нужно.
1. Удобную программу.
2. Готовые таблицы данных.

Учить что-то гораздо быстрее, чем создавать. Например, те кто учат то, что сами же и создают тратят кучу времени на создание. А так я даже по этому примитивному прототипу вижу, что метод направленных пар или по другому карточек рабочий. Видимо просто не нашлось энтузиастов, которые бы прокачали эту технологию дальше первых опытов.
velkin
velkin
13.12.2024 01:06
Здравствуйте, velkin, Вы писали:

V>

Скачать Android

V>А вот здесь Google поднасрал. Для тех кто не знает появилась такая штука Google Play Integrity, это такая вещь, которая не позволит вам установить программы для смартфона. Текущая версия скомпилирована для Android 10. А вот не факт, что она у вас запустится. Я грохнул смартфон до заводских настроек, отключил сервисы Google Play и теперь вроде как с натяжкой запускается на Android 14.

Сейчас попробовал установить программу на другой смартфон с Android 13, не получилось.

Тогда.
1. Зашёл в Настройки > Приложения.
2. Нашёл Google Play, и заодно Google Play Services for AR и Google Wi-Fi Provisioner.
3. И вырубил их на...

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

Я, кстати, на своём смартфоне от Google Play отказался в пользу Galaxy Store (Samsung) и RuStore (ВКонтакте), да и в принципе 4PDA. А ведь было время, когда я хотел Google Play на устройствах на которых его не было. А сейчас могу посоветовать только бежать от этих сервисов как от чумы, и не только россиянам.