新用户注册完成之后,有几个默认数据:
- 学习量
- 默认个性化的学习序列
- 资源本身的序列
资源本身的序列
这个表中,排序,也就是1,2,3,4,5,6.。。。。。这个东西视为资源本身的排序。
默认的个性化的学习序列
每个新注册用户,自己的学习序列和上面的资源本身的排序是一样的。除非我在后台手工调整。学习序列的样子是这样的(因为现在我)
动画片:1,2,3,4,5,6,7,......一直到动画片最后一个
儿歌:同上
绘本:同上
学习量
动画片,儿歌,绘本都是4
学习计划的生成逻辑
学习计划是针对每个孩子的,生成学习计划时,用到的数据有2个
- 个性化的学习序列
2.学习量
例如:动画片的个性化的学习序列是:
1,2,3,4,5,6,7,8,9,10(我们假设只有10个)
学习量是4
那么,第一周,用户的学习计划的内容是:
1,2,3,4对应的资源名称
为何是1234,而不是12345,是因为学习量是4.如果学习量是5,那么就应该是12345.
虽然是4个数,为何是1,2,3,4,而不是3,4,5,6, 原因是从孩子“个性化学习序列的最开头开始计算,取4个数”
取来的数,对应的名称是那个呢?依据如下图:
当然,我估计每个资源名称有一个唯一的Id号,这个我不太清楚,需要你看看源代码。
以上说的是第一周,这个周是怎么计算的呢。就是按照星期几计算:
例如用户注册时,是周3,从用户注册那个时间点立刻生成一份学习计划内容。
学习计划内容什么时候发生变化呢?是在每周一零时零点零分,形成一个新的学习计划内容:我们接着上面的例子,第二周学习计划的内容就应该是:
就是去找5,6,7,8对应的资源的ID号对应的资源。
一周的学习计划只生成一次,一旦生成之后,本周不能更改,即便是我更改了,系统也不认,只有到周一的零时零点零分时,才会重新计算。重新去计算时,主要看学习量和学习序列本身有什么变化,从哪个位置号开始计算等3个指标(位置号看下面的介绍)
人工调整“个性化学习序列”的处理逻辑
这个序列是系统自己产生的,如果我手工更改了怎么处理?
这里的方式是,用“,”(英文逗号隔开)的一串数字。例如我可以把这个孩子的“学习序列”手工改成
1,2,3,4,5,2,3,4,5,6,3,4,5,6,7,4,5,6,7,8,9,10
程序里面有一个判断,这些数据是否超出了资源本身排序序号的最大值,例如上面这个例子中,资源排序一共就到10,如果我手工更改时,写了11,16等等大于10的数,则是无效的。
孩子已经用了一段时间,我半中间想改这个孩子的学习序列,怎么处理:
还是按照上面的例子,这个孩子已经走到了第二周,在第二周的星期6,我做了以下更改:
- 我把这个孩子的学习序列从1,2,3,4,5,6,7,8,9,10改成了1,2,3,4,5,2,3,4,5,6,3,4,5,6,7,4,5,6,7,8,9,10
- 学习量没有改,还是4.
那么,周六我改完之后,用户的学习计划内容不变,直到第三周零时零点零分时,系统开始重新计算。这时,让我们看一下,系统怎么计算
这个时候,系统计算学习计划的结果应该是:5 6 3 4
这个图,上面的红色的数字,是位置号, 下面的黑色的数字,是资源的排序号,(因为资源都有一个唯一的id,这个id又对应着一个唯一的排序号,所以,可以理解这个黑色的数字就是资源ID)
前两周,资源位置号已经被用去了8个,所以,第三周,位置号要从第9开始。取4个,所以,资源ID就是:5 6 3 4
位置号是可以调整的
接着上面的例子,第二周的周六,我把位置号的调整起始位置改成了1,那么,第三周,学习计划的内容就变成了:1 2 3 4
END
额外添加备注: