东南大学近几年来,一直致力于提高学生的计算机系统综合分析、设计、实现和优化能力的培养,通过解决“设计与实现一种带有一定功能的SOC小系统”这样一个复杂工程问题,来提高学生的实践能力、综合能力和创新能力。通过多年的努力,学生的动手能力、综合解决问题能力得以提高,独立完成一个完整系统的欲望更为强烈。2017年的计算机系统综合课程设计中,全部20个组(每组5-7人)的14级学生每个组都为自己的系统提供了一个到多个应用案例,将SOC设计从单纯的理论性设计与实现,拓展到具有一定的目标功能的,探究型、创新性设计与实现,切实在解决一个实际复杂工程问题上锻炼自己的综合能力和专业素养。
这里尤其要提到的是以14级本科生王铎(09014222)为组长的6名同学(另外5名分别是於泽邦(09014427)、杨阳(09014105)、王逸然(09014118)、潘东元(09014231)、杨刚(09014226))。从课程设计一开始,他们就给自己定的目标是做一个可以玩的“坦克大战游戏机”。为此,他们进行了非常周密的规划,课后经常能看到他们6人在教室和实验室讨论的身影。按照课程设计要求,他们必须完成从CPU到接口,从编译器、汇编器到游戏程序的全部设计与实现,由于是开发游戏程序,因此还需要美工与作图。从教师的角度,觉得任务量太大,希望他们缩小点规模,但6个帅哥和美女以初生牛犊不怕虎的精神,坚决表示一定能在课程设计的4个月内完成任务。
整个课程设计课时只有68学时,但分散在短学期和长学期将近5个月的时间里。由于本课程设计采用开放式实验方案,因此实际上学生可以将课时以外的业余时间全部用上。同学们首先根据游戏机的需要,将重点放在多核处理器、键盘和VGA接口,C语言编译器的研究、设计和实现几个关键问题上,同时增加基本图块设计、浮点运算单元和课程设计要求的其他接口设计与实现等。很快方案得到落实、按部就班的设计与实现工作也在组长的协调下顺利推进。
非常难能可贵的是同学们在设计与实现过程中,发现每次修改软件都需要重新综合、实现硬件,而综合、实现硬件需要45分钟的时间,非常不方便,于是他们自行决定增加串行下载模块,在硬件不修改的情况下,每次通过串口将软件下载下去,这只需要1分钟不到的时间。
“坦克大战游戏机”提前完成之后的同学们意犹未尽,看看课程设计验收时间还未到,他们决定将实现“坦克大战”游戏编写的一些程序段封装成类似于API的库,通过调用这些库,利用自己的编译器,又很快完成了贪吃蛇和俄罗斯方块2个游戏,从而使他们的“坦克大战游戏机”升级成为了一个可支持多个游戏的小游戏机。
6位同学在4个月的时间里将大学四年所学的知识全部调动起来,并根据要完成的目标去学习新的知识,他们的成功,鼓舞了进行系统能力课程改革的老师们,也为东南大学计算机专业计算机系统能力培养系列课程改革带来了新的思路,我们将会把这项工作推到一个新的阶段。