西电计算机导论与程序设计:科研创新路上“不灭的火炬”(西电计算理论与技术研究所)
从图灵“把人的思维用逻辑和数学过程描述出来”构想的萌生,到实体图灵机的出现,再到电子管计算机、晶体管计算机、集成电路计算机的诞生;从华罗庚归国组建中国第一个电子计算机科研小组,到我国首台亿次超级计算机“银河一号”、采用全对称共享存储多处理结构的超级计算机“曙光一号”、千万亿次超级计算机“天河一号”“神威·蓝光”的横空出世……一路走来,科学家们关于计算的思考不断迸发、凝聚、演进,以计算机为基础的“火种”照亮了科技领域无数未知之境,于荒芜中探索,于逆境中前行,于惊涛骇浪中奋楫,于瞬息万变中发展,凡是过往,皆是序章,未来与科技一道在涌动的字符中被不断创造。
在西安电子科技大学,就有着这样一门课,经典而又“新潮”,纯粹而又“融合”,承载着过往的辉煌,也闪耀着未来的曙光,它就是来自计算机科学与技术学院(以下简称“计科院”)的计算机导论与程序设计。
一门“混合式”的课程
在我国计算机高等教育发展的历史沿革中,西电是最早建立计算机专业的学校之一,计算机导论与程序设计作为计算机专业的核心基础课程已经开设多年,从早期的计算机导论、程序设计基础两门独立课程到后来合并为一,再到大类招生后成立专门的校级公共课程组,依托计科院的组织和管理,形成一支由崔江涛教授担任首席教授,万波教授担任课程负责人、计科院骨干教师作为核心建设团队,引领覆盖全校十二个学院70余位教师的课程团队。课程因其基础性、核心性,始终在学校教学体系中起着“压舱石”般的重要作用。
作为一门重要基础课程,“混合”一直是计算机导论与程序设计的核心特色之一。它不仅体现在课程的融合,团队的融合,更是在教育教学细节上下足了融合“真功夫”。“考虑到计科院在教学中兼顾系统结构和图灵机原理,而其他学院则会偏向计算机的应用和发展趋势,于是我们设计了三个版本的教学大纲,分别是面向计算机大类的学生、非计算机大类的学生和试点班学生。同时,我们从激发自主学习能力出发,把原先的课程设置改成了课程学习32学时、线上12学时、实验20学时的混合课程模式,并引入技术调研报告和综合实践项目,引导学生主动查阅资料了解计算机技术发展趋势,并通过综合性实践项目融会贯通所学内容。”身为课程负责人的计科院本科教学副院长万波教授介绍道。
实际上,团队对于这门课程的“混合式”改革最早可以追溯到2013年,在校级公共课题组成立后,计科院第一时间将成熟、领先的经验做法推广到全校,一改传统的理论考试和手写程序,取而代之的是在自主研发的在线测评系统上进行机试,以期最大限度地反映出学生课程学习的真实成效。这套系统也是学校数字化智慧教育系统的早期雏形。
一门将创新元素贯穿始终的课程
创新是一门课程生命力的源泉。除了拥有鲜明的“混合式”课程特色,计算机导论与程序设计还极具创意地将竞赛元素引入课程中来。“早期的竞赛元素引入是针对试点班,因为我本身也是学校程序竞赛基地的负责人,我们让学校竞赛基地里那些国赛获奖的学生给试点班学生进行竞赛相关的基础和算法方面的培训。到了2022年,这门课程变成了4.5个学分,正式增加了8个学时竞赛方面的培训。”对于课程的竞赛化改革,万波介绍道。
成功路上往往荆棘遍布,课程改革路上也有诸多不易。在课程的建设初期,万波带领团队自主研发了在线评测系统,后期实践中,引入云计算技术和分布式数据库集群,先后解决了系统兼容性和灵活性的问题,开始在全校投入使用。然而,相对于计算机中心每批次最多900人使用的资源现状,每年5000人左右的课程考核又成了团队面临的新难题。为此,团队每年都要出6套题,每套题又包含4—5个具体题目以适应不同层次的考核需求。但是万波和课程团队对这样的“辛劳付出”丝毫没有抱怨,反而更多将关注点放在课程竞赛化改革的优势建立上,“很多后续的专业课都会跟今天的竞赛内容有关,涉及编程能力和算法,尤其是对于计算机大类后面要学的数据结构、算法设计、操作系统等等,都需要用到比赛中锻炼的编程能力和掌握的基本算法。如果后续参加国际竞赛,这些在竞赛实践中的锻炼和经验会让学生上手得更快。在保研的时候,参加过竞赛并获奖的同学会更容易被优先考虑录取。对于普通学生而言,在熟悉了这个模式之后,对后续课程的学习也会有很大的帮助。”万波说道。
课程的创新不只在竞赛化的考核方式上,也体现在其授课内容本身,“正如课程名称表述的那样,‘导论与设计’,导论是理论基础,先充分地了解图灵机的原理、数字编码的原理……然后通过设计作业,引导学生设计专用图灵机并编写一个图灵机模拟程序,类似的还有‘1个案件6位嫌疑人’的逻辑分析等,借助这些创新式的方法和案例就实现了知识的前后贯通,把人的思维与计算思维融合,形成理论到实践的闭环。”万波说道。
此外,课程在与业界的融合实践上也有独特的思路,“我们这个课每年都有两次企业讲座,请企业的工程师来给学生讲授将来工作会碰到的一些编码规范性问题和代码安全性问题。”万波介绍道。同时,课程团队还创新性地引入了华为鲲鹏通用计算平台,既锻炼了学生跨平台的研发能力,也提升了学生解决问题的能力,“我们希望学生提前去了解我们国家在这方面所做的努力,同时我们也有很多学生会去华为工作,如果能够提前熟悉华为提供的这些平台,工作的时候就可以更好地融入企业。”万波解释道。
一门真正有启发的课程
“1.01的365次方是多少?”“0.99的365次方又是多少?”
一年有365天,每天多做一点就是1.01,看起来只比1多一点,但如果求它的365次方,结果将会是一个很大的量级变化。如果每天都比别人多做一点,量变引起质变,个人能力最终会有一个明显的提升。
“我们在讲循环的时候,会引导学生感悟重复地去做一件事情,并且每次多做一点的积累与收获。”在谈到根据C语言知识点引导学生体悟人生哲理时,万波介绍道。
同时,课程团队也非常重视对学生家国情怀的培养,“中国计算机学会设立了一个CCF历史记忆认定委员会,我们也在这个组织里,它就会挖掘整个中国计算机发展的历史,我国是从20世纪50年代开始发展计算机,老一辈科学家们做了很多工作,有一些标志性的事件和重大成果,这些对于学生去了解中国的计算机的发展是非常有利的,我们也考虑把这些资源引入到导论课里去,让学生们明白,课堂上不光是要关注老师在讲授什么知识,更多的是思考自己将来要成为一个什么样的人,这个很重要”,万波说道。
凭借优质的内容、创新的模式,西电计算机导论与程序设计获评2021年陕西省线上线下混合式一流课程,团队多位老师获学校本科优质教学奖,并获批西电-华为“智能基座”产教融合协同育人基地金课,自编教材获陕西省计算机教育学会优秀教材一等奖。同时,课程也成为教育部的优质示范观摩课,吸引来自39所大学的95人听课,推动了编程能力培养新模式在全国范围内的应用。万波作为课程负责人还在陕西省计算机教育学会创新人才培养模式学术研讨会上做了题为“AI 竞赛对学生编程能力的培养与强化”的报告。
谈到课程的未来,万波表示,核心课程建设是学校重点工作,也是全面提升人才自主培养质量的关键,后续课程组将以国家一流课程为目标,持续提升课程质量,探索人工智能赋能教学,强化学生编程能力和工程素养,为各专业后续人才培养打好基础。“在教材建设方面我们参考教育部‘101计划’新形态教材的模式,汇聚课程团队多位老师的力量,让各板块内容上最优秀的老师写自己最擅长的章节,努力把最好的东西去呈现给学生。同时,随着生成式人工智能技术的不断成熟,课程组在人工智能赋能教学方面开展了探索,目前已经形成了两项辅助工具。基于知识点的教学资源检索能够根据知识点,检索到讲解该知识点的视频片段,有效辅助教师利用往年录播课程建课,提高学生课后学习效率。个性化编程辅导系统基于大语言模型开发,采用开放式问答模式自动标记程序问题,给学生提供全天候在线编程辅导。课程本身在不断发展,经过一两年可能有更多变化,希望这门公共课能够给覆盖到的全校90%的学生开一个好头,打好基础,按照学校‘英语不断线,编程能力不断线’的要求,让学生们在大学四年乃至更远的将来都能具备一个稳固、扎实的编程能力。