现有的专业基础课程在单独课程内容封装方面采用“横向条状分割”方式,在课程体系组织方面采用“纵向层次递进”方式。
这种方式在知识传授上表现良好,但是在能力培养方面却存在不足。为在计算机专业人才培养方面兼顾知识传授并侧重能力培养,我们对计算机专业的主要基础课程及课程体系进行了重构,力图以“问题求解”为核心,并进一步将问题求解能力落实到“以问题抽象为核心的计算机算法设计能力”和“以平台支撑为核心的计算机系统设计能力”的培养上,构建一个新型课程体系(如图1):
图1 面向问题求解的计算机专业基础课程 1.问题求解中的算法设计能力课程重构
对和算法设计密切关联的“计算机导论”、“离散数学”、“程序设计”、“数据结构”和“计算机算法设计与分析”5门课程的内容进行了重构,变传统的“按内容性质横向划分”为“围绕问题的纵向组织”,例如不再将计算机科学中涉及到的离散数学知识单独组织为一门课程,而是依据问题相关性打散分布到整个课程中去。整个课程全面涵盖了:计算机为什么能帮助我们解题?要让计算机帮我们解题需要什么样的数学基础?如何构建算法与组织数据以适合解题的需要?用什么方案可以设计出合适的算法?如何分析解题的结果和可能的期望等计算机专业能力培养的核心问题。
为了便于教学实施,算法线课程体系由四个“论域”构成,它们是:
● 论域1:计算入门与数学证明:该论域主要引导学生理解计算思维最核心的概念,了解计算的基本方法与局限,接受基本的形式化训练,掌握抽象数学证明的基本方法;
● 论域2:经典数据结构与算法:该论域主要引导学生理解数据抽象,理解并能够应用常用的数据结构;掌握重要的算法设计策略,以及算法设计与分析的基本理论与方法;理解并能够应用支持上述内容的离散数学工具与方法;
● 论域3:典型应用问题及其求解方法:该论域主要引导学生掌握典型应用中抽象出来的重要算法问题的求解方法;理解并能够应用支持上述内容的离散数学工具与方法:
● 论域4:复杂性理论初步与“难”问题的算法:该论域涵盖问题求解中的复杂性理论的基本内容与问题规约方法;解决“难”问题的主要方法、技术以及相关的重要理论结果。
以上每个论域的教学在一个学期中完成。每个论域由16-18个论题组成,每个论题由若干个具有较高内聚性的计算机问题及其相关知识和实践能力训练内容构成,每个论题的学习内容大致需要一周时间完成:2-3个小时的深度引导讲授,2-3个小时的小组讨论,8-10个小时的课外阅读和编程训练。
这些论题大致覆盖了原来计算机系统概论、离散数学、程序设计、数据结构和算法设计与分析课程的内容。我们的课程中还包括了有关“计算入门”的内容,应该说相当于以计算思维为内容的计算机导论课内容。因此,完成该课程的两年学习之后,可以不再修学传统的上述5门课程。
2.问题求解中的系统设计能力课程重构
对“计算机系统概论”、“数字逻辑电路”、“计算机组成原理”三门课程进行了重构,并融入部分“操作系统”和“编译原理”内容。现有以平台支撑为核心的课程体系设计方案中,仍然依据计算机硬件级别和计算机组成中的器件、CPU、接口、系统等层次划分方式组织课程。这种设计方案具有较好的硬件知识传授优点,但是缺乏和计算机软件融合的特点,在系统观培养、平台设计能力培养上有明显不足,已经不能有效满足国际一流计算机人才培养的需求。鉴于此,我们在参照国际一流高校教学经验的基础上,以“高级语言程序→汇编语言程序→机器指令→CPU设计”为主线,纵向组织教学内容,并设计了“编程实验”、“硬件设计实验”和“创新实验”三阶段递进式的实验教学方案。新体系分为三个阶段,每个阶段设置为一个学期完成,希望学生能够具有系统层面的认知和设计能力,建立 “从程序员视角理解计算机系统结构和硬件设计,从系统结构和硬件设计者的视角理解程序执行”的软硬件密切相关的计算机系统设计思想。
同样,我们也将上述三阶段安排为三个论域,以三个学期为教学时间完成学习和能力培养:
● 论域1:数字电路与系统设计:围绕组合逻辑设计和时序逻辑设计两大核心内容进行展开。采用“实例化”教学思想,以后续论域所用功能部件作为设计实例,强调对大型硬件设计平台和开发工具等的实验力度。
● 论域2:计算机系统基础:建立软件要素与平台支撑之间的基本映射,包括:高级语言数据与机器级数据、高级语言语句与机器级指令、程序在不同阶段被存储在哪里、数据和指令被如何访问及动态分配、程序如何被转换为机器代码及被启动执行、程序执行过程中可能遇到的异常情况及其对策、I/O函数的支撑等。
● 论域3:计算机组成与设计:建立系统级的计算机设计视角。包括指令集体系结构设计及其与上层的软件的关系、不同类型指令在数据通路中的大致执行过程、单周期CPU和多周期CPU设计、指令流水线的实现以及高级指令级并行处理技术、I/O进行连接及输入/输出组织等。
这些论域大致覆盖了原来计算机系统概论、数字逻辑电路、计算机组成原理课程的内容。因此,完成该课程的两年学习之后,可以不再修学传统的上述3门课程。
|