--- title: CourseObjectiveSatisfaction使用手册 author: 蓝珲 date: 2022-01-17 --- # CourseObjectiveSatisfaction **CourseObjectiveSatisfaction** 是用于计算课程目标达成度的软件。比起使用Excel表格,CourseObjectiveSatisfaction 更加轻量而且容易操作。你不需要额外去填写一张Excel表格,只需把平时各项成绩记录好,运行 `analyze.py` 就可以立即得到各个课程目标的达成度了。 # 用法 ## 准备学生名单 你需要事先准备好文件 students.txt。文件有两列。第一列是学号,第二列是学生姓名。学号与学生姓名 之间用 TAB(制表符) 隔开。 students.txt 样例: ``` 201930220235 王以冠 201930220320 陈辉 ``` ## 分解课程任务,并将课程目标与之对应 你还要准备文件 tasks.json。 这是个 JSON 文件,用以指定课程目标、课程任务、以及每个课程任务 所对应的课程目标。 tasks.json 样例: ``` { "course.objectives":["co1", "co2", "co3"], "tasks":{ "lab":{ "co1":30 }, "project":{ "co2":20 }, "exam":{ "co3":50 } } } ``` 以上样例中,我们指定了3个课程目标,分别是co1, co2, co3。同时,我们指定了3个课程任务,分别是lab, project, exam。lab 与课程目标一 co1 对应,共30分。project 与课程目标二 co2 对应,共20分。 exam 与课程目标三 co3 对应,共50分。注意:上面所有的分数之和必须是100分。 ## 运行程序 analyze.py 准备好了以上两个文件之后,运行 `python3 analyze.py`,生成文件夹 grade。 文件夹里面有数个分数文件, 对应 tasks.json 中指定的课程任务。在课程行进过程中,老师只需要把这些分数文件填好,再次运行 `python3 analyze.py` 命令,就可以轻松得到各个课程目标的达成度了。 - 分数文件 lab.txt 样例: ``` #lab #student.no student.name score 201930220235 王以冠 30 201930220320 陈辉 15 ``` - 分数文件 project.txt 样例: ``` #project #student.no student.name score 201930220235 王以冠 20 201930220320 陈辉 10 ``` - 分数文件 exam.txt 样例: ``` #exam #student.no student.name score 201930220235 王以冠 50 201930220320 陈辉 25 ``` ## 其它 ### 忽略学生 有时,计算达成度时,你希望把某些学生排除在外。为此,你需要创建一个 `exclude.txt` 文件。样例如下: ``` 201930220320 陈辉 ``` 把不希望包括进来的学生放到文件 exclude.txt 中即可。 ## 运行结果 下面是运行结果样例: ``` Course objective co1 is 100% satisfied. Course objective co2 is 100% satisfied. Course objective co3 is 100% satisfied. ```