面向工程实践能力培养的C语言实践教学改革
2017-11-18兰丽胡晓辉
兰丽+胡晓辉
摘 要: 针对工程教育认证对计算机专业的工程实践能力和创新要求,分析了目前C语言实践教学中存在的问题,提出两层C语言实践教学体系和分阶段考核方法。通过两层增量式的分阶段程序设计实践及考核,让学生循序渐进地掌握C语言语法及程序设计方法,明显提高了学生的兴趣和工程实践能力,有效提升C程序设计课程的实验教学质量。
关键词: 两层实践教学; 分阶段考核方法; C语言程序设计; 实践教学改革
中图分类号:G642 文献标志码:A 文章编号:1006-8228(2017)11-80-03
Reform of C language practical teaching for engineering practice ability training
Lan Li, Hu Xiaohui
(School of Electronic and Information Engineering, Lanzhou Jiaotong University, Lanzhou, Gansu 730070, China)
Abstract: Aiming at the engineering practice ability and innovation of computer specialty required by Engineering Education Accreditation, this paper analyzes the problems existing in the current C language practical teaching, and puts forward the two-tier C language practical teaching system and assessment method. Through the two-tier incremental and phased programming practice and assessment, the student's interest and engineering practical ability are obviously improved, and the quality of experiment teaching of C programming course is effectively improved.
Key words: two-tier practical teaching; phased assessment method; C language programming; reform of practical teaching
0 引言
工程教育专业认证是国际通行的工程教育质量保证制度,旨在为相关工程人才进入工业界从业提供预备教育质量保证。对于计算机专业,工程教育专业认证标准要求培养的学生,不仅具有扎实的专业素质,更重要的是要有提出问题并动手解决问题的实踐能力[1]。C语言程序设计是一门实践性很强的课程,培养学生的实践能力是其核心目标,仅靠教师讲授是不能让学生学好这门课程的,在实际操作中会通过大量的实践环节来训练学生的程序设和工程实践能力。但跟踪调查近三年毕业生,反馈效果差强人意,难以完成工程教育专业认证的要求,究其原因有以下几点。
⑴ 实验内容无内在逻辑性
实验题目多以课程章节设置,实验题目所涉及的知识点零散,题目之间无内在逻辑联系。由于C语言概念、规则细碎繁多,若采用无内在逻辑联系的实验题目来不断练习零散的知识点,看似练习了很多,但实际上却导致学生“只见树木不见森林,捡了芝麻丢了西瓜”,这样的简单练习无法帮助学生形成正确的计算思维。
⑵ 实验类型单一
实验题目设置验证性实验偏多。验证类实验主要是通过实验验证单个的知识点,其结果多为“是”或“否”,无法引导学生思考只是内在联系,将知识点融会贯通,从而获取解决问题的能力。学生通过大量的验证性实验,难以使知识系统化,对培养学生思考解决问题能力及创新能力的培养毫无裨益。
⑶ 考核方式陈旧,无法反映真实学习状态
课程考核结果一般由平时成绩、实验成绩和期末考试成绩构成,而往往期末考试成绩为了便于量化,一般会采用笔试的方式,实验成绩往往也是以实验报告作为给分依据,但事实上用这种“纸上谈兵”的笔试考核方式是无法真正掌握学生的编程能力的。
因此,笔者在C程序实践过程中针对以上三点,借助增量式任务驱动实践题目将相关知识点象珠链一样串联起来,引导学生循序渐进地从熟悉单个知识点过度到规模逐渐加大的程序,着重培养学生无论以后在学习、工作中使用什么语言编程,都能灵活应用这些思想和方法分析和解决实际问题的能力,使学生在实践学习过程中获取的能力更加符合于工程认证的要求。同时引入以编程能力培养为目标的分阶段考核,能够尽可能的反映学生的真实水平,使考核结果更加科学客观。
1 增量式项目驱动的分阶段实践教学设计
增量式项目实验教学法的核心思想是“循序渐进”[2]。按此思想,将整个C语言实践过程分阶段、递进地构建为两层“阶梯式”实验教学方案,实验内容也设计为逐层递进的实验题目,实验类型从模仿设计型实验、基本设计型实验,逐级过渡到综合设计型实验。
1.1 增量式项目实践教学内容设计
增量式项目实践教学内容通过设计两层增量式C实验教学体系来完成,如图1所示。
在基础层让学生边学边做,掌握基础语法;在应用层进行综合应用训练,达到知识的融会贯通,锻炼学生分析和解决问题的能力,帮助学生提升工程实践能力。
基础层注重基本知识的掌握,实验内容主要涉及C基本语法、顺序程序设计、选择结构、循环结构、数组。此过程的关键是,教师设计从实际问题出发的实验项目,并将每个实验项目分解成多个子项目,将学习的重点和难点分解在各个子项目中,学生通过所设计的增量式实验项目巩固所学相关知识点,有利于学生细嚼慢咽,温故知新。endprint
应用层重点是进行系统设计及软件开发能力的训练,侧重课程知识点的前后联系,实验内容主要有函数、指针、结构体、文件。在这一阶段,以综合主题实验项目为主,根据学生已掌握的背景知识,结合实际应用,将该实验设计为图书信息管理系统,如图2所示。
该系统根据课程内容的深入,层次递进地设计为六个版本,将新的知识点渐进的融入到每一个版本中,前一个版本是后一个版本的基础,而后一个版本又是前一个版本的扩展及深入,通过这六个增量式版本地训练,学生循序渐进地学习巩固新的知识点,每完成一个版本,都有新知识的获取,而且每一次都有成就感的激励,可以大大提高学生的兴趣。在实际操作中,教师还可以根据应用背景,设置多道综合题目,让学生分组完成,共同商讨数据结构、编程方法和具体分工模块,学生的团队能力、协作能力、自学能力也将得到很好的锻炼。
按此思路,将整个学期C实践内容设计为10个增量式实验,如表1所示。
1.2 增量式实践类型设计
实验项目类型不再拘泥于验证型实验,而是按照两层增量式实践教学体系,设计为基本验证型和综合设计型两类。其中,基本验证型实验可以帮助学生熟练掌握C基本语法和理解面向过程的设计思路。基本验证性实验又渐进地分为仿写程序、改写程序、基本验证和基本设计四个步骤,有助于按照教学节奏安排学生练习。综合设计性实验可以帮助学生掌握C在现实问题中的应用和理解C的某些数据结构,相对于基本验证型实验而言,其综合性、复杂性和应用性更高,难度更大,有助于引导学生思考,加深理解计算思维,培养其创新能力。
1.3 以编程能力培养为目标的分阶段考核
C语言程序设计的核心目标就是要使学生具有灵活应用计算机分析和解决问题的思维方法来编写程序解决实际问题,因此考核的重点应该是看学生是否能达到此目标。课程组按照阶梯式的实践体系,分阶段分层次对学生的学习效果进行过程化考核。
为了使考核过程更加可观公正,课程组开发了上机考试系统,其中的题目完全按照两层实践教学体系设置,在每一阶段的考核题目,课程组广泛调研,共同探讨,近两年来每年都会都题库题目补充、修订,使之能够更加全面的考察学生的学习效果。除此之外,系统为了全面考察学生一学期的学习效果,还设置了期末测试题库。学生C语言程序设计实践课程成绩构成如表2所示。
学生在上机考试系统上完成题目后提交系统,由计算机自动批阅给出成绩等级。当学生完成某一阶段的实践内容之后,就利用上机考试来评价学生当前阶段完成的情况,这样学生不用期末突击学习,而是分阶段完成各个知识点和考试任务,分阶段取得相应的成绩,不仅降低了学生的学习难度,同时也有助于学生及时掌握自身编程的不足,调整学习重点,提高学习效率。由于采取的是上机现场编程的方法,也能最大程度的检测学生的编程能力。
2 结束语
采用增量式的两层程序设计实践模式安排C语言实践教学,以增量式案例驱动,循序渐进、由浅入深,知识点与增量式项目相对应的方式,将实验任务进行分解,使问题化繁为简,充分尊重学生学习的习惯和思维的特点。以编程能力培养为目标的过程化考核可以使学生对学习状况有更加清晰的了解,便于老师调整教学内容,对提高学生编程实践能力起到积极的作用。因此在2015和2016级学生教学改革实践中,取得了良好的教学效果,得到了学生的肯定。实践证明,C语言两层实践教学及分阶段考核方式,让教、学、考的过程化繁为简,在激發学生的自主学习意识及培养工程实践能力方面都大有裨益,会更加符合工程教育认证的要求。
参考文献(References):
[1] 曹阳,杨桃月,张大斌等.基于工程教育认证要求初探机电一
体化系统设计课程教学改革[J].中国教育技术装备,2017.3:80-81
[2] 赵宁.基于递进式案例教学法的Java课程教学改革研究[J].
计算机教育,2013.23:73-76endprint