这是2016年秋季学期和北京工业大学耿丹学院合作教学的计划。这也可以用于其他学校的 C 语言课程。
2016级有四个班,每班大约 32 人,每班配有一个有一定实际工作经验的助教,配合老师把课教好。
C语言是一门基础课, 是耿丹学院新生的第一门专业课,(为何第一门课安排C 语言?这个超出了本文的讨论范围)本文的主题是 - 谈谈有工业界经验的助教能给这门课带来什么新东西呢?下面是一些我们要在这个学期实现的想法,我们不但要学会C 语言,而且还应该掌握基本的工程方法,协作、表达的方法:
- 通过实践掌握C语言,C语言有很多强大的功能 (例如指针),但是我们了解很多学校出于种种原因,C语言不讲指针, 或者讲了但是没有练习。在这种情况下,学生学的不是C, 而是 C--。 助教应该能帮助学生掌握重要的功能,让学生知其然,并且知其所以然。
- 养成良好的编程风格,变量名为何还是a, a1,a2?为何不能在一开始就养成良好的风格?
- 学会使用现代工具:
- 开发集成环境 (IDE), 基本的源代码管理,基本的代码复审(windiff) 流程
- 学会合作
- 结对编程 (建议前面三次作业都是结对编程完成),最后较难的作业也可以考虑结对编程
- 学会总结、分享
- 每周都要写技术博客。技术博客可以总结自己在技术上的心得,心得少也要写。必须填写的一个内容是:自己技术方面的进度条。
周/日期 | 这周所花的时间 | 代码行数 | 学到的知识点简介 | 目前比较迷惑的问题 |
9/5 - 9/12 | <学生填写> | ... | ... | ... |
9/13 - 9/20 |
(可选)学生还可以画出每周累计学习时间和累计代码行数的二维坐标图。
对助教的要求:
① 维护一个学生的成绩单 (请看别的助教的成绩单, 成绩单2),每周更新。
每次作业 (包括进度条)满分10 分,迟交作业 0 分,一周以后仍然没有交作业,倒扣 10 分,发现抄袭,一律倒扣10分。
学生的作业成绩映射到 [50.. 100] 区间, 就是学生的平时总成绩。
学生有做附加作业的机会,附加作业满分10分。
② 点评学生的作业,博客,每个作业和博客必须有至少一条评语,持续鼓励学生,培养他们对编程的兴趣。
③ 做好学生结对编程的分组工作
每周进度:
第一周:
同学
建立博客园的博客,申请 coding.net 账号。
在博客园找到自己的助教和老师,并在助教的博客下面留言,加”关注“, 建立联系。
每个人发一个博客随笔,介绍一下自己。
同学和自己的结对伙伴认识并共同写第一个作业,建议是简单的输出 “Hello World"的程序,写完作业后,每个人各自把写作业的过程发表在博客的一个新随笔上, 并把程序签入 coding.net。
助教
建立所有学生的列表,点评学生作业,发布所有同学的成绩。(在同学作业截至后两天)
助教可以组织qq群,微信群等,和学生加强联系
很多助教的博客 :
http://www.cnblogs.com/dongfengweixiao DHY 老师
https://www.cnblogs.com/wuzhe/ 吉吉老师
https://www.cnblogs.com/shanlizi/ 善老师
https://www.cnblogs.com/toughever/ ToughEver 老师
很多同学写刚开始 C 语言程序的时候出现很多莫名其妙的错误,然后就跑来问老师,下面是一个解决问题的步骤:
当出问题的时候,请弄清状态,再问别人:
① 出错信息是啥?
② 你把你的程序简化 (例如只有一个语句,或者回到上一次正确的状态),然后每往前走一步,就检查一下,在哪一步出的问题?
③ 复习一下知识, 例如,每个语句后面都应有分号 (;)你的语句有么?
如何评价老师和助教的工作呢? 有很多因素可以考虑, 从老师和助教的教学效果来看,最后学生要回答:
你推荐这个老师给你将来的学弟学妹么?
你推荐这个助教给你将来的学弟学妹么?
回答一个数字 (1: 非常不推荐; 2: 不推荐; 3:一般; 4:可以推荐; 5: 极力推荐)
我们有很多作业,可以选一些来练习。