关于团队作业
团队作业是 GitHub Classroom 为学生小组提供的协作课程作业。学生可以在共享仓库中共同完成团队作业,就像专业开发团队一样。
当学生接受团队作业时,学生可以创建新团队或加入已有团队。GitHub Classroom 将作业的团队保存为一个集合。您可以在创建作业时为特定作业命名该团队集合,并且可以在后续作业中重复使用该集合。
对于每个团队作业,GitHub Classroom 会自动为团队创建一个共享仓库。该仓库可以是空的,也可以通过模板仓库创建,包含起始代码、文档、测试等资源。仓库归属您在 GitHub 上的组织账户,GitHub Classroom 会授予学生在接受作业时创建或加入的团队相应访问权限。
每个作业都有标题和可选的截止日期。您可以选择 GitHub Classroom 创建的仓库的可见性并设置访问权限。您还可以自动评分作业,并创建专用空间与学生讨论作业。
您可以决定每个作业可以拥有的团队数量以及每个团队的成员上限。学生为作业创建的每个团队都是您组织内的一个团队,且该团队的可见性为私密。您在 GitHub 上创建的团队不会出现在 GitHub Classroom 中。了解更多,请参阅 关于组织团队。
您可以在任何您拥有管理员访问权限的其他课堂中重用现有作业,包括不同组织中的课堂。更多信息,请参阅 重用作业。
先决条件
您必须先创建课堂才能创建作业。有关更多信息,请参阅 管理课堂。
创建作业
- 登录 GitHub Classroom。
- 前往课堂。
- 在 作业 选项卡,创建作业。
- 如果这是您的第一个作业,请点击 创建作业。
- 否则,请在右侧点击 新建作业。
设置作业的基本要素
为作业命名、决定是否设定截止日期、定义团队以及选择作业仓库的可见性。
为作业命名
对于团队作业,GitHub Classroom 会使用仓库前缀加团队名称来命名仓库。默认情况下,仓库前缀即为作业标题。例如,如果您将作业命名为 “assignment-1”,且 GitHub 上的团队名称为 “student-team”,则该团队成员的作业仓库名称为 assignment-1-student-team。
在 “Assignment title”(作业标题)下,输入作业标题。可选地,点击以编辑前缀。
为作业设置截止日期
您可以选择为作业设置截止日期。在 “Deadline (optional)”(截止日期(可选))下,点击文本框,然后使用日期选择器指定截止日期。
可选地,要将截止日期设为截止时间,请选择 This is a cutoff date(这是一 个截止日期)。如果使用截止时间,学生在截止时间过后将失去对其作业仓库的写入权限,除非他们获得延期。有关延长作业截止日期的更多信息,请参阅 为个人或小组延长作业截止日期。
选择作业类型
在 “个人或团队作业” 下,打开下拉菜单并点击 团队作业。创建作业后无法更改其类型。如果您想创建个人作业,请参阅 创建个人作业。
为作业定义团队
如果您已经为该课堂创建过团队作业,可以在新作业中复用已有团队集合。要为作业创建一个包含学生自行创建团队的新集合,请输入集合名称。可选地,输入每个团队的最大成员数以及团队总数。
注意
- 我们建议在集合名称中包含有关团队集合的细节。例如,如果您只想在一次作业中使用此集合,请以作业名称命名;如果希望在整个学期或课程中复用,请以学期或课程名称命名。
- 如果您希望将学生分配到特定团队,请为团队指定名称并提供成员列表。
选择作业仓库的可见性
作业的仓库可以是公开的也可以是私有的。如果使用私有仓库,只有学生或团队能够看到您提供的反馈。
您还可以决定是否授予学生对作业仓库的管理员权限。如果学生需要在作业仓库中执行管理任务,请授予管理员权限。了解更多,请参阅 关于仓库 与 组织的仓库角色。
在 “仓库可见性” 下,选择一种可见性。可选地,选中 授予学生对其仓库的管理员访问权限。
完成后,点击 继续 为作业配置起始代码和开发环境。
添加起始代码并配置开发环境
您可以选择提供空仓库或起始代码,并为学生预先配置开发环境。
选择模板仓库
默认情况下,新的作业会为学生创建的每个团队生成一个空仓库。您也可以选择一个模板仓库作为起始代码。了解更多,请参阅 从模板仓库创建作业。
注意
模板仓库必须属于您的组织,或是 GitHub 上的公开仓库。
在 “为学生提供起始代码的模板仓库” 下,选择 选择仓库 下拉框并输入搜索关键词。在结果列表中,点击您想用作起始代码的模板仓库。
选择集成开发环境(IDE)
您可以选择为作业配置集成开发环境(IDE)。IDE 让学生无需在本地安装 Git 和完整的开发工具链,就能编写代码、运行程序并协作。若学生仍希望在本地计算机上检出并运行代码,只要具备必要的软件即可。了解更多,请参阅 将 GitHub Classroom 与 IDE 集成。
您可以选择使用 GitHub Codespaces,为学生提供基于浏览器的 Visual Studio Code 环境,只需一次点击即可完成设置。了解更多,请参阅 在 GitHub Classroom 中使用 GitHub Codespaces。
要为作业选择 IDE,请在 “添加编辑器” 下拉菜单中选择您希望学生使用的 IDE。
完成后,点击 继续 配置自动评分和反馈。
提供反馈
您可以选择自动评分作业,并为每个团队的提交创建讨论区。
自动测试作业
您可以使用自动评分在 GitHub Classroom 中自动检查学生作业的完成情况。您为作业配置测试,学生每次向作业仓库推送时测试会立即运行。学生可以查看测试结果、修改代码并再次推送以获取新的结果。了解更多,请参阅 使用自动评分。
在 “添加自动评分测试” 下,选择 添加测试 下拉菜单,然后点击您想使用的评分方式。了解更多,请参阅 使用自动评分。
定义测试用例的参数,例如名称、命令、输入、输出、超时时间以及分值。完成后,点击 保存测试用例。
您可以通过 添加测试 下拉菜单继续添加更多测试,亦可使用相应操作编辑或删除已有测试。或.
指定受保护的文件路径
如果作业中存在用于评分的文件或目录,且不应被学生编辑,您可以将其标记为受保护的文件路径。如果学生编辑了受保护的文件,系统会在作业概览页的提交条目上添加标签,以便您进行调查。了解更多,请参阅 使用作业概览页监控学生进度。
受保护路径的模式遵循类似 shell 文件名通配符的规则。可使用以下元字符:
*:匹配任意文件。例如,*匹配所有普通文件,foo*匹配所有以foo开头的文件,*foo匹配所有以foo结尾的文件,*foo*匹配文件名中任何位置包含foo的文件。**:递归匹配目录或广泛匹配文件。例如,.github/**/*将匹配.github及其所有子目录中的所有文件。?:匹配任意单个字符[set]:匹配set中的任意单个字符(例如a-z)\:转义下一个元字符
创建反馈拉取请求
您可以自动创建拉取请求,以在其中提供反馈并回答学生关于作业的提问。有关拉取请求中更改审查的更多信息,请参阅 审查拉取请求中的更改。有关在拉取请求中留下反馈的更多信息,请参阅 通过拉取请求留下反馈。
要为反馈讨论创建拉取请求,请选中 启用反馈拉取请求。
点击 创建作业 完成作业创建。
邀请学生加入作业
默认情况下,GitHub Classroom 会为您创建的每个作业启用邀请链接。学生可以在该链接启用期间接受并提交作业。您可以在学习管理系统(LMS)、课程主页或任何发布作业的地方与学生分享此链接。如果学生已接受课堂的作业,也可以在 GitHub Classroom 中直接导航到该作业。
警告
请注意分享邀请链接的渠道。任何拥有作业邀请链接的人都可以接受邀请,并将其 GitHub 个人账户与您名单中的标识关联。
您可以在作业的 团队 选项卡中查看正在进行或已提交作业的团队。若要阻止学生接受或提交作业,可在 “编辑作业” 视图中更改 “作业状态”。作业为 “活跃” 时,学生可通过邀请链接接受;作业为 “非活跃” 时,该链接将失效。
监控学生进度
作业概览页提供了作业接受情况和学生进度的总体视图。了解如何查看和使用作业概览页,请参阅 使用作业概览页监控学生进度。
后续步骤
-
作业创建并且学生组队后,团队成员即可使用 Git 和 GitHub 功能开展作业工作。学生可以克隆仓库、推送提交、管理分支、创建与审查拉取请求、处理合并冲突以及通过议题讨论更改。您和团队均可查看仓库的提交历史。了解更多,请参阅 GitHub 文档入门、仓库文档、使用 Git、协作拉取请求,以及 GitHub Skills 中的免费课程 解决合并冲突。
-
团队完成作业后,您可以审查仓库中的文件,或审查仓库的历史记录与可视化,以更好地了解团队的协作方式。了解更多,请参阅 查看仓库活动与数据。
-
您可以通过在拉取请求中对单个提交或代码行发表评论的方式为作业提供反馈。了解更多,请参阅 在拉取请求中发表评论 与 创建议题。若想为常见错误创建保存的回复以便快速反馈,请参阅 关于保存的回复。