在码云(gitee)上展开程序类课程教学

码云主要提供了源代码管理(Git/SVN)功能,最近又推出了高校版让普通老师也能利用起来以供教学使用。
学生与老师不只能利用其管理代码,更重要的是咱们的程序教学能经过对git的使用来引入业界流行的软件开放方式。
通过摸索,大概有几个能够利用的场景。html

1.学生代码管理

之前学生在实验室编写好代码带回宿舍,一般使用U盘拷贝或者QQ邮箱的方式。麻烦不说,最关键的是不够专业!。做为计算机专业的学生应该对这种不专业的行为,果断说不。
可使用码云提供的git服务来管理咱们的代码。git最经常使用的固然是命令行版本,固然对初学者来讲仍是有必定的难度(不少同窗连dircd命令都不知道)。咱们一开始做为过渡,能够先使用网页版。git

1.1 最简单的入门(建立项目)

步骤很简单,只需3步:github

  1. 申请帐号。
  2. 新建项目。注意:选择正确类型,好比管理Java项目,尽可能选择Java的模板。
  3. 在项目中直接新建、上传、删除文件、文件夹。

进入项目后的大概界面以下:
eclipse

先熟悉以下功能。
代码:你的代码都在这里。能够在这里上传、删除、修改代码。
Issues:别人能够对你的代码提出问题,固然也能够当作论坛来用。
管理:能够删除项目、基本项目设置、项目成员管理(能够把你的团队成员加进来一同编写代码)。分布式

然而这样创建的项目是学生本身的项目,不方便老师查看代码。咱们能够利用码云上Git的Fork + Pull 模式 来实现教师对学生代码的统一管理。ide

1.2 使用 Fork + Pull 模式构建统一的学生代码仓库

使用这种模式管理学生代码可让学生在提交代码的过程当中学习到业界最流行的分布式开发技术。具体步骤以下:工具

  1. 教师新建一个代码库项目,如上图所示。代码库能够是空的项目,而后将项目地址发给学生。
  2. 学生点击右上角的Forked,将教师的代码库Fork到本身的帐号下。
  3. 学生在该项目下创建本身学号命名的目录,而后将代码放入该目录。
  4. 学生点击该项目的Pull Requests,而后点击+新建 Pull Request。提出请求,将本身的代码合并到老师创建的代码库项目中。
  5. 教师端点击Pull Request,能够查看学生提交的Pull Request。而后根据须要决定是否接受该学生的合并请求。主项目截图以下。

能够看到学生的代码都被放到主项目中,教师须要的时候能够查看每一个学生的提交状况。学习

这种模式有几个特色要注意:.net

  1. 合并到主项目的全部代码均可以被项目成员看到。因此要当心学生做业代码泄露问题。我利用这个功能主要是为了让学生学会使用git、熟悉Fork + Pull模式,至于抄袭问题我会使用别的工具来解决。固然也指望码云会推出相关功能。[2018/09/20更新],码云如今已经增长了相关功能解决了该问题,见这篇参考文章开启 Pull Requests 显示权限
  2. 若是一个班级的人数太多,让每一个学生发起Pull Request,老师一一审核。那无疑对老师发起了DDOS pull request共计。老师一个一个确认到手段。对于这个问题,教师能够将审核任务委派给班级的学习委员。这个功能具体操做能够参见官方文章:码云上线 Pull Requests 多人代码审核功能

相关参考文章:
Fork + Pull 模式插件

1.3 使用Git命令模式或者IDE管理源代码

能够参考以下文章:
官方帮助-提交第一行代码
个人其余原创文章:
Git与码云(Git@OSC)入门-如何在实验室和宿舍同步你的代码(1)
Git与码云(Git@OSC)入门-如何在实验室和宿舍同步你的代码(2)
使用Eclipse Egit与码云管理你的代码
IntelliJ IDEA下Git的配置与使用(命令行下)

2.教师项目模板与项目代码质量检查

2.1 教师项目模板

老师布置程序项目类做业的时候,即便再三强调要按照规范来创建项目目录结构。然而最终提交结果依然不尽如人意。每一个人彷佛都有本身的一套项目结构,而且这个结构一般是惨不忍睹的,好比一包流,全部代码均放到一个包中。
教师彻底能够规划好一个项目的标准目录结构,而后让学生Fork或clone下来,这样就无痛的规范了全部学生的项目目录结构。实际上这也是业界流行的一种方式。学生能够参考个人这个专门用于Java教学的一个项目OnlineShop,该项目包含一个可供参考的标准项目目录结构。

2.2 项目代码质量检查(校园版不开放)

学生的代码即便按照目录规范要求提交上来,可是不少时候代码质量惨不忍睹。好比变量命名、对null的处理。让老师一一检查,这但是要了老师的命。码云项目中提供了项目代码质量检查,让学生交给老师审查以前先自查一下。以下图所示:

注:上述代码质量检查现进供企业版用户使用。

推荐直接在IDE中使用阿里巴巴代码规范扫描插件对项目代码进行扫描。

3.真正的让团队合做开发实施起来

传统的程序项目做业,名义上是小组合做完成,然而,实际上因为缺少工具的支持,很难真正的实现分布式开发。到最后甚至演变成,1拖n(1个组长搞定所有)的现象。
经过码云的Git服务能够真正让分布式开发真正实现,教师能够经过观察项目的提交记录,来确认每一个人的是否真正完成了本身的任务。一个课程设计做业提交记录以下图:

老师能够大概判断一下该项目是否真正的实现了分布式开发,开发的工做进度是如何的。

其余几点指望

在教学方面还但愿码云能提供以下几个功能:

  1. 代码抄袭断定。
  2. 经过提交记录来断定学生项目推动状况的工具。
  3. 更完善的学生提交数据。好比学生每周提交数、代码行数。不只是每一个学生,并且要有全部学生的整体状况。最好以图形化的方式展现。

其余参考资料

Gitee高校版实训教程

相关文章
相关标签/搜索