#教育听我说#

本人是中国地质大学(武汉)计算机学院老师。这几年计算机火爆,生源水平水涨船高。近年来,我越来越感受到,本科生足够参与科研活动并取得重要成果。现在,我把带领本科学生开展科研活动的得与失进行总结,希望能给大家带来一些启示。

先阐述几个观点,然后接下来用实例去论证这些观点。首先需要解释的是,科研可以为本科生带来什么?先讲收益,可能会激发兴趣吧。如果本科期间能够做出突出的科研成绩,研究生资格能够更轻松地获得。而且,能在硕士研究生阶段处处抢占先机,在研究领域中如鱼得水。接下来,有勇气,有实力挑战人类最高学位——博士。下一个问题,本科生科研做到什么境界就算成功?目前比较现实的有两条路。在老师的指导下发表SCI文章,或者在重量级科研比赛中获得国家级奖项。做到这样的境界,就能有可能保证收益了。然后,本科生如何开展科研?最重要、最幸运的事,是有一个好的指导老师。如果指导老师能把抽象的研究任务分成两部分,一部分是学生力所能及的任务,另一部分老师直接就做了,那么学生可能在科研中发挥自己的作用,并到成功的彼岸。

接下来将分别提供一个发表文章的,一个比赛获奖的案例来论证上述观点。文章的详情如下。1. Xinxin Wang, Chengjun Li* , Jiarui Zhu , et al., L-SHADE-E: Ensemble of two differential evolution algorithms originating from L-SHADE[J]. Information Sciences, 2021, 552:201-219.

计算机本科怎么做科研(本科生也可以做好计算机科研)(1)

王同学,2020届,数理学院毕业生。他2019年上半年主动找到我,要求做研究。我当时疑惑很多。比如,数理学院的学生为啥认识我?但是,他的素质让我十分满意,这些小问题也懒得多问。具体而言,他Matlab程序设计能力强,正好我手里几个差分演化算法代码都是Matlab实现的。我给他的研究任务也很直白,我对比如L-SHADE-EpSin算法有些修改的想法,具体是如何如何。他试试实现这些想法之后,算法能变好不。当时是第一次指导本科生做研究,也没有啥经验。他一直在试,如果试完告诉我效果不好,我马上再换一个想法,他再试。

朱同学,2020届,计算机学院毕业生,2019年下半年主动找到我,要求做研究。这次我的疑惑就少一些。她在《并行计算》课认识我的。她入选了李四光计划,要有论文才能完成学业。我让她研究一个C 实现的L-SHADE-RSP代码,尝试修改提高。她有天跟我说,她发现大部分差分演化算法都是用Matlab完成的代码,就她那个另类。她觉得那个C 代码写得不好,有时候运行出问题。需不需要她直接改成Matlab的。我很惊喜,同时也很怀疑。计算机学院是不教Matlab的。老师们如果要用,也是自学。我自学了大概两天,只能勉强按自己的想法修改别人写好的代码,在原代码的基础上修修补补。她不知道自学了几天,居然有如此自信。后来她真的改成Matlab了。这个时候,我突然有了想法,上述两个算法都很好了,它们合在一起是啥效果?我让王同学做了这样一个尝试:先执行L-SHADE-EpSin,如果发现已经没有什么提高了,马上切换执行L-SHADE-RSP,如果又不行了,再切回去,如此循环往复。然后不久,王同学兴奋地告诉我,结果显著变好了。然后我开始指导他做了必要的实验,运行了很多现有的算法,做好比较的图表。我直接拿着结果写了论文。我跟两个学生说,我们的思想太简单,虽然结果好得惊人,有些刊物还是不会录用的。我直接找了个性价比最高的刊物投了稿。心想,结果如此惊人,应该很顺利。果然,三个月不到,审稿意见来了,审稿人直接要代码,希望眼见为实。我按意见修改论文,并回复审稿意见(包括提供代码链接)之后,一个月就接收了。我后来问王,这样你可以保研不?他说他已经错过保研的时机,只能考。希望凭借这个文章跳到计算机学院来。但是考研没过线。后来,他毕业答辩时就把这个文章内容当做毕业设计,答辩小组老师说可以帮他办下一年保研,他拒绝了,心里想的是数理学院工作不好找,他打算考个985大学的计算机研究生,拿这个文章做复试的金字招牌。至于朱嘉瑞同学,凭借此文章,完成了李四光计划的要求,顺利毕业,目前在复旦读研。她说复旦毕业要求比较高,要发文章。如果到时候指导老师无法帮她,希望我指导她发一篇毕业。我毫不犹豫就答应了,因为她把C 转成Matlab,也是科研成功的重要助力。论文发表后,至少有三起各国研究人员通过邮件索要代码的事情,如图所示。

计算机本科怎么做科研(本科生也可以做好计算机科研)(2)

我开始想不通,不就是两个算法转来转去,很难实现吗?这些人为啥一定要我给代码,自己不会写?后来想起来,L-SHADE-RSP的Matlab代码可能市面上没有。所以朱同学做的事情,还是很有难度的。当然,我都没给代码,因为我预感再稍微改改,还有惊喜。

毕业之前,我问了王同学怎么知道我,为啥要找我?他说,参加美国大学生数学建模竞赛时,来自计算机学院的队友推荐的。他的目标一开始就是转出数理学院,计算机专业才是他读研的目标。哪怕暂时放弃研究生也是如此。他很感谢我在学术上的提点。毕业之际,朱同学送我一张明信片留念。很有意义哈。

计算机本科怎么做科研(本科生也可以做好计算机科研)(3)

获奖的详情如下。这个还是省里的奖状,国家的还没发。

计算机本科怎么做科研(本科生也可以做好计算机科研)(4)

我给大数据195181-2班上完《高性能计算》之后,建立了一个旅行商问题高难度爱好者群。旅行商问题是课程报告中涉及到的问题。我和进群的同学相谈甚欢,有了进一步合作研究这个问题的初步意向。后面当我看到挑战杯报名时,先是计划把王那篇文章拿去比赛。但学校的说明会上宣布,今年的比赛规则大变,学生成果中不能出现老师的名字,所以上面那篇论文并不能做为参赛材料。我立即决定,召唤旅行商问题高难度爱好者群的几个同学组队。他们本身通过课程,已经对这个问题有了一定的了解,所以效率比较高。为了申报参赛材料,我们很快就投了一篇旅行商问题的论文如下。

Kongxuan Yao, Weixiang Sun*, Yongchuan Cui, et al., A Genetic Algorithm With Projection Operator for the Traveling Salesman Problem [C]. 2021 IEEE International Conference on Artificial Intelligence and Industrial Design, May 28-30, 2021, Guangzhou.

自此,我们就取得了参赛资格。可能是因为今年规则大变影响了众多队伍,我们一路杀进湖北省决赛,然后获得了一等奖。虽然国家赛只得到三等奖,也足以让参赛的六名同学获得保研机会。目前,我在指挥崔同学继续研究。如今,我们利用非传统的并行方式,击败了人工智能领域著名的算法。如果文章是我个人的,我会毫不犹豫继续深入,最终有希望投稿人工智能顶级会议。但是考虑到崔同学也有贡献,我们决定投稿演化计算领域的顶级会议(差两个档次),做一点成果为崔同学送行。我相信,后续研究还可以继续下去。写稿子的同时,崔同学正在我的电脑上远程控制代码。

计算机本科怎么做科研(本科生也可以做好计算机科研)(5)

总之,本科生已经可以在科研中做出重要贡献了。只要学有余力,心中有梦,都可以尝试一下。

,