现代软件工程 来自卓越大学教师的建议 (读书笔记)
教师教学有培训和参考书么?
我从来没想到过我会在大学里教书, 而且还教了好几年, 四个学校。 当时接到任务的时候, 我把它当作实习生培训和新员工培训的"学院版", 还是继续强调实践, 反馈, 合作, 就这么开讲了。
在微软公司, 做大部分和人相关的事情, 都得先有一个培训, 只有参加了培训, 才能面试别人, 才能带实习生, 等等。 我不知道一个新老师到了大学是否要参加教师培训或者要求选修心理课程什么的. 清华大学, 或其他的学校, 都没提到任何培训, 我就去上课了。
上了第一年课之后, 我读了 Randy Pausch 教授的
前不久周筠老师给我推荐了
"研究型"大学还要重视教书么?
中国的许多大学这几年都标榜自己已经成为, 或者即将成为"研究型"大学。 读者可以从这个微博上看到 "研究型" 大学对教师的期望. 可以看出, 大学对教师的科研方面有很多要求, 对于教学嘛, 就只有这一条, 而且没把学生的反馈作为条件:
聘期内必须承担两门课程 (至少一门为主干课或专业课)助教工作, 聘期结束前必须用英语或双语主讲一门以上课程.
我不知道研究型之外还有什么类型, 我想象有 "教学型", "文凭批发型"? 教学型的大学有什么不好? 如果大家都研究, 那把大学里所有的学生都送走, 你看看有多少老师还能发论文, 做 "研究"? 世界上有一个著名的 "研究型机构" - Institute for Advanced Study, 它网罗了一大批著名的科学家在做研究, 这些科学家不用讲课 (此地没有学生), 也不用写研究资金申请报告, 或者是"横向项目", 学校让他们全职研究。 我个人认为在全世界几千家大学研究院中, 不妨有几所这样的机构, 不拘一格嘛。 但是它的产出有多少呢, 似乎和大家的期望值不符合。 20 世纪著名的物理学家 Richard Feynman (费曼) 这样评价这所机构:
… And nothing happens. Still no ideas come. Nothing happens because there's not enough real activity and challenge: You're not in contact with the experimental guys. You don't have to think how to answer questions from the students. Nothing!
-Richard Feynman, Surely You're Joking, Mr. Feynman!, 1985
失去了 "教学相长"的"学"那一部分, 也许研究型大学的 "研"也搞不好。
老师上课的目的是什么?
大学生和研究生都是成年人, 都有自学的能力. 网上有那么多公开课, 公开的习题, 公开的作业答案, 为什么老师还要给他们讲课? 为什么学生还要来上课?
是为了让他们通过考试? 还是…
通过上课, 对学生的思考能力, 行动能力, 感知能力等施加正面的, 重要的, 可持续的影响?
这本来没什么可说的, 但是在天朝的大学, 我还是碰到了这样的事情: 某学校的一个有影响力的老师对我说下面一段非常绕弯的话:
由于历史原因, 我们学校工科的院系比较多,
由于另外种种原因, 工科院系拿到了很多保研的名额,
这样的话, 留给计算机系的保研名额就很少了,
这样的话, 计算机系的很多学生就要通过考试来上研,
所以, 他们需要很多时间复习
你的软件工程课很好, 但是同学要花时间复习, 准备考研
所以, 你的课不能搞那么多练习, 要让同学有时间准备考研…
老师上课是干什么?
是上一堂课, 念几十页讲义, 放一些幻灯片, 然后下课? 还是…
把学生们当作不同的个体, 构造一个自然的, 有批判精神的, 学习的环境 (Natural Critical Learning Environment), 让老师和同学一起提问, 交流, 尝试, 反馈, 总结?
优秀老师的特点
优秀的老师并不一定有大量的学术文章, 但他们都是活跃在各自领域, 有一定成就的学者或专家。 通过大量采访, 作者发现这些优秀老师的共性:
a) 对本行业的历史非常了解, 对一些事情的始末源流有很敏锐的见解。
b) 他们非常喜欢琢磨 [人是怎么学习的] 这一问题, 大致有 4 点见解:
1) 知识体系是构建出来的, 而不是接收到的 //xinz: 与其灌输知识, 不如让学生自己构建
2) 人的认知模型改变得非常缓慢 //xinz: 搞那些速成的, 疯狂的, 喊口号的培训未必改变了人的认知模型
3) 提问能帮助构建知识体系 //xinz: 鼓励学生思考, 辩论,
4) 身心投入是学习的关键
但是要注意, 这些老师不是天生就有这些教育才能, 他们也不是完美的, 他们有时也没做到自己鼓吹的最佳方法。 但是他们总在不断学习改进的过程中。
如何设计课程
上课前:
书中提到的老师都是有丰富经验的教师, 但是还有人常常以"初心"来考虑: 如果这门课是全新的, 而且我很想教教, (不是我因为我去年教过, 不是因为教务处要求, 不是因为我以前学过, 不是因为...) 那我应该怎么教好这门课?
第一天上课:
1) 给学生一个非常明确的期望. 这些老师的课程通常有很高的要求, 但同时提供了很多学习和改进的机会。
//xinz: 不是说 - 如果你第一次测验不及格, 那你肯定得不了A。
2) 让学生告诉老师, 他们最想在这门课上学习到什么, 要想解决什么问题。 这可以通过简易的调查问卷来实现。
//xinz: 我做了一次, 但是同学的反馈并没有太影响讲课的内容, 这个或者是我的问题问得不清楚, 或者是我缺乏改变教学计划的灵活性。 以后还可以再实验一下。
3) 有些老师在这个时候就告诉学生们期末考试的大致问题是什么。
平时上课:
这些优秀的老师们采用很多方法, 共同的一点是:
Create … "natural critical learning environment". In that environment, people learn by confronting intriguing, beautiful, or important problems, authentic tasks that will challenge them to grapple with ideas, rethink their assumptions, and examine their mental models of reality.
这似乎是全书的重点, 分开来讲讲:
Natural 自然的: 要解决课程提出的种种问题, 挑战, 迷惑。 这些都是课程的一部分。 //xinz: 不能人为地划分禁区, 例如: 这部分不会考, 同学们不用看了.
Critical 批评精神的: 上课不是填鸭是的传送知识到学生脑子里, 而是要让学生运用批评性思维, 摆事实, 讲道理, 不断思辨.
Learning 学习的: 学生上课不是要听结论, 不能大家思辨了半个学期, 最后还得听老师的标准答案。 学生要给出自己的回答。 更重要的是, 学生要问, 如果这个问题是这样的答案, 那下一个问题是什么呢? 带着问题, 学生们开始了下一轮的了解和思辨。
至于具体的教学方法, 除了 "讲课" 之外, 老师们还可以实验各种办法来建立 NCL 的环境:
提问; 课堂讨论; 案例研究; 角色饰演; 模拟; 田野实习;
这个NCL 环境是全书的重点, 我也多说几句。
N (Natural) 很重要, 如果把学生送到劳改营, 做苦力, 每天做100道微积分, 背100个外语单词, 写1000 行代码, 写不出来就鞭打… 估计也能达到目标, 这个环境也许很 Critical, 人也可以 Learn, 但未必 Natural. 就像为了迎接英语考试而自己硬背单词, 这样获得的学习效果不会持久。
外企里的中方员工都很渴望提高自己的英语交流能力, 企业时常花高价请咨询师来开一两天的速成课, 讲讲英语交流的几种诀窍, 几种误区, 并穿插笑话等, 上完课后, 学生很开心, 认为 "学到了"。 但是据我观察, 从长期来看, 这些同事的交流能力并没有什么显著的变化。 与此同时, 我们在公司内部建立了 Toastmasters Club, 没有老师, 大家根据教程, 用英语讲自己工作和生活中碰到的事情, 有即兴发言, 有正式演讲。 同时给别人提供批评意见 (语法, 用词, 节奏, 形体动作, 等等), 最后大家评出几个最好的演讲者。 活动就在工作之余进行, 一般的会员在完成教程规定的演讲练习后, 交流能力 (不光是英语) 都有明显的改善。