APP下载

程序设计系列课程教学改革实践

2012-04-29袁辉勇,羊四清,易叶青

电脑知识与技术 2012年2期
关键词:实践能力程序设计教学改革

袁辉勇,羊四清,易叶青

摘要:针对“C语言程序设计”、“数据结构”、“算法分析与设计”课程在目前教学中存在的问题进行分析,通过整合教学内容、改进教学方法、加强实践教学对这三门课程的教学进行改革。实践证明,这三门课程的结合更有利于激发学生的学习兴趣、提高学习效率、培养学生的程序设计能力。

关键词:程序设计;教学改革;实践能力

中图分类号: G642文献标识码:A文章编号:1009-3044(2012)02-0366-02

Practice on the Teaching of the Programing Course

YUAN Hui-yong, YANG Si-qing, YI Ye-qing

(Department of Computer, Hunan Institute of Humanities, Science and Technology, Loudi 417000, China)

Abstract: This paper first analyses the problem in teaching of "C Language"," Data Structure" and "Algorithm Design and Analysis", and then propose a reform of teaching by improving teaching method, integrating teaching content and strengthening practice teaching. Results show that the reform of teaching can effectively stimulate students interest in learning, improve the efficiency of learning and the ability of programming.

Key words:programming; reform of teaching; ability of practice

1概述

目前C语言程序设计、数据结构、算法分析与设计是计算机及其相关专业中非常重要的专业课程。在以往教学中,这三门课程采用相对独立、分开授课的方式,导致课程内容脱节与重复,教学效果差,学习完三门课程后却不能编写程序的大有人在。这三门课程都以培养学生解决实际问题的程序设计能力为共同目标,因此,如何将三门课程有机地结合起来,构建程序设计系列课程的新体系,整合教学内容,改进教学方法,切实提升学生的程序设计能力,成了当前计算机专业教学改革中亟待解决的问题。

2教学中存在的问题

在传统的教学中,C语言程序设计、数据结构、算法分析与设计三门课程的分开授课,课程知识没有整合,对课程知识中存在重叠的内容,只是做简单的重复讲解(如C语言和数据结构课程中都有数组这个教学内容),教学深度不够。教学中注重讲授基本理论,忽略了程序设计过程中涉及的方法和技术(如算法分析与设计课程通常是将已有的经典算法在数学模型和数据结构上给学生解释),理论教学与实践教学结合不够紧密(如数据结构在讲授了某种抽象的数据关系和在计算机中的表示与实现后,并没有将这种结构用到解决实际问题中去),造成有些学生虽然具备了一定的理论基础,但由于实践教学薄弱,动手能力差。

3具体改革措施

我们改变了以往C语言程序设计、数据结构、算法分析与设计分开授课的模式,而是将这三门课程作为一个整体,以培养学生解决实际问题的程序设计能力为目标,从组织教学内容、改进教学方法、突出实践教学等方面进行教学改革与实践。

3.1整合教学内容

C语言程序设计是数据结构的前导课程之一,学生对它的掌握程度直接关系到数据结构课程的教学效果。算法分析与设计是计算机专业程序设计类的核心课程,在学习该课程之前,要求学生们掌握了基本的数据结构知识,能熟练运用一门或多门编程语言,并具备一定的编程经验。

我校原来的C语言、数据结构和算法分析与设计三门课程是相对独立、分开授课的,学习效果不理想。我们将这三门课程的知识进行整合,采用同一教师授课,做到了前导课、后续课的有机衔接,并重新制定了三门课程的教学计划,以知识点为单元,将这三门课程很好地结合起来。在C语言的教学中,以C语言为主线,适当穿插数据结构中的相关内容,使C语言与数据结构有机地结合在一起,如我们将C语言中的数组和数据结构中的直接插入排序、冒泡排序、简单选择排序、顺序查找、折半查找方法放在一个知识单元中。在数据结构教学中,穿插了算法分析与设计的有关知识,如在讲述哈夫曼树和图的最小生成树时,穿插了讲述了贪心算法,在讲述图的最短路径时介绍了动态规划算法。

我们不再把C语言当做一门语言来讲解,加强了数据结构、算法设计、逻辑思维和编程方法的教学。数据结构课程不再只注重讲授抽象的数据关系和存储结构,而要求学生用C语言编程实现各种算法,并结合实际应用,在ACM/ICPC在线评测系统上完成相应的练习题目,学生不再感到枯燥无味,不仅较好地解决了数据结构教学中学生上机困难的问题,也提高了学生的程序设计能力。在算法分析与设计课程教学中,我们选择一些难度适中、能结合实际问题和相关课程的知识来讲解,使学生既能理解,又能拓展创新。

3.2改进教学方法

我校属于应用型本科院校,其教育目标着重于培养具有实际工作能力的技术型和应用型人才。在C语言的教学中我们采用了“案例”教学方法,从日常生活中选择能典型反映教学内容的案例,所选案例难度适中并能反映多个知识点。如选用了“学生的成绩管理”,该案例覆盖了C语言中的循环结构与数组,涉及数据结构中的排序与查找。在该案例中穿插介绍了数据结构课程中的直接插入排序、冒泡排序、简单选择排序和顺序查找;通过介绍C++中的排序函数qsort()激发学生自觉地学习C++标准模版库;并提出如何保存学生信息以避免重复输入数据的问题,引导学生自学C语言中的文件操作,培养学生的再学习能力。在算法分析与设计课程的教学中,我们采用了“任务驱动”教学方法,将具体的算法设计策略融入到一些“任务”中,课堂教学以任务为主,引导学生利用算法设计策略探索解决方案,在课后的实践环节,将结合实际应用且融入了知识点的任务放到ACM/ICPC在线评测系统上,让学生在课后根据任务描述,自主探索问题解决方案,并提交程序代码。

在教学过程中,对典型例题力求讲透彻,并提出问题给学生思考。如斐波拉契数列,讲解了分别使用变量交换的循环结构、使用数组的循环结构和递归三种编程方法,并比较了三种方法的优缺点,使学生深刻体会到了采用递归求解斐波拉契数列的低效,引导学生理解使用数组的高效是基于算法分析与设计课程中的动态规划的思想,并且穿插介绍了数据结构课程中算法的时间复杂度与空间复杂度的度量;再提出大斐波拉契数列的求解问题,介绍使用数组进行高精度计算以及使用矩阵和二分法的求解方法,激发了学生的学习积极性。在例题的讲解过程中,充分利用多媒体教学手段,加强了例题讲解过程中的现场调试与分析,鼓励学生对具体问题进行分析和研究,培养学生的逻辑分析和判断能力,重视上机训练,养成良好的编程习惯。

3.3加强实验教学

这三门课程都是理论与实践并重的课程,在教学中必须将理论教学与实践教学紧密结合。我们从以下几个方面来加强实验教学:

1)重新编写实验指导书。按照教学内容的知识点,综合可操作性、趣味性和适当的难度,编写了适合教学要求的实验指导书,既保证了实验的可完成性,又增强了学生的兴趣。

2)建立在线题库。在ACM/ICPC在线评测系统上开设了C语言程序设计、数据结构、算法分析与设计的专题训练,每个专栏按照教学知识点安排了不同难度的练习题,学生可以根据自身的能力,完成相应等级的题目,在探索与解决问题的过程中获得学习成就感。

3)组织程序设计比赛。ACM/ICPC在线评测系统上安排了与教学知识点相关的竞赛真题,鼓励学生组队、按照比赛规程进行模拟比赛。通过比赛,学生对教学知识点有了更深入的理解,不仅增强了学生的实践动手能力,提高了学习兴趣和积极性,也使学生提前了解ACM比赛的规则和比赛真题,训练了学生的参与意识、竞争意识和团队精神,为以后组织学生参加省程序设计比赛打下良好的基础。

4)开设课程设计。课程设计的题目以典型的问题或实际的工程为主,如数据结构课程选用了“教务计划编制问题”,让学生运用图论中的拓扑排序来求解这个实际问题。通过课程设计,培养了学生综合运用所学知识进行分析和解决实际问题的能力,使学生不仅学到了解决问题的办法,同时加深了理论的理解与掌握,做到了理论教学与实践紧密结合。

3.4改革考核与评分标准

考试作为课程教学的一个重要环节,对学生的学习具有明显的导向作用。这三门课程原来的考核分为平时成绩和期末考试,这样的考核方式很难考察学生的实践能力,导致大部分学生只注重期末考试,而忽略学习过程,很难有效的提高学生的创新能力和实践能力。我们认为这三门课程的考核应着重考核学生的程序设计能力,而不是死记硬背一些基础知识。为此,我们引入了ACM/ ICPC在线评测系统及,对课程的考核进行了大胆改革,评分标准也作了修改,提高实验考核成绩在课程总评成绩中的比重,以此来引导学生认真对待实验和课程设计,切实提高学生的实践动手能力。

4结束语

实践证明,将C语言程序设计、数据结构、算法分析与设计这三门课程有机结合的教学改革,能够很好地激发学生的学习兴趣,学生在掌握基本理论和知识的同时,程序设计能力、数据结构和算法设计的应用能力也得到了很好的培养,我校学生在近二年的湖南省程序设计比赛中均取得了较好的成绩。

参考文献:

[1]谭浩强. C程序设计(第2版) [M].北京:清华大学出版社,2005.

[2]严蔚敏,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,1997.

[3]王晓东.计算机算法设计与分析(第2版)[M].北京:电子工业出版社,2004.

猜你喜欢

实践能力程序设计教学改革
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
高职高专院校C语言程序设计教学改革探索
高校单片机课程设计教学方法探讨
刍议大学生实践创新训练计划项目
品德教学利用微课开展预学的实践研究
“创新人才培养模式”下的实验教学改革探索
基于人才培养的技工学校德育实效性研究
现代信息技术在高职数学教学改革中的应用研究
以职业技能竞赛为导向的高职单片机实践教学改革研究