软工+C(2017第9期) 助教指南

上一篇:提问与回复
下一篇:团队项目-对话式编辑


[备注]:请优先阅读 Handshake/点评/评分 三部分。

0x00 Handshake

0x01 点评


A. 汉堡包模型

  • http://www.cnblogs.com/xinz/archive/2011/08/22/2148776.html
  • 基本过程:
    • 基于内容/知识点/博客/代码事实的肯定,鼓励。但不放水,坚决打击南郭先生。
    • 在肯定鼓励之后,使用祈使句提出改进要求:“请xxx”
    • 按需追加回复。
    • 交叉索引知识点链接,这就是为什么需要通读/熟悉本文档推荐的链接。
    • 好的作业,可以给博客点赞, 好的回复点支持。
    • 根据数据说话,坚持衡量/分析原因/建议
    • COST: 问答类题目,助教可选择深入回答一个问题即可,其他由学生在总结后自己回答

B. 点评内容上的建议

C. 教师/助教的点评历史记录:

D. 点评的目标有:

  • 消灭零点评,需要有节奏的安排点评的时间段,多利用碎片时间+批处理。
  • 可以观察班级博客上的学生作业提交频率的规律来安排自己的时间
  • 可以利用班级博客的【打开零回复博文】按钮一次点评页面那的零点评博客
  • 交流,思辨和交流也是大学生学习的重要途径。
  • 交叉索引。
    • 在点评学生博客的时候,使用知识点相关的链接。
    • 如果某个学生的博客和其他学校学生的博客有类似的问题,可以互相索引。
    • 抄袭别人的博客,直接post出原文链接。
  • 学生们往往会get不到此处应该是和什么关键知识点相关,此时给出链接的目的有:
    • 给出再次阅读的时机,
    • 刚好遇到这个问题,此时再读有明确的目的
    • 缺少某些必要的有条理的过程,此时,给出相关模版/列表,建议其改进。
    • 如果有抄袭,严格执行扣分机制,认识到不严格执行对于认真学习课程和完成项目同学来说是不公平的。这点要一开始就和授课教师讨论并明确。

E. 检查点:

  • 本节4个点你能做到么?
  • 你打算这样做么?

0x02 评分


A. 规则:

B. 工具:

C. 代码:

  • 如果是命令行程序,可以编写针对命令行程序的自动测试程序,并提供2进制测试程序给学生,要求学生的程序能通过自动测试程序的调用,自动测试程序还能给出给出统计得分,参考:http://www.cnblogs.com/vertextao/p/6896953.html
  • 如果是App,可以要求最终(例如Alpha结束)发布程序到应用商店。
  • 助教可以写批处理 自动 git clone下学生的程序代码,抽样编译运行,并做覆盖性的code review,例如: http://www.cnblogs.com/math/p/dbsd-2016-git.html

D. 协作

  • 一个班级被拆分成多个子班级,评分规则需要统一,可选的方法:
    • 在教师题目设计的同时,在题目里就设计好题目的所有checkpoint得分点,由题目设计直接确定,多个助教执行。
    • 在教师题目设计review确定后,由一个助教针对所有的checkpoint提出评分规则初稿,其他人review,再确定,可轮流做这个环节(值日)
  • 在作业项目的截止日期过后2天内及时达成目标
    • 发布作业评分/小结,其中包含分析优秀博客,重点问题,提供有用资料等
    • 完成大部分博客点评(最好是消灭零点评)

E. 检查点:

  • 本节4个点你能做到么?
  • 你打算这样做么?

0x03 知识储备


A. 通读构建之法,对轮廓了如指掌,以便在题目设计/点评中有的放矢:

  1. 怎样算学会软件工程:
    • 有效掌握软件工程知识
    • 使用软件工程知识有章法的过程开发
    • 发布有人用的软件
  2. 软件工程的完整环节
    • 每个环节的过程规律,例如构建之法里的(学生的作业过程中有类似规律):
      • 萌芽
      • 磨合
      • 创新
      • ...
    • 每个环节的关键方法,工具
    • 每个环节有哪些常见的模型
    • 每个环节有哪些不同角色,作用分别是什么,各自需要怎样的专业技能?
  3. 理解师生关系模型:
    • 教学方法
      • “怎么有效地教这门课。为了达到这个目的,我们要讲在这个课程中建立什么样的师生关系,怎么样让学生投入进课程中,老师采用什么样的教育方法,如何判分,如何让学生学到软件工程的技能。 ”
      • 明确健身教练/学员模型为主,理解教练/保姆的区别。
    • 助教的工作原则

B. 通读/熟悉两个常用索引,以便在点评/讨论中快速链接:

C. 通读过去的教师/助教/学生的博客,学习所有的经验:

D. 小节训练:

  • 通读上述所有博客,并做一个分类对比,评价各自优缺点。
  • 到edu.cnblogs.com上阅读10篇线上学生博客,并
  • 对内容给予针对性知识点的点评
  • 使用上述博客中的链接做交叉索引式点评

E. 检查点:

  • 本节4个点你能做到么?
  • 你打算这样做么?

0x04 明确课程主线条


A. 阶梯项目类型,思考下每个环节的关键作用是什么?

B. 不同课时训练目标的核心点不同,思考下为什么需要安排这些环节?

  • 16周类型,参考构建之法的“给教师和助教的讲义”里的16周课时安排
  • 9周/12周类型,参考邹欣老师的排列组合:
    • 快速阅读全书并提问, 描述自己的课程目标(一周),
    • 随后是分析现有项目,决定团队项目(张老师的班级做的优秀项目 一周),
    • 结对编程(一周,熟悉软件开发的工具)
    • 然后做团队项目alpha (重点强调使用原型设计工具和项目计划,WBS,两周,保证有 7 天的冲刺)
    • alpha总结(一周,可以请校外专家来交流)
    • 团队项目/beta (两周,保证 7 天冲 刺)
    • beta 总结 + 个人总结(一周,可以请校外专家来交流, 每个同学回答自己课程开始时提的问题,再继续提问)。
    • 个人项目(可选,适合那些想得高分的同学)

C. 课时过程和工具的结合,怎样在课程里让学生们有效掌握工具的使用?

D. 小节训练:

  • 结合自己所在班级的课程,提前在教室群里与教师讨论并确定课程的计划轮廓
  • 提交协作式文档,将计划内容确定下来,并针对每次环节明确核心要达成的目标,特别是时间点的确定。

E. 检查点:

  • 本节4个点你能做到么?
  • 你打算这样做么?

0x05 项目设计


A. 协作工具

  • shimo.im 建立一个班级题目设计专用的共享石墨文件夹
  • 邀请教师/助教进入共享文件夹协作编辑
  • 通过微信群组织过程

B. 教师设计项目初稿

  • 整个学期的整体进度(环节)计划,具体到周
  • 每个环节快结束到下一个环节开始之前几天,设计项目初稿
  • 分享到教学微信群,协作编辑,改进

C. 复审设计的题目:

D. 发布

  • 教师在教学博客上发布定稿的项目作业
  • 助教跟踪并发布到学生班级群

E. 检查点:

  • 本节4个点你能做到么?
  • 你打算这样做么?

0x06 重视基础过程中各环节的质量


A. 排版,请一开始就让学生使用markdown:

B. 时间/风险估计

  • 预估/矫正,例如PSP的有效使用
  • 耗时估计的有效使用/训练
  • 学生团队的PM是否合格?

C. 版本管理

  • 请一开始就设计实验课,在课堂上step by step要求学生通过git的命令行操作测试
  • 这需要教师/助教自己对git的使用熟悉。
  • 代码仓库可以使用:
    • coding.net
    • git.oschina.net
    • github.com

D. git 工具:

E. 燃尽图:

F. 敏捷冲刺过程

G. WBS怎样才有效?:

H. 检查点:

  • 你身边的工作环境里,大家重视这些过程么?为什么?
  • 你打算怎样做?

0x07 问卷调查


A. 单次作业可以使用问卷调查某个单项数据

  • 例如:到目前为止写了多少行代码,计划在本学期写多少行代码。
  • 匿名问卷可作为适当的辅助工具。

B. 期中期末对班级做匿名问卷调查

  • 对问卷调查总统计分析,小结
  • 将统计结果发送给任课教师,累积教学数据,以便于一门课程的学期间迭代/改进
  • 参考(具体的问卷建议使用以前积累的模版):

C. 检查点:

  • 你平常使用问卷调查分析数据么?
  • 你注意分析数据的变化么?
posted @ 2017-08-06 12:02 ffl 阅读(...) 评论(...) 编辑 收藏