电子信息类专业C语言教学方法探讨
作者:刘争红 张向利
来源:《科技视界》 2014年第13期
    刘争红 张向利
    (桂林电子科技大学,广西 桂林 541004)
    【摘 要】本文针对电子信息类专业C语言教学过程中存在的一些问题作了相应的探讨与分析,并结合本专业知识结构特点和应用背景,调整教师教学方法,补充提高学生学习主动性,做出了有益的探讨。
    【关键词】C语言;教学方法;主动性
    C语言是目前世界上最流行、也是使用最广为泛的高级程序设计语言之一。其语言简洁紧凑、灵活方便,数据类型丰富,表达方式灵活,具备很强的数据处理能力,在操作系统和许多大型应用软件以及需要对硬件进行操作的场合都是采用C语言编程设计的。在我国高等院校理工科相关专业的课程体系中,C语言课程通常作为必修课程来定位的,也有一些高等院校把通过计算机等级考试二级(C语言)作为获得学位的基本条件。对于电子信息类本科专业来说,C语言课程地位在后续课程乃至学生职业生涯中同样是不
容小觑。C语言课程通常被安排在大学一年级,是一门全新的编程课程,相对于其之前的所掌握的的知识结构,所涉及的概念复杂,规则繁杂,使用灵活,相对于高中阶段的知识结构而言,具有完全不同知识结构的课程。对于这些刚刚进度大学的C语言初学者,不能透彻的理解掌握本课程的知识甚至精髓,更别提深入灵活运用到后续专业课程中了。
    鉴于电子信息类专业C语言教学过程中存在的一系列问题,寻合适的教学方法,提高学生学习C语言的学习兴趣,掌握解决实际问题能力显得非常重要。目前电子信息专业C语言教学过程中存在的主要问题:
    1)C语言课程地位认识不到位
    在电子信息专业的培养计划里,C语言课程会被安排在大学一年级,而本阶段的本科学生刚刚进入大学,对于本专业课程体系没有一个清晰的认识,也无法体会C语言在今后专业学习乃至进入工作岗位从事IT行业技术开发的重要地位。C语言是一门理论性和实践性都很强的课程,在实际的教学或时间的模式中,基本遵循这灌输是的教学方法,教师为了完成教学工作量而教,学生为了获得学分而学;这种教学方法与电子信息类专业培养需求和模式完全脱节。以至于毕业生知识结构停留于书本停留于考试,不具备解决实际应用问题,导致一方面大学毕业生感叹就业难,而企业同时感叹人难的两难尴尬境地。
    2)学习模式转变部分学生难以适应
    C语言具有有语法规则灵活、运算符和数据类型丰富、程序设计自由度大的特点,C语言不是简单的语法学习,同时还包含了数据结构、计算机基础知识还有程序设计算法。目前国内基础教育的现状决定了很多进入大学的学生习惯了高中阶段那种填鸭式的应试教育模式,缺乏主动钻研的学习动力,仍然采用机械式的方法被动的去学习C语言知识,通过死记硬背来来掌握C语言编程中的语法规则、指针使用,函数调用等一些知识点,自然无法做到灵活应用。各种原因造成了C语言学习入门难,学生对于该课程的学习产生了厌学和畏难情绪,严重影响了C语言教学效果。
    3)课程理论与专业应用结合不够
    目前没有单独针对电子信息专业C语言教学的教材。作为电信信息专业,后续课程如单片机编程、信号处理及DSP实现、计算机网络这些课程都涉及到C语言具体应用。但是这些在前期的C语言教材以及课堂教学中并没有体现出来。如果需要做到这一点要求这本身对授课老师提出了更高层次的要求:知识全面,对后续课程有着较为深刻的认识;实践应用能力强,具有丰富的相关开发经验。当然也不排除多学科老师共同参与到C语言教学中来,将C语言教学课堂分解成多个小课堂,邀请具有不同专业开发经验的教师来讲授不同章节的内容。
    鉴于C语言教学与大学阶段其他常规课程学习在学习方法、知识结构、有较大的不同,使得C语言教学存在很多的问题。通过探索和研究灵活多样的教学手段,结合专业背景,因材施教,提高学生教学效
率与专业素质,是目前电子信息专业一个亟待解决的问题。以下从几个方面结合教学过程中的一些体会谈谈电子信息专业C语言教学。
    1)理清本课程与后续课程之间的关联
    学习最忌盲目,更忌为考而学。让学生明白本课程在专业课程体系中的地位,让学生对有目的的去学,做到有的放矢,激发学生的专业兴趣,这一点是非常重要的。C语言在电子信息专业课程体系中属于一门应用基础课程,在学习信号处理、计算机网络、通信原理等课程的基础上,结合DSP、MPU、MCU等硬件平台可以进行通信网络设备、工业控制设备、消费类电子设备等专业技术应用开发。我们可以在教学过程中不妨通过现场演示本课程在后续课程中的应用(嵌入式DSP FPGA单片机):演示C语言编程实现DSP变成实现数字信号滤波、对比汇编语言来理解C语言的编程效率;通过展示TCP/IP协议栈部分源代码来了解计算网络通信的部分工作机理。通过这种基础课程与专业课程、专业理论和技术应用的前后关联,让他们明白本课程在后续课程甚至职业发展中的重要性:C语言兼具高级语言的开发效率和底层汇编语言执行效率的特点,可应用于后续课程如单片机、ARM流程控制、人机界面交互、在信号处理专业领域DSP信号处理应用算法、移动通信、计算机网络通信等领域协议开发,是电子信息专业毕业设计从事技术开发主要涉及的领域。掌握好C语言编程也是电子信息专业的学生今后从事IT行业的一项重要技能。
    2)提高学生学习兴趣,合理选择开发环境和编程工具
    C语言开发环境众多,在目前大多数教学过程中主要采用的集成开发环境有Turbo C、Visual C++和C++ Builder,这些编译环境功能非常强大,通用性也很好,但是不同编译环境都有着各自的特点。从教学角度来看,Turbo C小巧灵活,操作简单,最容易为学生接受。从学生专业发展角度考虑,笔者建议采用Visual C++和C++ Builder应用于C语言教学,毕竟这两种集成开发环境普遍应用于商业软件开发。虽然在前期的熟悉使用过程中,学生会多少存在一定的障碍和难度,但是通过一系列的上机实验,学生对于开发环境的使用无形之中得到训练,也为以后有关课程的学习和从事软件开发奠定基础。对于开发环境的选择也不要仅仅拘泥于这两种主流的开发环境,作为电子信息专业教学,我们不妨做一些大胆的尝试,于在课堂和实验教学中提前引入Keil C51、TI CCS这一类基于硬件平台的开发环境,这一类的开发环境有一个共同特点就是以某一系列MCU或者DSP作为开发平台,其数据类型与数据长度、程序跳转与地址操作直接与硬件关联、从而更容易理解C语言程序设计如数据类型、地址、指针等精髓内容。
    3)案例化教学加深教学效果
    任何一门课程的教学,都包含教与学两个方面,只有很好的组织这两个环节,才能切实提高我们的教学效果。同样的授课内容,如何形象具体的将知识呈现在课堂上,让学生轻松愉快的,甚至于是有所感悟的获取知识,才能避免理论与实践脱钩,才能充分调动学生的积极性。C语言教学内容包括数据表达、流程控制、数据的输入和输出及处理机制方面的语法和规则。机械的讲授C语言的语法和规则,那么课堂必然变得单调与枯燥,气氛比较沉闷,教学效果不理想,学生产生厌学情绪,挫伤了学生的学习
积极性。整个课程概念抽象,理论性强,对于刚刚进入大学的新生来说,在理解和掌握这些规则和定义存在一定的困难。如何将抽象的概念具体化,将理论、方法和技术形象化,理论与实际相结合是我们在教学中不断探讨和研究的课题。实例化教学模式的应用在理论教学中收到了较好的效果。通过比较同样的数学算法汇编语言实现与C语言实现的编程效率与可读性;通过单片机实现软启动来理解地址的深入应用;通过演示单片机矩阵键盘动态扫描来理解位移操作;通过LCD点阵液晶汉字字库取模与显示演示如何通过定义常量类型数据节省存储空间,通过字库寻址演示灵活运用指针。
    4)学生自学能力的培养
    现在单片机在中小学生中的应用推广已经不是什么新鲜事情了,自然将单片机的编程应用与C语言教学结合起来对于应该不会有什么困难。尽管低年级学生还没有学习《数字电路》、《单片机原理》这类课程,无法对单片机内部结构及工作原理深入理解,但是在C语言教学过程中,这部分并非重点。通过运行只需要C语言课程所学习到的基础语句实现的小例程,如跑马灯、数码管显示、按键扫描等,这些小例程现象直观,也不要求初学者掌握单片机定时器、中断等内部硬件资源。借助单片机这个低门槛的入门平台,类似寓教于乐的形式,来来促进学生学习C语言的兴趣和培养学生自学能力,可以达到较好的效果。这一点在全国大部分工科院校的类似于科协的学生社团得到了很好的印证。
    5)良好编程规范和编程习惯的培养
    在以往的教学过程中,程序编写的规范性往往是最容易忽略的环节。学生编写的程序只要求实现功能,对于可读性、移植性甚至于测试性均不作额外要求。尽管编程规范和习惯并不属于教学大纲所要求的内容,但是缺乏良好的编程习惯,同样没有达到预期的教学目标。对于电子信息专业的学生毕业之后进入公司从事编程开发之前,首先接受的往往就是编程规范的培训。因为他们绝大部分对C语言的编程规范例如缩进风格、命名规则、注释格式等等都一无所知。国内某些主流教材在这个方面也起到了不好的示范作用:各章节示例代码编写随意,变量以a、b、c、m、n、k命名;函数以fun1、fun2命名,无法反应出变量和函数本身的功能;函数无注释、程序代码块无缩进、程序块之间无空行、长语句无分行、长语句无分行甚至乱分行,根本谈不上什么可读性。然后在引入国内的一些经典C语言编程方面的入门级编程书籍中,常常都是单独拿出一章详细介绍编程风格及命名风格,这一点值得我们国内的教材编写者学习和借鉴。同时在我们的教学过程中,教师自身在做编程示范的时候,也要严格遵守编程规范,给学生做出一个好的表率。在课堂上,我们可以让学生观摩国外优秀程序员编写的开源代码,让他们发现自己与一个优秀的程序员之间的差距;可以推荐国内外著名IT公司的C语言编程规范和开源示例,供有学习兴趣的学生进一步提高。
    C语言自身知识结构特点、专业课程体系安排、教师教学方法以及学生态度等多种因素决定了C语言课程教学效果,需要我们教师给与正确的引导。本文针对电子信息类专业C语言教学过程中存在的问题进行了分析,并结合了电子专业特点,为培养本专业学生学习C语言兴趣,提高学生解决实际问题的专业能力,为电子信息类专业培养合格人才做出了一些有益的探讨。汇编语言转c语言的软件
    【参考文献】
    [1]谭浩强.C语言程序设计[M].清华大学出版社,2010.
    [2]马忠梅.单片机的C语言应用程序设计[M].北京航空航天大学出版社,2013.
    [3]孙静.C语言在单片机开发中的应用[J].电子世界,2012(5):24-25.
    [4]张蕾.基于项目化教学的“C语言程序设计”课程改革[J].计算机教育,2013(2):17-20.
    [责任编辑:汤静]

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。