跳至主要内容

创建个人作业

您可以为课程中的学生创建个人作业,供他们单独完成。

谁可以使用此功能?

作为课堂管理员的组织所有者可以为课堂创建和管理个人作业。有关课堂管理员的更多信息,请参阅“管理课堂”。

注意:在 2024 年 1 月,GitHub Classroom 更改了从入门代码仓库创建学生仓库的方式。以前,该过程要求入门代码仓库为模板,GitHub Classroom 会根据该模板为每个学生创建一个新仓库。随着更改,学生仓库现在通过分叉入门代码仓库来创建。

此更改解决了教师经常提出的一个功能请求:能够在学生接受作业后更改入门代码。

您可以在 GitHub 博客 上阅读有关此更改的更多信息。

此功能处于公开测试阶段,可能会发生变化。

关于个人作业

个人作业是每个参与 GitHub Classroom 课程的学生的课程作业。学生应独立完成个人作业,不应接受其他学生的帮助。

当学生接受作业时,GitHub Classroom 会自动为学生创建一个新仓库。仓库可以为空,或者您可以从包含入门代码、文档、测试和其他资源的模板仓库创建仓库。每个作业仓库都属于您在 GitHub 上的组织帐户。

每个作业都有一个标题和一个可选的截止日期。您可以选择 GitHub Classroom 创建的仓库的可见性并选择访问权限。您还可以自动评分作业,并创建一个专门的空间来与学生讨论作业。

您可以在您拥有管理员权限的任何其他课堂中重复使用现有作业,包括不同组织的课堂。有关更多信息,请参阅“重复使用作业”。

先决条件

您必须先创建一个课堂,然后才能创建作业。有关更多信息,请参阅“管理课堂”。

创建作业

  1. 登录 GitHub Classroom
  2. 导航到一个课堂。
  3. 作业 选项卡中,创建作业。
    • 如果这是您的第一个作业,请点击 创建作业
    • 否则,请点击右侧的 新建作业

设置作业的基本信息

命名您的作业,决定是否分配截止日期,并选择作业仓库的可见性。

命名作业

对于个人作业,GitHub Classroom 会根据仓库前缀和学生的 GitHub 用户名命名仓库。默认情况下,仓库前缀是作业标题。例如,如果您将作业命名为“assignment-1”,而学生的 GitHub 用户名是 @octocat,则 @octocat 的作业仓库名称将为 assignment-1-octocat

在“作业标题”下,输入作业的标题。可选地,点击 编辑前缀。

为作业分配截止日期

可选地,您可以为作业分配截止日期。在“截止日期(可选)”下,点击文本字段,然后使用日期选择器分配截止日期。

可选地,要将截止日期设置为截止日期,请选择 **这是截止日期**。如果您使用截止日期,学生将在截止日期过后失去对作业仓库的写入权限,除非他们获得延期。有关延长作业截止日期的更多信息,请参阅“为个人或小组延长作业截止日期”。

选择作业类型

在“个人或小组作业”下,选择下拉菜单,然后点击 **个人作业**。您无法在创建作业后更改作业类型。如果您想创建小组作业,请参阅“创建小组作业”。

选择作业仓库的可见性

作业的仓库可以是公开的或私密的。如果您使用私有仓库,只有学生或团队可以看到您提供的反馈。

您还可以决定是否授予学生对作业仓库的管理员权限。如果学生需要对作业仓库执行管理任务,请授予管理员权限。有关更多信息,请参阅“关于仓库”和“组织的仓库角色”。

在“仓库可见性”下,选择可见性。可选地,选择 **授予学生对他们仓库的管理员访问权限**。

完成后,点击继续配置作业的入门代码和开发环境。

添加入门代码和配置开发环境

可以选择是否提供空仓库或入门代码,以及为学生预先配置开发环境。

选择模板仓库

默认情况下,新作业会为课堂花名册上的每个学生创建一个空仓库。可以选择一个模板仓库作为作业的入门代码。有关模板仓库的更多信息,请参阅“创建模板仓库”。

注意:模板仓库必须属于您的组织或是在 GitHub 上的公共仓库。

在“添加模板仓库以提供学生入门代码”下,选择选择仓库下拉菜单,然后输入搜索查询。在结果列表中,点击您要用于入门代码的模板仓库。

完成后,点击继续配置项目的自动评分和反馈。

选择集成开发环境 (IDE)

可以选择配置作业以使用集成开发环境 (IDE)。IDE 允许学生编写代码、运行程序和协作,而无需在学生的计算机上安装 Git 和完整的开发工具链。如果您为作业选择了一个 IDE,学生仍然可以在具有必要软件的计算机上本地检出和运行代码。有关更多信息,请参阅“将 GitHub Classroom 与 IDE 集成”。

可以选择使用 GitHub Codespaces 配置作业,为学生提供一个基于浏览器的 Visual Studio Code 环境,并提供一键式设置。有关更多信息,请参阅“将 GitHub Codespaces 与 GitHub Classroom 配合使用”。

要为作业选择一个 IDE,请选择“添加编辑器”下拉菜单,然后点击您希望学生使用的 IDE。

提供作业反馈

可以选择自动评分作业,并创建一个空间来与学生讨论每个提交。

自动测试作业

您可以使用自动评分在 GitHub Classroom 上自动检查学生作业。您可以为作业配置测试,并且每次学生将代码推送到 GitHub.com 上的作业仓库时,测试都会立即运行。学生可以查看测试结果,进行更改,然后推送以查看新的结果。有关更多信息,请参阅“使用自动评分”。

在“添加自动评分测试”下,选择**添加测试**下拉菜单,然后单击要使用的评分方法。有关更多信息,请参阅“使用自动评分”。

定义测试用例的参数,例如名称、命令、输入、输出、超时和分数。完成后,单击**保存测试用例**。

您可以使用**添加测试**下拉菜单添加更多测试,也可以使用以下方法编辑或删除现有测试: .

指定受保护的文件路径

如果您的作业包含在评分过程中使用或不应由学生编辑的文件或目录,您可以将它们指定为受保护的文件路径。如果学生编辑了受保护的文件,将在作业概述页面上为学生的提交添加一个标签,供您调查。有关更多信息,请参阅“使用作业概述页面监控学生的进度”。

受保护路径的模式遵循类似于 shell 文件名通配符的规则。它可能包含以下元字符:

  • *:匹配任何文件。例如,* 匹配所有普通文件,foo* 匹配所有以 foo 开头的文件,*foo 匹配所有以 foo 结尾的文件,*foo* 匹配所有名称包含 foo 的文件(包括开头或结尾)
  • **:递归匹配目录或扩展匹配文件。例如,.github/**/* 将匹配 .github 及其所有子目录中的所有文件
  • ?:匹配任何单个字符
  • [set]:匹配 set 中的任何单个字符(包括 a-z 等集合)
  • \:转义下一个元字符

创建拉取请求以获取反馈

您可以自动创建拉取请求,以便您提供反馈并回答学生关于作业的问题。有关拉取请求中更改审查的更多信息,请参阅“查看拉取请求中的更改”。有关在拉取请求中留下反馈的更多信息,请参阅“使用拉取请求留下反馈”。

要创建拉取请求以讨论反馈,请选择启用反馈拉取请求

要创建作业,请点击创建作业

邀请学生参加作业

默认情况下,GitHub Classroom 为您创建的每个作业启用邀请 URL。学生可以在邀请 URL 启用时接受和提交作业。您可以在您的 LMS、课程主页或您发布作业的任何地方与学生分享此 URL。如果学生已经接受了课堂的作业,他们也可以在 GitHub Classroom 上导航到该作业。

警告:请谨慎分享邀请 URL。任何拥有作业邀请 URL 的人都可以接受邀请并将 GitHub 上的个人帐户与您花名册中的标识符关联起来。

您可以在作业的课堂花名册选项卡中查看学生是否已加入课堂并接受或提交了作业。您还可以在此选项卡中将学生的 GitHub 别名链接到其关联的花名册标识符,反之亦然。要阻止学生接受或提交作业,您可以在“编辑作业”视图中更改“作业状态”。当作业处于活动状态时,学生将能够使用邀请链接接受它。当它处于非活动状态时,此链接将不再有效。

监控学生的进度

作业概述页面提供了作业接受和学生进度的概述。有关查看和使用作业概述页面的更多信息,请参阅“使用作业概述页面监控学生的进度”。

下一步

  • 创建作业后,学生可以使用 Git 和 GitHub 的功能开始作业。学生可以克隆存储库、推送提交、管理分支、创建和审查拉取请求、解决合并冲突以及通过问题讨论更改。您和学生都可以查看存储库的提交历史记录。有关更多信息,请参阅“GitHub 入门文档”、“存储库文档”和“使用拉取请求协作”。

  • 当学生完成作业后,您可以查看仓库中的文件,或者查看仓库的历史记录和可视化内容,以便更好地了解学生的作业。有关更多信息,请参阅“查看仓库的活动和数据”。

  • 您可以通过评论拉取请求中的单个提交或行来提供作业反馈。有关更多信息,请参阅“评论拉取请求”和“创建问题”。有关创建保存的回复以提供常见错误反馈的更多信息,请参阅“关于保存的回复”。

进一步阅读