首页 百科知识 程序设计基础课程教学改革与实践

程序设计基础课程教学改革与实践

时间:2022-06-11 百科知识 版权反馈
【摘要】:提高程序设计基础课程的教学效果,最大限度地培养学生程序设计能力和应用能力是实际教学中急需解决的问题[2]。

程序设计基础课程教学改革与实践

张 莉 曹淑艳

摘 要:本文主要阐述了现有程序设计基础课程教学模式产生的问题,结合近几年来的教学实践,从教学方法、教学手段等方面的改革进行了研究和探讨,提出更有效的教学模式及教学对策经验。通过教学改革加强对学生解决实际问题的创新能力的培养,锻炼学生的应用能力,进一步提高课程的教学质量。

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

一、引言

当前,计算机和信息技术已经渗透到社会生活的各个领域,成为改变社会的一支主要力量。在当今的高校人才培养中,程序设计类课程也不再是只针对计算机和信息管理专业而设的本科学习的入门课程,而是成为大学生必须掌握的基础课程之一[1]

通过该课程的学习,不仅要求学生掌握程序设计语言的知识,更重要的是在实践中逐步掌握程序设计的技巧和方法,培养学生解决实际问题的应用能力。因此,本课程是培养学生以创新和实践能力为重点的具有鲜明特色的课程。提高程序设计基础课程的教学效果,最大限度地培养学生程序设计能力和应用能力是实际教学中急需解决的问题[2]。目前许多高校将C程序设计作为程序设计基础课程,笔者结合近年来从事程序设计基础课程的教学经验,对课程的教学模式进行了改革,取得了比较好的教学效果。

二、课程教学过程存在的问题

一般情况下,老师在教授这门课时一般都先讲解语言语法,语句形式再讲解编程,对语言的细节过多强调,所选的编程实例大多偏重于语法规则的验证,仅从程序设计语言使用的角度进行教学,这种就事论事的教学模式,往往是课程进行了一半,学生还没有找到程序设计的感觉,在学完程序设计语言课程后,“知其然而不知其所以然” ,在上机调试程序时,面对程序设计的一些逻辑错误束手无策,特别是面对大规模的应用程序时无从下手,软件设计能力较差。

其次,许多教师由于受课时量的限制,教学内容主要是理论教学,不太注重学生上机调试程序能力的培养,学生在学习课程时处于纸上谈兵的状态,致使许多学生害怕上机考试。

此外,课堂教学以教师为中心,选择的教学案例脱离学生的生活,或者没有考虑学生现有的知识基础,使得学生不感兴趣,导致教学效果较差。

三、程序设计课程教学方法的改革措施

经过几年的教学实践摸索,针对教学过程中出现的上述问题,我们采取了相应的改革措施。

1.定位课程培养的目标

通过该课程的学习,不仅要求学生掌握程序设计语言的知识,更重要的是教给学生一种分析问题、解决问题的方法,在实践中逐步掌握程序设计的技巧和方法,培养学生解决实际问题的应用能力。因而在整个教学过程中,应本着“强化算法,弱化语法”的原则[3],即把程序设计的过程和方法当做授课的重点,培养学生如何分析并解决实际问题,逐步培养学生进行规范程序设计的能力。通过合适的案例将语法知识引出,并且只讲解最基本、最常用的语法规则。例如对变量数据的输入和输出,只强调和变量类型一致的格式和常见的表达方式,int i; scanf (“%d” , &i) ; printf(“%5d” , i) ;不强调输入时位数的设置,或者以其他类型的输入、输出格式。

2.从问题入手,引出知识点,采取各种方法调动学生兴趣

通过实际生活或者是工作中的一个实例引出相关的概念和知识点,即为每个知识点寻找一个合适的切入点,让学生产生共鸣,引起学生的兴趣。例如:在讲变量和常量时,采用案例:已知10个圆的半径(1,2,3…,10) ,求这10个圆的面积。一开始给出如下的程序:main() { printf (“%f” , 3.14* 1* 1) ; }让学生运行这个程序,然后提问如果求其他圆的面积,修改上述程序?让他们感觉到操作的重复和繁琐,然后引导他们思考如何解决这个问题?从而引出变量和常量概念。而通过一个包含很多重复语句的程序,引入函数的定义和模块化程序设计的思想。

在讲分支结构时,首先从一个生活中的一个实例引入分支结构就是选择决策,如约翰·瑟提出的“中国屋” (The Chinese Room)问题,还有学生经常在网上参加的各种心理测试问题等。通过这些实例让学生知道为什么我们要学习这一知识点,对应现实世界的“如果……那么……”这样的问题,我们要在计算机上表达出来,就需要通过分支结构,从而给学生讲解分支语句。

另外,对一些知识难点在讲授过程中,脱离开计算机语言本身,换一种学生易于理解的方式来表述问题的本质。例如自增和自减运算,可以用简单的一句话概括运算的本质,即“试图做一件事情得到两种利益(结果) ,两种利益可能不一样,因而会带来麻烦” 。再例如讲解外部变量和全局静态变量的区别时,我们采用宿舍公共储蓄罐的故事,宿舍内部的人相当于全局静态变量,可以使用储蓄罐的钱;而宿舍外的人相当于外部变量,他们必须得到授权才能使用储蓄罐的钱。

通过上述的教学方式和手段激发学生的学习欲望,让学生在启发下思考,提出问题并逐步解决问题。

3.注意培养学生分析和解决问题的能力

编程时,许多学生缺少的往往是分析问题和解决问题的能力,即缺少从实际问题建立数学模型的能力。因而在上课时,我们尽量采用解决实际问题的案例。例如在讲多重循环时经常采用一个车牌号案例:一辆卡车违反交通规则,撞人逃跑。现场三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位是相同的;乙说:牌照的后两位是相同的;丙是位数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号。通过这样的例子培养学生用计算机解决实际问题的能力。

4.注重程序设计能力和技巧的培养,引导学生写出规范化的程序

在课程的初级阶段(程序控制语句) ,只要求学生写出的程序能够得到正确的结果,但随着课程内容的深入,逐步培养学生程序设计的技巧。

例如:输入一个正整数n,判断是否是完数。一个数若恰好等于它的各因子之和,称其为完数。例如:6 =1 +2 + 3,其中1、2、3为因子,6是因子和,则6是完数。要求输入输出如下:输入:6

输出:6 =1 +2 +3

输入:20

输出:不是完数

对上述题目要求,学生写出了如下的两个程序:

程序一

程序二

一方面引导学生从每个程序设计思路和技巧、程序结构等方面进行讨论,充分肯定优点,找出不足或缺点,例如第一个程序的缺陷在于没有对输入的n进行判断,另外对n的因子需要重复求解,针对程序的两个问题引导学生去思考解决问题方法,从而写出比较规范的程序;另一方面鼓励、引导学生对同一个问题尽量提出多种设计方案和解题途径,并和学生一起进行分析研究, ,例如程序2解决了程序1的缺陷,但是以牺牲空间作为代价的,但简化了计算过程,所以可以根据我们的需要从多个方案中选择合适的方案和途径。通过这样的过程加强学生程序设计技巧和能力的培养。

5.加强学生的上机实践

对于程序设计类课程,上机实践是影响学习效果的重要的因素之一,上机实践不仅可以帮助学生们及时理解理论知识,而且极大地提高了学生的调试能力和实际应用能力[3]。在我们讲授理论课的时候,尽量增加上机演示和调试的内容。另外,多提供机会让学生自己动手实际操作。例如,要求上交的作业必须是上机调试通过的程序代码,讲完一个大的知识点后布置一个稍微复杂的程序设计问题,要求用到在此之前学过的相关知识,编写出程序并完成调试。通过这些典型程序的分析与设计,让学生复习巩固并灵活运用前面的知识。

6.加强学生学习过程的管理,及时掌握学生学习的情况

讲授程序设计基础课程的老师都有共同的感受:学生提交的作业或者实验报告抄袭情况非常严重,所以根据作业有时很难判断学生对知识的掌握情况,另外,抄袭作业也达不到布置作业的目的,针对这种情况我们在教学中主要采用了两种方法:一是要求学生在提交作业的同时,提交一份诚信声明,声明作业是独立完成的,若参考他人的程序,要在作业中注明;另一方面,每完成一章内容的学习,布置一个合适的课堂作业,在规定的时间内提交。通过这种方式可以掌握学生对相关知识点的掌握情况,并且使学生养成诚信做事的工作作风

四、结束语

教学有法、教无定法,教学是一个无止境的探索和交流过程。一方面要确保知识的顺利传授,保证学生的学习效果;另一方面我们还要从长远的职业发展的角度,从技术和能力两个方面加强学生的能力培养[4]。在程序设计教学过程中,培养学生的解决问题能力和创新能力是我们的目标,这也对教师的专业知识与讲课艺术都提出了更高的要求。

参考文献

[1]肖文峰.财经院校程序设计类课程教学改革与实践.电脑知识与技术,Vol.5 (36) ,2009.12.

[2]付沙.高校程序设计课程教学改革与实践.计算机教育,No.2,2010.1.

[3]谢竞博.C语言程序设计教学中的问题及改革建议.重庆邮电大学学报(社会科学版) ,Vol.20 (2) ,2008.3.

[4]张鹏,郭芹.计算机程序设计教学模式改革初探.山东水利职业学院院刊,No.1,2008.3.

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈