Skip to main content

创建个人作业

您可以为课程中的学生创建需单独完成的作业。

谁可以使用此功能?

Organization owners who are admins for a classroom can create and manage individual assignments for a classroom. 有关课堂管理员的详细信息,请参阅“管理教室”。

注意:**** 在 2024 年 1 月,GitHub Classroom 将更改从起始代码存储库创建学生存储库的方式。 目前,该过程需要起始代码存储库作为模板,GitHub Classroom 会基于该模板为每个学生创建新的存储库。 随着即将到来的更改,学生存储库将通过为起始代码存储库创建分支进行创建。

此更改解决了教师经常请求的功能:学生接受作业后更改起始代码的能力。

可以在 GitHub 博客上了解有关此更改的详细信息。

此功能为公共 beta 版本,可能会有变动。

关于个人作业

个人作业是为参加 GitHub Classroom 课程的每个学生提供的课程。 学生应在没有其他学生帮助的情况下完成个人作业。

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

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

你可以在你拥有管理员访问权限的任何其他教室(包括不同组织中的教室)中重用现有作业。 有关详细信息,请参阅“重用作业”。

先决条件

您必须先创建一个课堂才能创建作业。 有关详细信息,请参阅“管理教室”。

创建作业

  1. 登录 GitHub Classroom
  2. 导航到教室。
  3. “分配”选项卡中,创建分配。
    • 如果这是你的首个作业,请单击“创建作业”。
    • 否则请单击右侧的“新建作业”。

设置作业的基本信息

指定作业的名称,决定是否分配截止时间,并选择作业仓库的可见性。

指定作业名称

对于个人作业,GitHub Classroom 使用仓库前缀和学生的 GitHub 用户名对仓库命名。 默认情况下,仓库前缀是作业标题。 例如,如果你对作业 "assignment-1" 命名,学生在 GitHub 上的用户名是 @octocat,则 @octocat 的作业存储库的名称将是 assignment-1-octocat

在“工作标题”下,键入工作的标题。 (可选)单击 以编辑前缀。

分配作业的截止时间

(可选)您可以为作业分配一个截止日期。 在“Deadline (optional)(截止日期 [可选])”下,单击文本字段,然后使用日期选择器指定截止日期。

(可选)若要将截止时间设置为截止日期,请选择“这是截止日期”。 如果使用截止日期,学生将在截止日期之后失去对其作业存储库的写入权限(除非他们收到了延期)。 有关延长作业时限的详细信息,请参阅“为个人或组延长作业时限”。

选择作业类型

在“个人或小组作业”下,选择下拉菜单,并单击“个人作业”。 创建作业后不可更改作业类型。 如果想要创建小组作业,请参阅“创建组分配”。

选择作业仓库的可见性

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

您也可以决定是否授予学生对作业仓库的管理员权限。 如果学生应该能够执行作业仓库的管理任务,则授予管理员权限。 有关详细信息,请参阅“关于仓库”和“组织的存储库角色”。

在“Repository visibility(仓库可见性)”下,选择可见性。 (可选)选择“授予学生对其存储库的管理员权限”。

完成后,单击“继续”以配置起始代码和作业的开发环境。

添加起始代码并配置开发环境

(可选)决定是提供空仓库还是启动代码,并为您的学生预配置开发环境。

选择模板仓库

默认情况下,新作业将为教室名册上的每个学生创建一个空仓库。 您可以选择一个模板仓库作为作业的启动代码。 有关模板存储库的详细信息,请参阅“创建模板仓库”。

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

在“添加模板存储库,以为学生提供起始代码”下,选择“选择存储库”下拉菜单,然后键入搜索查询。 在结果列表中,单击您想要用于启动代码的模板仓库。

完成后,单击“继续”为项目配置自动评分和反馈。

选择集成开发环境 (IDE)

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

可选择使用 GitHub Codespaces 配置作业,以便学生通过一键式设置访问基于浏览器的 Visual Studio Code 环境。 有关详细信息,请参阅“将 GitHub Codespaces 与 GitHub Classroom 配合使用”。

要为作业选择 IDE,请选择 Add an editor(添加编辑器)下拉菜单,然后单击您希望学生使用的 IDE。

为作业提供反馈

(可选)您可以自动对作业进行分级,并创建一个空间,用于与学生讨论每个提交。

自动测试作业

您可以使用自动评分来自动检查学生在 GitHub Classroom 上的工作。 可以为作业配置测试,每次学生推送到 GitHub.com 上的作业库时,测试就会立即运行。 学生可以查看测试结果,进行更改,并推送以查看新结果。有关详细信息,请参阅“使用自动分级”。

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

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

你可以在“添加测试”下拉菜单中添加更多测试,并且可通过 编辑或删除现有测试。

指定受保护的文件路径

如果作业包含评分过程中使用或不应被学生编辑的文件或目录,可将其指定为受保护的文件路径。 如果学生编辑了受保护的文件,则会在作业概述页面上施加标签,以供调查。 有关详细信息,请参阅“使用“作业概述”页监视学生的进度”。

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

  • *:匹配任何文件。 例如,* 匹配所有常规文件,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 入门文档”、“存储库文档”和“协作处理拉取请求”。

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

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

延伸阅读