本仓库用于维护水杉码园的使用说明,帮助刚来到水杉码园的用户更好的上手如何使用水杉码园进行协作开发与代码存储。
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

383 righe
14 KiB

  1. # 水杉码园教师使用手册(详细版)
  2. [toc]
  3. ## 一、课程管理
  4. ### 1.1 课程创建
  5. 课程创建前需要登录教师账号,URL:http://gitea.shuishan.net.cn/
  6. 在首页中选择“课程”点击下方“+”号,或单击左上角头像处在下拉菜单中选择“ + 创建课程”进行课程创建。
  7. ![微信截图_20211013183551](image/微信截图_20211013183551.png)
  8. 页面跳转至“创建课程页”,按提示填写相关信息,单击“创建课程”完成课程创建。
  9. 注意:作业最大次数默认为10次,教师可根据开课过程中布置的作业次数设置该值,因创建课程后该值不可修改,建议设置作业最大次数略大于实际作业次数。
  10. ![微信截图_20211013211620](image/微信截图_20211013211620.png)
  11. 可以通过首页的课程模块访问相关课程。
  12. ![微信截图_20211013211912](image/微信截图_20211013211912.png)
  13. 进入课程显示如下页面。
  14. ![微信截图_20211013211932](image/微信截图_20211013211932.png)
  15. ### 1.2 成员管理
  16. 课程成员包括课程教师、助教、全体选课学生。
  17. #### 1.2.1 添加助教
  18. 在课程首页的右侧有课程团队模块(课程团队相关概念及操作在1.3节团队管理中进行详细说明),单击"Owners",进入“Owners”团队管理页,在搜索框中搜索助教人员相关信息,单击“添加团队成员”即可完成助教添加。助教在本课程中拥有和教师相同的操作权限。
  19. ![微信截图_20211013212348](image/微信截图_20211013212348.png)
  20. ![微信截图_20211013212436](image/微信截图_20211013212436.png)
  21. 在上述页面中,单击“移除成员”可以移除相关助教。
  22. ![微信截图_20211015092302](image/微信截图_20211015092302.png)
  23. #### 1.2.2 批量导入学生
  24. 单击课程首页的“导入学生”按钮,进入学生批量导入的页面。
  25. ![微信截图_20211013212737](image/微信截图_20211013212737.png)
  26. 课程学生以excel表的方式进行导入,excel表格有固定的格式,excel表格模板可以单击“模板下载”按钮下载查看。
  27. 单击“选择文件”上传学生信息的excel表格,单击“导入学生”。
  28. ![微信截图_20211013212932](image/微信截图_20211013212932.png)
  29. 导入学生信息的处理时间较长,教师可选择等待,也可以选择返回课程首页,系统后台依然会进行导入学生的操作。
  30. 导入学生成功后会显示成功导入学生的信息。
  31. ![微信截图_20211013213040](image/微信截图_20211013213040.png)
  32. 由于学生未在系统中注册等原因,部分学生可能会导入失败,教师会收到导入学生是否成功的相关邮件(可能需要等待较长时间),如有部分学生未导入成功,在邮件中会列出相关学生的信息。
  33. 教师可在课程首页单击“管理成员”,详细核对课程中已经导入的学生信息。
  34. 重复导入学生不会对课程中已经存在的学生造成影响。
  35. ![微信截图_20211013213138](image/微信截图_20211013213138.png)
  36. 添加学生后,系统会为每位学生创建以学生学号命名的仓库,该仓库对学生本人和课程教师及助教可见。
  37. 完成导入学生操作后,系统会自动创建“AllStuRead”和“AllStuWrite”仓库,这两个仓库对所有课程成员可见。学生对“AllStuRead”仓库只有可读权限,可在该仓库中存放课程资料,发布课程作业。学生对“AllStuWrite”仓库具有可写权限,可在此发布协作任务等。
  38. ![微信截图_20211013213239](image/微信截图_20211013213239.png)
  39. #### 1.2.3 逐个添加学生
  40. 在课程首页单击“添加学生”按钮,在搜索框中输入学生相关信息(学号或姓名)找到该学生,单击“添加团队成员”完成单个学生的添加。
  41. 注意:使用逐个添加学生功能,系统不会自动创建“AllStuRead”和“AllStuWrite”仓库,一般建议使用批量导入学生功能添加学生。
  42. ![微信截图_20211015093132](image/微信截图_20211015093132.png)
  43. ![微信截图_20211015093159](image/微信截图_20211015093159.png)
  44. #### 1.2.4 课程成员移除
  45. 随着课程的进行,一些课程成员可能会离开课程。
  46. 在课程首页单击“管理成员”,页面跳转后在左侧可勾选需要删除的课程成员,单击右上角的“批量移除成员”按钮可以移除选中的课程成员。
  47. ![微信截图_20211013213138](image/微信截图_20211013213138.png)
  48. ![微信截图_20211015160914](image/微信截图_20211015160914.png)
  49. ### 1.3 团队管理
  50. 在课程首页的右侧有课程团队模块,“Owners”团队为课程创建完成后系统自动创建的团队,“Owners”团队中的成员包括课程教师和助教,对课程拥有管理员权限,“AllStuRead”和“AllStuWrite”团队为系统导入学生后自动创建的团队,这两个团队中的成员包括所有学生,对“AllStuRead”仓库中的内容具有可读权限,对“AllStuWrite”仓库中的内容具有可写权限(仓库相关内容将在“二 仓库”章节中详细说明)。
  51. #### 1.3.1 新建团队
  52. 鉴于课程教学过程中分组合作的需要,系统中可以通过新建团队的方式将指定的数个课程成员组合在一起。
  53. 可点击课程团队模块中的“新建团队"直接创建。也可单击课程首页“管理团队”,页面跳转后单击右上角“新建团队”。按提示完成相关信息填写后即可完成团队创建。
  54. ![微信截图_20211015161348](image/微信截图_20211015161348.png)
  55. ![微信截图_20211015162900](image/微信截图_20211015162900.png)
  56. ![微信截图_20211015163223](image/微信截图_20211015163223.png)
  57. 在团队管理页中可以搜索相关成员信息并单击“添加团队成员”将其加入团队,若需将自己加入该团队,可以单击左侧“加入团队”的蓝色按钮。
  58. ![微信截图_20211015163856](image/微信截图_20211015163856.png)
  59. #### 1.3.2 批量新建团队
  60. 课程首页单击“管理团队”,页面跳转后单击右上角的“新建多团队”。
  61. ![微信截图_20211015162900](image/微信截图_20211015162900.png)
  62. 新建多团队以excel表格的形式导入团队信息,单击“模板下载”可以下载多团队信息填写的模板excel,按要求完成相关信息的填写,单击“选择文件”上传excel,单击“创建团队”,完成多团队的创建。
  63. ![微信截图_20211015180120](image/微信截图_20211015180120.png)
  64. ![微信截图_20211015180424](image/微信截图_20211015180424.png)
  65. 单击“创建团队”后,多团队的创建过程可能较慢,可以单击“立即返回课程首页”,系统后台会完成多团队创建的相关工作。
  66. 导入成功后结果如下。
  67. ![微信截图_20211015180532](image/微信截图_20211015180532.png)
  68. ### 1.4 课程设置
  69. 在课程首页单击“课程管理”,页面跳转后可以对课程的相关详细进行更新。
  70. ![微信截图_20211022161527](image/微信截图_20211022161527.png)
  71. ![微信截图_20211022161630](image/微信截图_20211022161630.png)
  72. ### 1.5 课程删除
  73. 在课程首页单击“课程管理”,页面跳转后单击左侧导航栏中的“删除课程”,可以进行课程删除操作。
  74. ![微信截图_20211022161709](image/微信截图_20211022161709.png)
  75. ### 1.6 课程资料上传
  76. 在上传课程资料前必须先批量导入学生(参考1.2.2节说明),导入学生后系统自动创建“AllStuRead”仓库。
  77. 资料上传使用“AllStuRead”仓库,该仓库对所有课程成员可见,对非课程成员不可见。
  78. ![微信截图_20211013214312](image/微信截图_20211013214312.png)
  79. 单击“AllStuRead”进入该仓库,可以通过新建文件夹、上传文件等功能上传课程资料。其中,上传文件功能可以同时上传多个文件。
  80. ![微信截图_20211013214526](image/微信截图_20211013214526.png)
  81. 仓库中有“话题”模块,教师可以通过“创建话题”的方式对上传资料的进行说明,也可以通过“创建话题”的方式发布通知、作业、上传作业相关附件。
  82. ![image-20210311201629803](image/image-20210311201629803.png)
  83. ![image-20210311202032777](image/image-20210311202032777.png)
  84. 同学们也可以在话题中跟帖讨论。
  85. ![image-20210311202348583](image/image-20210311202348583.png)
  86. ## 二、仓库管理
  87. 在课程首页的左下位置展示了课程相关的全部仓库,每个课程成员在导入时默认创建以该成员用户名命名的仓库,课程团队在批量创建也默认创建以团队名命名的仓库,课程中还可以根据需要创建仓库。
  88. ![微信截图_20211022164140](image/微信截图_20211022164140.png)
  89. ### 2.1 仓库创建
  90. 课程首页单击“创建仓库”进入创建仓库页,按提示填写信息,单击“创建仓库”完成仓库创建。
  91. ![微信截图_20211022164212](image/微信截图_20211022164212.png)
  92. ![微信截图_20211022164459](image/微信截图_20211022164459.png)
  93. ### 2.2 仓库删除
  94. 在课程首页的左下方的仓库名左侧有勾选框显示,勾选一个或多个仓库,单击右上角的“移除选中的仓库”按钮,可以删除一个或多个仓库。
  95. ![微信截图_20211022164414](image/微信截图_20211022164414.png)
  96. ### 2.3 仓库使用
  97. 在课程首页单击任一仓库名,进入该仓库,可以使用git完成仓库的操作(git使用说明在2.4节中),也可以使用可视化完成新建文件、新建文件夹、上传文件、删除文件夹等操作。
  98. ![微信截图_20211022164739](image/微信截图_20211022164739.png)
  99. 单击某一文件(如上图蓝色显示README.md处),进入该文件详情页,可以对文件进行文件下载、文件修改、文件删除等操作。
  100. ![微信截图_20211022165426](image/微信截图_20211022165426.png)
  101. ### 2.4 Git使用
  102. #### 2.4.1 Git简介
  103. 1、Git是什么?
  104. Git是一个版本控制系统工具,它可以帮你管理项目,记录每一次提交的变化,以方便你在发生错误时进行回滚。它几乎所有的控制操作都可以在本地执行,不需要网络开销的好处是Git的操作十分迅速。
  105. 2、安装Git
  106. 访问 https://git-scm.com/downloads ,下载合适的安装包进行安装。
  107. 3、详细Git教程
  108. https://www.liaoxuefeng.com/wiki/896043488029600/
  109. #### 2.4.2 常用Git命令
  110. - **新建代码库**
  111. ```shell
  112. # 在当前目录新建一个Git代码库
  113. $ git init
  114. # 新建一个目录,将其初始化为Git代码库
  115. $ git init [project-name]
  116. # 下载一个项目和它的整个代码历史
  117. $ git clone [url]
  118. ```
  119. - **配置**
  120. ```shell
  121. # 显示当前的Git配置
  122. $ git config --list
  123. # 编辑Git配置文件
  124. $ git config -e [--global]
  125. # 设置提交代码时的用户信息
  126. $ git config [--global] user.name "[name]"
  127. $ git config [--global] user.email "[email address]"
  128. ```
  129. - **增加/删除文件**
  130. ```shell
  131. # 添加指定文件到暂存区
  132. $ git add [file1] [file2] ...
  133. # 添加指定目录到暂存区,包括子目录
  134. $ git add [dir]
  135. # 添加当前目录的所有文件到暂存区
  136. $ git add .
  137. # 添加每个变化前,都会要求确认
  138. # 对于同一个文件的多处变化,可以实现分次提交
  139. $ git add -p
  140. # 删除工作区文件,并且将这次删除放入暂存区
  141. $ git rm [file1] [file2] ...
  142. # 停止追踪指定文件,但该文件会保留在工作区
  143. $ git rm --cached [file]
  144. # 改名文件,并且将这个改名放入暂存区
  145. $ git mv [file-original] [file-renamed]
  146. ```
  147. - **代码提交**
  148. ```shell
  149. # 提交暂存区到仓库区
  150. $ git commit -m [message]
  151. # 提交暂存区的指定文件到仓库区
  152. $ git commit [file1] [file2] ... -m [message]
  153. ```
  154. - **分支**
  155. ```shell
  156. # 列出所有本地分支
  157. $ git branch
  158. # 列出所有远程分支
  159. $ git branch -r
  160. # 列出所有本地分支和远程分支
  161. $ git branch -a
  162. # 新建一个分支,但依然停留在当前分支
  163. $ git branch [branch-name]
  164. # 新建一个分支,并切换到该分支
  165. $ git checkout -b [branch]
  166. # 切换到指定分支,并更新工作区
  167. $ git checkout [branch-name]
  168. # 建立追踪关系,在现有分支与指定的远程分支之间
  169. $ git branch --set-upstream [branch] [remote-branch]
  170. # 合并指定分支到当前分支
  171. $ git merge [branch]
  172. ```
  173. - **远程同步**
  174. ```shell
  175. # 下载远程仓库的所有变动
  176. $ git fetch [remote]
  177. # 显示所有远程仓库
  178. $ git remote -v
  179. # 显示某个远程仓库的信息
  180. $ git remote show [remote]
  181. # 增加一个新的远程仓库,并命名
  182. $ git remote add [shortname] [url]
  183. # 取回远程仓库的变化,并与本地分支合并
  184. $ git pull [remote] [branch]
  185. # 上传本地指定分支到远程仓库
  186. $ git push [remote] [branch]
  187. # 强行推送当前分支到远程仓库,即使有冲突
  188. $ git push [remote] --force
  189. # 推送所有分支到远程仓库
  190. $ git push [remote] --all
  191. ```
  192. ## 三、作业管理
  193. 课程学生将作业提交到以各自学号命名的仓库中,根据作业次序的不同,需提交到不同仓库分支。
  194. 例如第一次作业统一提交到各自学号命名的仓库中的homework01分支中。
  195. ![微信截图_20211014084022](image/微信截图_20211014084022.png)
  196. 课程管理员可以在课程首页下载所有仓库中指定分支的内容。
  197. 下图是下载所有学生仓库中homework01分支下的作业示例。
  198. ![微信截图_20211014084306](image/微信截图_20211014084306.png)
  199. 进入作业管理界面,管理员可以通过作业布置向对应的作业分支发送作业素材。
  200. ![作业管理](image/作业管理.png)
  201. ![作业布置](image/作业布置.png)
  202. 同时管理员可以设置作业提交的截止时间。
  203. ![截止日期](image/截止日期.png)
  204. 管理员还可以对学生提交的作业进行相似度比对。
  205. ![相似度](image/相似度.png)
  206. ![相似度结果](image/相似度结果.png)
  207. ## 四、积分系统
  208. 在课程首页的右下角展示了积分排行榜。
  209. ![微信截图_20211014084546](image/微信截图_20211014084546.png)
  210. 单击排行榜右侧的数字处,可查看学生提交数量、提问数量、回答数量等信息。
  211. 提交数量:学生在课程中提交作业、代码的次数
  212. 提问数量:学生在仓库话题中的发帖条数
  213. 回答数量:学生在仓库话题中的跟帖条数
  214. ![微信截图_20211014084630](image/微信截图_20211014084630.png)
  215. 单击“设置评分权重”,可以设置各项分数的权重。系统会加权赋分给出学生分数。
  216. ![微信截图_20211014084649](image/微信截图_20211014084649.png)