面向问题求解的计算机专业基础课程的重构与实践

时间:2024-01-22 点赞:48766 浏览:99711 作者原创标记本站原创

本文是一篇计算机论文范文,计算机方面有关毕业论文提纲,关于面向问题求解的计算机专业基础课程的重构与实践相关毕业论文范文。适合计算机及计算机系统及数据结构方面的的大学硕士和本科毕业论文以及计算机相关开题报告范文和职称论文写作参考文献资料下载。

文章编号:1672-5913(2013)20-0093-05

中图分类号:G642

摘 要:现行计算机学科专业基础教学中,课程体系以层次结构组织知识,教学模式以知识传授为主要目的,而能力培养却没有得到充分重视.文章介绍南京大学计算机科学与技术系近年来在此方面的教学改革,改革的基本内容包括在课程体系上以算法和平台为两条主线进行面向问题求解的基础课程重构,在教学过程中探索以“学生自学习+教师深入引导”为主的教学模式.

关 键 词:计算机专业;能力培养;基础课程;教学模式

0引言

计算机专业具有学科发展速度快、创新能力培养要求高、人才培养目标多样化的特点,这些特点对该专业人才培养尤其是本科生培养提出挑战.在这样的背景下,南京大学计算机科学与技术系教师在总结长期办学经验的基础上,创造性地提出“以问题求解为核心、以自我探索学习为手段,开展计算机专业人才创新能力培养”新思路.具体而言,针对现有专业基础课程“横向条状封装、纵向层次递进”导致的应用能力训练不够、学习目的性不强等问题,我们以计算机学科经典问题的分析及其求解为核心,纵向组织相关知识,重构传统的专业基础课程,将其融合为“问题求解”系列课程;在教学环节中,我们以“自我探索、深度引导、理论严谨、训练充分”为基本方法,强调研究性和自我探索性学习,培养学生的自学和自创新能力而不是单纯的知识接受和应用能力.

经过近10年的教学研究和5年的教学实践,我们取得了良好的教学效果,解决了计算机专业人才创新能力培养的核心价值是什么、什么样的课程体系可以更有效支持问题求解能力的培养以及什么样的教学方式能够促进学生创新能力的培养等问题.

1课程改革思路和目标定位

计算机科学与技术应用有一个贯穿始终的主线,那就是“分析问题→建立数学模型→建立计算模型(即算法设计和编程过程)→通过电路到器件、到CPU再到接口,形成硬件计算平台→通过操作系统、编译以及网络软件的叠加,形成支撑程序运行的计算平台→最终高效、正确地运行并得到结果”.这条主线可以用“计算机问题求解”概括.问题求解能力以及在解题过程中持续追求更优能力,是计算机专业人才的基本能力,但现行的计算机专业教学体系无论教学内容还是教学方式,在完成上述能力培养上均有待优化和改革.

在教学内容的组织上,现行计算机科学与技术专业基础课程基本上都是按照知识的性质如数学类、算法类、器件类等横向切割封装而成,而课程体系则是根据知识的递进关系设计为层次式结构并以综合设计或毕业设计为最后环节.在教学方式上,我们依然采用课堂讲授、课后练习、考试检查的传授型教学方式.这样的人才培养模式无形中造成了“知识传递重、能力培养轻”的现象:基础课程以知识点教学为主,同期开设的课程之间缺乏纵向关联,低年级学生被迫学习一.些“没有什么关联和用处”的基础知识,在进行课后练习时不能完成综合运用知识的任务;高年级阶段的综合设计或毕业设计环节主要培养学生能力,而基础课程则变为知识传递环节,在能力培养过程中的作用被轻视.因此,学生对基础课学习失去兴趣进而导致学习效果欠佳的现象较为普遍.

以问题抽象为核心的计算机算法设计能力和以平台支撑为核心的计算机系统设计能力是问题求解的两个关键.其中,传统的离散数学和数据结构不仅是算法设计的基础,而且是重要工具,以问题为核心重新组织上述内容的教学能够有效地“学以致用”;而系统设计则十分注重纵向贯穿软硬件的综合系统观.因此,我们在改革中打破课程原来的封装方式和层次递进模式,在基础课程中引入问题求解,兼顾基础知识学习的同时纵向优先,重构计算机专业基础课程体系,在算法设计和系统设计两个方面强化解题能力训练.


此外计算机专业发展速度相当快,涉及的领域非常多,跨领域学习能力和终身学习能力成为专业人才的必备能力,善于提出问题并有效组织知识体系以解决问题是创新能力的基本表现.自我学习和组织知识的能力对学生今后的发展很重要,对于刚从中学进入大学的学生尤其重要.

基于以上分析,我们制定计算机问题求解课程体系的指导思想:在课程内容上,围绕问题的纵向知识体系组织充分的实践训练是课程重构的两个重点;在教学环节上,学生的自我探索是“学”的主要手段,教师对学生的深度引导是“教”的主要方式.

2面向问题求解的专业基础课程体系重构

现行计算机专业基础课程在单独课程内容封装方面采用“横向条状分割”方式,在课程体系组织方面采用“纵向层次递进”方式.现行计算机专业基础课程如图1所示.

这种方式在知识传授方面表现良好,但是在能力培养方面却存在不足.为了在计算机专业人才培养方面兼顾知识传授并侧重能力培养,我们对计算机专业的主要基础课程及课程体系进行重构,力图以问题求解为核心,进一步将问题求解能力落实到“以问题抽象为核心的计算机算法设计能力”和“以平台支撑为核心的计算机系统设计能力”的培养上,构建一个新型课程体系.面向问题求解的计算机专业基础课程如图2所示.

1)计算思维引导.

计算思维引导课程教学的目的有两个:面向一年级新生进行计算机专业的职业引导以及通过具体案例分析解读计算机专业人才应该具有的计算思维是什么.大体的教学内容分为3部分:以持续追求更优算法为主线的算法设计思维引导;以持续追求全局观、系统观的平台设计思维引导;体现“计算机科学已经成为基础学科”的计算机专业职业引导和职业道德.课题设计原则上以具体的范例解读计算思维在计算机科学和技术中的体现,进而引导学生体会计算机工作者的思维方式.

具体内容包括:

第1讲:计算机如何利用简单规则的有序使用解决复杂问题.

第2讲:持续追求更优,计算机科学家的习惯和计算机工作者的习惯如何.

第3讲:计算如何被计算机支持―语言篇.第4讲:计算如何被计算机系统支持――经典平台篇.

第5讲:计算如何被计算机系统支持――现代平台篇.

第6讲:设计原则和方法体系――程序设计方法学.

第7讲:如何高效、高质量地生产软件系统――软件工程.

第8讲:简单的思想,巨大的突破――并行计算.

第9讲:计算的神话和现实――人工智能.

第10讲:计算机人的职业――专业篇.

第11讲:计算机人的职业――跨学科.

第12讲:滥用计算,后患无穷.

2)问题求解中的算法设计能力课程重构.

对与算法设计密切关联的计算机导论、离散数学、程序设计、数据结构和计算机算法设计与分析5门课程内容进行重构,变传统的“按内容性质横向划分”为“围绕问题的纵向组织”,如不再将计算机科学中涉及的离散数学知识单独组织为一门课程,而是依据问题相关性将其打散并分布到整个课程中.整个课程全面涵盖了计算机为什么能帮助我们解题、让计算机帮助我们解题需要什么样的数学基础、如何构建算法和组织数据以满足解题的需要、可以用什么方案设计出合适的算法、如何分析解题的结果和可能的期望等计算机专业能力培养的核心问题.

为了便于实施教学,我们设定算法设计课程体系由4个论域构成.(1)论域1:计算入门与数学证明.该论域主要帮助学生理解计算思维最核心的概念,了解计算的基本方法与局限,接受基本的形式化训练,掌握抽象数学证明的基本方法.(2)论域2:经典数据结构与算法.该论域主要帮助学生理解抽象数据,理解并应用常用的数据结构,掌握重要的算法设计策略以及算法设计与分析的基本理论与方法,理解并能够应用支持上述内容的离散数学工具与方法.(3)论域3:典型应用问题及其求解方法.该论域主要引导学生掌握典型应用中抽象出来的重要算法问题的求解方法,理解并能够应用支持上述内容的离散数学工具与方法.(4)论域4:复杂性理论基础与“难”问题的算法.该论域涵盖问题求解中复杂性理论的基本内容与问题规约方法,解决“难”问题的主要方法、技术以及相关的重要理论结果.

以上针对每个论域的教学在一个学期内完成.每个论域由16~18个论题组成,每个论题由若干个具有较高内聚性的计算机问题及其相关知识和实践能力训练内容构成.学生学完每个论题的内容大致需要一周时间,其中每周设置2~3小时的深度引导讲授,2~3小时的小组讨论,8~10小时的课外阅读和编程训练.

这些论题大致覆盖了原来计算机系统概论、离散数学、程序设计、数据结构、算法设计与分析课程的内容.此外,课程中还包括有关“计算入门”的内容,应该说是相当于以计算思维为内容的计算机导论课,因此学生在完成该课程的2年学习之后,可以不再修学上述5门传统课程.

3)问题求解中的系统设计能力课程重构.

对计算机系统概论、数字逻辑电路、计算机组成原理3门课程进行重构,同时融入部分操作系统和编译原理内容.现有以平台支撑为核心的课程体系设计方案仍然依据计算机硬件级别和计算机组成中的器件、CPU、接口、系统等层次划分方式组织课程.这种设计方案具有较好的硬件知识传授优点,但是缺乏与计算机软件融合的特点,在系统观培养和平台设计能力培养上有明显不足,已经不能有效满足国际一流计算机人才培养的需求.

鉴于此,我们在参照国际一流高校教学经验的基础上,以“高级语言程序→汇编语言程序→机器指令→CPU设计”为主线,纵向组织教学内容并设计了编程实验、硬件设计实验和创新实验3阶段递进式的实验教学方案.我们将每个阶段设定为一个学期完成,希望学生能够具有系统层面的认知和设计能力,建立“从程序员视角理解计算机系统结构和硬件设计、从系统结构和硬件设计者视角理解程序执行”的软硬件密切相关的计算机系统设计思想.

同样,我们也将上述3个阶段安排为3个论域,以3个学期为时间期限完成教学和对学生能力的培养:(1)论域1:数字电路与系统设计.围绕组合逻辑设计和时序逻辑设计两大核心内容展开教学,采用“实例化”教学思想,以后续论域所用功能部件作为设计实例,强调针对大型硬件设计平台和开发工具等的实验力度.(2)论域2:计算机系统基础.建立软件要素与平台支撑之间的基本映射,包括高级语言数据与机器级数据、高级语言语句与机器级指令、程序在不同阶段被存储在哪里、数据和指令如何被访问和动态分配、程序如何被转换为机器代码并被启动执行、程序执行过程中可能遇到的异常情况及其对策、I/O函数的支撑等.(3)论域3:计算机组成与设计.建立系统级的计算机系统设计视角,包括指令集体系结构设计及其与上层软件的关系、不同类型指令在数据通路中的大致执行过程、单周期CPU和多周期CPU设计、指令流水线的实现以及高级指令级并行处&

本文是一篇计算机论文范文,计算机方面有关毕业论文提纲,关于面向问题求解的计算机专业基础课程的重构与实践相关毕业论文范文。适合计算机及计算机系统及数据结构方面的的大学硕士和本科毕业论文以及计算机相关开题报告范文和职称论文写作参考文献资料下载。

#29702;技术、I/O连接及输入/输出组织等.(4)论域4:计算机软、硬件系统综合设计实验.这些论域大致覆盖原来计算机系统概论、数字逻辑电路、计算机组成原理课程的内容,因此学生在完成该课程的2年学习之后,可以不再修学上述3门传统课程.

3问题驱动的引导性授课新模式

为了达到课程目标中对学生两方面能力培养的要求,计算机问题求解课程体系在教学方式上进行了较大力度的改革,在问题驱动的引导性授课和拓展性小班化讨论方面形成以下特色.

1)问题驱动的引导性授课.

授课方式突破传统课堂中的系统化讲授,采用问题驱动的模式.每次课程组织10个左右问题的讨论,这些问题涉及的内容均为自学内容中较为重要的知识点或者是能表明多个知识点关联关系的内容.教师围绕学生前一周阅读的内容,讲解这些知识点的关键性原理,帮助学生理解一些难点问题,从而让学生牢固掌握基础知识;通过启发式提问以及重点分析的方式进行主要侧重于深度的引导,提高学生举一反三的能力,鼓励学生进行发散性思考,培养学生向前一步的探索能力.引导性授课通常只占课时的一半左右,客观上不可能覆盖所有知识点,因此课堂上所讨论的问题主要针对一些难点问题以及希望引导学生思考与讨论的内容,而对于其他较为容易的内容,学生则可以类比课堂上的讲解内容,理解到相应的深度.这种“深度优先”的授课策略使得学生能充分理解自学的重要性,因为仅仅从课堂是无法获得全部知识的.此外,课堂讨论的“深度”也成为指导学生自学的指挥棒,避免自学“过偏”或“过浅”.

2)拓展性小班化讨论.

为进一步加强对学生自学的引导,考查学生自学效果,解决学生自学过程中遇到的共性问题,进行实践内容的总结与研讨,探讨一些开放性的问题包括部分课后习题,我们每周安排一次小班化讨论.为提高学生的表达能力,小班化讨论的学生人数控制在15人以下,以确保每一名学生都能有机会表达自己的观点.

小班化讨论的一个重要组成部分是理论问题的研讨,这些理论问题包括确定性问题和开放性问题两类.对于一些重要知识点和容易引起误解的问题,我们以主题形式将其组织为若干确定性问题,并由1~2名学生就自己对该问题的理解进行讨论,考查学生自学掌握该知识点的情况.为进一步开拓学生的思路,小班化讨论一般会根据自学内容引申一个开放性问题,由3~4名学生就该问题提出自己的看法,并带动所有同学进行发散性思维的训练.

4课程改革实践

2004年前后,南京大学计算机科学与技术系开始探索“以问题求解为核心”,组织新型课程体系并开展新型教学方法的研究,2008年起在离散数学、算法设计和计算机组成原理等基础课程教学中进行试点.2010年,教育部拔尖人才培养计划正式启动,我们在总结前期试点经验的基础上,以计算机问题求解作为南京大学计算机学科班的基础课程体系正式运行.3年多的教学实践表明,该课程体系完全可以在计算机学科创新人才培养方面起到重要作用,也受到了学生的广泛欢迎.以下是两名学生的学习感悟.

(1)我觉得这部分学习的内容正体现出学习的一个目标,很多问题不是要找一个惟一的确定答案,而是通过一个不断接近答案的过程寻求提高,这些内容也没有一个惟一的确定答案,只能通过不断尝试,逐渐找到―个更适合自己的方法.

(2)虽然问题求解包含很多不同课程的内容,但是教材上都给出了详细的证明,平时在小班课上我们也会讨论如何从证明中揣摩作者思考问题的过程,这对我们理解和记忆这些问题有很大帮助;而在其他课程中只能学到“怎么做”,老师很少也没有时间能引导大家思考“为什么”,与其他同学相比,这是自身最大的优势.

我们的改革和实践受到广泛关注,教育部计算机科学与技术专业教学指导分委员会和中国计算机学会于2013年8月举办为期10天的讲习班,介绍我们的课程体系和教学方法.此外,产业界也对该项改革给予认可与支持,Intel公司已与我们签订合同并投入2万美元,支持该成果在部分学校的推广.

5结语

为探索计算机学科基础教育中能力培养的新内容和新方法,我们明确提出“以问题求解能力培养为计算机专业人才创新能力培养的核心价值”的教学理念,以“培养专业学生建立持续追求效率更高、质量更好算法的创新意识,建立从程序到执行全过程的软硬件综合系统观”为教学目标,改变传统的按照知识性质类聚方式进行课程内容横向组织的方式;依据问题求解依赖度和知识纵向相关度,针对问题求解过程中两大关键知识领域,即算法设计和分析、计算机系统综合设计,重构基础课程并融合形成问题求解课程体系;在教学中系统、深入和持续性地以“深入引导、自主学习”方式开展教学工作,变传统的“告知”式教学为“发现”式自我探索,鼓励学生“自建”知识体系而非传统的知识“移植”,培养学生发现问题、凝炼问题、解决问题的创新能力.初步的改革经验给予我们信心,但对学生能力提高的验证还需要一个更长的过程.我们将继续努力,希望在计算机专业教育质量提高方面尽到作为教育工作者的责任.致谢

本文得到清华大学出版社教改项目“强化问题求解能力的计算机专业教学实践”以及“计算机问题求解――教育部一英特尔专业综合改革”项目的大力支持,特此表示感谢.

(编辑:宋文婷)

相关论文

高职计算机专业基础课程教学模式

本文是一篇计算机基础课程论文范文,计算机基础课程方面有关在职研究生毕业论文,关于高职计算机专业基础课程教学模式相关毕业论文格式模板范。

计算机专业基础课程科目

本文是一篇数据结构论文范文,数据结构相关本科毕业论文范文,关于计算机专业基础课程科目相关毕业论文的格式范文。适合数据结构及操作系统及。

计算机专业基础课程浙江

本文是一篇计算机论文范文,计算机有关在职研究生毕业论文,关于计算机专业基础课程浙江相关本科论文范文。适合计算机及计算机课程及职业教育。

计算机专业基础课程全国高校

本文是一篇数据库论文范文,数据库相关毕业论文,关于计算机专业基础课程全国高校相关研究生毕业论文开题报告范文。适合数据库及网络技术及工。

计算机应用基础课程教学的与实践

本文是一篇计算机应用基础论文范文,计算机应用基础方面本科毕业论文,关于计算机应用基础课程教学的与实践相关硕士学位毕业论文范文。适合计。

计算机专业英语课程教学改革和实践

本文是一篇计算机技术论文范文,计算机技术类有关在职研究生毕业论文,关于计算机专业英语课程教学改革和实践相关毕业论文开题报告范文。适合。