summaryrefslogtreecommitdiff
path: root/README.txt
blob: 720d3b1ae6342b32493be72e16a8b4a1e8434b8d (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
111
112
---
title: CourseObjectiveSatisfaction使用手册
author: 蓝珲 <lanhui@zjnu.edu.cn>
date: 2022-01-18
---

# 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.
```

另外,程序会产生成绩汇总表 `grade_file.xls`,可以用Excel打开。里面有每个学生的各个分项的分数以及总分。