《程序设计基础》课程实践教学改革探索
- 格式:doc
- 大小:27.00 KB
- 文档页数:7
《程序设计基础》课程实践教学改革探索
摘 要:针对《程序设计基础》课程的教学特点和当前教学中存在的
问题,对实践教学体系进行了设计,提出以课程实验与课程实训两个
渐进式实验教学环节进行改革与实践,提高了学生的实践动手能力和
综合应用能力。
关键词:程序设计;实践教学;教学改革
0 引言
程序设计基础是高校电子信息科学领域相关专业,是计算机、电
子、信息管理、通讯等专业学生跨入大学校门后接触的第一门专业基
础课程,不管使用的入门语言是C语言、C++还是Java语言,它都
是以编程语言为平台介绍程序设计的思想和方法,重在培养学生良好
的程序设计素养和对计算机科学的浓厚兴趣,对学生后续专业知识的
掌握起着重要的基础作用。
目前,许多高校将C语言列为程序设计基础课程的首选语言,
该课程是一门实践性很强的课程,听不会,也看不会,只能练会。其
教学效果的优劣直接影响着学生计算机编程的能力和水平,对后续
《数据结构》、《算法设计与分析》、《嵌入式程序设计》等课程的学习
效果有直接影响,尤其是实践环节教学效果的好坏,直接影响到学生
对C语言的语法、算法的理解和应用以及分析问题、解决问题能力
的培养和锻炼。因此,如何深入研究和改革课程实践教学的体系、设
计理念、内容以及实践教学的组织与考核,是广大计算机专业教师探
索和实践的课题。
1 实践教学中存在的问题
在传统的“狭义工具论”课程教学理念和思想下,过于注重语言
的语法、语句以及一些语言细节的教学,没有把问题求解方法和计算
思维能力的培养放在首位,在实验教学的设计和安排上,实践环节比
较单一,以课程内实验为主,实验内容的设计多以验证型实验为主,
其目的是使学生通过训练, 加深对某个知识点的理解。这种教学模
式,轻视或忽略了培养学生分析问题、解决问题的能力,未将实验项
目与实际应用问题相结合。主要表现在以下几个方面:
(1)教师对实践教学内容安排不合理。在实践教学内容的安排
上,实践内容主要来源于书本中的习题或从课本中提炼出来的问题,
这种实践教学模式立足于书本知识,重在对课本知识的理解,学生在
基本理论上经过实践有一定的基础,但不能应用于实践,在解决实际
问题时往往无从下手。
(2)教师和学生对实践教学环节重视不够。实践操作前,教师
要求学生对当次实践内容进行预习,预先写出程序代码清单或画出程
序流程图,拟好程序设计的思路,这样可以充分利用实践操作的时间
完成实验内容,但一些学生实验前没做任何准备,实验过程中一边思
考,一边写程序,效率极低,甚至根本没有完成实验,最后只有抄袭
同学的实验报告应付实验成绩的考核。实验指导过程中,教师一般只
对学生的提问进行指导,有时只告诉学生该如何进行操作,较少给学
生解释。实验结束后,没有对实验中学生普遍出现的问题进行归纳总
结和讲评,上完实验任务就了事,没有达到实验的预期效果。
(3)学生创新设计能力及综合应用水平不高。对于初次学习程
序设计课程的大一新生,面对程序设计语言中繁杂的语法规则有些畏
难,把大量的学习时间用在基础知识点的认识理解上,注重语言语法
细节而对程序设计的思想关注较少,很少关注或参与企业对程序设计
的应用。因此,当课程学时结束后学生觉得只学会一些基本的东西,
只会理解课本中的程序,能够看明白别人写的程序,但如果要自己设
计出程序就显得特别困难,毫无头绪,对于稍微复杂的系统设计,需
要创新的思想和算法的设计时,就难以动手,综合应用的能力相对较
差。
2 实践教学探索与实践体系设计
传统的教学体系中实践教学处于对理论知识的补充地位,实践内
容主要围绕着教材基础知识的理解和对语法的验证,忽略了学生创新
设计能力及综合应用水平的培养,针对这些问题,设计了以问题求解
方法为主线的实践教学。遵循以应用为目的,以任务来驱动,采用多
环节、循序渐进的原则,构建了课程实验和课程实训二个层次和阶段
的实践教学体系,来培养学生的动手编程能力、计算思维能力和解决
实际问题的分析应用能力。
3 教学改革措施与实践
3.1 课程实验
课程实验是与理论讲授同步的配套实验项目,分为基础实验项目
和综合实验项目两类。基础实验项目重在加深学生对语言语法、概念
的理解和应用,每讲完一个知识点,安排学生进行一次实验编程练习,
经历“模仿、改写、编写”过程,掌握相应的知识点。综合实验是对
课程多个知识点进行综合训练,加深学生对课程内容的整体认识和综
合运用。
(1)基础实验。在基础实验中,每个实验项目设计了程序跟踪、
改错调试、设计实现三类递进层次的练习题目,前两个层次重在训练
学生对语言知识的理解和运用能力,后一个层次重在训练学生问题求
解能力。
程序跟踪训练是根据题目给出程序实现的完整代码,让学生利用
调试工具运行程序,跟踪并观察程序的运行情况和运行结果,分析程
序的执行过程,画出程序流程图,目的主要是加强和巩固学生对语言
某一知识点的认识和理解;改错调试训练是在给定题目的功能要求前
提下,在给出的程序中设置几个语法或算法结构上的错误,让学生调
试并排除错误,目的是培养和训练学生对程序结构的理解和算法设计
思想的领悟,以及程序调试能力;设计实现训练是根据项目主题,设
计几个可选的题目,学生可以根据自己能力选择几个或全部完成,目
的是训练学生掌握从问题提出、模型建立、数据表示、算法设计、代
码编写到调试测试程序的项目开发过程和方法,培养学生从对问题的
理解、分析、抽象、设计到用具体语言去实现并进行测试和评价的能
力。
一次实验项目中多个实验题目由浅入深、由易到难的渐进实验
法,让学生在每完成一个题目中收获信心,从而给学生很强的投入感,
迫使他们开动大脑,发挥创造力,使课程的实验阶段成为一个富有挑
战和乐趣的过程,从中获得很大的成就感。
(2)综合实验。综合实验通常是课程实验的最后一个项目,这
时理论讲授课程学时已基本结束或临近结束,因此在实验内容的设计
上,重在锻炼学生对复杂问题和复杂数据类型的处理,在功能模块上
要求相对较多,以培养学生的模块化程序设计思想和能力。在选题上,
实验内容应与实际应用联系紧密,以激发学生的兴趣,教师在综合实
验教学过程中启发、引导学生独立完成程序。3.2 课程实训
课程实训是在理论课和课程实验教学结束后安排的一个实践环
节,目的是通过实训练习,重点训练学生进行程序的模块化设计、程
序流程控制,从而能更加系统地理解语言基础知识,进一步培养学生
应用程序设计理论进行程序设计的能力。因此,在实训的组织和实施
过程中,我们进行了精心安排:
(1)精心安排、合理设计实训项目。在项目安排上,主要是将
一类问题让学生用不同的方法去实现,同时要与实际应用相结合。比
如在集合运算问题上,我们不仅训练和考查学生能用数组、指针等结
构去解决问题,还要让学生与实际问题相结合,验证在对集合数据初
始化时,元素应满足互异性。通过精心设计实训项目,不仅对学生的
程序设计思想和动手编程能力进行训练,还要让学生对输入输出数据
正确组织和合理处理。
(2)精心组织,认真做好项目实训 。实训实施过程中,要求学
生每次在2~3学时完成一个大类问题中的一个子项目,使学生在一
个受时间压迫的环境下练习、锻炼敏捷思维能力,同时要求教师对学
生的实训过程进行跟踪指导、审核、批改,并给出考核成绩。
实训的目的,在于“训”,重点是对学生程序设计思想和程序设
计能力的训练。在实训指导过程中,教师不是简单地给出考核成绩,
更重要的是,要求对学生程序设计中出现的问题进行指导,不仅要指
导帮助学生有正确的程序设计思想,还要为培养学生通过选取或设计
合适的算法来实现目标任务,在给出任务解决的程序设计与编程规范
方案时,遵循数据准备、输入、输出和处理四大步骤,培养编程能力。
即对于任一个现实任务找出合适的数据结构(比如合适类型的变量或
数组)、找出需要输入的数据、需要输出的内容以及处理步骤。这样,
学生才能够通过输入、输出的内容以及要进行的处理更容易地设计或
选择算法。
4 结语
实践教学是提高学生实践能力和创新能力的关键环节,我们通过
课程实验、课程实训、课程设计渐进式的实践教学模式,加强学生实
践能力的培养。经过探索和尝试,在程序设计基础课实践教学方面取
得了较多经验和较好的效果。教学改革的研究和实践是一项长期的、
持续渐进的过程,只有通过不断探索、研究和创新,才能使应用型的
实践教学达到最好的教学效果和教学水平。
参考文献:
[1] 何钦铭.C语言程序设计[M].北京:高等教育出版社,2008.
[2] 闫英战.《C语言程序设计》教学改革的探讨[J].电脑知识与技
术,2006(8).
[3] 单新梅.论信息技术与课程整合下学生非智力因素的培养[J].
牡丹江教育学院学报,2012(3).
[4] 曹记东.基于Hash函数和三元组的密码表加密算法研究[J].软
件导刊,2012(11).