跳转至

课程实例配置

_课程实例_对应于课程的单个课程,例如“2016年秋季”,或者可能是“2016年秋季,第1部分”。每次在新学期或新部分教授课程时,您都应该创建一个新的课程实例。

创建或复制课程实例

要从 ZJUI-Learn Web 界面创建新课程实例:

  1. 导航到课程的 课程实例 选项卡。单击右上角的 添加课程实例 按钮。

如果您想重复使用上一学期的评估和设置,您可以复制现有课程实例,而不是从头开始创建实例:

  1. 打开您要复制的课程实例(例如,您的“2024 年秋季”实例)。
  2. 转到 设置 选项卡(在侧边栏的“实例设置”部分下),滚动到底部,然后单击 制作此课程实例的副本

Note

每当您在 ZJUI-Learn 的本地副本上编辑或添加 infoCourseInstance.json 文件时,都需要单击页面标题中的“从磁盘加载”按钮,以便本地 ZJUI-Learn 服务器重新加载更改。

目录布局

Fa16 这样的课程实例包含在一个目录中,并具有一个配置文件 (infoCourseInstance.json) 和一个包含 评估 列表的子目录 (assessments)。 assessments 目录应始终存在,但如果未添加评估,则可能为空。课程实例可以位于根 courseInstances 目录中,或者不是 courseInstance 本身的任何子文件夹中。

exampleCourse
`-- courseInstances
    +-- Fa16                          # Fall 2016 course instance
    |   +-- infoCourseInstance.json   # configuration file (see below)
    |   +-- assessments
    |   |   +-- hw01                  # first homework for Fa16
    |   |   |   `-- ...               # files for Homework 1
    |   |   `-- hw02                  # second homework for Fa16
    |   |       `-- ...               # files for Homework 2
    |   +-- clientFilesCourseInstance # (1)!
    |   |   `-- Fa16_rules.pdf        # files for Fall 2016
    `-- Sp17
        +-- infoCourseInstance.json   # Spring 2017 configuration
        +-- assessments
        |   `-- ...                   # Spring 2017 assessments
        +-- clientFilesCourseInstance # (2)!
        |   `-- ...                   # files for Spring 2017
  1. 有关 clientFilesCourseInstance 目录的信息,请参阅 clientFiles 和 serverFiles

  2. 有关 clientFilesCourseInstance 目录的信息,请参阅 clientFiles 和 serverFiles

请参阅 ZJUI-Learn 示例课程中的示例 courseInstances 目录

infoCourseInstance.json

该文件指定有关课程实例的基本信息:

infoCourseInstance.json
{
  "uuid": "62fbe2a4-8c22-471a-98fe-19e5d5da1bbe",
  "longName": "Spring 2015",
  "publishing": {
    "startDate": "2015-01-19T00:00:01",
    "endDate": "2015-05-13T23:59:59"
  }
}

有关可以添加到此文件的内容的更多信息,请参阅infoCourseInstance.json 的参考

发布控件

课程实例 publishing 配置确定课程实例何时可供学生使用。无论发布设置如何,课程工作人员始终可以访问。下面的示例使学生在学期开始(1 月 19 日)和结束(5 月 13 日)之间可以使用课程实例:

infoCourseInstance.json
{
  "publishing": {
    "startDate": "2015-01-19T00:00:01",
    "endDate": "2015-05-13T23:59:59"
  }
}

startDateendDate 必须一起指定。可以在 发布 页面(课程实例 → 实例设置 → 发布)进行编辑。

发布扩展

您可以通过 UI 创建发布扩展(课程实例 -> 设置 -> 发布 -> 扩展),将课程实例的结束日期延长到特定学生。

!!! warning “allowAccess 已弃用”

以前的系统 `allowAccess` 允许您 (1) 在 JSON 文件中列出 UID,(2) 更改某些学生的开始日期,(3) 将结束日期设置为总体结束日期之前的日期。新系统不支持这些功能。

按机构控制访问

默认情况下,只有属于课程机构的学生才能访问课程实例。您可以使用 institution 属性来允许其他机构进行访问。它可以设置为 "Any" 以允许从所有机构访问,或者设置为特定机构名称(例如 "UIUC"),或者对于 LTI 1.1 链接课程设置为 "LTI"。例如,您可以使用以下规则允许任何机构的学生在指定日期之间访问课程实例:

!!! warning “已弃用”

`allowAccess` 中的 `institution` 属性已弃用。请改用 `selfEnrollment.restrictToInstitution` 设置。详情请参见[招生控制](#enrollment-controls)。
infoCourseInstance.json
{
  "allowAccess": [
    {
      "startDate": "2015-01-19T00:00:01",
      "endDate": "2015-05-13T23:59:59",
      "institution": "Any"
    }
  ]
}

allowAccess 迁移

Note

大多数用户不需要从 allowAccess 迁移到手动发布。在 UI 中复制或创建课程实例将自动切换到新的发布系统。如果您想手动迁移,可以按照以下步骤操作。

!!! warning “LTI 1.1 课程不应迁移”

使用 LTI 1.1 的课程不应迁移到新的发布系统。 LTI 1.1 需要 `allowAccess` 规则和 `"institution": "LTI"` 才能正常运行。

要从 allowAccess 迁移到发布扩展:

???示例“旧 allowAccess 配置示例”

```json title="infoCourseInstance.json"
{
  "allowAccess": [
    {
      "startDate": "2025-11-01T00:00:01",
      "endDate": "2025-12-15T23:59:59",
    },
    {
      "startDate": "2025-11-01T00:00:01",
      "endDate": "2025-12-30T23:59:59",
      "uids": [
        "student1@example.com",
        "student2@example.com"
      ]
    }
  ]
}
```
  1. 查找不包含其他设置的allowAccess 规则(uidsinstitution)。在 infoCourseInstance.json 文件中创建一个新的 publishing 部分,其中包含学期的开始日期和结束日期。

    infoCourseInstance.json
    {
      "publishing": {
        "startDate": /* start date of allowAccess rule */,
        "endDate": /* end date of allowAccess rule */
      }
    }
    
  2. 对于设置了 uids 字段的 allowedAccess 规则,记下规则的 UID 和 endDate。然后,从 infoCourseInstance.json 文件中删除 allowAccess 属性,并同步您的课程。

  3. 在 UI 中导航到 Course Instance -> Settings -> Publishing -> Extensions。在发布扩展部分中,对于您之前拥有的每条规则,添加将替换它的扩展,并填写 UID 和 endDate。扩展名会自动保存并应用。

???示例“添加扩展”

![Modal adding an extension for the students in the sample configuration](./publishing-page-add-extension.png)

???示例“新 publishing 配置”

```json title="infoCourseInstance.json"
{
  "publishing": {
    "startDate": "2025-11-01T00:00:01",
    "endDate": "2025-12-15T23:59:59",
  }
}
```

![The migrated publishing configuration](./publishing-page-example-with-extensions.png)

注册控制

学生可以通过几种不同的方式注册课程实例:

  1. 他们可以使用特定于课程实例或其评估之一 的 URL。您可以在课程实例的“设置”选项卡上找到“学生链接”。此链接将学生指向与课程实例关联的评估列表,如果尚未注册,则会自动将其注册到课程实例中。

  2. 他们可以使用自行注册代码。启用“使用注册码自行注册”后,您可以在课程实例的“设置”选项卡中找到注册码。学生可以通过单击 ZJUI-Learn 主页上的“添加课程”按钮并输入注册代码来注册课程。

  3. 讲师可以邀请他们参加课程实例。教师可以通过访问课程实例的“学生”选项卡并单击“邀请”按钮来邀请学生加入课程实例。邀请将显示在学生的 ZJUI-Learn 主页上。

招生保障

可以更改一些设置来控制谁可以注册课程实例以及何时可以注册。

机构限制

默认情况下,只有属于课程机构的学生才能访问课程实例。如果您希望允许所有学生都能注册课程实例,而不仅仅是与课程实例位于同一机构的学生,则可以在 infoCourseInstance.jsonselfEnrollment 部分中将 restrictToInstitution 属性设置为 false

infoCourseInstance.json
{
  "selfEnrollment": {
    "restrictToInstitution": false
  }
}

轮换注册代码

如果注册代码被传播给您课程之外的学生,您可能需要撤销它。您可以通过单击课程实例的“设置”选项卡上的“生成新的自行注册链接”来完成此操作。这将生成新的自助注册链接和自助注册代码,并停用旧的链接和自助注册代码。

在特定日期后禁用自行注册

如果要在特定日期之后禁用自行注册,可以在 infoCourseInstance.jsonselfEnrollment 部分中将 beforeDate 属性设置为要禁用自行注册的日期。在此日期之后,学生将无法自行注册课程实例,但仍可以收到邀请。

infoCourseInstance.json
{
  "selfEnrollment": {
    "beforeDate": "2025-12-31T23:59:59"
  }
}

!!! tip “推荐用例”

您可能希望将此设置设置为大学规定的学生添加课程的截止日期。

完全禁用自行注册

如果要完全禁用自行注册,可以在 infoCourseInstance.jsonselfEnrollment 部分中将 enabled 属性设置为 false。这意味着只有受邀请的学生才能注册课程实例,而不能通过直接链接或注册代码注册。

infoCourseInstance.json
{
  "selfEnrollment": {
    "enabled": false
  }
}

学生个人管理

!!! warning “不适用于传统访问控制”

个人学生管理功能不适用于使用旧版访问控制 (`allowAccess`) 的课程。要使用这些功能,您必须[迁移到新的发布系统](#migrating-from-allowaccess)。

邀请学生

教师可以邀请学生参加课程实例。教师可以通过访问课程实例的“学生”选项卡并单击“邀请”按钮来邀请学生加入课程实例。邀请将显示在学生的 ZJUI-Learn 主页上。如果学生拒绝邀请,他们仍然可以通过课程链接加入。但是,在重新邀请他们之前,邀请不会显示在他们的主页上。如果受邀请的学生访问课程的任何链接(无论当前的自行注册设置如何),他们都会自动加入课程。

阻止学生

如果您想从课程实例中删除学生,可以通过访问单个学生页面并单击“阻止”按钮来完成此操作。他们将立即从课程实例中删除,并且无法再将自己注册到课程实例中。如果您稍后在其页面上单击“取消阻止”,他们将立即重新注册课程实例。

评估页面组织

教师可以按课程模块(课程中的主题、部分或章节)或评估集(作业、测验、考试等)对评估进行分组。默认情况下,课程实例中的所有评估均按 "Set" 分组。将属性 "groupAssessmentsBy" 设置为 "Module" 将在学生评估概述页面上按模块将评估分组在一起。

infoCourseInstance.json
{
  "groupAssessmentsBy": "Module"
}

更多考核模块信息请参见课程配置

时区

课程实例的默认时区是课程的时区。这可以通过 infoCourseInstance.json 中的 timezone 属性进行更改。例如:

infoCourseInstance.json
{
  "timezone": "America/New_York"
}

允许的时区是 tz 数据库时区列表 中 TZ 列中的时区,它是 IANA 时区数据库 的显示版本。

学生标签

学生标签可让您使用彩色徽章组织学生。将它们用于部分、助教作业、住宿或任何其他分组。每个课程实例最多可以有 100 个学生标签。

要查看配置的标签及其分配的学生,请转至 学生 → 标签。具有学生数据查看器访问权限的用户可以查看该页面。拥有课程编辑器和学生数据编辑器访问权限的用户可以通过输入 UID 来创建、重命名、删除和分配标签。学生数据编辑者还可以使用批处理操作应用学生主页面或单个学生页面的现有标签。

标签显示在学生花名册、成绩簿和学生详细信息页面中。

???注意“在 JSON 中定义标签”

Labels can be defined in `infoCourseInstance.json`. Students must still be assigned to labels through the UI.

```json title="infoCourseInstance.json"
{
  "studentLabels": [
    { "uuid": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d", "name": "Section A", "color": "blue1" },
    { "uuid": "b2c3d4e5-f6a7-4b8c-9d0e-1f2a3b4c5d6e", "name": "Section B", "color": "green1" }
  ]
}
```

LTI支持

Warning

如下所述的 LTI 1.1 支持已被弃用。我们建议对所有新课程实例使用 LTI 1.3。有关更多详细信息,请参阅LTI 1.3 文档

LTI概述

LTI(学习工具互操作性)是学习管理系统 (LMSes) 连接在一起的能力。在我们的上下文中,这意味着像 Coursera 这样的网站可以链接到 ZJUI-Learn 中的评估,为学生提供 ZJUI-Learn 体验,并自动将评估分数报告回 Coursera。

ZJUI-Learn LTI 支持启用具有成绩报告功能的新身份验证源(在 PL 中创建用户并将其注册到适当的课程实例中)。其他一切(课程实例、评估和问题配置以及工作流程)都是相同的。评估访问控制 规则仍然适用于 LTI 链接的评估。

在课程实例中启用 LTI 支持

要使 LMS 指向使用 ZJUI-Learn LTI,您必须首先在 ZJUI-Learn 内创建私有 LTI 凭证。然后在 LMS 内配置这些凭证以连接到 ZJUI-Learn。

要创建或管理课程实例的 LTI 凭证,教师可以访问课程实例中的管理/LTI 页面。

LTI 证书由 3 部分组成:

  • 启动 URL - 配置 LMS 以链接到 PrairieLearn 的 URL
  • 消费者密钥 - LMS 上下文的唯一标识符
  • 共享秘密 - 消费者密钥的密码

单个 LMS 课程应使用相同的证书。如果多个课程需要链接到课程实例,则可以创建多个 LTI 凭证。

通过 LTI 登录 ZJUI-Learn 是其 LMS 课程所独有的。例如,如果伊利诺伊州学生正在学习 Coursera LTI 课程,他们将在 ZJUI-Learn 中拥有两个不同的用户帐户。

还需要在 infoCourseInstance.json"institution": "LTI" 中添加 allowAccess 规则。更多详情请参见按机构控制访问

LTI 链接到评估

LTI 支持“深度链接”的概念,这样原始 LMS 内的分配链接就可以直接进入 ZJUI-Learn 中的特定评估。为了将分数报告回 LMS,ZJUI-Learn 需要此链接。如果学生使用尚未在 ZJUI-Learn 中配置的 LMS 的 LTI 链接,他们将收到一条错误消息。

教师第一次(在 LMS 环境中)点击新创建的 LTI ZJUI-Learn 链接时,他们将被传送到 管理/LTI 页面。页面的 LTI 链接目标部分将填充新的链接信息,并且 PL 课程实例的评估将作为下拉列表列出。这些也可以随时从 Admin / LTI 页面进行编辑。

课程可以使用相同的 LTI 凭证创建多个指向 ZJUI-Learn 的链接,但必须在 PL 中配置每个链接以进行评估。可以创建指向同一评估的多个链接。

将分数报告回 LMS(LTI 结果)

如果 LMS 内的 LTI 链接配置为连接到 LMS 成绩簿,则 ZJUI-Learn 分数也将在 LMS 中显示和更新。这要求学生在进行评估时从 LMS 链接到 ZJUI-Learn。 LTI 不为 ZJUI-Learn 提供更新 LMS 成绩簿中除链接作业以外的任何内容的分数的方法。即ZJUI-Learn不能将其他分数推入LMS;该请求必须来自 LMS。

分数仍然在 ZJUI-Learn 的正常位置向学生和教师显示。 LTI 结果功能向原始 LMS 添加了额外的报告。

一旦学生的评估实例链接回 LMS 成绩簿条目,ZJUI-Learn 上的任何评分活动都将报告回 LMS。这包括学生点击成绩、外部评分系统向 ZJUI-Learn 报告,或教师在 ZJUI-Learn 内手动调整成绩。这些成绩更新可以异步发生,并且独立于学生与 ZJUI-Learn 的交互。