记者 金苑 余冰洁 闵晓瑞
从教近20年,李祥对教学的热爱从未减少,对编程更是爱得深沉。他说,自己最大的爱好就是编程,遇上同样爱编程的同事出差住在一间房,那么俩人就甭睡了,可以拿起电脑边敲代码边探讨,一直到深夜。
执着的热爱,使他在编程与教学路上保有常人难以企及的激情。每个学年400多课时的教学任务,课下还提供24小时QQ咨询服务,兼任IT协会指导老师,暑假也献给了集训的学生。偶尔也会觉得疲惫,“实际上,生活和工作的确很难协调,疲惫过后想想学生和编程,又来了干劲儿”。
这份疲惫和干劲儿带来的,是湖北经济学院计算机专业学科竞赛的佳绩连连。2019年3月,李祥和其他指导教师一起带领学生在第四届中国高校计算机大赛团体程序设计天梯赛(以下简称“天梯赛”)中,获全国团队三等奖1项、湖北省团队一等奖1项、三等奖2项,并荣获“湖北高校一等奖”。同年3至5月,又带领学生在第十届蓝桥杯全国软件和信息技术大赛(以下简称“蓝桥杯大赛”)上获157个省级奖项和26个国家级奖项。
在省内高校中,这份佳绩实属傲人。李祥坦言,压力不小,“如果我不继续拼命搞,以后怎样继续取得好的成绩?”
好课堂,培养好学生
李祥与计算机的结缘颇为有趣。
计划经济时代,他的父亲在某批发企业的管理部门任职,负责监管工厂产品的生产和供应,一天到晚拨弄算盘。李祥耳濡目染,也掌握了一手算盘的绝活儿。父亲认为,计算是非常重要的工作,儿子将来的专业得解决这个难题,于是,替儿子填报了计算机专业。
1989年李祥大学毕业时,国内很多企业还没有引入计算机,李祥在工作了一年之后,工作单位才正式拥有了计算机。从那时起,他开始做软件研发和系统维护管理工作,和编程结下了不解之缘。
虽然在企业工作了10余年,李祥内心却存有一个教师梦。“上小学和中学时,遇到了几位非常好的老师,他们让我觉得课堂教学,是一种能够让学生享受其中的乐事,激发了我想当老师的愿望。”2000年,当他看到湖北商业高等专科学校(现湖北经济学院)的招聘启事时,原本有教师情结的他毫不犹豫地投递了简历,经过层层筛选,2001年正式入校成为教师。
在前几年的授课过程中,他发现一味按照教材顺序授课,效果并不好,学生必须掌握的一些重要知识和技能没有得到充分的学习和训练。为此,他参考了国外的相关书籍,结合实践经验,对授课顺序进行了调整,使之更符合人的认知规律。
最典型的就是在《C语言程序设计》中,将递归与循环的先后顺序颠倒。在这门课中,递归是重要且困难的内容,很多学生无法理解。国内的教材都把递归放在循环后面讲,学生一旦学会了循环,就很难接受递归的思想,很多学生对此有畏难情绪。李祥试着把递归放到循环之前讲解,学生们感到非常神奇。他把递归比作“心想事成”,学生用递归方法来解决问题,“你想它是什么,它就成了什么!”自己脑中的想法变成了现实。而循环则是“脚踏实地”,根据实际步骤反复执行,直至完成任务。通过调整授课顺序,先讲递归、后讲循环的方式,帮助学生扫除了障碍,打开学生解决问题的思路。
在他的课堂上,最为学生所称道的是,李祥精心制作的多媒体课件,一改往常晦涩理论的堆砌,巧妙地利用动画来演示操作过程。软件Q1841班许梦娇亲切地称呼他为祥哥,“我们现在在学《数据结构》,有线性表和二叉树,教材写得不是太好懂,祥哥却能把复杂的问题简化,用有趣的形式传授给我们,大家听完就明白了。”她表示,李老师的PPT会有各种对比图和动画,每个动画都对应着要处理的操作,“我们在学‘栈和队列’时,他用铁轨上的车皮来演示栈和队列的进出过程,还举出银行的叫号机和我们在食堂排队打饭的例子。”
为了提高学习的积极性和趣味性,李祥还经常在课堂上现场写程序,通过一步步地推导,让学生直观地了解编程思路和具体操作过程。出错是编程过程中常有的事。现场写程序出错的时候,往往能吸引学生一起来找错误,有时候李祥甚至故意制造错误,这样一来,勾起了学生的兴趣,也锻炼了大家的排错能力。
遇到实践型课程,如《程序设计课程设计》这门课程,通常情况下,老师只需布置设计任务,由学生自主完成设计,老师最后验收即可。但由于这是学生入学后第一次独立设计一个较大的程序,缺乏必要的经验,李祥增加了教学环节:引入一个实际的案例,把“自顶向下、逐步细化”等软件工程的理念在案例中展现出来,让学生学会正确的设计方法,不再盲目地照搬网上搜来的各种错程序。等到课程设计结束时,李老师还要请每一位学生上台演示自己的设计成果,培养学生的言语表达能力和上台讲话的勇气。借此机会,学生与老师可以深入交流和沟通,其他学生也能互相借鉴。虽然这种验收方式费时费力,但他一直坚持这么做。
随着从教生涯的延长,李祥从在课堂上饱含热情到注重提升授课内容的技术含量,着力适当拓展延伸内容,引入工程化方法,更好地对接企业的人才需求标准。拓展的教学内容包括如规范的程序书写格式、多文件的大程序架构方法等。“写多文件的大程序很有必要,教材上只有单文件的小程序,我就自己在课堂上和作业里补充这些内容,让学生学会架构大系统。”因此,李祥教过的学生找工作时显示出明显的优势,他们在企业的笔试环节遇到的考题,有些就是在学校做过的作业,处理起来得心应手。
真训练,锤炼真本领
近几年是计算机专业学生奖项的“丰收年”。
在去年的第三届“天梯赛”上,我校在湖北省获得2项省级团队二等奖和1项省级团队三等奖,总成绩位列湖北省第3名,荣获“湖北高校一等奖”,并夺得1项全国团队三等奖。在今年的第四届“天梯赛”上,我校在湖北省获得1项省级团队一等奖和2项省级团队三等奖,总成绩位列湖北省第2名,再获“湖北高校一等奖”,再次夺得1项全国团队三等奖。我校取得的成绩超过了省内多所理工类高校。
在去年的第九届“蓝桥杯”大赛上,我校在软件类本科组个人赛的省赛中共获得89个省级奖项和16个国家级奖项,学校获得“全国优胜学校奖”。
在今年的第十届“蓝桥杯”大赛上,我校在软件类本科组个人赛的省赛中共获得157个省级奖项和26个国家级奖项,学校再获“全国优胜学校奖”。我校学生的获奖比例超过全国平均水平。
丰收,源于经年累月的课堂教学;源于PTA系统应用后的大量练习;也源于暑假的集中式培训。
李祥别具一格的授课风格、与实践紧密结合的授课内容和根据情况及时调整的进度安排,使得学生们在课堂的收获大大提升。经常有蹭课学生来到课堂上旁听。
2016年起,李祥开始尝试利用现代网络技术手段,大面积使用PTA进行辅助教学。PTA系统是浙江大学开发的教学辅助系统,该系统提供学生作业的自动批改功能,包括客观题和程序设计题。学生在该系统上做题,可以立刻知道结果是否正确,继而修改错误,重新提交,大大地提高了学生刷题的积极性。
“好学生喂不饱,作业发布出来没多久就全部做完了。”他笑着说出这个“幸福的烦恼”。为了让学生们有题可做,李祥开始了自己的PTA出题之路。这些习题,不仅要写题面文字,还要有正确答案,更重要的是要为每一个题目提供一批精心设计的测试数据——系统要靠这些数据把学生作业中的错误检测出来。为了达到教学目的,李祥针对每个题目的要求设计对应的测试数据,使错误的程序无法通过。“如果题目要考察算法的执行效率,我还要专门编写程序来生成上万的测试数据。学生必须写出符合要求的高效算法才能得分。”正因如此,设计测试数据的时间往往比出题目的时间多好几倍,一整天下来只能出三、四道题目。
白天题目出不完,只好晚上继续熬夜出题。他出的作业题几乎全是自己的原创题目,网上搜索不到相关题目和答案。“我自己出的题都有相应的教学目的,直接在系统里找其他老师出的题,有时并不能完全符合我的教学意图。为了达到教学目标,只好自己去编题,所以我在PTA上出题花的时间非常多。”他打趣说:“这几年经常熬夜出题,头发就是这么熬白的。”
李祥孜孜以求设计出最贴合课程内容、最符合学生实际的题目,目前已超过了1000道题目,并且仍在不断增补和修订。根据最近公布的信息,我校在PTA上的出题量位居第四。受益于大规模的习题训练,李祥发现学生的专业能力有明显的提高,学弟学妹们开始在学科竞赛中超越学长学姐。
在以“蓝桥杯”“天梯赛”为主的学科竞赛中,李老师和软件工程系的其他老师一起挑起了指导的担子,一干就是10年。每年暑假,他们都对参赛学生进行为期一个月的集训。集训课的内容不同于正常教学,内容多、难度大,老师的备课压力比较大。李老师承担的是“C语言的高级技术和相关算法”的教学任务,这些年来他从来没有过假期。2014年的暑假,他父亲不小心摔倒,膝盖受伤,在卧床养病期间,李祥每天清早把家里的事安顿好后,就匆匆赶往教室。
“蓝桥杯”大赛是目前国内规模最大的程序设计类学科竞赛,包括北大、清华在内的超过1200余所院校,累计20万余名高校学子报名参赛。“虽然蓝桥杯大赛没有被列入教育部的学科竞赛榜单,但它是一个普通学生可以够得着、对专业能力提升非常有益的比赛。通过参加比赛,编程能力上去了。”比赛获奖的学生,其优势非常直观地体现在就业上,这些学生很容易找到理想工作。“只要学生能有所得,我们都很愿意投入时间帮助他们。”
“目前,被列入教育部学科竞赛榜单的程序设计类竞赛只有ACM-ICPC大赛一项,它是美国计算机协会主办的世界级比赛,题目难度非常大,而且是全英文的,对于我们的学生来说太难了,首先看懂题目都是一个大问题。该比赛获奖的国内高校大多为985、211院校。”李祥表示,目前他们也在寻求解决方法,主动向其他学校学习借鉴,后面也将着手准备提高我校学生参与国际赛事的能力水平。
爱学生,也爱编程
李祥还记得,做教师的头几年,计算机专业的学生多是从其他专业调剂而来,计算机专业难度大、学生学习热情低,他身为专业老师,为了把学生引进门,颇费了一番功夫。
为了让大一新生爱上这个专业,每个学期他们都会邀请已毕业的学生回校开讲座,与在校生畅聊计算机专业的就业情况、工作内容和发展前景等。现在,这项工作已经成了日常工作,每个学期都会和学办的老师一起联系毕业生,请他们介绍IT行业的现实情况。
一些新生在入校时,对于计算机的基本操作一窍不通。为了消除学习的障碍,防止学生产生畏难情绪,李老师作为IT协会的指导老师,每年通过协会组织“打字比赛”,让学生学会正确的打字指法,将个人赛改为团体赛,比赛结果取团队平均成绩作为排名的衡量标准,使全体学生都行动起来,相互督促、共同提高。
打字方法掌握了、编程能力提升了,又发现不少计算机专业学生内敛、不善表达。作为毕业论文指导老师,不仅要注意专业问题,更得琢磨文章的语言表达问题。“常常觉得自己更像个语文老师。”有一年,李祥召集了一帮学生为一位毕业生作模拟毕业答辩。不料,原本对毕业论文非常熟悉的同学,在人前讲话磕磕绊绊、理不清头绪,李老师陪着他反复演习到了深夜,错过了宿舍闭门时间,只好将学生带回家继续演练。临睡前,还亲身示范答辩流程,帮学生梳理逻辑线条,讲述答辩注意事项,最终该生成功通过答辩,还被评为“优秀”。
“这是蛮有意思的一件事,是一辈子的回忆,也因此和这位学生的感情不一般。”李祥笑着回忆道,这位学生工作以后还常常与他联系。执教期间,李祥多次指导本科生毕业论文获评“省级优秀论文”。
程序设计课程难度大,学生在遇到困难后如果不能及时克服,就会产生挫败感,学习的积极性和主动性下降。为了避免这样的情况,李老师每个学期都会创建课程学习的QQ群,全天候响应学生的提问。
偶尔也有心烦的时候。比如,有些学生把课上反复强调过的问题,再次提到QQ群里,期望再讲一遍;还有学生直接把作业题发到群里求答案,完全不去思考和研究。“我担心自己的有问必答会成为某些学生课上不听讲、课下不思考的阻碍,所以现在正在慢慢修正我的辅导方式,对于某些反复强调过的问题和过于简单的问题,我会冷处理,等待学生自己寻求答案,实在解决不了时再和他沟通。”
对于这样枯燥、重复的训练和答疑,李祥在近20年里反复做着。而计算机领域变化莫测,企业应用更是日新月异,倘若只局限于日常工作,很难跟上时代发展的步伐。已经被课程与培训任务压得喘不过气的老师们,极难抽身去学习最新的技术,这也让课堂教学内容存在落伍、掉队的风险。
最近,他正在琢磨如何利用网络教学平台,把课堂教学内容录制成视频,供学生自习和复习,提高教学效率,同时也为老师自己赢得一些时间来提升自身的专业实力,思考如何改进教学方法。
李祥在十几年前还是湖北省歌舞剧院爱乐合唱团的一员,后来,因工作繁忙,经常缺席合唱团的排练和演出活动,最后只能退出合唱团,一心一意写程序,他说自己现在最大的爱好就是写程序。指导学生竞赛的老师们,也全都是编程爱好者,大家只要坐在一起,就会津津乐道讨论各种算法问题。
日常教学和学科竞赛,占据了李祥几乎所有的时间。寻求生活与工作的平衡,让他感到苦恼,尤其是近年来身体屡屡传出吃不消的信号。“我也很矛盾,很不舍。但我既想上好课,又想带好比赛,只好继续做下去。”
李祥坦言,后续将寻找更加高效的方法,比如开通网络课程、梳理常见问题的答案、培养精干的学生团队等,让更多的学生可以通过多种形式参与到自己的课堂教学和竞赛训练中。