2017-2018-2 165X 『Java程序设计』课程 助教总结
2017-2018-2 165X 『Java程序设计』课程
助教总结
本学期完成的助教工作主要包括:
- 编写300道左右测试题,用于蓝墨云课下测试;
- 发布博客三篇:《2017-2018-2 165X 『Java程序设计』课程 团队项目备选题目》、《2017-2018-2 165X 『Java程序设计』课程 结对编程练习_四则运算》、《2017-2018-2 165X 『Java程序设计』课程 每周成绩公布》,其中每周成绩按照班级课程进度定期更新;
- 发布七次作业;
- 点评博客约500条;
- 线上线下答疑;
- ......
助教工作,贵在“持之以恒”。半年以来,在娄老师的指引下,跟着邹老师和周老师学会了很多“助教之法”,也在与其他优秀助教的交流中得到了不少宝贵的经验。这半年走了不少弯路,也有过困惑与无奈,但在与老师同学的不断沟通中,一个个问题迎刃而解。总的来说,本学期的助教经历短暂却有价值,能跟同学们重温基础知识,一起进步一起成长,本身就是一件有意义的事。
起航
最初有做助教的想法,是受娄老师的启发。他在为我们任课的一年里,始终兢兢业业,一丝不苟,在培养系内同学专业素质上,下了很多功夫。不仅创新了教学方式,还优化了期末评分标准。很多同学对待专业课程的心理也从一开始的抵触逐渐变为接受,甚至兴趣日益浓厚。而我作为这种模式的受益者之一,一直以来都对老师心存感激。一年中培养的专业素养,也让我在后来众多专业课程的学习中,受益匪浅。
除此之外,回想将近两个学期的学习,我对“助教”这一角色逐渐产生向往,源于谢涛老师、李明学长、卢肖明学长等人的鼓励,源于榜样们无形的力量。谢涛老师作为一名专业程序员,在工作之余仍抽出时间关注同学们的学习,着实让人钦佩。他曾与我分享他大学时期的故事,正是遇到了一位严格要求的老师,一位专业课程的领路人,大学四年才不至于荒废。他也常鼓励我多多帮助同学们解决问题,在共同探讨的过程中取长补短,改善思维方式,提升学习能力。还有李明学长和卢肖明学长,在学习专业课的过程中,我始终以助教们为榜样,虚心向他们学习,同时也暗暗期望有朝一日能像他们一样,带动更多的同学。
因此,在17年10月份,我向娄老师递交了助教申请书,希望能尽一己之力,参与之后一学期的教学活动,帮助同学们尽快适应这种教学方式,进一步激发对专业的热情。
前行
学期开始前与娄老师沟通,我的任务主要是根据教材每章的内容编写课后测试题、点评博客、汇总每周得分情况并绘制千帆竞发图等,课堂实践等具体评分工作由娄老师完成。
寒假主要研读了同学们的教材,观看了教学视频,并根据每章知识点编写题目。对于初学者来说,“做中学”固然是提升能力的绝佳方式,但编程基础课又区别于软件工程课,扎实的理论基础是“做”的前提。考虑到这个需求,我从课本上摘抄了部分重要的知识点作为题干,以考察同学们是否认真学习课本内容。为了避免形式死板,后期题目偏向了应用,比如填入正确的一行代码等等。这也算是为之后一学期的助教工作打下了理论基础。
寒假开始点评大家的预备作业时,深切体会到了娄老师的辛苦。由于这门课程面向整个专业开设,容量很大,选修的人数达到84人。按照每篇博客阅读时间3分钟来算的话,点评一次作业至少需要四小时左右。再加上部分同学回复后还需跟评,工作量着实不小。寒假时间较为充裕,预备作业的点评基本上都是利用整个上午或下午的时间完成的。寒假开学后课程较多,常常难以抽出完整的时间一次性完成点评。后来经过“构建之法”助教团队中各位老师和助教的点拨,意识到了碎片化点评的重要性。这样一来,只要能看手机的地方就能完成点评。课间可以点评,地铁上可以点评,睡前也可以点评......把四小时左右的任务碎片化,不知不觉就轻松完成了。
之后跟着刘乾学长学习了千帆竞发图的绘制。每周成绩更新后,在博客中更新得分明细和千帆竞发图,以便同学们自查,发现差距,确定努力方向。但由于班级人数众多,同学们很难从图中辨别出自己的成绩,因此保留了以学号为坐标的柱状图。这样一来,同学们既能得知自己的分数和排名,又能比较自己与班级其他成员的进步趋势,一目了然。
对于成绩保留精度的问题,曾与邹老师在群里探讨过。之前为了记录方便,同学们每次的分数都是四舍五入保留整数。后来邹老师指出了这一方式的缺陷。的确,在这种教学模式下,每位同学参与一个教学活动的得分基本不超过5分,尤其像课下测试这种活动,如果20分和29分都映射成2分,一学期下来,显然对某些同学不公平。之后便采纳了邹欣老师的意见,每次成绩均保留小数点后一位。
四舍五入保留整数的千帆竞发图
保留小数点后一位的千帆竞发图
徘徊
随着时间的推进,在越来越熟悉助教工作的同时,很多问题暴露出来。比如助教时间精力有限,在线上线下提问较多的情况下,没办法顾及所有同学。三月下旬,有幸参加了邹老师举办的助教交流会,交流后发现很多新手助教跟我有类似的困惑。不知不觉就带入了“保姆”的角色,偶尔还会帮学生安装软件,排查错误,调试代码等等。但这并不在助教这个角色最初设定的“功能”之中,而且对于提高同学的动手能力也起不到任何作用。在会上,邹老师、周老师、娄老师以及各位助教都提出了自己的建议,经过一番热烈的讨论,最终意识到要摆正自己作为“助教”的位置。(参考:助教的工作介绍 邹欣)
此时开学已一个多月,一些学生开始慢慢懈怠,一方面抱怨自己的分数低,另一方面对于老师和助教的评论和督促置之不理。针对这个问题也与娄老师进行过沟通,娄老师表示这是一种普遍现象,每届都会有这样的学生。老师和助教应该将主要精力放在积极主动的同学身上,一方面要保证整个班级的基本进度,另一方面对有学习意愿的学生给予更多指导,这样不仅节省了老师和助教的精力,更是“因材施教”的一种体现。
提升
进入五月份,教材上基础的内容已经过了一遍,娄老师建议我着手布置结对编程和团队作业。这两个环节之前几届都没有涉及,同学们的完成程度尚可。结对编程我负责博客评分工作,大部分同学对中缀和后缀表达式比较熟悉,也能按要求实现功能,但博客要素并不齐全,commit不规范也是一个突出的问题。因此按照评分标准扣除相应分数。即使一些前期基础比较扎实的同学,拿到这个任务的时候也难免感到无从下手,需要一步一步尝试并优化改进。老师要求的“把课本上的代码运行一遍”只是最低标准,只能从感性上对基本语法和功能有个浅显的认识。“加点代码,改点代码,问题驱动学习,是理解的最好方式。”
后期由于种种因素,比如临近选修必修各科期末考试,因此团队作业完成得比较仓促,大部分团队并没有合理的分工。团队作业本身不属于每位同学都需要参与的环节,只针对少部分希望拿高分的优秀学生。而在这之中,有些同学已经通过平时的努力得到了较为理想的分数,因此普遍积极性不高。如果之后还需保留这个环节,希望能在调动同学积极性方面有所改进,比如调整各个环节所占比重,或者其他额外奖励等。
附:对下学期课程的建议
《信息安全系统设计基础》选用《深入理解计算机系统》这本书,希望能给信息安全专业的同学们打下良好的计算机基础。这本书在CMU是一本计算机导论课,作者巧妙的从程序员的视角解释了计算机系统的不同内容:程序设计、计算机组成原理、汇编语言、编译原理、计算机网络,系统安全、软件工程...所以这本书特别适合在实践中学习,通过代码深入理解计算机软硬件系统。
在学习时,还需沿用上学期课程的方法,绝大部分知识需要自己动手,从实践当中获取。不过有了上学期的基础,这门课程也就不在话下啦。整体来说课本涉及的知识非常非常多,娄老师去年上课时讲,就连他自己仍在一遍一遍学习,而且每次学习都会有新的收获。但不用担心,课程的考察点都是一些基础的知识,只要把课本通读一遍,理解代码的含义并学会自己验证,拿到高分是没问题的。
知识多,更应注重平时的碎片化学习。整本书共十二章(V3是这样的,不知道有没有新版),700多页,如果每周学习任务都拖到最后一天,简单溜一遍教材,大概也就能把课下测试答个及格吧。实践更多考察的是对教材内容的理解程度。所以没事动动手,虽然不是严格意义上的编程课,但抱着课本去图书馆学习的时候,把电脑也拎上,这才是学习这门课程的正确装备。
开学之后就不做大家的助教啦,因为还要准备考试,时间非常紧张。大三这一年非常关键,所学课程也都是本专业的核心科目,不管之后读研还是工作,大三学好了,后面的很多问题都能迎刃而解。对于你们来说,博客写到这里还远远不够,但适应了这种学习模式,不管是娄老师的《信息安全系统设计基础》,还是大三下刘老师的《网络对抗技术》(欢迎信科专业小伙伴一起选课呀),都能非常轻松找到学习和生活的平衡点,即使每周一篇博客也不会觉得吃力。在实践课和考查课占比越来越大的情况下,刻意练习实践能力的你们一定会脱颖而出。预祝大家在后面的各门课程中都能取得理想的成绩~
写在最后
十分抱歉这么晚才完成总结!转眼暑假接近尾声,助教总结博客从暑假开始拖拖拉拉写到现在,终于能认真结个尾了。
暑假的第一个月在校内集训准备比赛,跟几位优秀的小伙伴一起闭关肝代码肝报告,七月底去武汉参加了比赛。虽说仍有瑕疵,但结果还算满意,最起码跟之前的比赛成绩相比有了很大进步,也算不辜负熬夜几天掉的头发(?)啦~八月份前两周参加志愿者服务,每天起早(贪黑倒是没有),四点半起床准备出发,不管烈日炎炎还是狂风暴雨,都要守在岗位上,锻炼身体,磨练意志。
扪心自问,自己对助教工作的重视程度不及刘伟康等其他优秀助教,私下跟伟康交流的时候对他做事的细致程度和毅力暗暗钦佩。本身大二的课程就比较紧张,他仍为了助教工作牺牲休息时间,这种责任心和使命感值得我学习。
不忘初心,方得始终。初心易得,始终难守。在一段新的路程开始之际,希望自己能牢记信念,保持热情,把“构建之法”助教团队精益求精,雷厉风行的精神和态度继续传承下去,在各个方面锤炼自我。再次感谢娄老师的谆谆教导,感谢邹老师和周老师细致的监督,感谢助教团队各位老师的倾囊相授,祝愿“构建之法”助教团队越走越远,让更多的学生受益。
2017-2018-2 165X 『Java程序设计』课程 助教总结的更多相关文章
- 2017-2018-2 165X 『Java程序设计』课程 结对编程练习_四则运算
2017-2018-2 165X 『Java程序设计』课程 结对编程练习_四则运算 经过第一阶段的学习,同学们已经熟悉了这门语言基本的用法.在一次又一次对着电脑编写并提交代码,进行练习的时候,有没有觉 ...
- 2017-2018-2 165X 『Java程序设计』课程 团队项目备选题目
2017-2018-2 165X 『Java程序设计』课程 团队项目备选题目 结合本课程时间安排,以及同学们的专业和课程内容,制定了以下六个题目供各小组选择.如有其他项目方案设想,可自行与老师沟通.老 ...
- 2017-2018-2 165X 『Java程序设计』课程每周成绩公布
2017-2018-2 165X 『Java程序设计』课程 每周成绩公布 本博客将跟随教学进度不定期更新,每次更新后将在课程群公布.如对成绩有疑问,请于公布成绩后的1天之内联系助教,进行审核确认. - ...
- 2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周
2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周 博客要求 组内同学需各自发表博客 博客中需包含以下内容: 相关过程截图 关键代码解释 遇到的困难及解决 ...
- 2017-2018-20172309 『Java程序设计』课程 结对编程练习_四则运算_第三周
2017-2018-20172309 『Java程序设计』课程 结对编程练习_四则运算 组队成员: 仇夏 学号: 20172310 博客地址: @王志伟 四则运算第一周博客 @仇夏四则运算第一周博客 ...
- 2017-2018-20172309 『Java程序设计』课程 结对编程练习_四则运算——第一周
2017-2018-20172309 『Java程序设计』课程 结对编程练习_四则运算 组队成员: 仇夏 学号: 20172310 博客地址:点击这里 1. 需求分析: 可生成题目: - 输入要想生成 ...
- 2017-2018-2 20165225『Java程序设计』课程 结对编程练习_四则运算
2017-2018-2 20165225『Java程序设计』课程 结对编程练习_四则运算 需求分析: 支持整数,可进行多运算符运算,有优先级. 设计思路: 在有括号的情况下,先计算得出括号中的结果,如 ...
- 20172325『Java程序设计』课程 结对编程练习_四则运算第三周阶段总结
20172325『Java程序设计』课程 结对编程练习_四则运算第三周阶段总结 结对伙伴 学号:20172306 姓名:刘辰 在这次项目的完成过程中刘辰同学付出了很多,在代码的实践上完成的很出色,在技 ...
- 20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结
20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结 结对伙伴 学号 :20172307 姓名 :黄宇瑭 伙伴第一周博客地址: http://www.cnblogs.com/ ...
随机推荐
- poj 2114 Boatherds (树分治)
链接:http://poj.org/problem?id=2114 题意: 求树上距离为k的点对数量: 思路: 点分治.. 实现代码: #include<iostream> #includ ...
- bzoj 2212 : [Poi2011]Tree Rotations (线段树合并)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2212 思路:用线段树合并求出交换左右儿子之前之后逆序对的数量,如果数量变小则交换. 实现 ...
- mysql test== 坑
错误 <if test="status == '1'"> 正确 <if test="status == '1'.toString()">
- Deep Learning(深度学习)学习笔记整理系列 一
声明: 1)该Deep Learning的学习系列是整理自网上很大牛和机器学习专家所无私奉献的资料的.具体引用的资料请看参考文献.具体的版本声明也参考原文献. 2)本文仅供学术交流,非商用.所以每一部 ...
- JDK源码分析(2)LinkedList
JDK版本 LinkedList简介 LinkedList 是一个继承于AbstractSequentialList的双向链表.它也可以被当作堆栈.队列或双端队列进行操作. LinkedList 实现 ...
- NOIP2018普及组模拟赛
向老师给的模拟赛,还没普及组难... 题目在洛谷团队里. 第一试三道水题,我46分钟就打完了,然后就AK了. 第二试一看,除了第二题要思考一段时间之外,还是比较水的,但是我得了Rank倒1,115分. ...
- mysql常见问题解决
日常使用mysql数据库遇到的一些问题,做下记录,会持续更新. 一.MySql Host is blocked because of many connection errors; unblock w ...
- BCD码(如何转换,转换方式的证明)
1. 十进制转2421码:小于4不考虑使用最高位,从最高位向最低位依次相减. 如3=2+1,为0011:7=2+4+1,为1101 2. 十进制5211码:按照最高位,次高位,最低位,次低位的顺序依次 ...
- R语言:随机抽样(sample函数)
如果想从一堆数据集中随机抽出一个数,用sample函数就能实现,代码展示如下: forehead<-c(249,189,128,111,184,233,313,120,151,196,135,1 ...
- redis前端启动和后台启动的区别
Part I. 直接启动下载官网下载安装tar zxvf redis-2.8.9.tar.gzcd redis-2.8.9#直接make 编译make#可使用root用户执行`make install ...