电类专业“C语言程序设计”课程教学研究与实践

来源 :中国电力教育 | 被引量 : 0次 | 上传用户:yaoyao0313
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:结合电类专业对C语言程序设计课程学习的要求,本文根据教学实践,提出了以多媒体教学为主,板书为辅,现场演示程序;并与案例驱动式教学法相结合,以提高教学效果,还在强化实践教学,网上辅导答疑等方面做了相应的探讨。
  关键词:C语言程序设计; 教学改革;案例教学
  中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2014)35-0125-02
  C语言程序设计是电子信息科学与技术和电气工程及其自动化专业的专业基础课程,为其专业的后续课程奠定基础,为学生的毕业设计做好铺垫,为学生参加国家或省级电子设计大赛打好基础。要想使学生学好,首先教师就要教好,教学方法直接影响着教学效果,所以教学改革必然从教学方法着手,本文从五个方面进行改革。
  一、采用“以多媒体教学为主,传统教学为辅,两者相结合”的教学方法来解决理论课时不多,教学内容较多的难题
  根据我院的电子信息科学与技术专业和电气工程及其自动化专业的培养方案,我校各专业的培养方案中总学时数是规定的,公共课程的课时又不能压缩,还要特别重视实践教学,实验课时比例要占总学时的25%左右,培养方案中分配给“C语言程序设计”这门课程的课时量相对计算机专业来说较少,理论课时为48学时,实验课时为16学时,共64学时,开课学期为第一学期或者第二学期,再加上学生在计算机基础知识方面底子较薄;C语言的教材一般都至少有10章的内容,并且每章的内容都不少,其中较难的例题其算法要解释清楚就需花半节课时间,整个例题的讲解要花一节课的时间;比如求100-200间的素数,按每行6个数据输出;用函数完成选择法排序等问题。若把所有的基本概念和例题都用传统的方式教学,先把流程图画在黑板上,再把程序板书出,那样会浪费很多时间,而且还达不到想要的效果,通过多媒体教学则每节课讲的内容可以增多,还可以当场演示出程序的运行结果,让学生知道其所以然来。教材上的大多数例题只要用ppt演示并讲解清楚即可,不需每道例题都板书在黑板上;有些知识点在在多媒体教室,用计算机演示并讲解的效果直观。比如在第一堂课中介绍运行C 程序的步骤和方法时,教学过程中所有程序是用visual c++集成环境进行编译的,熟悉它以后也会有利于今后进一步自学C++,通过多媒体教学手段演示编辑、编译、连接、运行C程序的过程,并直观地看到经过各步骤得到相应的*.c,*.obj,*.exe文件,比如在讲解转义字符\t、\r、\b、\n、\101、\x41等知识点时,直接在计算机上用visual c++6.0执行程序即可解说各转义字符的含义。但有些要特别强调的知识,上课的重点知识选择要点板书在黑板上;当然演示速度比较快,节省时间,但不是完成教学任务即可,还要求教学效果好,为课堂上与学生互动起来,重要的程序或者程序段偶尔要求学生写上黑板上,其他学生自己在座位上完成程序,有时叫学生回答问题,保证大多数学生能有机会积极回答问题,特别是在讲解程序前让学生思考算法,这样可根据不同的教学对象采用不同的教学手段,让学生参与教学当中来,从而加深学生对所学知识的印象,提高学生的学习主动性,在讲解例题输入两个实数,按代数值由小到大的顺序输出这两个数时,本人先引导学生思考其算法,再编写程序,先运行直接用语句a=b;b=a;编写的程序看程序运行结果是否达到目的,计算机中有替换的概念;a=b;原来的a的值就被b覆盖掉了,再执行b=a;原来a的值已经没保存,让学生明白直接用这两条语句解决不了问题,然后再通过举例如何把一瓶啤酒a和一瓶矿泉水b里的液体反装,借助一空的可乐瓶t来实现,告知学生啤酒不能直接倒入矿泉水瓶,而是先将啤酒先倒入空的可乐瓶即t=a,再将矿泉水b倒入啤酒瓶a,即a=b;再将暂存在可乐瓶中的啤酒倒入矿泉水瓶中即b=t;最后用编程来实现,学生会恍然大悟。真正实现两个数据交换要借助中间变量t,t=a;a=b;,b=t;象学生做词语接龙游戏的做法来完成,该程序在后面的章节中会用到几次,比如在起泡法、选择法排序,用指针知识实现选择法排序等程序中常用,要学会举一反三,学生通过理解性记忆后很快就能消化所学的知识。有时通过学生亲眼见识想当然的方法是行不通,让学生来参与算法的研究,让学生明白算法的研究,并提高其学习的积极性,让学生有一种成就感。比起那种直接给出程序,相对让他们死记硬背的方法来说,这种方法得到的教效果更好。
  教师在课堂上要将程序现场演示,比如:在讲解循环程序设计知识章节时,讲述例题“九九乘法表”等控制换行的程序设计中[2],可用计算机当场演示程序结果来表明;是外循环来控制换行,还是内循环控制换行,还是内外两个循环都要控制换行,最后可以得知,若想求得正确结果,只需外循环控制换行即可,程序段为:int i,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++) printf(“ %d*%d=%d”,i,j,i*j);printf(“\n”);}其中i控制行即外循环,j控制列即内循环。执行后让学生一目了然,还可将printf(“\n”);语句放在不同的位置,程序输出的换行情况会不同,printf(“\n”)语句放在for语句的后面就只有这一种情况是自己想要输出的格式。当然printf(“\n”)放在第二个for语句前也能实现,即int i,j;for(i=1;i<=9;i++){ printf(“\n”);for(j=1;j<=i;j++) printf(“ %d*%d=%d”,i,j,i*j); };教师在讲解算法后,编写出程序并在计算机上当场执行该程序,让学生当场能看到正确结果。从而使学生能一目了然,以后碰到同类型的题目就可以举一反三来完成,多媒体教学的优势也就得以体现。
  二、针对电子信息和电气工程及其自动化专业的特点,重点、难点突出,灵活运用“案例驱动式”教学法
  根据电类专业特点和该专业对C语言程序设计知识的需要情况,本人采用“案例驱动式”教学法。因为本课程的课时量有限,也不可能每个知识点都能很详细的讲解,有些容易的知识点稍作解说,要求他们课后自学并巩固,重点放在选择、循环、指针等章节;对电信专业而言还需将结构体与共用体作为重点。将C语言程序设计与实际应用联系起来,告知学生大多数银行的自动取款机程序是用C语言控制,让学生学完循环后,要求他们编写显示国际象棋的棋盘程序、数学中的抛物线等图形;让他们将C语言基础打扎实,再脚踏实地的学习较难的程序,最后自己设计一些小型的系统比如学生信息管理系统等,为大四的毕业设计做好准备。   在课程的案例选择中一般应注意以下几个方面的内容:实用性、趣味性、综合性、挑战性。对于非计算机专业同学而言,对计算机课程的学习重视程度不够高,C语言中语法较多,运算符也比较多,让学生感觉难记,也很难灵活运用,从而很难提高学生的学习积极性,其实C语言这门课程对电子信息和电气工程及其自动化专业来说相当重要,这门课程不学好,其后续课程就很难学好,比如数据结构与算法,单片机及应用,计算机控制等课程。所以要通过具体实例来解决这一矛盾。在具体的实例中将其语法解释清楚。比如double型和float型数据的输入和输出的格式,通过“从键盘输入两个数,将其按由大到小的顺序输出”。这一实例让学生理解输入数据时用到scanf函数,其中两种数据类型所用到的格式声明是不同的,前者是%lf,后者是%f,但是输出数据时用到printf函数,两者用到的格式声明是相同的,都是用%f。经常选用的实例还有:分段函数的计算,阶层的求法,贷款计算,求三角形面积,素数的判断、折半查找法、选择法排序、冒泡法排序和输出杨辉三角形等。在每道例题解答的过程中,要多问为什么,有些问题让学生参与算法的思考,让学生知道其原理,并要求他们边学边巩固。还可以对一些例题应用多解的方法来完成,通过运用更简单的方法编程来实现教材上的例题,让学生有成就感。比如在很多教材中都有这样的例题:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开[3],解释书上的算法比较费劲,若把程序稍作修改,虽然算法是一样,但理解起来就较容易,本人还曾将该题作为期末考试的程序设计题,大多数同学可用较简单的方法来完成,说明改进的方法容易掌握些,算法的原理仍然是当前字符为非空格,但前一字符为空格,具体程序改为:
  for (i=1;(string[i])!='\0';i++) if(string[i]!=' ' && string[i-1]==' ') num++;
  if(string[0]!=' ') num=num+1;
  案例驱动教学法是一种综合性较强,效果较明显的教学方法,在案例驱动教学过程中还特别注意与引探教学法相结合效果就更明显。 引探教学法主要从以下几点入手:营造乐学氛围、唤醒自主意识;精心设计案例,讲练结合;教师主导,学生主体;大胆设疑,探究解疑,获得新知。在C程序设计课程中应用这些方法目的在于教会学生遇到问题时如何分析问题、如何解决问题,特别强调对算法的分析。让他们通过具体实例的解决,学会举一反三,将所学知识灵活运用到后续课程及电子设计大赛,部分学生还利用C语言程序设计通过计算机国家二级,为毕业时获得学士学位奠定良好的基础。
  三、注重课前兴趣激发
  兴趣是最好的老师,在第一堂课上,告知大家学好C 的用处,与他们最相关的是这门课程是他们的专业基础课程,考核方式是考试而不是考查,其后续课程有数据结构与算法,单片机及应用;对参加省级、国家级电子设计大赛有帮助等,对其毕业设计有帮助;很多地方都用到C 语言,比如银行,红绿灯的控制,游戏制作等。单片机的教材中有运用汇编语言编写程序,现在大多数都是用C语言来完成相应的功能,包括参加电子大赛的设计很多功能是用C语言来完成,偶尔带领学生参观电信在我校的分机房,请中国电信电信的工程师给学生讲解计算机网络及其监控的原理,让学生明白很多功能都是由程序来控制。让学生明白计算机可运用到很多领域,在每节新内容之前都要讲一个用新内容能解决的生活中的有趣问题,以此来培养学生的学习兴趣和主动性。如:“折半查找法”、“矩阵问题”、求“Fibonacci兔子问题”“排序问题”等。学生特别想知道如何用C程序来解决这些有趣问题,这样会让学生怀着期待的心情来听课。到最后,用所学知识来解决了这些问题时,会让学生直观的看到C语言的用途及程序输出的效果,觉得这些知识既有用,又有趣。学生体会到程序设计的用途和一种分析问题、解决问题的方法,以及在C语言程序设计学习中还能领悟到其他课程的中的问题的解题思路。这样可以提高学生对C语言程序设计这门课程的的重视程度,从而更加努力的学习这门课程,为其后续课程奠定基础。
  四、强化实践教学,提高C语言程序设计的教学质量
  1.规范实验教学环节
  教师对每一次实验要有明确的要求,对每一次实验的目的是什么,实验中应该注意什么,会遇到什么问题,应如何解决等,都要在实验课中特别强调。
  2.强化训练每个实验
  在实验前要求学生做好预习工作,根据实验讲义上的题目完成相应的程序,实验课只有8次,共16学时,所以要求学生课前把程序写好,在上机课的90分钟内主要完成调试程序,不懂的请教老师。
  3.采用多种实验教学手段,强化实践教学
  在实验教学方面,采用在计算机机房的实验教学与网络教学相结合,借助于电子信息与电气工程学院的网络资源即实验预约系统网站搭建师生交流和互动的平台,学生还可通过世界大学城的网络空间获得相应的C语言程序设计的资料。
  课后还可以通过QQ群来搭建师生交流和互动平台,以便弄清学生在学习中碰到的实际问题,帮助学生解决难题。
  还可以布置课程设计作为课后练习,学生自主或教师指定几人一组共同开发小型的系统,比如用C语言实现工资管理系统,学生成绩管理系统等;
  在传统的学生提问,教师当场回答的答疑方式的基础上,又借助于电子信息与电气工程学院的实验预约系统,和利用QQ群交流或者发送E-Mail等增加网上答疑方式,使答疑不受空间和时间的限制,充分利用多媒体教学手段和网络资源,搭建了一个师生互动的网络平台,从而使得教学效果达到最佳。
  在C语言程序设计实验课前还应该要求学生在上机实验之前先写好实验预习报告。因为每堂实验课只有90分钟,整门课程只有16学时的实验课(即8个实验),每个实验除了要求至少完成实验指导书上的4道程序设计题以外,还需将理论课程中所学的程序或难理解的知识点转化成程序来调试,上机时间有限,如果不提前预习,若上实验课时才写程序的话,有些难题需花一节课才能完成,这样就完成不了一次实验课安排的任务,所以我们要求学生先预习,实验课前能写好的程序尽量先完成,在实验课堂中主要是对针对自己的预习写好的程序进行调试和改进。有不懂的,或者解决不了的问题在上机时当场请教老师来帮忙解决,老师解决问题时不要直接把答案告诉学生,而是引导学生程序该怎样修改,加强培养学生程序调试能力:程序的出错原因有两类:一类是程序编译错误;一类是程序逻辑错误。对于第一类错误,教师告诉学生如何根据output窗口提示的出错位置和出错原因进行改正。对于第二类错误,指导学生怎样利用Debug窗口中提供的工具,实现重新开始。老师在上机实验过程中再针对多数学生出现相同错误的知识点作出点评,帮助学生巩固所学的知识,因为该门课程的实验考核大纲中有明确的规定,实验课程的总分为操作和实验报告各占50%,所以在上机课上要做好实验操作成绩的评分和记录,课后再批改实验报告,最后统计出每个实验的总分。实验总成绩占该门课程的总成绩的20%。
  五、结束语
  国家越来越重视学生素质能力的培养[4],本校正准备向应用型大学转型,教师要对教学方式进行改革,对C语言程序设计课程改革是必然的,使课堂教学的质量得到更大幅度的提高,通过多种实践环节,学生能更好地理解课堂教学内容,拓展知识面,全面地培养学生的素质,学生的抽象能力、思维能力、C语言程序的设计与分析能力,毕业论文的撰写和表达能力都能得到较大的提高,能让学生学好,并能学以致用。
  参考文献:
  [1]刘灵丽,曹菊英,刘晓玲.“C++程序设计”教学方法与体会[J].中国电力教育,2010,(9):72-73.
  [2]谭浩强.C语言程序设计[M].第四版.北京:清华大学出版社,2010.
  [3]杨路明.C语言程序设计教程[M].北京:北京邮电大学出版社,2014.
  [4]张晶晶,陈晓宁.C语言程序设计教学模式初探[J].皖西学院学报,2009,25(5):39-41.
  (责任编辑:刘丽娜)
其他文献
摘要:大规模开放在线课程MOOC(Massive Open Online Course)是一种新兴的网络在线教育模式,对传统的教育模式产生了巨大冲击,受到了教育界的高度关注。MOOC区别于传统的教学平台,更注重师生和学生之间的互动环节,且有考试认证考核环节。以MOOC课程的学习环节为主线,结合MOOC平台功能分析,探索MOOC教学平台建设的思路和方法,重点探讨实施过程中可能遇到的问题,并给出相应的
期刊
摘要:通过比较PBL教学模式与LBL教学模式的优势与不足,提出在电路课程教学中将PBL和LBL两种教学模式有机结合,并结合电路课堂教学对如何应用这一教学模式进行了深入研究和探索。经过实践表明,PBL与LBL双轨教学模式既能提高学生创新能力和科研能力,同时也有利于教学质量的提高。  关键词:电路;PBL;LBL;教学模式  中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(20
期刊
摘要:以当代教育为背景,基于地方本科院校,结合地方社会环境和经济文化环境,针对现代教育转型职业化教育的内在需求,对地方本科院校工程应用型人才培养模式展开初步探讨,提出新型人才培养模式方案,紧密结合高校、企业和社会,从三者对接措施和培养途径具体阐述,构建独具特色的新型人才培养模式即“产学对接、校企协同、社会支持”工程应用型人才培养模式。  关键词:职业教育;地方本科院校;工程应用型人才;人才培养  
期刊
摘要:通过对大量毕业生做毕业设计(论文)的过程进行考察,发现提高新建本科院校毕业设计(论文)质量的关键所在是改变毕业生的思想意识,提高学生对其重要性的认识和科研素养;学校完善相应的规章制度,建立奖罚措施;学院加强过程管理和质量监控,加强师资队伍建设,增强指导教师的责任意识;指导老师直接负责督促每个环节的开展、质量把控。这样“四管齐下”能大大提高新建本科院校的毕业设计(论文)质量。  关键词:新建本
期刊
摘要:鉴于电力电子课程教学过程中出现的难题,本文将Multisim仿真软件引入课堂。通过对软件的简要介绍,结合电力电子课程教学中的困难,分别以整流、斩波、逆变、交交变换四种电路中的典型应用为例,重点探讨了Multisim应用于电力电子课程的方法和功能。通过该软件的应用,可形成一种新型教学模式,显著提高教学效果,促进电力电子技能型人才的培养。  关键词:Multisim软件;电力电子课程;仿真教学 
期刊
摘要:“热工过程自动控制”是能源与动力工程专业的一门重要专业课,该课程与工程应用联系密切,实践性较强。针对目前教学中出现的理论与实际脱离、缺乏对学生工程能力的培养等问题,采取校企合作的方式搭建课程的实践教学平台,通过优化课程体系、改革课程实验、引入企业实践等方式,对原有教学大纲、教学内容和教学方法进行了改革与实践,提升了学生的工程实践能力。  关键词:校企合作;实践教学;教学改革  中图分类号:G
期刊
摘要:随着社会不断发展,高等学校学生如何与迅速发展的经济、科技及社会状况相适应是一个急需解决的问题。针对这种情况,论述了大学生实践的重要性、目前所面临的困境,提出了构建现代大学生教学实践的具体方案,目的在于能培养大学生的独立思考能力、解决问题能力,实践动手能力及综合素质。  关键词:高等学校;大学生;实践  中图分类号:G642.423 文献标识码:A 文章编号:1007-0079(2014)35
期刊
摘要:废旧物资管理对电力集体企业提高资金利用率,防止国有资产流失具有重要的意义,如何规范废旧物资管理工作,实现了废旧物资回收的集中管理,提升企业经济效益始终是各级领导和员工关注的焦点。本文旨在通过引入成熟度模型,通过建立废旧物资管理水平评价指标体系,探讨如何更加科学有效地评价电力集体企业废旧物资管理能力,进而提出废旧物资管理能力提升策略,实现电力集体企业废旧物资管理工作的持续改进优化提升。  关键
期刊
摘要:基于LabVIEW的继电保护实验平台的开发将虚拟仪器技术与电力系统继电保护相结合,以图形化编程软件LabVIEW为支撑,搭建具有信号采集与分析的多功能虚拟继电保护实验平台,充分利用实验室教学实验装置,突破硬件不足对实验教学的限制,是目前高校实验教学的迫切需要。同时该平台可以丰富教学方式,提高学生的学习热情和动手能力,对于培养学生的创造性思维有很大的帮助。  关键词:虚拟仪器技术;LabVIE
期刊
摘要:针对目前配电线路带电作业的作业方法进行了实质性的探讨和分析,重点介绍了绝缘杆作业法和绝缘手套作业法的安全防护要求和注意事项。  关键词:配电线路;带电作业;绝缘杆作业法;绝缘手套作业法;安全防护要求  中图分类号:TM726 文献标识码:A 文章编号:1007-0079(2014)35-0205-02  目前,安全开展带电作业已经成为社会和经济发展的必然要求。在(GB/T 18857—200
期刊