本文根据中山大学教学实践案例整理而成

一、高校计算机教学中的问题

随着程序设计类课程在各大高校如火如荼地开展,如何有效地系统化地开展课程成为这类课程任课教师的关注问题。

  • 目前大多数教师都是采用通过FTP、课程网站等方式布布置作业,批改过程繁琐;
  • 部分以项目的形式布置的作业,教师难以评定小组成员的实际贡献;
  • 学生组成的作业项目小组开发模式随意,没有对整个项目团队开发进度的清晰认识;
  • 学生与学生,教师与学生之间的互动较少。

本文将以中山大学为实践案例,来阐述教师和学生如何有效使用码云高校版。

二、如何使用码云高校版?

1.班级分组

在班级中按照小组作业名单将学生进行分组。

2.新建项目

教师可以通过码云布置教学任务,创建归属为具体班级的课程教学项目,并将小组添加进项目成员当中。新建项目的页面如下图所示。

图1:教师将项目名称等内容填写完毕后,新建课程项目

3.项目结构

在这个教学项目例子中,将作业的具体要求写在 readme 文件中,将作业需要用到的文字材料、图片或视频素材等文件放置在 manual 文件夹中,并创建两个空的文件夹 code 和 report 用于存放学生完成的代码文件和实验报告。项目的结构如下图所示。

图2:教师可根据实际需求调整项目的目录结构

4.组长 Fork 项目

教师将项目发布后,组长可以 Fork 项目到小组仓库下。每个小组都在各自的仓库中提交小组作业的代码,使得不同分组的成员不会互相干扰,而同个小组的成员可以协同工作。组长 Fork 项目如下图所示。

  

图3:组长将源项目fork到小组仓库下,各小组互不干扰

5.组长分配任务

组长通过发布任务的方式将任务指派给组员。组长可以在新建任务的页面指派任务的负责人、任务的优先级、任务的工期以及任务要求。组员们在各自的分支内按完成任务,最后由组长将各个分支合并入主分支中,完成小组项目的要求。这有利于组长安排编程任务的轻重缓急,优先完成代码的主干部分,将性能优化等需求放到后面完成,使得项目按照计划时间表有序地完成。新建任务的页面如下图所示。

 

图4:组长将项目功能需求划分为几个任务,并分配给每个组员

6.学生完成作业

学生在完成作业后,把作业 Pull Request 回主项目的 master 分支。

7.教师查看作业

在码云企业主页的Pull Request详情页面中可以看到所有学生的作业。为了提高批改作业的效率,可以要求学生在提交作业时,即Pull Request作业到主项目的master分支,把PR标题修改为“班级+学号+姓名”, 如“1班_12345678_张三”,这样可以一目了然地知道某个PR是哪位同学提交的作业。查看作业界面如下图所示。

图5:教师在PR界面可看到学生提交的项目作业

7.1 教师查看提交记录

查看某一位同学作业的具体内容,可以点击该同学对应的条目。在“提交记录”中,可了解学生在作业项目中什么时候上传了什么文件或是删除了什么文件。所以说,在“提交记录”中只能粗略了解学生的作业。“提交记录”文字旁边的数字表示变化文件的数量。“提交记录”页面如下图所示。

图6:查看学生提交项目的记录,可以简单了解学生完成作业的情况

7.2 文件改动

若想细致了解学生的作业,可点击“文件改动”。“文件改动”详情页面中,详细列举了文件所改动的地方,甚至细致到一个标点符号。“文件改动”文字旁边的数字表示作业项目改动的数量。为了方便批改作业,码云贴心地提供了文本对比功能,与原来master分支项目对比,新增的文本用绿色标识,已删除的文本用红色标识。“文件改动”页面如下图所示。

图7: 在“文件改动”改动页面查看学生每一次作业的改变

7.3 教师查看小组作业学生贡献度

若作业是小组作业,由多位同学共同完成,那么上面的两种查看作业方法有点不合适。因为上面的方法,无法得知某成员对小组作业的贡献度。教师可以点击“项目”的详情页面,找到某个小组对应的项目并点击,从项目统计图中可迅速了解每位学生的贡献情况。

图8:在项目统计图中获悉每个学生对自己小组作业的贡献度

通过查看各个小组项目的统计来统计组员的工作量和贡献度,有利于按照每个人的工作量给出相应的分数,防止了一些浑水摸鱼的情况发生。查看代码统计的页面如下图所示。

 图9:教师可在码云上查看每个小组项目中各成员的贡献,并以此为评分参考

8.教师批改作业

经查看作业后,若学生的作业合格,可点击右上角的“审查通过”按钮,把作业项目合并到主项目;若学生的作业不合格,可点击右上角的“拒绝”按钮,不把该学生的作业项目合并到主项目。

合并到主项目的作业,全体学生均可查看。学生动手完成作业后,查看别人的作业,有利于他们发现自己的优缺点,促进学生努力完善自我。“批改作业”页面如下图所示。

图10:审阅学生作业后,可将合格的学生作业合并到主项目中,供其他学生学习

10.添加批改意见

若老师想给予学生批改意见,可点击“评论”,在方框中输入批改意见。批改意见可由文字、图片、代码等组成。而且还具备预览功能,发布前可先预览,避免再次修改,较为方便。

图11:可在评论框输入批改意见

三、使用总结

通过以上基于码云高校版的计算机教学实践,可以大大节省教师的时间和力量,而且能较深入了解学生对于知识的实际掌握情况,同时也有利于促进同学之间的相互学习和项目协作开发能力。

  • 以项目的形式发布作业,当后续作业需要在原本的基础上进行迭代开发时,例如:在只有UI的作业一的基础上,增加业务层的编程作业。老师可以直接在原项目上增加需求,让学生可以循序渐进地完成代码作业。
  • 老师可以通过任务的进度了解当前各小队的进度、个人任务的量,由此客观的评估每个学生的参与度和积极度,从而使得作业的分数也更加公平和准确,保证了认真做作业的学生得到应得的分数,也可以揪出滥竽充数的学生。
  • 在小组作业中,组长可以将整个较大的作业划分为容易完成的小工作,然后指定一份计划书,通过分配任务的功能,为组员们安排工作内容,并通过任务当中的预计工期来保证按时完成任务。与此同时,也让每个组员都能参与到代码的编写当中,避免了项目由一两个学生全部完成的情况。
  • 让学生提前体验实际开发过程,在使用码云的过程中积累Git的使用经验,熟悉Git的操作指令,以及对Git版本和分支管理的掌握。

图12:码云工作人员与中山大学师生

四、码云高校版的优势

  • 教师在码云上新建项目并撰写作业内容,学生将这个项目 Fork 到自己的仓库中并对其进行增添与修改等,当作业内容发生改变时,学生也可以通过文档对比轻易找到修改的内容,最后将自己的作业通过 Pull Request 等方式提交到源项目中让教师进行批改。
  • 码云提供的一系列的功能,能让教师系统化地汇总学生的代码,同时清晰地了解学生们学习情况,还可以随机挑选学生作业代码来进行对比,一定程度上减少抄袭现象。
  • 同时,在码云上布置团队协作作业时,组长可以利用码云提供的任务功能对自己的组员发布任务,方便组员了解任务分配情况与整个项目的进度,教师可以通过查看项目成员的提交贡献来进行分数评定,通过这种方,让学生提前体验实际项目开发过程。