blob: 094d38db36747a5a542570fbe9ac9ff68b73b0e0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
---
title: CourseObjectiveSatisfaction使用手册
author: 蓝珲 <lanhui@zjnu.edu.cn>
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.
```
|