浅析地方高校《C语言程序设计》的课程教学
2016-02-22韩瑞东运城学院计算机科学与技术系运城044000
韩瑞东(运城学院计算机科学与技术系,运城 044000)
浅析地方高校《C语言程序设计》的课程教学
韩瑞东
(运城学院计算机科学与技术系,运城044000)
针对《C语言程序设计》中普遍存在的问题以及对教学现状的分析,在教学过程中提出传统教学与现代化教学手段相结合,提高课堂效率。并应用任务驱动引导、案例式、项目、类比以及实践教学等多种方法,激发学生的兴趣,提高自主学习的积极性,以及增强学生的综合实践处理能力,实现教学目标。
教学现状;教学手段;教学方法;综合实践
运城学院131人才专项教改项目(No.JG201642)
0 引言
《C语言程序设计》不仅是计算机类相关专业的专业必修课,而且几乎是所有工科专业的必修课,它的作用不言而喻了。对于地方二本院校的学生来说,由于C语言难度较大,并且学生的水平参差不齐(整体水平有点低),学生接受起来十分困难,学不懂就会对这门课失去兴趣。该课程是我系大一新生学习的第一门专业基础课,同时是他们首次接触的编程类语言。学习C语言,不仅能够为以后要学的编程类、软件类等相关课程奠定基础,也能为学生的就业提供一定的保障。为了提高学生的接受能力,使学生对这门课产生兴趣,针对学生上课过程中出现的一些问题,通过课堂上的教学与实践,提出了一些教学方法与建议。
1 教学现状分析
我院作为一所综合性的地方普通本科院校,当前我系开设了计算机科学与技术、网络工程、信息管理与信息系统、数字媒体技术及通信工程5个专业。作为入门语言,C语言是各个专业开设的基础专业必修课,通过对我院学生及相关C语言授课老师的调查分析,主要存在的问题有以下几点:
(1)对学生的调研结果
学生认为C语言知识点太抽象、难懂、内容枯燥无味、难以理解,渐渐失去兴趣,失去学习的积极性。他们认为学了C语言,到底有何用,不知道体现在什么地方,能够解决什么样的问题,没有目的。刚开始学不懂,往后就越来越听不懂,也就不想再听了,结果就导致了对整个课程失去学习的兴趣。
(2)对教师的调研结果
教师一致认为现在的学生基础薄弱,难教,课堂会出现各种问题,如一问三不知、上课睡觉、坐那发呆不听课等。一个班真正学习的人非常少,能有20%算是不错了。学生学习的很辛苦,我们教师教的也非常辛苦。考试后,C语言挂科的人最多。这样,教师就有了挫败感,上课也是为了完成相应的教学任务,没有任何目标,也就没有任何提高了。
针对上述出现的这些问题,为了提高学生对《C语言程序设计》的学习兴趣与积极性,彻底改变当前“学生学的困难,教师教的更困难”这种情况,笔者着手从教材内容安排、教学手段使用、教学方法应用等方面做出改变,以提高自己的教学效果。
2 课程教学探讨
由于《C语言程序设计》面对的是没有接触过任何编程类语言的大一学生,所以在课堂教学中一定要从以下几个方面进行注意。
(1)教材内容的安排
教学内容的安排与学生所学的专业相关,专业不同,侧重点也就不一样,就需要根据所授学生的专业来对教学目标进行适当的调整。例如,非计算机专业学生学习该课程的目的在于等级考试,往后通常不再学习编程类语言,则其侧重点就在于理论与实践培养;对于计算机类专业学生来说,就需要重点培养思维能力,创新能力,综合实践能力,还有就是学生的个性化发展。除此之外,作为教师,更应该在教学过程中对教材内容进行筛选和重新组织,以利于个人教学工作的开展。我院作为应用型院校,对于教学,更应该加快课程体系建设,实现教学观念的改变,从而在课堂上实现以“教师主讲”到以“学生主学”的转变,进而实现从“教知识”到“培养学生能力”的转变。
(2)教学手段的使用
①使用传统教学与现代化教学手段相结合
在课堂教学过程中,单纯的传统教学或现代化教学都不能够带动课堂的气氛,无法提高学生的兴趣和积极性。通过课堂实践,采用PPT、编程系统演示与传统板书相结合的方式激发了学生学习该课程的兴趣,调动了学生的学习性与积极性。对于一般的知识点采用PPT课件进行讲解;对于重点与难点采用板书来讲授,向学生展示思维过程,帮助学生提高抽象思维能力以及解决编程问题能力;程序演示主要是通过编写C的程序软件如VC 6.0++、Turbo C等从编写、编译、链接、运行、测试与调试让学生认识并掌握整个过程。在程序的整个执行过程中,带领学生找错,讲解如何找错与改错,这样学生的自主学习能力与积极性就大大地提高了,也真正实现了该门课程的教学宗旨,即理论与实践相结合。
②搭建系统平台实现网络教学
C语言教学平台即将搭建成功,该平台为学生提供了课程简介、课程教案、进度表、PPT课件、教学大纲、实验大纲、经典习题、在线测试与答疑等多种资源,为学生学好C语言提供了大大的方便,弥补了课堂时间短的不足。通过搭建这个平台增强了学生与教师的互动,学生的自主学习能力也大大提高,丰富了教学活动。
(3)教学方法的多样化
在传统的C语言教学过程中,主要是以教师讲授为主,满堂灌的这种教学很容易使学生产生疲劳,没有给学生提供一定的创新思考的空间,容易使学生失去学习的兴趣,无法调动学生的积极性。针对C语言中的重难点等内容,要做到应用适当的教学方法来讲授,以提高课堂质量。以下几种教学方法是我在C语言课堂上常用的,有不错的效果。
①任务驱动式引导教学法
在教学设计中,教师要注重任务的设置,学生通过这些任务能够进行思考与探索,掌握所授知识,让课堂气氛活跃起来。任何时候,问题都是超好的老师。讲解一个知识点,抛出一个或几个适度的问题都会引导学生进行深入学习。例如,在讲解数组概念时,首先设置问题:编程计算10个学生的C语言平均成绩。学生会按照之前所学的内容,想到要用10个变量来定义10个学生的成绩。那计算50个呢?定义50个变量就会使问题复杂化,学生此刻就会讨论如何定义变量了。那计算100个呢?此时,作为教师,抛出数组的概念,分析数组的性质,这样学生就会很容易记住并理解数组的性质,还会知道在什么样的情况下使用数组。通过课堂实践证明,该种方法充分激发了学生的自主性和学习积极性,提高了效率。
②案例式教学法
案例式教学法就是在讲授某个知识点时,以实际生活中的例子来引入,这样学生就会很快掌握。例如,交换两个变量a,b。首先引入例子,如何交换白色盒与彩色盒中的粉笔呢,取出一个空盒子,把白色盒中的粉笔放入空盒子中,然后把彩色盒中的粉笔放入白色盒中,再把空盒子的粉笔放入彩色盒子中,就完成了交换。回到例题,学生就会进行交换了,定义第三个变量t,通过t=a;a=b;b=t;这个操作就实现了两个数据的交换。再如,讲授关系运算表达式,(表达式1)||(表达式2),如果表达式1的值为真,则不用计算表达式2;(表达式1)&&(表达式2),如果表达式1的值为假,则不用计算表达2的值。通过与高中物理中的断路相关联,则很容易理解。
③项目教学法
对于我系大部分学生来说,在学完C语言程序设计后,都说听得懂,但还是不会编程,项目教学法在很大程度上为学生解决了这个问题。该方法就是结合理论与实践,分步讲授一个完整的C项目程序,重点在于编程思想与算法分析,从而提高学生处理问题的综合能力。在课堂初期,主要进行的简单的编程训练,对于不同的编程问题,首先要进行分析,然后再进行编程。重要的是编程思想,而不是编程。如判断三个数是否能构成三角形,并构成哪种三角形。首先,要做的是这三个数是否能构成三角形,然后再根据三角形的性质构成何种三角形,分析完后再用C语言编写程序。在课堂后期,比如学习数组,构造数据类型,指针等知识点时,通过简单的实训项目来给学生讲授相关内容,与学生共同编写相应的程序,后一个项目要以前一个为基础,循序渐进。比如学完数组后,我就要求学生编写一个学生成绩小系统程序,求出该班级30个学生的最高成绩,最低成绩,平均成绩等。学完构造数据类型时,要求在前面的基础上加入学生的基本信息等,学完指针,就要利用指针对这些数据或信息进行操作,学完文件,要学会通过文件来处理这些数据等。通过这种教学方法就会使学生在课堂上变为主体,而教师则作为主导。该教学方法能够使学生有兴趣地加入到课堂讨论中,激发了学生的学习动力,提升了学生的积极性,增强了学生的编程处理能力。
④类比教学法
C语言中规则众多,概念繁琐,前后内容紧密相关,教师应该在课堂教学中对相似的概念与规则进行对比分析,引导学生比较这些知识点的相同点与不同点,再根据某个不同点来加以区分,然后让学生通过实例来进行归纳总结,最后我再补充。只有这样,学生就不会混淆,并很快理解并掌握这些知识点。例如,指针数组与数组指针,这两个概念学生很难区别,难度比较大。数组指针的定义形式为int(*p)[n],指针数组的定义形式为int*p[n]。有括号与无括号怎么区分呢?学生很难弄清楚,讲解时,首先让学生了解加括号的当然优先级高了,无括号的就[]优先级高了。通过对概念的比较与讲解,学生就会知道,数组指针只是一个指针变量,它在内存中只占一个指针的空间;而指针数组是多个指针变量,占用多个指针的存储空间。再比如,在解决一个编程问题时,如判断素数,有多种实现算法,这些算法之间既有联系也有区别,通过对比,学生很容易理解并学会用更高效的算法实现编程,也就解决了整个编程问题。
⑤实践教学法
《C语言程序设计》该课程不仅要求学生熟练掌握理论知识,而且要有很强的动手实践能力,只听不练完成达不到这门课程的学习目的,提高学生实践能力的唯一办法就是加强上机练习。在上机实验中设置实验题目时,为了满足不同层次学生的接受能力,应当设置必做与选做题型。在上实验课之前,教师应当充分研究上机内容并明确上机任务,让学生不仅学生编程还要让学生有分析算法的能力。编程完并通过测试过,还要让学生想想所实现的算法是不是最优化的,还有改进的地方没有。每次上完实验课后,都要书写实验报告来总结并巩固所学知识。在该课程学习完以后,学生也要分组完成一个大的综合性项目,学生分工完成所实现的功能,以提高学生的综合应用能力。
3 结语
以上通过对《C语言程序设计》教学现状及问题的分析,以及在课堂中教学手段与教学方法的应用与实现,不仅提高了学生的学习热情,让学生从被动学习变为主动学习,而且加强了学生的编程处理能力,分析与解决实际问题的综合实践能力,以及创新能力,真正实现了该课程的教学目标。
[1]李丽娟.C语言程序设计教程(第四版)[M].北京:人民邮电出版社,2013.
[2]李丽萍,王冬梅.C语言教学改革的探索与实践[J].辽宁工业大学学报,2009(2):136-137.
[3]王巧玲,肖媛哦,叶熹.关于C语言教学方法的探索和研究[J].井冈山学院学报,2008(6):124-126.
Teaching Status;Teaching Means;Teaching Methods;Integrated Practice
Initial Analysis on Course Teaching of C Language Program Design in Local College
HAN Rui-dong
(Department of Computer Science and Technology,Yuncheng University,Yuncheng044000)
Widespread in the C programming language and the teaching present situation analysis,proposes a combination of traditional and modem teaching methods in the teaching process,improves the classroom efficiency.Applies task-driving,case and project,comparison and practice teaching methods,stimulates the interest of students,improves the motivation of learners,and enhances student's practical ability to achieve teaching objectives.
1007-1423(2016)28-0025-04
10.3969/j.issn.1007-1423.2016.28.007
韩瑞东(1988-),男,山西运城人,硕士研究生,助教,研究方向为软件开发技术
2016-08-23
2016-10-15