关于组分配
小组作业是在 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
。
在“工作标题”下,键入工作的标题。 (可选)单击 以编辑前缀。
分配作业的截止时间
(可选)您可以为作业分配一个截止日期。 在“Deadline (optional)(截止日期 [可选])”下,单击文本字段,然后使用日期选择器指定截止日期。
(可选)若要将截止时间设置为截止日期,请选择“这是截止日期”。 如果使用截止日期,学生将在截止日期之后失去对其作业存储库的写入权限(除非他们收到了延期)。 有关延长作业时限的详细信息,请参阅“为个人或组延长作业时限”。
选择作业类型
在“个人或小组作业”下,选择下拉菜单,然后单击“小组作业”。 创建作业后不可更改作业类型。 如果想要创建单个作业,请参阅“创建个人作业”。
确定作业的团队
如果已为教室创建了小组作业,可以对新作业重复使用一组团队。 要使用学生为作业创建的团队创建一个新组,请输入组的名称。 (可选)键入团队成员和团队总数的最大数量。
Note
- 我们建议在组的名称中包含有关该组团队的详细信息。 例如,如果要对某个作业使用团队组,请以作业命名该组。 如果要在整个学期或课程中重复使用该组,请以学期或课程命名该组。
- 如果想将学生分配到特定团队,请为学生指定团队的名称并提供成员列表。
选择作业仓库的可见性
作业的仓库可以是公开或私有的。 如果您使用私有仓库,只有学生或团队可以查看您提供的反馈。
您也可以决定是否授予学生对作业仓库的管理员权限。 如果学生应该能够执行作业仓库的管理任务,则授予管理员权限。 有关详细信息,请参阅“关于仓库”和“组织的存储库角色”。
在“Repository visibility(仓库可见性)”下,选择可见性。 (可选)选择“授予学生对其存储库的管理员权限”。
完成后,单击“继续”以配置起始代码和作业的开发环境。
添加起始代码并配置开发环境
(可选)决定是提供空仓库还是启动代码,并为您的学生预配置开发环境。
选择模板仓库
默认情况下,新作业将为学生创建的每个团队创建一个空仓库。 您可以选择一个模板仓库作为作业的启动代码。 有关详细信息,请参阅“从模板仓库创建作业”。
Note
模板仓库必须属于您的组织或是在 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 上导航到作业。
Warning
请注意共享邀请 URL 的位置。 任何拥有作业邀请 URL 的人都可以接受邀请并将 GitHub 上的个人帐户与你的名册中的标识符相关联。
可以在作业的“团队”选项卡中查看正在处理作业或已提交作业的团队。 若要防止学生接受或提交作业,可以在“编辑作业”视图中更改“作业状态”。 当作业处于“活动”状态时,学生将能够使用邀请链接接受该作业。 当它处于“非活动”状态时,此链接将不再有效。
监控学生的进度
作业概述页面提供了作业接受情况和学生进度的概述。 有关查看和使用“作业概述”页的详细信息,请参阅“使用“作业概述”页监视学生的进度”。
后续步骤
-
在创建作业和学生组成团队后,团队成员可以使用 Git 和 GitHub 的功能开始处理作业。 学生可以克隆仓库、推送提交、管理分支、创建和审查拉取请求、解决合并冲突以及讨论议题的更改。 您和团队都可以审查仓库的提交历史记录。 有关更多信息,请参阅“GitHub 入门文档”、“存储库文档”、“使用 Git”和“协作处理拉取请求”,以及 GitHub Skills 中有关解决合并冲突的免费课程。
-
当团队完成作业时,您可以查看仓库中的文件,或者查看仓库的历史和可视化内容,以更好地了解团队如何协作。 有关详细信息,请参阅“查看存储库的活动和数据”。
-
您可以通过在拉取请求中评论个别提交或行来提供作业反馈。 有关详细信息,请参阅 评论拉取请求 和 创建议题。 有关创建已保存回复以提供常见错误反馈的详细信息,请参阅“关于已保存回复”。