APP下载

程序设计实践强化教学模式研究

2016-03-03

邢台职业技术学院学报 2016年6期
关键词:C语言程序设计实践性

周 雪



程序设计实践强化教学模式研究

周 雪

(厦门软件职业技术学院,福建 厦门 361000)

秉承以学生为中心,教师为主导,因材施教,因需施教,理论教学触入实践训练,强调应用能力培养的实践性教学思想,从教学内容的选取、组织形式、案例贯穿、教学环境、教学考核等多个环节尝试教学改革,讨论如何以“强化实践性”为出发点设计课堂教学过程,并构建与之相匹配的教学模式,通过教学实践,教学效果良好。

程序设计;教学模式;实践性教学;案例教学

C语言程序设计是大学普遍开设的一门重要基础课程,在日常工作中也得到广泛的应用。作为入门基础课程,绝大多数高校都将其安排在大学一年级。但是,大一的学生大多缺乏对程序设计的概念认知,分析综合能力基础较差 ,因此对很多同学来说,程序设计这门课显得很深奥。在课堂教学中,如何以“强化实践性”为出发点设计教学过程,组织一个合适的教学体系,构建与之相匹配的教学模式,这是摆在我们面前的新课题。多年来,笔者一直从事C语言程序设计课程教学工作,在教学中根据学生的个性特点与需要,不断调整教学方法,理论教学融入实践训练,注重培养学生的实践应用能力。经过几年的教学实践取得较好效果。

一、从教学内容与方法上强化实践性

(一)从程序设计“教什么”与“怎么教”入手

一个成功的程序设计教师关键在于对教学内容(教什么)和教学方法(怎么教)进行合理结合,但由于客观情况千差万别,没有任何一种教学模式适用所有人。在程序设计课程教学中,传统的教学方法一般按照知识点的逻辑顺序来讲述。如C语言程序设计,一般先讲解程序设计基础知识,再阐述程序设计的基本控制结构、数组、过程、文件读写等内容,最后讲述数据库应用。教学中,最关键的是要在实际编程过程中掌握正确的语法规则。

传统的处理方式是“语法驱动”,将语法分成若干部分,按一定的顺序讲解语法并用示例说明该语法规则的使用。其优点是比较“自然”,顺理成章。缺点是学生“只见树木,不见森林”[1],学完课程后大部分学生只能勉强应付选择题,独立的编程能力几乎为零,因为在整个教学过程中穿插的实例,都是为了教语法而举例。

另一种处理方式是“任务驱动”,按由小到大、由易到难的原则讲解一系列程序设计实例,直接学习编程方法,碰到什么讲什么、学什么。这种方法的缺陷是不能很好地处理系统知识和实际应用细节的矛盾。

教学实践中,笔者采用“任务驱动为主,语法驱动为辅”[2]的教学方式。通过情景设置提出问题,然后通过演示给学生看,让学生对要学习的知识有感性认识。在此基础上引出学习目标任务,再详细分析完成该任务的具体方法、步骤及涉及到的一些语法规则和相关注意事项。最后再利用相关知识点解决一些案例,加深学生对知识点的理解与掌握。比如,在学习“循环”控制语句时,可以例举一些简单的任务:“求从1到100的和”、“从1到n的和”、“求100个任意数的和”、“求n个任意数的和”等等[3],让学生掌握循环语句的使用,怎样使用循环变量,怎样控制循环条件,及每种循环的区别等等。这种教学思路,特别是对于难点的强化教学,十分奏效。

(二)案例教学贯穿整个教学过程

在程序设计案例教学过程中引入现实生活中的案例,进而设置适当任务,围绕任务组织引导学生分析解决问题,找出解决问题的算法。在实现算法的同时,详细讲解程序设计中相关的知识点和注意事项,提高学生学习兴趣。通过案例教学,使学生能够灵活应用程序设计的相关理论,提高程序设计应用能力。笔者主张从第一堂课开始就让学生接触实践性内容。实际教学中,笔者采用“小案例教学”和“大案例教学”相结合的方法,取得了较好效果。

1.教学前段的“小案例”教学

教学前段指程序设计基础、基本控制结构、数组以及部分常用控件的教学。学生刚刚起步,重在模仿,可以让学生采取类似于小学生描红的办法,通过一些贴近教学内容的、短小精悍的案例,经过多次重复的编辑、编译和解释执行过程,熟悉语言环境和人机对话的感觉。之所以强调“小案例”,主要是控制案例中既要涉及一定量的知识点,使学生必须“瞻前顾后”,把之前所学的知识串起来,但又不要涉及过多的知识点,避免因起步阶段内容不熟、基础不牢而顾此失彼。

2.教学后段的“大案例”教学

教学前段的案例大部分可以用短小、简单、孤立的代码完成[4],其与现实生活中应用还有很大差距。在教学后段讲授过程、指针、结构体、文件读写等教学内容时,学生具备了教学前段知识的积累,有了一定的程序设计思路,因此在每一章结束后提供一个大项目的实例片段,各个实例片段既相互独立又相互贯通,随着后续所学内容的增多,逐步让学生补充和完善其程序的功能,最终完成一个综合实例。在这个过程中可以使学生切实认识到通过程序设计语言如何解决问题以及解决什么样的问题等,进而对程序设计的教学目标更加明确,使学生对本课程的学习欲望增强,也为后续课程打下良好基础。

用一个大案例贯穿所有知识,难免会遗漏一些零碎的知识点和一些典型的算法。对于这个问题,可以通过精心设计一些课后作业来弥补,同时设计的作业要有趣味性和实用性,以便保持学生的学习兴趣。

二、从教学手段和网络教学环境方面强化实践性

程序设计课程教学由理论与实践两个环节组成。通常在多媒体教室授课,在机房上机。这种形式往往导致学生实际动手操作远少于教师一言堂的授课学时,严重阻碍了对学生独立编程能力的培养。另一种形式是将整个教学环节转移到配备多功能设施的机房进行,教师可以根据教学进程,教师边讲学生边练,适时调节课堂节奏。缺点是课堂秩序较难把控,学生不听课,独自上网甚至玩游戏而未能及时发现的情况常常发生,实际教学效果并没有预料的理想。

目前仍采用多媒体教室授课、机房上机实践相结合的做法。为了强化实践性,特别在课堂教学电子教案制作和借助网络教学环境实施课外辅导两方面下功夫。

(一)潜心研制高质量电子教案

制作一门课程的电子教案是确定教学内容、研究教学方法、理清讲课思路的过程,只有制作高质量的电子教案[5],才能进一步保障高质量的教学效果。

随着多媒体教学的普及,电子教案已成为课堂教学的一个核心要素。要注意的是,课件不是将书本搬上屏幕,不是书本的再现。否则,教师不过是带着学生在课堂上念书而已。课件应当是展示思维过程、展示计算过程、归纳设计思维、演化出结论的舞台。将抽象思维变成形象化的情景,将看不见的东西展示在学生的视野中。

开发较为生动的课堂教学课件,采用一些动画来动态演示算法步骤和控制语句的执行过程。如数组元素、排序、过程调用、递归等,生动的演示可将较为复杂的动态执行过程直观地展示给学生,使整个教学过程在简单明了、师生积极互动的氛围中进行。

(二)通过网络教学环境提高实践性

教学环境在合理分配课时、协调各部分的教学内容、强化实践性教学和提高学生应用能力等方面也有重要作用。首先,课内的上机实验时数,必须保证教师到位,保质保量完成计划内的若干验证性和设计性实验。实验课的辅导工作由教师承担,也可以分小组,由前期已有一定基础的组长完成部分辅导工作,减轻教师压力,也锻炼学生自身的能力。其次,通过网络教学的辅助方法,进一步提高教学效果。我们上传的网络资源中包括课程的电子教案、作业中的问题与参考答案、上机实践素材、复习资料等,拓宽了学生的学习空间。学生在课外独立、自由设计的综合性作品,可以上传到网络,由教师进行点评并作为平时成绩的一部分,以此激励学生积极实践,提高创新意识。

就我们学校目前的状况看,网络课堂还处于初级阶段,虽然在展示文字的基础上融入了视频音频,可以收发作业、提问与回答、论坛发帖等,但这个虚拟世界毕竟与现实世界相去甚远,与学生的交互、沟通还达不到现实世界的情景。随着我校信息化校园的不断完善、异地教学平台的构建和推广使用,网络教学环境可以大大地提高教学效率。

三、从教学评价与考核方面强化实践性

程序设计课程在大一设置,但是,他们在高中阶段所应用的学习方法却正好与程序设计的要求几乎是对立的,因为他们在高中阶段一般是先被灌输某个数学定理和公式,再利用这些公式和定理推导出别的定理和公式或用这些定理和公式来解答日常数学问题。从逻辑方法上来讲,他们更多的是应用分析和演绎的方法,而程序设计算法的本质上是一种综合和归纳,与分析和演绎的算法正好相反。

如何让学生改变其固有的逻辑方法,尽快形成新的思维习惯,这是高质量程序设计的关键。教学方法要改革,教学评价体系的改革也尤为重要。传统的闭卷考试(尤其是试卷中的选择题,要一改传统的“断章取义”式的出题法),只能鼓励学生沿用过去的死记硬背的老方法,默许学生用孤立的方式去理解语法规则。若改用网络上的程序设计考试来代替书面闭卷考试,就是告诉学生:程序设计技术只能来自实践!

一个好的教学评价体系就是按照教学大纲要求,应用好的教学方法和手段来激发学生的学习积极性,提高教学效果,完成教学目标的要求。通过合理设计相关考核程序和环节,了解学生的学习状况,及时调整教学进度,解决教学中遇到的问题,以达到最佳教学效果。我们对高级语言程序设计课程考核模式是:考核总评成绩按平时占20%、期末考试占80%的比例分配。其中,平时考核贯穿于整个16周的教学中,包括出勤、作业、上机实践、网上上传本人作品等情况。期末考试形式为统一参加省计算机应用水平无纸化考试,题型以设计题和编程题为主,辅以少量的选择题,在机房通过电脑实际操作调试完成考试。采用此考核模式既检验了学生对理论知识的认知程度,也考察出学生在遇到问题时自行分析和处理的综合能力。避免忽视平时学生表现,忽视学生实践能力培养,忽视学生上机调试等不良现象[6]。

四、从教材建设方面强化实践性

教材是贯彻教育思想、保障教学要求和实现教学效果的基础,也是教学改革中一项重要的基本建设内容[7]。我们根据以上教学模式的研究经验,编写了具有应用型大学特色的“C程序设计案例教程”、“C程序设计学习指导与上机实践”等教材,以案例教学为主线,从内容组织和编排上强化了实践性教学。

程序设计课程有自身的特点,内容多、学时少,不但要给学生传授许多理论知识,而且还要不断提高学生实际编程的能力。教材精心组织安排了一系列典型的、具有可操作性和一定实用价值的案例,把课程中所要掌握的概念、知识点、程序设计思想和方法、教学理念等贯穿其中,形成一个完整、科学的教学体系。教材提供了适于启发式教学的电子教案,达到了学生容易学、实践能力明显提高的预期效果。

[1]赵斌,郝红旗.《高级语言程序设计》课程教学研究[J].科技广场,2010(10):209-211.

[2]刑小英.“C语言程序设计”项目课程的教学设计[J].福建电脑,2009,25(1):208.

[3]高维春.C语言程序设计项目教程[M].人民邮电出版社,2010.

[4]刘贤锋.高职“C语言程序设计”课程整体教学设计探讨[J].中国电力教育,2009(15):98-99.

[5]文海英,梁小芝.《C语言程序设计》课程教学改革探索与实践[J].现代计算机(专业版),2012(11):50-52.

[6]周汝雁,陈庆海,黄冬梅.计算机应用基础课程考核机制探索[J].计算机教育,2009(10):90-92.

[8]卢照,南丽丽,杨秀荣.《C语言程序设计》教学中问题和改进方法的探讨[J].现代计算机(专业版),2012(1):34-36.

(责任编辑 李建武)

Research on Strengthening Teaching Mode of Programming Practice

ZHOU Xue

(Xiamen Institute of Software Technology, Xiamen, Fujian 361024, China)

Adhering to the teaching ideas of student-centered, teacher led, teaching in accordance with their aptitude and the needs, theory teaching involved in practice, emphasizing the practical ability cultivation, the author tries teaching reform from the aspects of selection of teaching content, organization form, the cases, teaching environment, teaching evaluation, discussing how to start from strengthening the practice to design classroom teaching process, and construct the matching mode of teaching. Through the teaching practice, the teaching effect is good.

program design; teaching mode; practical teaching; case teaching

G712

A

1008—6129(2016)06—0006—04

2016—10—15

周雪(1979—),女,吉林梅河口人,厦门软件职业技术学院,讲师。

猜你喜欢

C语言程序设计实践性
基于Visual Studio Code的C语言程序设计实践教学探索
51单片机C语言入门方法
从细节入手,谈PLC程序设计技巧
基于C语言的计算机软件编程
合同架构与合同法实践性教学的完善
高职高专院校C语言程序设计教学改革探索
实践性:音乐课程的本质特征
PPP项目运作中几个实践性问题
PLC梯形图程序设计技巧及应用
论芬兰高等音乐教育的实践性特点及对我国的启示