首页 -> 2006年第6期

《高级语言程序设计》课程的改革与实践研究

作者:聂永红 李春贵 刘永娟




  《高级程序语言设计》是计算机专业的程序设计基础类主要课程之一。经过大量查阅资料和研究,当前国内的教材及教学内容存在以下不足:(1)内容过时、起点低,没有反映学科的发展和对学科的新认识,不再适应新世纪的教学要求;(2)C++已成为主流的程序设计语言,而当前的教材和教学内容没有基本的基于面向对象程序设计基础知识介绍;(3)不注重编译器、编辑器、调试器和其他程序设计环境的组件等基础知识的介绍,也没有把实践教学建立在当前主流的程序设计环境上;(4)当前的教材及教学内容没有对面向对象技术给予一定的基础知识介绍,与紧跟的后继课程《算法与数据结构》有较大的脱节;(5)对常规的贪婪法、回溯法、递归法等基本算法设计思想的引入性介绍不多。
  
  一、本课程研究的目标、内容、主要特色
  
  1.研究目标
  (1)提出一套切实可行的、面向新世纪的高校计算机专业《高级语言程序设计》的教改方案,以改革本课程目前的教学大纲、理论和实践教学内容、方式与手段,提高该课程的教学效果。
  (2)完成《高级程序设计语言》的教学大纲修订,编写新的实验指导书。
  (3)《高级程序设计语言》课件。
  
  2.研究内容
  (1)高级语言程序设计课程的体系结构及教学内容研究。
  (2)实践环境与实践内容研究。
  (3)教学方法与实践方式研究。
  (4)核心知识点与知识领域及相互联系的研究。
  (5)高级语言程序设计课程的体系结构、教学内容与本学科三个具有方法论意义的过程——抽象、理论和设计的关系研究。
  (6)与其它程序设计类课程如:算法与数据结构、面向对象技术、软件工程与方法学、算法分析与设计等课程的关系研究。
  (7)教学方法与考试改革。
  
  3.主要特色
  (1)体现学科的发展。
  (2)向CC2001靠拢。
  (3)体现软件工程的原理与思想。
  (4)注重程序设计的基本思想、方法,程序设计环境的基础概念。
  
  二、《高级语言程序设计》课程主要进行的改革
  
  1.内容安排
  把《高级语言程序设计》课程分为两学期开设,第一学期开设《C语言程序设计》,它是一种面向过程的程序设计语言。C语言的硬件控制能力和运算表达能力很强,目标代码短,运行速度快,效率高并有良好的可移植性。通过对C语言程序设计的学习,全面地掌握计算机程序设计的基本知识与基本操作技能,为以后的学习和应用计算机知识和操作技能打下扎实的基础。第二学期开设《C++程序设计》,它是一种目前最为广泛的面向对象的程序设计语言,其主要特点表现在两个方面,一是全面兼容了C语言,二是支持面向对象的方法。面向对象的方法使程序能够比较直接地反应问题的本来面目,软件开发人员能够利用为人类认识事物所采用的一般思维方法来进行软件开发,并且可以大大提高程序的可重用性,使得软件的开发和维护更为方便。
  
  2.教学方法
  为提高教学质量,在本学科各门课程的教学过程中,我们除了对教学内容进行改革外,通过深入的调查研究,主要采用了下述的教学方法与教学手段,达到了较好的教学效果。
  (1)注重对学生的引导。让有经验的教师进行公开性讲座,阐述计算学科本身的特点,讲述学习的基本方法,引导学生步入学习正轨,少走弯路,以利学生养成良好的学习习惯。介绍计算机的诞生与发展,结合本学科讲述计算机发展史,整个学科体系结构,强调计算机对人类社会的巨大影响及其产生的巨大威力,激发学生的好奇心,增加学生的学习兴趣,以及献身科学与真理的意志和决心,同时强调学习本学科的重要性。
  (2)加强启发式教学。以启发式教学为主,注重问题的引入,学会对问题进行分析,抓住问题的本质,将复杂化为简单,树立学生学好本专业的信心。课堂教学坚持“少教”和“多学”的原则,精讲与自学相结合,把学生从被动变为主动。
  (3)强调对基本概念的理解。本学科很多基本概念具有很强的抽象性,以自主开发的软件展示直观形象的特征,以严密的推理训练学生的逻辑思维能力;运用归纳类比的方法建立概念,培养学生的抽象思维能力。
  (4)注重能力的培养。第一,数学建模的能力:将数学建模的思想和方法贯穿到整个教学活动中去,让学生了解数学建模的基本过程,即实际问题-建立模型-模型的求解-模型的检验;结合实际问题,让学生自己动手,寻求解决问题的办法,以体验科学研究的过程,培养学生的开拓意识和创新精神。第二,程序设计的能力:加强算法设计思想的培养,强化学生动手编程的能力,学生在参加我院举行的程序设计大赛及软件设计大赛中均取得较好成绩。第三,团队协作能力:注意对学生团队合作精神与交流能力的培养。在课程设计和综合实验中,要求学生以小组的方式工作,并要求学生将设计方案当众宣讲、讨论、论证。第四,科研能力:鼓励学生参与教师的科研项目,培养学生的创新意识及科研能力。
  (5)加强习题课的学习指导。预先布置习题,课堂展开讨论,让学生自己评价,体现学生的参与性,激发学生的学习热情;采取双向式教学,鼓励学生提出问题,从问题中反馈教学的信息,不断改进教学内容和教学方法,提高教学质量。
  (6)使用先进的教学方法和手段。合理运用现代信息技术等手段,改革传统的教学思想观念、教学方法、教学手段和教学管理。本课程采用自行研制的多媒体课件《C语言程序设计》、《C++程序设计》进行教学,教学效果显著。本课程的教学方法已经形成“以提高学生的综合素质为中心,多样化方法交互使用”的明显特征。
  (7)理论教学与实践教学并重。高度重视实验教学环节,通过实践培养和提高学生的创新能力。主讲教师主持和设计实践教学,大力改革实验教学的形式和内容,把该课程开设为综合性、创新性实验和研究型的课程。①上机实验:加强实验教学,认真指导学生实验,批改实验报告,努力提高学生动手能力。②课程设计:检验学生学习该课程的理论和实践能力。鼓励学生真题真做,参与到教师或企业的科研项目中,效果较好。
  (8)教材建设与教材选用。加大对教材建设的力度,鼓励教师自编有特色的教材和教学参考书。在教材的选用上,不仅要求内容上符合教学大纲要求,而且要求是近三年内出版的面向21世纪教材、获奖教材、推荐教材以及国内外的经典新版教材等。
  
  3.考试改革
  考试不仅具有“评价”功能,还应具有“塑造”能力,通过考试引导学生重视知识积累、能力的培养和创新精神的塑造上来。考试改革是教学改革的重要内容,它与教学内容、教学方法的改革相辅相成,互相促进。通过考试改革,使学生在重视基础知识学习的同时,更注重实践能力的培养和创新精神的形成。主要采用了下述的考试改革,达到了较好的教学效果。
  (1)丰富的考试方式。考试采用笔试、口试、课程设计、答辩、进行实际操作以及开卷、闭卷等多种方式进行,从不同的侧面了解学生对所学课程基础知识、基本方法、基本技能的掌握程度,同时也了解学生的学习态度,知识综合运用能力、工程实践能力和创新实践能力。根据本课程特点、教学内容等采用不同的考试方式:平时成绩(10%),包括作业、实验报告等,笔试(50%)(其中,《C语言程序设计》采用闭卷、《C++程序设计》开卷的形式)、大作业或课程设计及答辩(40%)的方式进行,可全面综合地考查学生对所学知识的掌握情况。
  (2)考题类型的多样化。增加题型设计的灵活性,少出一些只用一种方法,只有一个答案的题目,多出一些综合思考题、分析题、应用题,题目的设计应能使每一位学生在解每道题时都有对知识的深层理解、分析、比较、融会贯通的过程,锻炼学生的思维,多给学生提供探索的机会和可能性,鼓励学生独立思考、标新立异、强调智力开发、避免考试中的偶然性。如果考试强调能力,则必然引导教学走上“打好基础、培养能力、发展智力”的正确轨道。
  (3)改革记分方式。淡化考试分数之间的微小差异,增大平时成绩及大作业或课程设计成绩的比例,对有独立见解或创新的学生加鼓励分,奖励有个性、有主见、有独立思维能力的学生,极大地激发了学生的学习积极性和创造性,效果较好。
  (4)实施教考分离。重视教考分离,努力提高教学质量。组织部分教师参加本课程的考试出题及试卷库的建设工作,对考试试卷认真审核并逐年完善试卷库,对该课程实行了教考分离,通过几年的实践,效果较好。
  (责任编辑陈国庆)