以我个人参加本科生毕业答辩的经历来回答一下这个问题。
首先,我在参加计算机专业本科生毕业答辩的过程中,通常更关注技术选型的合理性,以及毕业设计所涉及到的新技术,很少会问到具体的实现代码,毕竟对于计算机专业的同学来说,编写代码是最基础的技能。
也有几种情况我会问一下具体的代码,其一是学生在报告中大量描述了实现代码,比如PPT当中有很多关于代码的呈现,此时我相信答辩的学生也希望老师与其就代码展开交流,这种情况下我会就代码做出一些提问。
其二是学生在做创新成果迁移的过程中,没有谈到具体的实现过程,尤其是迁移没有开源的创新成果时,我会了解一下具体的代码实现过程,但是不会要求逐行讲解,只是会关注一下实现的流程,此时基本上就能够了解学生是否独立完成了代码编写。
其三是学生在报告过程中出现了明显的错误,让我认为代码无法实现其描述的功能,此时我会要求学生描述一下自己的代码编写细节。当然了,这种情况下大部分同学往往都会意识到自己陈述时出现了偏差,而及时进行纠正。
这种情况下我给同学们一个建议,如果老师已经给出了明确的否定意见,千万不要跟老师就代码问题做出太多解释,尤其是不要坚持与老师相悖的观点,及时采纳老师的建议是务实的作法,也应该感谢老师提出的建议,这是一个体现自己素养的过程,也会避免后续答辩过程中出现失控的情况。
按照历史经验来看,如果某位老师就一段代码提出了自己的质疑,大概率这名老师对于这段代码是非常熟悉的,此时如果再坚持与老师相悖的观点,有可能导致其他老师也加入进来,这种情况就比较麻烦了,会放大自己的错误,也会严重挤压后续的交流空间。
计算机专业本科阶段的毕业设计并没有明确的创新要求,所以老师会重点关注毕业设计所采用的技术选型,以及是否有一个完整的解决方案,如果是做前沿创新成果的场景复现,老师会重点关注一下这名同学对于前沿成果的理解,以及在场景复现过程中所遇到的问题。
按照历史经验来看,保研的同学会更关注一些前沿创新成果的复现,这部分同学往往已经提前进组开展科研活动了,所以会按照自己读研期间的主攻方向来开展毕业设计,而对于计划就业的同学来说,往往会更关注工程实践过程的陈述。
总体上来说,当老师问到代码实现过程时,大部分情况都是希望答辩的同学能够提升自己的信心,避免过于紧张而不能发挥出自己的真实水平。
最后,如果有计算机专业相关的问题,欢迎与我交流。