Mind Trace使用教程
这篇文章包括快速上手和部分Mind Trace的机制解析,因为一些细节上的东西如果操作有误可能会对Mind Trace系统的数据记录产生影响,所以也需要说明。不过只要有意向使用Mind Trace的话,应该说是没什么使用门槛的,不想深究机制至少也可以把它当作一个好用的笔记软件(支持markdown 、 latex,所以对公式输入、图片输入有需求的话完全不成问题)。
首先是安装。Mind Trace是一个本地应用程序,不联网也是完全可以使用的。拿到安装包后点开是这样的文件结构:

看到有一个jdk-18_windows-x64_bin.exe,这是java安装包,点开一路确认,注意下安装目录即可。




装完java后就可以运行了,双击最下面的Mind Trace图标即可运行。如果没出现问题的话,你可以看到下面这样的软件主页面。

主页面由两部分组成,第一部分就是上面这个选择框和旁边的按钮,第二部分就是下面的页面,这里初始是Learning Task,但看到旁边有向左和向右的箭头,点击可以切换页面。
先看上面部分的具体信息:

学科选择框,点击可以出现你目前创建的所有学科。软件刚下载默认的学科名称为Hello World。可以点击旁边的按钮进入学科页面,将Hello World修改为你想要记录学习的学科。
学科页面长这样:

下面是学科页面的详细信息:

要做任何学科笔记,直接在学科页面添加知识点、卡片等等即可。具体而言,一个做过详细笔记的学科大概长这样:

上面的部分是知识导航,下面的部分有四个页面,最重要也就是现在展示的Quiz页面。



一般来说,知道如何添加卡片、修改卡片的正面背面就可以把Mind Trace当笔记本用了,当然Mind Trace的功能远不止于此。
学科页面除了Quiz页面以外,还有Review 、 Info 、 Learn这三个页面。
Review页面:

四个选项分别对应着四种卡片的收录和排序方式。例如Poor Completion指的是熟练度很差的卡片,Never Reviewed是没复习过的卡片,等等。这些卡片包括了这个知识点以下所有子知识点的卡片,所以量一般会比较大,这个页面特别适合集中复习。
Learn页面:

在Learn页面中可以添加一些学习资源的链接,对于网址、本地文件的地址,可以直接通过快捷键ctrl+shift+?快速访问。



Info页面是一些相关信息,不过在这里展示的信息并不是特别重要。


学科页面的主要内容就是上面这些。原则上,学科页面的职责是记录知识点的具体信息,而不参与复习轨迹相关信息的处理。基于学科页面中记录的知识点和知识卡片,我们就可以进一步记录知识的学习轨迹了,这些主要在主页面中的Learning Task、Mind Sprint、 Quiz Task、Statistics四个子页面中完成。




Learning Task页面:




Mind Sprint页面:





Mind Sprint是真正的学习记录机制,需要着重讲一讲。Mind Sprint直译思维冲刺,为什么要起这样一个名字?这是源于Mind Trace所鼓励的一种高效学习方式:一次专注某一个知识点,花较长时间(如几个小时)进行一次较为系统的学习/复习,这样的学习方式针对性强,整体上的时间周期短(一般不会超过一天),就像一次思维的高强度冲刺。Mind Trace会将你的每一次Mind Sprint的开始时间、结束时间、持续时间、完成度、知识覆盖率等信息记录下来,并根据这一个学科所有的Mind Sprint信息来计算各个知识点的熟练度。
Mind Sprint完全不要求学习在Mind Trace软件内部进行。具体而言,你先根据各知识点的熟练度情况,选择自己要复习的知识点,为其创建一个Mind Sprint(双击这个知识点创建Mind Sprint),并点击开始学习后,之后具体的学习内容,既可以是在Mind Trace内找卡片进行复习,也完全可以是去上网课、写作业、线下上课、看书之类的任何适合你的学习方式。当然,在这期间有任何启发,都可以进入学科页面找到相应的知识点,以知识卡片的形式把这一启发记录下来。Mind Sprint只是将你“在何年何月何日对哪个知识点进行了多久的学习”这样一件事忠实地记录下来,这样的记录最终会作为宝贵的数据存储在Mind Trace中,并用于熟练度计算等重要的数据分析资源。
Mind Sprint允许在学习期间进行短暂的休息。例如,开始记录学习后,可以点击确定完成一段学习记录,但此时Mind Sprint本身并没有完成。短暂休息后,可以继续记录学习,知道你认为自己关于学习这个知识点的学习任务圆满完成了,且将所有在Mind Sprint中添加的学习任务都完成了。这时候右边会弹出完成度、覆盖率的滑块,确定完成度和覆盖率后,点击下方的对勾,就可以彻底完成这次Mind Sprint。
关于覆盖率,原则上Mind Trace鼓励你的每一次Mind Sprint尽可能满覆盖率,即每次学习都整体地覆盖到这一整个知识点。但是有时候这一点很难做到,当选中的知识点本身就是很大的领域时,一次思维冲刺可能只能覆盖到其中的一部分,这时候可以调节覆盖率到你认为正确的范围内,仍然将这次Mind Sprint提交亦可。
Quiz Task页面:



关于Quiz Task页面,可能难以理解的地方在于各种类型的试卷生成器。在此稍加解释:
Random Quiz:顾名思义,就是完全随机地选取卡片生成试卷。
Horizontal Quiz:水平地生成试卷。如果想要检验自己对整个知识体系的总和掌握水平,那么肯定是希望每一个知识点都尽量选取一张知识卡片,而不是集中选取某几个知识点的卡片。Horizontal Quiz就是满足这样的需求的。
Knode Compositional:这里的Knode就是一个知识点,其这个名字是因为知识knowledge开头为k-n,节点node开头为n,知识节点如果翻译成knowledge node就太麻烦了,索性就叫knode。compositional指选项式。在评估一个知识是否需要复习时存在两个维度,一是熟练度,二是这个知识的评分。评分高的优先复习,熟练度低的也优先复习,那么具体参照什么标准呢?knode compositional的做法就是让你自己选择是熟练度优先还是评分优先。下面的Quiz Compositional也是同理。
Knode Multi Weight:除了选项式的方法之外,还有一种综合两种评价维度的方案,就是将两者的数值加权相加得到一个单一的评分指标。默认的权重为评分权重30,熟练度权重为1,注意到评分的范围是0~5而熟练度的范围是0~100,注意到这个量级的话,你自己也可以相应调整权重。下面的Quiz Compositional同理。
在具体做试卷的时候,有一个特别重要的注意事项!就是每开始做一道题,都要点击这道题的卡片,直至标题变成蓝色:

为什么说这一细节很重要呢?因为Mind Trace要记录你完成每一张卡片所花费的时间。选中这张卡片后,Mind Trace就会为这张卡片计时,直到你点出了这张卡片或者完成了这张卡片。完成卡片后计时会被结算,Mind Trace会根据你这次完成卡片花费的时间,预测你下一次卡片完成花费的时间,这样一来Mind Trace就能更加精准地生成符合预期时长的试卷。如果每次完成卡片前没有点进这张卡片,那么系统就会误判认为你完成这张卡片的用时非常短,于是就可能导致你下一次的复习时间比预期长的多!
最后是Statistics页面:

Statistics页面展示数据,最主要的数据就是这个日历。日历上的数字就是你当天学习这个学科的时长。下面有一个Summary的开关,打开后可以看到你当天学习所有学科的时长。这一数据展示在我自己的学习中确实经常用得到,是个很实用的功能。
其他的数据展示包括:
(学习概况综述)

(知识占比矩形树图)
在Statistics的设置中有一些选项:

其中expected review cycle和rate threshold并不重要,重要的是time gap anchor。
为了解释time gap anchor的作用,需要简单讲讲Mind Trace计算知识熟练的核心原理。简而言之,是基于这样的一个公式:
其中R为知识留存度(就是熟练度),T是时间间隔,S是一个参数。这个公式是什么意思?其实就是艾宾浩斯遗忘曲线。这个公式描述了人对一个知识的掌握程度随时间下降的趋势。具体而言,时间间隔越久知识熟练度就越差,而如果一个人记性越好,知识熟练度下降的速度就越慢。当然实际的熟练度计算算法远比上述复杂得多,因为要考虑复习的因素、知识之间关联性的因素、学习完成度、学习覆盖率的因素等等。在这里不赘述,感兴趣的可以直接来找我。
所以说这个time gap anchor有什么用呢?其实它就相当于公式中的S,表征了你对这一学科的记忆力的高低。具体而言,它就像你知识的半衰期:在这里的time gap anchor的默认值是7,也就是说对于一个新添加的知识点,如果不进行任何复习,那么经过7天后,这个知识点的熟练度就会从100降到50,但如果进行过复习,那么遗忘速度通常就会减慢。这个time gap anchor是一个影响非常大的参数,如果将它从7调成3,那么你的整个知识熟练度图谱就会变得很红(也就是熟练度很低),如果调成14,那么就会变得很蓝(也就是熟练度很高)。这两种情况都不是很好的,最好的情况当然是既有红的也有蓝的,这样你可以很清晰地知道自己下一个复习的目标是什么。当然,不是说不能改这个time gap anchor,如果你认为一个学科很有挑战性(比如高数),那么就可以给这个学科调低time gap anchor来强调对这门学科的学习;如果认为没什么挑战性,那么就可以调高time gap anchor来弱化这门学科的学习。
一些细节补充:
主页面上部分菜单更多选项
垃圾桶图标:删除当前的学科
Hide图标:隐藏当前的学科
View图标:显示所有隐藏的学科
剪刀图标:剪切学科。具体而言,学科可以有树状的关系,比如说学计算机,既学java又学python,那么可以创建一个“计算机科学与技术”学科,然后将java和python剪切到它下面,这样就能形成一个层次化的学科结构
学科页面更多选项
剪刀图标:剪切知识点。点击剪刀图标,然后切换到另一个知识点,在进入更多选项,原来剪刀图标的位置变成对勾,点击对勾,就能将剪切的知识点迁移到当前知识点下。
双右箭头图标:扩增知识点。功能是创建当前知识点的父知识点,点击后,当前知识点和当前知识点的父知识点之间会出现一个新的空知识点,这个空知识点成为了当前知识点新的父知识点。
双文件图标:点击可复制当前知识点的ID。是一个一般为7开头的长串数字,用于mind sprint补办学习记录
日历图标:点击查看当前知识点的mind sprint学习记录
quiz card相关链接的用法
有时我们创建的两个知识卡片有逻辑上的联系,比如同一道数学题有两个方法做,这两个方法属于不同的知识点,这时候可以写两份卡片,一张用方法1做另一张用方法2做,然后再在这两个卡片之间建立相关链接。具体而言,鼠标移到相关链接图标上面,点击上方Relate字样旁边的双文件图标可复制当前卡片的ID,这个ID粘贴到另一张卡片下方的relate字样旁边,然后点击加号即可建立相关链接。
quiz card剪切的用法
有时候我们会把知识卡片归类到错误的知识点内,这时候,点击卡片的剪切图标,然后进入正确的知识点的Quiz页面往下翻,原来添加卡片的地方右边出现了一个剪刀图标,点击剪刀图标就可以完成剪切。
备份文件的用法
如果误删了文件,可以使用备份文件。原则上讲,你直接进入备份文件所在的文件夹,将相关学科的.json文件复制粘贴到data文件夹中,并把原来的.json文件删掉也可以达到效果,不过有些麻烦。直接点击备份文件图标,会出现一个备份文件的列表弹窗。选择你要使用的备份文件,点击右边的按钮,然后备份文件的学科就会出现在你的学科选择框里。注意:如果要使用备份文件,必须先删除原来相应的学科文件,这是因为要保证每个学科的ID是唯一的,而备份文件和原来的学科文件ID相同。
最后,关于文件的数据存储:

Mind Trace的文件结构如图,back为后端文件(主要是jar包),front为前端文件(electron),resource就是所有你记录的学习数据存放的文件夹。下面的jdk是java安装包,icon是图标,Mind Trace是快捷方式。
关键是resource文件夹。里面有configs, data两个文件夹,configs中是一些配置信息可以不用管,学科文件存储在data文件夹中。具体而言,




后续Mind Trace也会持续版本更新,目前还没想到什么好的版本迭代方案(我知识有限,不知道怎么为客户端提供一键更新功能),如果要更新软件并将原来的学科数据迁移到新版的话,我的建议是直接将resource文件夹复制粘贴覆盖掉新版的resource文件夹就可以了,没必要搞得很复杂。
上面这些大致就是使用Mind Trace的快速上手教程了。或许有点多,其实可以直接当作文档来翻阅。坦白来说,比起Obsidian之类专业的笔记软件,我觉得Mind Trace还是非常容易上手的,初步使用,可以只拿Mind Trace做笔记,在Mind Trace上记录一些常用学习资源的链接,顺便记录一下每天的学习时长;进一步使用,就比如完成每一次的Quiz Task,记录每一次学习的Mind Sprint;接着你可以通过知识熟练度图谱来了解自己知识掌握的弱项,并进行针对性的复习,包括主动生成Quiz Task、在学科页面的Review页面针对性复习、找到相关知识点的其他教学资源(如网课、习题)并积累Mind Sprint等等。Mind Trace本身还在更新迭代的过程中,一是bug可能有点多,得在使用的过程中发现再修复,二是还有很多功能构想没有实现。我构思可能在后期,Mind Trace不会局限于一个本地应用程序,一个可能的目标是把所有用户的学习数据传到云端,使用一些自然语言处理的技术分析不同用户创建的学科笔记之间的相似性,进而例如将一个人创建的相关知识点信息分享到另一个人那里,这样实现所有人的笔记信息互通,可能能够大大提高用户的学习效率!当然这也不是很好实现,是很后期的目标了,但我一定会尝试。
就像之前说的,我只是一个无禀赋者。我对Mind Trace这一自己的劳动成果(目前是自己的,但由于顺便参与了大一立项,队友之后也会参与开发,我很期待他的表现!)是予以充分肯定的。然而我同时也十分清楚的是,我会因为它而失去很多东西,比如社交,比如恋爱(妈的从来没有能叫失去吗),比如课内学习时间,比如学分绩。我清楚这一点,所以我接受这一点。我不仅接受为了实际成果付出这些,我甚至接受,我理想中的成果本来就是一个虚无缥缈、以我的能力并没有多大把握实现的东西。只要我仍然认为Mind Trace是有望解决学习问题(至少是高考自学人的学习问题)的有效工具,那么我就一定会把这个项目坚持下去。如果对Mind Trace感兴趣,请务必联系我,之后的重大更新会第一时间联系你,你发现任何bug,或者提出任何意见我都会最快速予以反馈并调整代码。如果只是对我的思想感兴趣的话,那么其实没有继续关注我的必要了,因为我之后大概率只会成为第一篇文章的复读机。基本信念和行动纲领是不会那么容易改变的,而这种不变的东西,对于置身事外的人而言,只能作为一次且仅一次至多有所感触的启发而已。