一对南大教师的教学“冒险”

谭添(左)和李樾。

■本报记者 赵宇彤

李樾和谭添。

在国际程序设计语言与软件工程的江湖里,不少人都听过这对搭档的名字。凭借12年一线基础程序分析的科研经历、11年开源工具编写经验,他们推进了多个基础程序分析领域公认难题的解决边界,在一些问题上至今保持着最佳解法的“战绩”。

2019年,从丹麦奥胡斯大学博士后出站的李樾拒绝了多家企业的高薪聘请,加入南京大学(以下简称南大)计算机软件新技术国家重点实验室。与他一同入职的,是合作了15年的老搭档谭添。

然而,回国后头3年,曾经多次出现在顶级学术会议的两个年轻人,仿佛“消失”了——他们“闭关”了。

“闭关”期间,这对搭档顶着考核压力,一度做好了“一起被辞退”的心理准备。直到他们带着自主可控的程序分析平台“太阿”,出现在大家面前。

其实,这样一个前途无量的组合,回国的初衷只是想当两个好老师。解释初衷时,李樾反问:“你拼命说服自己、经营自己、透支自己,跻身学术圈的‘名利场’,最后又能得到什么呢?是合群带来的安全感,还是被认可后的虚荣心?”

如今,回国6年,作为南大计算机学院副教授和助理教授,李樾和谭添依旧保持着学生时代的运动装扮,扎根于课堂。

今年9月末,记者去南大时,秋雨初歇,天气依旧闷热。李樾刚结束了一堂软件分析课的讲授。尽管满头大汗,他却始终穿着外套,捧着保温杯——里面泡着益气生津的中药材。

才37岁的李樾自嘲:“当老师太消耗气血。”

不点名、不签到,前三排靠抢

南大有一门特殊的课——不点名、不签到、面向全体计算机学院本科生,却堂堂爆满,多年入选“我心中的好课程”,甚至被学生“吐槽”:“不早点来,可能都抢不到前三排。”

“我希望上了这门课,很多博士都感到棘手的问题,你们(本科生)因为具备足够的基础,也能提出解决思路。”课上,李樾提出了一个“小目标”,希望学生们能在程序设计语言方向有更多专业上的自信。

程序设计语言是计算机软件的核心。随着社会信息化的提速,各领域对软件的可靠性、高效性和安全性都提出了更高要求,也呼唤着更多优秀的程序设计语言人才。

“但我国绝大多数高校,无论计算机学院还是软件学院,程序设计语言方向少有全职教授,中国计算机学会也没有程序设计语言专业委员会。”2018年,尚在奥胡斯大学做博士后研究的李樾和谭添发现了这一矛盾。

2019年回国后,他们决定开设一门程序设计语言方向重要的专业课程——静态程序分析。

“放弃广度、追求深度、例子驱动、讲深讲透。”简单的16个字,却是此前几乎难以实现的教学目标。

静态程序分析不仅要掌握程序设计语言知识,还得具备系统设计、算法分析等多学科能力,理论与实践跨度很大。彼时,国内开展相关课程与研究的高校寥寥无几。

他们作出了一个大胆决定:面向本科生开设这门高难度课程。对两个刚回国任教的年轻人来说,这简直是“搬起石头砸自己的脚”。

只有底气远远不够。静态程序分析是一门“动手课”,还需要配套的实验作业平台。

这让李樾和谭添更头疼了。“当时国际Java(一种流行的程序设计语言)生态的通用型程序分析平台完全被国外垄断,比如加拿大的Soot、美国的Wala、希腊的Doop,我们要花费大量时间熟悉平台、开展研究,做出的成果反而成了宣传它们的工具。”

李樾冒出了更大胆的念头:干脆做一个自主研发、完全可控的分析平台。

他兴奋地找到谭添:“我们未来所有的论文都在自己平台上搭建,平台也能反过来提升成果的可见度和影响力。”

“弄个新的、更好的没问题。”谭添也早有此意,“主要其他平台代码很‘挫’,学生用了估计会心烦意乱。”

两人一拍即合:课要开,平台也要搞!

2020年2月,《软件分析》迎来了第一堂课,李樾和谭添别出心裁,同步开启了B站直播,至今,仅第一节课的播放量就已达15万。

“程序分析的课实在太少了”“以前没有系统性学过,这是我看到的第一个公开课”“这门课真的帮助我们安全领域的学生打下了非常好的专业基础”……评论区里,“云学生”纷纷表示感谢,还有十多家企业申请将课程用于企业内部的工程师培训。

“教学远比科研重要”

为了上好这堂课,李樾和谭添赌上了一切。

他们拒绝了所有横向课题,只为全心全意上好这门课。因为不舍得牺牲学生的科研、休息时间,新冠疫情期间,身体不适的李樾顶着高烧,一个人熬夜加班。

而作为“青椒”,他们肩上还扛着巨大的考核压力。

“教学远比科研重要,但要做好一年连一篇论文都没有的准备。”李樾在知乎坦露心声,“学生也可能会对长时间没有好产出的老师感到失望和质疑。”

这些都没能动摇他们。“我和谭添说,咱哥儿俩大不了最后一起走,能上课的地方很多,二本的学生也是学生,网上的学生也可以是咱们的学生。”

但要做好教学,他们还需要个“抓手”——分析平台。其中涉及大量基础程序分析、程序设计语言理论、高级编译技术相关内容,还有很多无从参考的设计细节。

两个“工头”只能白手起家。他们借鉴了多个国际流行的分析平台,预想了未来现代软件的发展需求。

3年间,办公室的巨大白板上,密密麻麻写满了数字和符号,两个脑袋几乎要贴到板子上,写了擦、擦了写,一晚上能写五六块板子,才慢慢敲定了全部细节。最终,第一个版本近10万行代码由谭添一人完成。李樾一再强调:“我是做不出这样的平台,但是谭添可以 。”

在“白板会战”里,他们定下了4个目标:易学、易用、高效、可扩展。其中,易学、易用被摆在首位。

“容易上手并觉得好用,是我们的核心卖点。”李樾语气里满是掩不住的自豪,尤其对本科生来说,更要让他们敢用、自信地用、胸有成竹地用,“通过一个个实验作业进行系统训练,深化对理论的理解”。

没日没夜的讨论里,学院和团队给了他们颗“定心丸”。“领导没让我们做不喜欢的事情”“这一点(准备承受来自团队领导的压力)是我所有担心里唯一不用担心的”。

现实也没有辜负这份热爱:满满当当的教室里,百余名学生抻着脖子,跟着李樾一步步操作,其中有本科生、研究生,还有其他专业蹭课的学生。

同时,李樾也收到了越来越多的反馈:“好用”“写起来很爽”“在编程上更有信心了”……

李樾眼眶发热。2019年6月,回国前,他赞同了一个知乎帖子“对于青年科研人员,教学和科研能否两全”,其中写道:“教育是非常有获得感的,经常面对学生也容易保持初心。”如今,李樾也感受到这份幸福。

他们决定向高校、企业、科研院所无偿开源,目前已有30余所高校学者、20余个政府或企业相关部门、200余家国内外高校及科研院所学生用上了该分析平台,并产出多项科研成果。

2023年6月,谭添带着基于该平台产出的论文赶赴美国,参加程序设计语言方向的顶级会议PLDI,而他的同行者、该论文第一作者,是一名他们指导的本科生。

不但要自信,甚至要“狂”一些

谭添将这一平台命名为“太阿”,它得名于战国时期的欧冶子和干将联手铸造的名剑,锋利无比,光华绝伦。

这寄寓着他们的抱负,也象征着他们二人“十年磨一剑”的经历。

2010年,李樾还是西北工业大学(以下简称西工大)的研一学生。在担任本科二年级课程助教时,他一眼就注意到谭添:皮肤白净、身形消瘦,不爱说话,桌上却摞着厚厚的外国专业书。

“这是个不一样的人。”李樾不自觉留意起他,谭添计算机基础好,编程能力更强。次年,李樾要做一项课题时,立马想起了谭添。

就此,两条人生轨迹开始相交。他们一同前往澳大利亚新南威尔士大学求学,又一起来到奥胡斯大学深造。

“但我们性格完全不同。”李樾和谭添相视一笑,接着开口,“我急脾气,他很稳重;我追求有趣,他更务实;我想做不一样的事情,他只想把一件事做到最好……”

因此,在合作之初,他们经常吵架。“我讲了半天,他听不明白,他说的我也理解不了。”西工大的教室、新南威尔士大学的图书馆,都留下过他们争执的回忆。“后来慢慢才形成默契,不用说话就能心领神会。”他们说。

差异、争执,反而加深了理解。他们愈发清楚地发现彼此在科研上的高度契合。

“我觉得自信还不够,还要再狂一些。”李樾话音干脆,“尤其是搞科研的,就要走那些少有人走的路,就要在别人的质疑声中坚定自己。”

这份“兵来将挡、水来土掩”的气势源自二人的多年默契。

“我们一起完成了很多‘不可能’的事情。”李樾掰着指头细数,读博期间,他们解决了程序分析中的一个边界问题,兴奋地投了顶级会议,却遭到当头一棒——4个评委反馈意见都是C。

他俩不甘心,找了个会议室,没日没夜地计算、讨论,“差不多每天能写废一根马克笔”。反复推演后,李樾觉得问题出在写作上,“理论越难的论文,越考验是否能逻辑清晰地表达”。

李樾把自己关在法学院的图书馆里,厚厚的法典让他感到沉静。他上网翻阅不同研究领域的写作材料,一点点“啃”写作技巧,每天尝试写个“豆腐块”。后来,他们把改好的论文再次提交,这次收到了4个A的满分评分。

这样并肩奋战的时刻,他们经历了无数次:一起留学,一起求职,一起来到南大,一起用行动上好一堂基础课。

“如果我讲得不清楚、没逻辑,上课敷衍,是不是意味着学生们日后也可以这样做?那如果我把知识点讲得清晰、易懂,他们是不是可以在专业上多一份自信?”李樾语速很快,眼里闪着光。

余音回荡。半晌,谭添笑了笑。

“我的想法和他不同,我更喜欢技术,也喜欢跟别人讲我对技术的理解,我希望学生们能真正喜欢上编程。”谭添语气平静,这个念头早就在他心底萌芽。

2011年,还是大三的他写下一篇博文《致软件学院的老师们的一封信》:“兴趣是最好的老师,如果老师们能把这位‘最好的老师’带给学生,对国家、对行业、对学生而言都是莫大的福音。”

虽然投身教育的初衷不同,但他们却共同走在一条特立独行的路上。

“当老师太消耗气血”

疫情之后,学生们发现,原本活力满满的两位老师“没电”了。

拼命工作的李樾,身体频繁“亮起红灯”,谭添在帮他代了几节课和处理繁杂的工作后,有一次突然身体不适,被紧急送往医院。

“当老师太消耗气血。”李樾在知乎上自嘲地写道。

但只要站在讲台上,他们都努力调整好自己的状态。

“大家跟我一起思考”“听懂就点头,跟上我的节奏”“这个地方听不懂没关系,后面还会带大家通过其他内容帮助进一步理解”……课堂上,李樾用各种方式调动学生的情绪。

“教好一门课是一种精神输出,老师的态度、专业、价值观都会被学生感受到。”下课后,李樾的嗓音满是疲惫。

尽管他一再强调,“不点名、不签到、不强制到场,可以听网课”,但《软件分析》依旧堂堂爆满。

“我有时会在课上补充一些最前沿的领域知识和研究成果,带学生一起思考。”李樾笑言,自己在努力打扫课堂的“霉味”,并乐此不疲。“我觉得教育的真谛就是潜移默化地教会学生自信、接纳自己、勇敢面对人生。”这比赚钱、发论文更让他快乐。

李樾一直记得一个细节。在其本科担任助教时,有一天,一名陌生的学生突然找他谈心,觉得自己成绩不好,也没有出色的编程能力,怀疑自己是否适合学计算机。李樾没有盲目鼓励,而是推荐他读一本经典专著,并让他把知识点理解后画出来。

不久之后,那名学生捧着十几张思维导图再次找到李樾时,眼神里多了份笃定,也找回了对专业的信心。这段小小的插曲,也成了李樾投身教学的原动力。

然而,身体状况迫使他们探索不同的教学和科研方式。

“之前,我们俩经常熬一个月帮学生改论文,其实就是重写。”李樾介绍,后来他们发现,过度呵护反而会阻碍学生成长,便决定放手。“现在实行‘学伴制’,硕士生和博士生自由结对,互帮互助,他们深度讨论后还有疑问的或解决不了的,我们再插手。”他说。

他们还发现,匹配研究方向的横向课题能帮助学生接触企业真实需求,但要求学生必须解决真实问题,不能只做“脏活累活”。

李樾和谭添的课题组不打卡,他俩也不参加组会,更不要求学生发论文,但每个人都必须“能说会写”。

只有当学生要投论文时,他们才会把二十多人召集到一起,打开共享屏幕,逐字逐句地讲解,耐心地教他们如何组织思路、准确表达。

他们想教给学生的远不止知识。

“持续学习、化为己用的能力非常重要。”这一点,李樾深有感触。早在2010年,他就在本科毕业论文致谢里写道:“学到了‘怎样学习’,此足以让我阔步毕业后的人生。”

不过,他偶尔也会被命运的“回旋镖”击中。

“我总是告诉学生,不要迷信权威,要勇敢表达。”李樾第一年做博士后时,就曾在顶级会议上当面“评价”了一众“大佬”。

“但如今在学术交流会议上被自己的学生当众反驳,感觉确实不一样。”他嘴上抱怨,语气里却是掩不住的骄傲。

李樾和谭添欢迎所有的学生,无论遇到学业难题还是人生困惑,都可以直接来他们的办公室——门上贴着《凡人修仙传》主角韩立的海报,“白手起家、永葆善良、勇敢坚韧”,这既是他们共同欣赏的品质,也是他们努力践行的准则。

上一篇:纪念|苏菲:最后的课堂——怀念老师朱荫贵
下一篇:从蒙古和塞尔维亚请演奏家,上音附中推动室内乐教学国际化
免责声明:

1、本网站所展示的内容均转载自网络其他平台,主要用于个人学习、研究或者信息传播的目的;所提供的信息仅供参考,并不意味着本站赞同其观点或其内容的真实性已得到证实;阅读者务请自行核实信息的真实性,风险自负。

2、如因作品内容、版权和其他问题请与本站管理员联系,我们将在收到通知后的3个工作日内进行处理。