● 开发工具:Django
● 开发目的:早期熟练Django使用,自己练手项目
(提供测试账号:用户名:test1 密码:bob123123)
一. 个人中心模块包含功能:用户注册,个人信息修改等
二. 公开课模块包含功能:公开课展示、用户评论、公开课搜索、课程被收藏次数等
三. 教师模块包含功能:教师个人信息、所教课程等
四. 授课机构模块包含功能:课程机构展示,排序、机构信息等
数学学科在线做题系统
开发工具:django,css,html,js,jquery
开发目的:验证相关算法的泛化能力
验证专题:
1. bkt算法专题:
先行测试(根据图谱算法推送1个知识点测1题 -> 学生做题 -> 图谱算法获取薄弱知识点) -->
先行测试报告页 -->
高效学习(按算法推取一个薄弱知识点 -> 观看知识点讲解视频 -> 做题 -> bkt算法判断薄弱知识点是否掌握) -->
高效学习报告页 -->
收集相关数据用于验证
2. irt和pks算法专题:
irt测试(算法获取知识点并推题 -> 做题 -> 根据做题结果用irt计算人的能力值 -> 根据能力值推题直至完成知识点图谱 ) -->
irt测试报告页 -->
pks测试(pks算法获取知识点并推题 -> 做题 -> 根据做题结果用pks计算当前pks值 -> 根据pks值推题直至完成知识点图谱) -->
pks测试报告页 -->
收集相关数据用于验证
pks根据学生做题将能力值落在知识点上
irt根据学生做题将能力值落在人上,
pks:
pks落在题目上,学生每做完一题会计算出当前的pks,然后更新每一题的pks,根据当前pks从题库中取出一道合适的题目
class PKS(object):
_instance = None
def __new__(cls, *args, **kwargs):
if not cls._instance:
cls._instance = super(PKS, cls).__new__(cls)
return cls._instance
静态变量写所有学生要的输入
def __init__(self,username):
pd.read_csv(username + '.csv')
def compute_pks(self, username):
pass
def get_question(self, username):
pass
IRT
IRT模型进行能力值估计_irt能力值_xiaoa~的博客-CSDN博客 irt
theta会经过一个转换变成 [-4.5,4.5]之间,m = ( (theta+1)/100) , log( m / (1-m)) , theta = [0,99]
log()
BKT
bkt: p(l|A) = p(A|l)
logistic
def sigmoid(x):
return 1 / (1+np.exp(x))
def model(X,theta):
return sigmoid(X@theta)
def cost(X, theta, y):
return -(y * np.log(model(X, theta)) + (1-y) * np.log(1-model(X, theta))).mean()
def grad(X, theta):
return - (X.T @ (y - model(X, theta)))/m
theta = np.mat("0 0 0")
while True:
gradient = grad(X,theta)
theta = theta - alpha * gradient
cost_lst.append(cost(X, theta, y))
if iters > 1000:
break