本篇博客是作者对于第一届构建之法论坛中所做报告《助教之路》的全文说明与补充要点。
作者介绍
刘乾,北京航空航天大学与微软亚洲研究院联合培养直博生,目前博士二年级,研究方向为文本挖掘与自然语言处理。
他虽然刚刚博士入学,却已在本科阶段积累了丰富的助教经验。从大三开始,他先后在北航计算机学院计算机组成实验,操作系统实验,软件工程课程中担任助教。他不仅在本校担任助教,还跨校协助老师教学,曾负责沈阳航空航天大学的软件工程教学任务,现担任福州大学软件工程课程助教。
他不仅自己当助教,还号召更多的学弟学妹当助教。在他的协助与组织下,北航计算机学院正式成立了第一个有组织制度化的本科生教学辅助团队S.T.A.R.。他的助教事迹鼓舞着许多低年级的学生热情参与助教工作,为教学改革的持续贡献着自己的力量。
本文摘要
作者将从自己在多门课程中担任助教的体会与收获出发,具体讲解与讨论如下几个方面的内容:
- 助教对于现代实践课程的必要性:好的助教是课改的内在持续推动力。
- 助教实践过程中的动机、挑战与收获:课程内外助教的收获与心得体会。
- 号召更多的学生来当助教:助教事业薪火相传的意义与实践经验。
- 组织与管理助教团队:构建之法指导下的助教团队管理经验。
课改浪潮中的宠儿
课程改革中被忽视的角色
要说起助教对于课程的意义,首先要追根溯源到课程本身。对于不同类型的课程来说,助教的意义也不尽相同。从报告者四年的课程体验来看,大学的实践课程可以大致分为两种课程:传统实践课程,现代实践课程。
传统实践课程往往是理论课程的附属品:理论课讲授理论内容,实践内容就通过期末或个人或组队完成一个大作业体现。开学布置下去大作业或课堂展示任务,任务贯穿一个学期,课程的分数全凭演示结果与文档决定。我把这种大作业为考核核心的课程称为传统实践课程。
现代实践课程则往往是独立于理论的课程。它源于理论课程基础,但它对学生的要求更高:学生不仅要对理论知识非常熟悉,还要大量实践才能真正吸收理论思想。这种课的教学计划会细化到每一周,每周都有充实的实践任务和过程把控,最后的分数由每周的子任务分数统筹确定。这种注重过程控制,旨在培养学生思维与学习能力的实践课程,也就是构建之法中所提到的“做中学”的课程。
目前国内许多高校都在致力于建设国际一流的课程,很多课程都开始了从传统实践向现代实践课程的转变。在这种课程改革的浪潮中,老师们开始教材、教学方法与教学作业的全方位转变,却往往会忽略现代课程实践课程中非常重要的一个角色——助教。
传统实践与现代实践的不同
上图中的每条线代表着学生的收获值,实线代表实际收获,虚线代表预期收获。从图中我们可以清楚地看到:
传统课程为每个学生制定了一个大目标,假设每个学生自觉地将目标分解,并自觉在各个阶段独立完成小目标。这样一来,他们的学习效果直接反映在最终项目的效果中,故而利用大作业的效果评价学生的学习效果是可行的。
现代实践课程则不做任何假设,它会细致地把一个大的目标分成十几个小目标,阶段性地检查学生的小目标成果。在学生完成小目标的过程中给予各种反馈,且利用各种手段确保学生成果的原创性。最终综合学生在每个小目标阶段完成项目的质量,来评价学生的学习效果。
但实际上呢,传统课程对于学生自觉完成每个小目标的假设过于乐观,学生最后的收获与预期值大大不符,收获极其有限。
在两种课程中,除了学生的收获不同外,教师的角色也发生了转变。
- 传统课程里作业的布置与检查只有一次,在这种课程中,老师只需对大作业的演示效果打分,不需要掌握学生完成作业的过程,更不需要了解与解决学生遇到的困难与疑惑以及学生在项目完成过程中遇到的问题。这时老师就像是项目验收者,只需要有一双慧眼鉴定作业质量即可。
- 现代实践课程中,老师更像是项目管理者,他们需要把握每个学生的不同情况,知道学生们各自的优点与缺点,尽可能把控学生作业的过程。既然是项目的管理者,就面临着比项目验收者付出更多的劳累,辛苦与付出。
也因为两类课程对过程控制的不同理念,导致现代实践课程所需的工作量大大增加,仅凭借老师单个人的力量已经力不从心了。
在这种情况下,要想保证教学质量,就需要助教登场。
现代实践课程中助教的职能
从作者大学四年的体验来看,传统实践课程每年的要求都差不多。从根源上来看,主要是因为两点受限了它的改革:
- 理论课的附属品,本身是为理论课服务的。理论课不做大改动的情况下,传统实践不好贸然改革。
- 阶段单一,不好优化。因为传统实践作业只是一次看起来体量比较大的作业而已,如果要改革就是把课程的要求改进,但其本质还是没有改变。阶段太单一,不好优化。
在传统实践课程中,助教只是帮助老师节省了替大作业评分的时间。因为课程属性本身的原因,他们无法对课程进行太大的改进。
所以在传统实践课程中,助教的存在感很低,发挥的作用很小。但在现代实践课程中,助教却是实实在在需要参与到实践课程中的,并在课程的运行中充分实现了自我价值。这里是作者所归纳的在现代时间课程中助教主要参与的活动或任务。相比传统实践课程而言,助教可以说是深度参与了课程的建设:
- 执行教学任务,解放教师的生产力。助教需要承担大部分的教学任务(这里的教学任务主要指一些如点评/评分/答疑等),从而可以让教师从更高的格局上审视整个课程体系的设计。只有让教师从繁重的教学任务中解脱出来,才能有时间思考课程的创新与改革。
- 与学生充分的互动。我们这里的互动包含多个方面的内容,比如从学生中收集反馈,再比如在课程后期发布作业前可以参考这些同学的建议。助教与学生的互动充分同时能让学生感受到重视,会缓和学生由于课程压力带来的烦恼与困惑。
- 提供课程改进建议。现代实践课程需要迭代改进,停止创新根本上与传统无异。因为一旦停下了创新的脚步,很容易在几年后被时代淘汰,成为新的“传统实践课程”。但负责课程的老师每年都是这几个,授课的时间一长老师可能会陷入思考的僵局,受限于当前而无法提出创造性的改革想法。所以期望仅凭借授课老师思考如何改革课程是不具备可操作性的。而在现代实践课程中,我们有一套机制来选拔新的优秀的助教。每年选拔的助教都带着不同的灵感与创意而来,助教的更新换代让课程在不断融入越来越多有趣的想法,这是对课程改革一记有力的助推。
- 为学生答疑解惑。这一点意义非常重大,我认为其最重大的意义不在于解决了学生某个困惑,而在于为学生树立了良好的榜样模范,从情感层次深度影响了学生们对于助教的亲近度。树立助教的个人魅力,易于让同学们对助教这一岗位产生向往。
动机、挑战与收获
担任助教的动机
上面我们分析了助教对于课程和老师的必要性,现在来讨论讨论同学们担任助教的动机。
作者担任助教主要是出于个人的一点情怀:课程带给我历练的机会,我对课程非常感激和感恩。所以希望改进课程,让这门课越来越好。
当然,个人情怀是偶然现象,大部分同学是因为什么才来担任助教的呢?我在现在已经在担任助教的群体中做了一些调查,调查样本一共有30份,其中22份来自学院的助教团队,另外8份来自构建之法软件工程课程的助教团队。调查显示,对于大部分助教来说,吸引他们来担任助教的主要因素是:
使命感、榜样的力量与优秀的团队
结论很明显了:作者的一些个人情怀其实也是大众的情怀,助教们都是带着一颗愿意改进课程的心来担任助教的,当然这其中前任助教作为榜样做出的深层影响与希望在一个优秀的团队中工作也是吸引大家的关键因素。
助教工作面临的挑战
现代实践课程独有的特点让助教这个岗位本身面临着比较大的挑战。这些挑战主要包括三个方面:
- 实践课程节奏快,很容易掉队。这就需要课程对助教有一个预先的培训,让助教提前适应实践课程的节奏。
- 课程与学生的课业存在冲突。教师需要提前计划课程任务,能在课程运行前完成的事情就不要放在运行中去做。解决了这点,课程就可以有条不紊地运行,这样于助教于老师都很有利。
- 新助教不知道如何上手。这就需要老助教带新助教,一代传一代,形成一个传承的系统。
助教工作带来的收获
除了对课程理解的强化,在更高的平台上与更优秀的人才的相识的好处外,在我担任助教之后,我的组织力、执行力与表达力得到了全方位的培养。除了助教角色,学生很难在进入职场前在这些方面得到全面而有效的锻炼。与学生、老师的沟通协调,快速迭代节奏下执行力的稳步提升,面向较大规模群体组织力的有效锻炼,是现代实践助教区别于其他任何角色的特色收获。
助教事业的薪火相传
助教在课程中的重要程度我们在上文中已经反复说明了,那么接下来,为了让助教、老师与课程三者相得益彰的生态得以保持,我们必须解决课程中一个重要的问题:作为课程的教师,我该如何寻找新的助教呢?
这个问题背后其实隐含着两个核心因素:
- 从哪里寻找助教。有没有什么类似于助教商店的东西,明码标价,当老师需要的时候直接买一个走?
- 如何有效地过滤。找到稳定的助教来源之后,我们该用怎样才能有效地挑出适合课程的助教呢?
让我们先来看看传统实践课的老师们通常是怎么做的:大部分老师都会从自己或同实验室的研究生或博士生中挑选助教。这么做无非是出于两个理由:
- 老师教授的科目与自己的科研方向有些关联,研究生助教很轻松地就能弄明白课程大作业的要求,只要在验收时提几个关键的问题检验项目是否合格即可。
- 研究生助教是自己的学生,管理与发布任务都非常方便。
但在现代实践课程中,传统的助教选择定律却失效了。失效的原因我认为主要在于两个方面:
- 缺乏内在热情。对于这些传统助教来说,他们并非是自愿报名担任助教的,批改作业更像是一种老师布置的工程任务。在传统的课程里,任务以结果为导向,占用助教的时间并不多。但在现代实践课程中,多达数十个的检查点需要耗费助教许多时间,每周都需要助教投入一定量的时间用于教学任务,他们并没有将教学任务坚持下来的热情与内在动力。如果老师执意要求他们进行这样的任务,很可能会导致教学质量的下滑与作业点评的积压。
- 跟不上课程节奏。传统的研究生或博士生助教,并没参与过现代实践课程,对实践的内容很不熟悉。而由于现代实践课程任务密集的特点,内容复杂,流程较多,这些的熟悉和上手需要时间。而现代实践课程的节奏都是很快的,一旦一开始跟不上,后面也就很难适应。同时也会因为熟悉度不够导致无法为学生答疑。
既然传统的助教选择方法行不通了,那么老师们该通过什么样的方式才能找到愿意付出劳累与辛苦,来担任助教的同学呢?
根据作者这些年当助教的经验来说,现代实践课程更青睐于招募业界的工程师与上一届学生做助教。
来自业界的工程师可以作为课程的远程助教。他们经验非常丰富,视野很开阔,如果参与到课程改革中来,可以将业界最新的发展带入学界,以弥补工业界需求与教育界产出之间存在的巨大鸿沟。
而课程的上一届学生则可以作为线下助教,他们是自愿报名而非被指定担任的,所以有着内在热情的激励。同时他们都是各门课程中最优秀的一批同学,对课程内容非常熟悉,可以很容易跟上课程的节奏。
业界工程师作为助教相对来说来源不大稳定,但上一届学生作为助教来说却是一个非常稳定优质的来源。所以下面我们主要讨论关于上一届学生的筛选方法。
怎样招募到靠谱助教
助教的来源已经有了,那么我们还有两个小问题需要解决,那就是:怎么吸引助教,以及怎么筛选助教。
刘未鹏老师曾写过一篇文章:怎样花两年时间去面试一个人。
我摘录总结了一下这篇文章中的几个核心观点,与各位老师分享:
招聘也许是一个公司决策当中最最重要的一个环节。
在IT行业,无形资产占据公司的绝大多数资产。创造最适合工程师生活的环境,留下最优秀的人才才是最先最重要的一步,接下来好的产品是水到渠成的事情。
传统的简历筛选,笔试与面试的招聘存在根本上的局限性。
短短几个小时的面试,既需要全面考察基本知识,又要考察编程素养,还要考察(也许最重要的)性格心态。再然后还有一项根本没法考察但却占据程序员相当一部分工作时间的:debug能力。面试官不但得找准问题,不因对方一题答对而妄下结论,也不因一题打错而就扼杀机会,还要以管窥豹,从一朵花看到整个世界,从面试人的举止言谈,分析问题的方式,甚至写程序的笔迹来观察这个人的性格,做事的方式和心态,简直是要面试官具备心理分析师的水准才行。一上来就招到靠谱的人太难了。
企业开始倾向于用长期的积累而非短期的表现来评估学生。
比如有些企业会要求给出博客地址:一个积累多年的技术博客比任何简历都更能说明问题。有些企业会参考StackOverFlow的问答情况对一个人的职业技能进行基本评估:一个人在社区的活动历史浓缩成为一系列的量化数值,由于这个历史很长期,所以鉴别力非常高。现在也有非常多企业通过Github上的项目代码风格,源代码管理等表现来评估一个人的职业技能与学习潜力。积累的时间越长,过滤器越具有鉴别力,越能筛选出更优秀的人才。
有些时候我们说,助教的选拔与应聘者的面试其实是很相似的,老师是雇主,课程是项目,目标就是期望助教与老师协作把课程完成好。上述观点在助教选拔过程中也同样适用:
- 助教的选拔是课程决策中非常重要的一环。老师需要创造优秀的条件,吸引优秀助教的加入。
- 传统的简历招聘与面试在助教选拔环节存在固有的局限性,不要期望仅仅通过几小时的面试就能招到非常好的助教。
- 应综合学生在课程中的积累与平时表现来评估学生的潜力。
结论:要给出有吸引力的条件,并综合学生的面试与平时表现来判断一个学生的助教潜力。
庆幸的是,虽然存在距离,但课程与学生间的鸿沟要远远小于企业与学生间的。相比企业而言,课程存在着天然的优势,老师和助教有时间也有精力用一个学期来考核一个学生成为助教的潜力。
实践中的助教招聘
助教的选拔其实是一个双向选择的过程,为了吸引到更优秀的人才加入助教团队,老师与助教在授课时应该及时挖掘与引导种子助教,在课程中要毫不吝惜对种子助教的帮助与关注,要知道:优秀的人才需要靠潜移默化的影响来打动。在课程结束后助教也可以以私人名义极力邀请种子助教担任新一轮助教,实践经验表明私下邀请的方式屡战屡胜。
职能分配与团队管理
助教三步走
我们从课程和教师的需求出发分析了助教的价值,从助教自身的角度分析了担任助教的挑战与收获,从实际操作的层次出发分析了如何吸引与选拔新的助教,下面将通过一个实际的案例来说明助教团队的管理。这里我们说助教团队的管理,主要是指在课程运行前,中,后助教团队的管理。
在说明实际案例之前,我们要先引入一个新的角色。在前两年实践中作者发现,课程中如果仅仅包含助教和老师两种角色,助教前后之间容易形成断层。这对于课程本身并没有太大的影响,但对于助教体系,包括整个可持续的培养生态的形成不利。所以在实践时,我们引入了一个新的角色:高阶助教(Advisor,直译为助教顾问)。至此,整个生态形成了一个闭环,也就是所谓的:
Student Teaching Assistant AdvisoR,这也是我们团队名称的起源。
而一个助教同样要经历三个阶段的成长:预备助教、正式助教与高阶助教。
- 预备助教阶段:在课程正式开始前半年内,在老师和高阶助教的指导下,对实验的体系与内容进行改进。期间,每位预备助教都能获得对应课程高阶助教的无私帮助。高阶助教都是S.T.A.R团队中富有经验的成员,他们将在这半年内将自己的经验、感悟以及教学辅助技能等尽可能地传授给预备助教,与任课教师共同组织预备助教针对课程实验内容进行改进。
- 正式助教阶段:在实验课开设的学期内与老师和其他助教一起协同工作,按照既定工作流程完成任务,调研相关学生的感受,并总结本学期课程中出现的问题等。在学期结束后与老师一起总结反思,讨论下学年课程的改进方向。
- 高阶助教阶段:在历经预备助教及正式助教工作之后,将通过自由报名的方式由教学团队选拔若干名高阶助教,帮助下一届的预备助教度过预备阶段。这半年高阶助教将尽可能地帮助预备助教,并统领预备助教针对课程实验内容进行一定的改革。
课程运行前
在现代实践课程中,老师与助教们通过协作形成一个团队。在不同体量和学生数的课程中,老师与助教的比例也有大概不同,我们把课程比作一个项目不是没有道理的,因为不论老师与助教的比例如何,一定要有一个项目经理来制定路线图,来控制项目进行的进度。而这个项目经理,正是我们图中的核心教师。
- 教师群体负责把控整个课程的改革方向,确定好主要改进路线,确定课程运行前需完成的大目标。
- 作为项目经理的教师定期主持线下会议,每次会议都形成纪要,会议上要分配预备助教下周的任务。
- 高阶助教各自负责一部分预备助教,带领预备助教熟悉助教流程,组织他们完成项目经理发布的预期任务。并在课程外帮助预备助教尽快适应助教工作的节奏。
课程运行中
- 正式助教群体执行教学任务,比如实验检查/作业评分等。解答学生对于课程的疑问;收集教学反馈;挖掘种子助教;(潜移默化地影响他们,甚至可以考虑放出部分权力让他们参与教学)发布成绩(每次检查都会有一次发布);
- 高阶助教一般不实际参与教学任务,但会在正式助教的实践中做出引导。在正式助教遇到棘手问题时予以帮助与支持。同时,高阶助教可作为正式助教的后备军,在助教人手不够时接替一部分助教工作。
- 教师群体的任务取决于不同类型的课程。大部分情况下教师群体需要传授一些理论知识,小部分课程中教师与正式助教的任务是保持一致的。
课程运行后
- 开会进行总结反思,为来年教学改革提供参考意见。
- 选拔新任助教,主要采取推举与面试制度综合。
实际案例
目前北航计算机学院已经成立了一支规范的本科生助教团队S.T.A.R,目前队伍已涵盖4门核心课程,拥有30+优质助教,教学成果得到所有授课老师的认可。
助教团队中最应强调的理念就是传承。知识用来分享,才能承先启后;成功不止付出与拥有,有承担才是最高的成就。传承是S.T.A.R团队的最大特色,也是S.T.A.R团队最具吸引力的福利。与优秀的学长共事,听取他们的意见,接受他们的帮助,并把这种精神继续传承下去,既是每位S.T.A.R成员的福利,也是每位成员的义务。