关于小组作业
小组作业是在 GitHub Classroom 上供学生团队进行的协作课程作业。学生可以在共享存储库中一起完成小组作业,就像一个专业的开发人员团队一样。
当学生接受小组作业时,可以创建一个新团队或加入现有团队。GitHub Classroom 将作业的团队保存为一个集合。您可以在创建作业时为特定作业命名团队集合,并且可以将该团队集合重复用于以后的作业。
对于每个小组作业,GitHub Classroom 会自动为团队创建一个唯一的共享存储库供其访问。存储库可以为空,也可以从包含入门代码、文档、测试和其他资源的模板存储库创建。存储库属于您在 GitHub 上的组织帐户,GitHub Classroom 会授予学生在接受作业时创建或加入的团队的访问权限。
每个作业都有一个标题和一个可选的截止日期。您可以选择 GitHub Classroom 创建的存储库的可见性和选择访问权限。您还可以自动评分作业,并创建一个专门的空间来与学生讨论作业。
您可以决定一个作业可以有多少个团队,以及每个团队可以有多少成员。学生为作业创建的每个团队都是您在 GitHub 上组织中的一个团队。团队的可见性为“秘密”。您在 GitHub 上创建的团队不会出现在 GitHub Classroom 中。有关更多信息,请参阅“关于团队”。
您可以将现有作业重复用于您具有管理员访问权限的任何其他课堂,包括不同组织中的课堂。有关更多信息,请参阅“重复使用作业”。
先决条件
您必须先创建一个课堂,然后才能创建作业。有关更多信息,请参阅“管理课堂”。
创建作业
- 登录 GitHub Classroom。
- 导航到一个课堂。
- 在 **作业** 选项卡中,创建作业。
- 如果这是您的第一个作业,请点击**创建作业**。
- 否则,请点击右侧的**新建作业**。
设置作业的基本信息
命名作业,决定是否分配截止日期,定义团队,并选择作业存储库的可见性。
命名作业
对于小组作业,GitHub Classroom 会根据存储库前缀和团队名称命名存储库。默认情况下,存储库前缀为作业标题。例如,如果您将作业命名为“assignment-1”,并且团队在 GitHub 上的名称为“student-team”,则团队成员的作业存储库名称将为assignment-1-student-team
。
在“作业标题”下,键入作业标题。或者,点击以编辑前缀。
为作业分配截止日期
或者,您可以为作业分配截止日期。在“截止日期(可选)”下,点击文本字段,然后使用日期选择器分配截止日期。
或者,要将截止日期设为截止时间,请选择**这是截止时间**。如果您使用截止时间,学生将失去对作业存储库的写入权限,除非他们在截止时间过去后获得延期。有关延长作业截止日期的更多信息,请参阅“为个人或小组延长作业的截止日期”。
选择作业类型
在“个人或小组作业”下,选择下拉菜单,然后点击**小组作业**。创建作业后,您无法更改作业类型。如果您希望创建个人作业,请参阅“创建个人作业”。
为作业定义团队
如果您已为课堂创建小组作业,则可以重用一组团队来进行新的作业。要使用学生为作业创建的团队创建新团队集,请输入团队集的名称。可选地,输入团队成员的最大人数和团队总数。
注意
- 我们建议在团队集的名称中包含有关团队集的详细信息。例如,如果您想使用一组团队进行一项作业,请根据作业命名团队集。如果您想在一个学期或课程中重复使用该团队集,请根据学期或课程命名该团队集。
- 如果您想将学生分配到特定团队,请为学生提供团队名称并提供成员列表。
选择作业仓库的可见性
作业的仓库可以是公开的或私有的。如果您使用私有仓库,则只有学生或团队才能看到您提供的反馈。
您还可以决定是否授予学生对作业仓库的管理员权限。如果学生应该能够执行作业仓库的管理任务,则授予管理员权限。有关更多信息,请参阅“关于仓库”和“组织的仓库角色”。
在“仓库可见性”下,选择可见性。可选地,选择**授予学生对其仓库的管理员访问权限**。
完成后,点击**继续**为作业配置初始代码和开发环境。
添加初始代码并配置开发环境
可选地,决定是否提供空仓库或初始代码,并为您的学生预配置开发环境。
选择模板仓库
默认情况下,新作业将为学生创建的每个团队创建一个空仓库。您可以选择一个模板仓库作为作业的初始代码。有关更多信息,请参阅“从模板仓库创建作业”。
注意
模板仓库必须属于您的组织或 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 上的个人帐户与您花名册中的标识符相关联。
您可以在作业的**团队**选项卡中查看正在处理或已提交作业的团队。要阻止学生接受或提交作业,您可以在“编辑作业”视图中更改“作业状态”。当作业处于活动状态时,学生将能够使用邀请链接接受它。当它处于非活动状态时,此链接将不再有效。
监控学生的进度
作业概览页面提供作业接受情况和学生进度的概览。有关查看和使用作业概览页面的更多信息,请参阅“使用作业概览页面监控学生的进度”。
后续步骤
-
创建作业并学生组成团队后,团队成员可以使用 Git 和 GitHub 的功能开始处理作业。学生可以克隆仓库、推送提交、管理分支、创建和审查拉取请求、解决合并冲突以及使用问题讨论更改。您和团队都可以查看仓库的提交历史记录。有关更多信息,请参阅“GitHub 文档入门”、“仓库文档”、“使用 Git”和“协作处理拉取请求”,以及 GitHub Skills 上关于解决合并冲突的免费课程。
-
当团队完成作业后,您可以查看仓库中的文件,或者您可以查看仓库的历史记录和可视化效果,以更好地了解团队如何协作。有关更多信息,请参阅“查看仓库的活动和数据”。
-
您可以通过评论拉取请求中的单个提交或行来提供作业反馈。有关更多信息,请参阅“评论拉取请求”和“创建问题”。有关创建保存的回复以提供常见错误反馈的更多信息,请参阅“关于保存的回复”。