面向系统的计算机专业实践教学体系

时间:2022-09-22 04:26:16

面向系统的计算机专业实践教学体系

文章编号:1672-5913(2011)21-0017-05 中图分类号:G642 文献标识码:A

摘 要:深入理解计算机系统对提高计算机专业学生计算机应用系统设计能力具有重要意义。使学生深入理解计算机系统的重要途径之一就是面向系统的计算机专业实践教学体系建设。本文主要介绍东南大学面向系统的计算机专业实践教学体系建设探索经验,以供相关教学研究人员借鉴。

关键词:面向系统;实践教学;课程设计;系统综合

随着计算机科学技术的不断发展,计算机应用领域的不断扩大,计算机专业的学生如何提高竞争力,是计算机教育领域一个非常重要的研究课题。对计算机专业教育,一个非常重要的思路是分类培养[1]:培养将来计算机科学技术的研究人员和应用计算机科学技术解决实际领域应用问题的计算机应用人员。对计算机科学技术研究人员,需要加强对计算机系统的理解,以更好地设计出新型计算机系统。对计算机应用人员,若能对计算机系统深入理解,则可在计算机应用系统架构时,充分利用计算机系统本身的特性,提高计算机应用系统的性能。因此,让学生深入理解计算机系统是计算机教育的重要内容[2-3]。让学生深入理解计算机系统,一个重要途径就是探索面向系统的计算机专业实践教学体系。

1 东南大学面向系统的计算机专业实践教学体系

计算机系统包括硬件和软件。对于硬件,其核心是CPU;对于软件,主要包括操作系统(可延伸包含网络操作系统)、编译软件和数据库系统。

对面向系统的专业实践教学体系进行建设,东南大学的目标是加深学生对计算机系统的深入理解,希望学生在“做中学、学中研、研中创”,能设计自己的计算机系统;主要方法是强调三结合:理论与实践相结合、课内与课外相结合、教学与科研相结合。

根据“强化基础、软硬结合、立足系统、面向应

用、加强实践”教学理念,东南大学形成了如图1所示的面向系统的专业实践教学体系。

该实践教学体系以硬件系统综合实践和软件系统综合实践为基础,通过“计算机系统综合课程设计”课程加以综合,通过学生科研实践和毕业设计强化“面向系统”的理念。

硬件系统综合实践包括硬件实验和接口实验。硬件实验主要是让学生运用EDA技术、采用软件设计一个指令集自定义的模型计算机,并下载到FPGA芯片,让学生深入理解CPU结构、会设计一个CPU。接口实验主要包括存储器扩展、定时器、串口、并口、中断、A/D、D/A、DMA控制器、小型微机应用系统的综合设计与测试等实验,通过实验,学生能够理解微机接口及其应用技术。

软件系统综合实践主要包括编译原理课程设计、操作系统课程设计和数据库系统课程设计。对编译原理课程设计,要求学生能设计可生成编译程序的程序,也就是编译程序生成工具程序(包括Lex和Yacc),加强学生对程序设计语言本质和编译软件的理解,进一步提高程序设计能力、特别是大型软件的设计能力。对于操作系统课程设计,要求学生在阅读Linux操作系统源代码的基础上添加新的系统调用,修改调度程序的代码,扩展一个新的调度算法;或者基于Java虚拟机,完成基于Java虚拟机的线程调度及请求页式管理的Java实现,以加深学生对计算机操作系统内核的理解,提高对操作系统内核的分析与扩展能力。对于数据库系统课程设计[4],通过设计一个小型的数据库管理系统,为今后从事数据库系统研究和开发、充分利用数据库管理系统提供的各种特性解决实际问题打下坚实的基础,实验内容主要包括数据库事务处理系统设计与实现、SQL语言解析与执行以及索引优化技术的实现。

对于计算机系统综合课程设计,从系统设计的角度,通过对SOC(片上系统)的硬、软件设计,将学生带进计算机系统硬件和系统软件综合开发的领域,让学生初步理解软件、硬件协同设计,给学生一次综合的训练的机会,加深学生对计算机系统的理解。

2 典型实践课程建设探索

这里主要介绍东南大学硬件实验、编译原理课程设计、操作系统课程设计、数据库系统课程设计和计算机系统综合课程设计建设探索经验。

2.1 硬件实验实践课程

东南大学长期重视硬件教学。东南大学硬件课程群是江苏省优秀课程群。1985年,为了加强计算机组成原理的综合实践,我校开始独立设置计算机硬件实验实践课程。硬件实验实践课程内容是学生自己设计一个简易的CPU,可以完成七条基本指令。学生通过这样的实验,初步改变了惧怕硬件的心理,在对课程充分理解的基础上,自主设计自己的CPU,不设条条框框,学生实验完成情况令人满意,改革初现成效。部分学生的课程设计在全国相关教学会议上被作为样板,受到与会者的一致好评。由于课程建设成效显著,“模型计算机系统课程设计”(硬件实验)课程建设于1993年被评为东南大学教学改革成果二等奖。从1999年开始,我们探索在原有CPU设计基础上增加接口部件,并将EDA技术引入到课程设计中,为开设“计算机系统综合课程设计”打下基础。

经过长期的建设,硬件实验实践课程目前将着眼于CPU的组织和严格的时空安排,着眼于计算机硬件系统的设计方法和基本电路的实现方法,由小型部件实验和大型课程设计组成。课程目标是通过实验,在理论与实践相结合的基础上,加深学生的整机概念,进一步弄清计算机的内部结构和时空关系,学会指令功能的电路实现方法和技巧,掌握运用EDA技术进行设计和调试的工作方法,提高学生自行设计、调试分析的独立工作能力。

小型部件实验用传统的中小规模集成电路完成,使学生对运算器、存储器、数据通路、总线等基本概念有感性认识,对数据流和控制流的关系、计算机主要部件的工作过程有较清楚的了解。

大型课程设计要求学生运用EDA技术,采用ALTERA公司的MAX+PLUSII软件或Quartus II软件,自己设计一台指令功能完备的模型计算机,下载到本实验系统提供的FLEX10K系列芯片上,并调试成功,最后通过检查验收程序,写出报告。对于模型计算机设计,分为两个层次:微程序控制的模型计算机设计与调试和复杂的模型计算机设计与调试。对于微程序控制的模型计算机设计与调试,可自行规定数据格式和指令格式,在所提供的条件范围内设计一台能够实现基本指令的微程序控制的模型计算机。对于复杂的模型计算机设计与调试,要求具有多种寻址方式、中断系统、16条以上指令,掌握用Verilog语言设计计算机硬件的能力,掌握用软件工程的思想设计计算机硬件的工作方法及工作过程。

该课程不安排考试,学生成绩以其学习态度、设计能力、实验结果以及实验报告情况评定。具体分配如下:学习态度10分,设计水平和实验结果

60分(设计方案30分、实验结果20分、创新10分),实验报告30分(方案和电路10分、文字表述10分、总结和分析等10分)。总分按优、良、中、及格、不及格评分。

2.2 编译原理课程设计

编译程序是重要的系统软件,其设计理论基础涉及形式语言与自动机理论。编译程序设计的简单方法是按照特定的程序设计语言描述规范进行相应的词法、语法分析和目标代码生成。主要不足是程序设计语言描述规范发生改变时不能做快速适应。因此,在编译程序设计时,一种新的方法是使用编译程序生成工具生成编译程序。典型编译程序生成工具有Lex和Yacc。为了使学生对Lex和Yacc的实现机理有深入的理解,东南大学从2005年开始独立设置编译原理课程设计实践课程。

该课程的设计目的就是通过设计一个通用的能够自动根据正规表达式生成词法分析程序的工具程序SeuLex和一个通用的能够根据上下文无关文法及其语义规则自动生成语法分析程序的工具程序SeuYacc,使学生深入理解编译原理,为在大型软件系统实践中设计性能优良的软件系统打下基础。

SeuLex设计的主要内容是给定一个语言的Lex完整描述,通过程序实现对应的正规表达式集分析、相应非确定的有限自动机构造、确定化和最小化;根据最小化的确定有限自动机生成对应的词法分析程序。对于SeuYacc设计,主要内容是给定一个语言的Yacc完整描述,通过程序实现对应的LALR(1)分析表构造过程;输出基于LALR(1)分析表、具有LALR(1)分析总控程序和LR(1)分析表查表程序的语法分析程序。

该课程考核根据每个学生小组必做实验和选做完成情况、实验结果的正确性、选做实验的数量和完成情况进行小组评分,作为该小组成员的最高得分;对小组内各个成员评分,结合学生小组分工情况和组内评价进行评分。

学生普遍认为,该课程设计对加强学生对编译理论的理解、提高大型程序的设计能力具有重要作用。

2.3 操作系统课程设计

操作系统是计算机系统的核心软件,对操作系统的深入理解,可帮助学生充分利用操作系统提供的功能,提高计算机应用系统的效率,从而使学生能够“做好应用”,更进一步设计自己的操作系统软件。

为了加深学生对计算机操作系统内核的理解,提高其对操作系统内核的分析与扩展能力,东南大学从2005年开始独立设置操作系统课程设计实践课程。

该课程主要是为学生将来在基于Linux的嵌入式系统开发或在Java虚拟机上的软件开发工作奠定基础。

该课程提供两类难度相当的实验,学生可按照自己的兴趣选做A类或者B类。

A类:本课程设计要求学生在阅读Linux操作系统源代码的基础上完成两个主要项目:在Linux2.4的内核中添加新的系统调用,以理解系统调用的工作机制,掌握扩展内核功能的技术;在Linux2.4中修改调度程序的代码,扩展一个新的调度算法。

B类:在Java虚拟机上完成两个项目:基于Java虚拟机的线程调度;请求页式管理的Java实现。

该课程考核根据每个学生小组必做实验和选做完成情况、实验结果的正确性、选做实验的数量和完成情况进行小组评分,作为该小组成员的最高得分;对小组内各个成员评分,结合学生小组分工情况和组内评价进行评分。

学生普遍认为,通过该课程设计,对操作系统的理解有一个较大的提升,对构建自己的操作系统有了一定信心。

2.4 数据库系统课程设计

数据库管理系统是信息处理的重要系统软件,充分理解数据库管理系统,对提高信息处理应用系统的性能和效率具有重要的作用。

为了为学生今后从事数据库系统研究和开发、充分利用数据库管理系统提供的各种特性解决实际问题打下坚实的基础,东南大学利用在各种数据库系统开发方面的长期科研积累,从2005年开始独立设置数据库系统课程设计实践课程,安排学生3~4人一组,分配角色,不限机时,遵循软件工程的要求自行设计并实现一个麻雀虽小、五脏俱全的数据库管理系统MyDBMS,通过实践,使学生更加透彻地理解数据库系统的基本原理和内部实现技术。

该课程实验将分为两大部分:一是数据库事务处理系统设计与实现;二是SQL语言解析与执行,以及索引优化技术的实现。对于数据库事务处理系统实验,主要是实现关系型数据库管理系统中的两步提交事务处理系统;对于SQL语言解析与执行实验,主要实现标准SQL语言的解析,以及执行控制模块;对索引优化技术实验,主要实现B+树索引结构并优化。

该课程考核根据每个学生小组必做实验和选做完成情况、实验结果的正确性、选做实验的数量和完成情况进行小组评分,作为该小组成员的最高得分;对小组内各个成员评分,结合学生小组分工情况和组内评价进行评分。

从教学实际情况来看,绝大多数学生都能按要求完成任务,学生普遍反映虽然很辛苦,但收获很大。该实践课程所依据的理论课程“数据库原理”于2010年成为国家精品课程建设项目。

2.5 计算机系统综合课程设计

计算机系统综合课程设计是软件综合实践和硬件综合实践的集成,要求学生从CPU 设计、接口设计到BIOS设计、汇编器设计、编译程序设计和应用示范程序设计,需要软硬综合。东南大学从2003年开始探索计算机系统综合课程设计实践课程建设。

2003年,东南大学按照计算机专业课程群的总体大纲,以及“软硬结合、立足系统”的教学指导思想,参考加州大学伯克力分校以及日本法政大学的课程设计实践的经验,独立设置了“计算机系统综合课程设计”实践课程,将“计算机系统综合课程设计”定位在采用EDA、OO(面向对象)、SOPC等技术,综合软硬件实践,形成小型嵌入式系统的设计目标。将学生5~6人分为一组,设计内容包括嵌入式CPU设计、接口电路设计、BIOS设计、编译器设计、简单应用程序设计等,真正将学生带进计算机系统的硬件和软件设计与开发领域,让学生得到一次全面综合的实践训练。

该课程硬件部分实验是设计一个可运行指定的31条MIPS指令的RISC型MIPS16微处理器,具有32位指令、16位地址线和数据线。实验要求包括处理器采用哈佛结构,有独立的2KB的指令存储器和2KB的数据存储器;具有2个中断源入口,两级中断优先级(可选);具有2个16位定时/计数器;具有一个4×4键盘控制器和4位7段LED控制器;具有一个简单UART串行通信控制器或一个SCI串行通信控制器;具有看门狗功能(可选);用不同的方法实现移位指令,并分析对主频和功耗上的影响(可选);增加乘法器、除法器、标志寄存器等(可选)。

该课程软件部分实验包括含有编辑功能的MIPS16汇编(编译)程序;含有基本输入输出系统BIOS(可选);含有硬件各部件测试程序;MiniC编译器(可选);集成开发环境IDE的设计(可选);含有一个应用程序范例(可选)。

在多年的课程设计中,学生们不仅完成了简单的SoC设计,更不断进取,分别完成了流水型、超标量型、带分支预测的流水、带指令预取的流水、双核等多种先进的设计。2005级学生的课程设计成果MiniSys IDE已作为东南大学硬件基础课的实验工具。2006级学生尝试了增加鼠标、黑白液晶屏、彩色液晶屏、步进电机、点阵LED等外部设备的接口电路、并初步尝试了3核处理器的设计。该课程于2009年成为教育部―Intel精品课程。

3 保证实践教学效果的建议

实践教学对提高学生的能力和素质具有重要作用,但教学工作量较大,需要教师有很大的投入,才能保证教学效果。东南大学为了保证实践教学效果,首先从实验实践教学考核政策上予以倾斜,学校实验教学与技术岗位编制中,充分考虑实验室建设与实验教学改革的需要,重点建设的实验中心,改革与建设编制岗位数所占的比例可以达到中心实验技术岗位的20%以上。

另外,针对独立设置的课程设计[5-6],有如下建议。

1) 任务布置阶段,因人而异,避免一刀切:对基础较差的学生――给出基本任务要求,鼓励学生向更高目标走,绝不降低基本要求;对于大多数学生――给出的任务比基本要求略高,鼓励他们多进行讨论,让这部分学生能“吃饱吃好”;对于能力强的学生――让他们自行组织讨论,充分发挥能动性,提出自己的方案,可以四个不限定(不限定学生设计的总体结构,不限定学生具体实施设计的步骤,不限定最终的目标与验证方法,不限定学生实施自己设计的时间和地点),大大提高学生的学习兴趣。

2) 任务执行阶段,做到教师全程跟踪:对于基础差的学生――讲清楚基本原理和设计中要注意的关键问题,必要时给这部分学生补一点基础的知识;大多数学生――引导学生能够更为完善地完成设计,并在设计中或多或少地表现出一些自己的特色,这部分学生要多做一些启发性的工作;能力强的学生――放手让他们去做各种探索性实验,要经常参加他们的讨论,听取他们的思路,并及时为他们提供有关的资料。

3) 任务验收阶段,采用招标式课程设计验收方案:各组展示本组的设计,组长做总体性介绍;成员展示自己设计的特色;各组之间展开竞争和互评,用自己的最优秀部分赢取验收教师和其他组成员的好评。

4) 严把设计质量关:杜绝抄袭现象;规范设计报告格式,提高设计报告质量。

4 结语

提高学生系统认识能力对计算机专业学生具有重要意义。东南大学面向系统的计算机专业实践教学体系建设探索经验表明,面向系统的综合实践很有必要,学生不仅加深了对计算机系统的理解,而且提高了分析问题、解决问题能力,提高了学生的专业兴趣,为今后走上工作岗位,能够很快适应新环境奠定了较好的基础。

当然,面向系统的综合实践对理论基础不够扎实的学生还具有较大难度。如何使所有学生均有很大的收获,还需要不断地探索。希望本文对相关教学研究人员有借鉴作用。

参考文献:

[1] 教育部高等学校计算机科学与技术教学指导委员会. 高等学校计算机科学与技术专业核心课程教学实施方案[M]. 北京:高等教育出版社,2009.

[2] 杨全胜,王晓蔚,任国林,等. 计算机专业研究型人才培养的专业内涵与人文内涵探讨[J]. 计算机教育,2009(16):72-74.

[3] 翟玉庆,邓建明. 计算机学科研究型人才培养模式的探讨与实践[J]. 计算机教育,2005(1):33-35.

[4] 徐立臻,王伟. 软件学院数据库原理课程实践环节改革的思考与实践[J]. 计算机教育,2007(11):141-143.

[5] 杨全胜,王晓蔚,吴强. 对提高高校计算机专业课程设计质量的思考[J]. 计算机教育,2007(22):38-41.

[6] 杨全胜.强调系统综合观,鼓励创新精神:记“计算机系统综合设计”课程改革实践[J]. 计算机教育,2008(23):25.

System-oriented Practice Training Curriculum for Students Major in Computer

ZHAI Yuqing, YANG Quansheng, WANG Xiaowei

(School of Computer Science and Engineering, Southeast University, Nanjing 211189, China)

Abstract: It is very important for students of computer major to improve the abilities of design of computer application systems after understanding computer systems deeply. One important approach of understanding computer systems deeply is that a system-oriented practice training curriculum for students of computer major should be developed. In this paper, we introduce our experiences on studying a system-oriented practice training curriculum for students of computer major to provide some suggestions for the related teaching researchers.

Key words: system-oriented; practice teaching; curriculum design; system integration

上一篇:谈数据库课程中的E-R建模方法教学 下一篇:谈计算机专业工程型与应用型人才培养