基于案例化的《C语言程序设计》教学改革研究

    张高敏++王启明++吕海莲

    摘要:《C语言程序设计》是计算机相关专业编程语言类核心基础课,该课程以培养创新精神和实践能力的应用型人才为目标。通过课内外一体化、理论实践一体化的教学模式改革,强化学生在基础编程思想、基础编程技能、基础编程规范等三个方面的素养培养,达到能熟练运用C语言解决实际问题的能力。探索应用技术型人才培养的基础技能课培养模式,并逐步形成与之匹配的教学资源。

    关键词:编程语言;课内外一体化;教学模式改革;教学资源

    中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)11-0151-02

    20世纪90年代以来,C语言在全世界普及推广[1]。《C语言程序设计》课程是计算机相关专业在大一新生入学后开设的第一门计算机语言类核心基础课,主要学习C语言的基础编程知识。C语言是嵌入式软件开发的主要编程语言,它不仅具有高级编程语言的的优点,而且具有直接访问各种类型处理器底层硬件的能力。C语言提供大量功能丰富的数据结构类型,具有较强的表达力,使用起来应用面广,简洁灵活,生成的目标程序效率较高,稳定性和移植性相比其他高级语言都有较大的优势[2],软件编程人员特别是嵌入式编程人员对C语言情有独钟。

    把C语言作为计算机相关专业学生的第一门编程语言课程,学习之后能具备基本分析问题能力,构造简单算法的能力,基础编程能力和程序调试能力[3],为其他高级编程语言或计算机专业课程的学习奠定编程基础。因此,C语言学习的好坏直接关系着后续课程学习的好坏,进行《C语言程序设计》教学改革,提高学生的基础编程能力有重要的现实意义。本次课程教学改革以计算机专业《C语言程序设计》为主,在取得较好的教学效果后,可以将改革方法拓展到计算机其他类似专业课,也可以应用到非计算机专业对C语言类课程的教学过程当中。

    1 现状分析

    1.1从编程语言特点分析

    当C++语言和Java语言出现后,有些软件开发人员觉得C语言过时了,将会逐步被淘汰,这其实是一种误解[4]。更加高级的语言出现是为处理大规模软件开发而设计的,这些语言本身要比C语言复杂的多,也难学的多,并且并不是每个编程人员都需要开发大型软件。C语言经过20多年的发展,至今仍受到编程人员的青睐,正是基于它本身的自由灵活,非常适合解决底层设备的驱动程序和嵌入式程序功能[5]。对于刚刚接触计算机编程的大一新生,他们没有计算机软硬件的相关知识,C语言自由灵活的语法结构一开始就成为他们的绊脚石,让学生愿学能学好就需要用合适的教学方法。

    1.2从教学方法手段分析

    多媒体是当前高校教学的重要组成部分[6],授课教师把讲授内容做成PPT或者动画在课堂上演示讲解,重点部分特殊标注,难点部分用图形动画多种方式展示,便于学生理解,课堂利用率比传统的板书授课有极大提高。但多媒体教学方法只是在传统板书的教学法之上把课程内容事先准备好,教师在整个教学过程中处于主导地位,即教师一直在台上讲,学生在下面听。没有给学生机会参与到课堂当中,不能充分调动学生积极性。时间久了就会导致学生上课时因为内容枯燥听不懂就出现瞌睡,玩手机现象;由于理论课没听懂,到上机课就不知所措,无所事事,接着就出现上网,打游戏现象,最后导致学生仅有的一点热情也因为教学方式和教学内容的固化而消失得无影无踪。

    1.3从教学资源来分析

    优质教学资源匮乏、单一也是直接影响教学效果的重要原因之一。目前,各种纸质电子教学资源十分丰富,称得上优秀的教学资源也不少,但找到一个适合自身院系学生学习接受的教学资源却少之又少。当前课程所使用的教材都是谭浩强主编的《C程序设计》,这本教材概念清晰,内容细致全面,但好的教材不一定适用于所有的学校的学生。当前我们培养学生的目标是应用技术型人才,应用技术性更应该注重对基础知识综合利用,应当把教学内容分散到教学过程,教学案例当中。

    1.4从考试方式来分析

    当前各学校的考试方式主要通过闭卷笔试为主,考察学生对专业基础知识的掌握程度和应用能力。考试内容多局限于教材本身的内容,通过多种客观题来重点测试学生对基本概念基本规律的掌握情况。这种考试方法对老师来说是一种较为简单的检查教学效果的方法,但不是一种高效全面的方法。它更多的体现了学生的记忆能力和判断能力,忽略了学生发现问题和解决问题的能力,学生没有机会去表达自己对问题表现在更深层次的理解,限制了学生的学科兴趣和个性创造力。《C语音程序设计》是一门计算机的编程语言,重点培养学生的动手编程能力,而闭卷考试只能拘泥于各种语法细节,几乎涉及不到动手编程。即使有编程题,在答题卡上写出的程序没有实际的编译环境也无法查看结果的正确与否。最终结果就是临近考试,学生突击做题背题,而不是动手编程调试查看结果。

    2 教学改革的核心内容

    该项目针对我院计算机科学与技术专业和物联网工程专业,《C语言程序设计》课程教学改革研究的主要内容有以下几个方面:

    2.1教学案例化

    案例贯穿于整个教学过程。C语言常用的每一个核心知识点都融入到一到两个案例中,形成一个个内聚化的知识模块。学生只需学习这些案例就能掌握基本的语法知识和编程能力,不在死记硬背那些枯燥的内容。最后通过一个综合性案例把全部的知识点给融合到一起让学生从整体上对这门课所学的知识在应用方向上有一个新的认识。

    案例设计的好坏和教学效果的好坏息息相关。在设计案例时要遵循由简单到复杂,由易到难,全部案例覆盖整个教学知识点,循序渐进,符合学生的认知规律。把学生必须掌握的教学内容全部重新梳理一遍,形成一个个知识块,根据这些知识块难易度在由浅入深的通过案例中加以讲解,把全部知识点教学融入到案例教学过程中,突出实践教学环节。对这些涵盖筛选出来的案例进行整合,形成初步教学讲义,配合教材使用,再通过教学实验、教学过程对讲义进行完善,形成更多的教学资源,最终编写出经过教学实践检验的教材。

    2.2 考核过程量化

    考核更加注重过程和能力,基本考核目标是让学生能够使用掌握的理论知识和基本编程思想,解决日常简单的实际问题。本课程的考核采取过程考核机制,主要由四个环节构成,依次为课堂互动成绩、技能应用成绩、实战考核成绩和ACM刷题成绩。其中课堂互动成绩:包括考勤,回答问题等,占10%;技能应用占40%,实战考核占15%;ACM刷题成绩占35%。这样的过程考核就把学生的最终成绩平均到整个教学过程中,学生在课下动手编程的积极性也得到了极大提高。

    2.3 课内外一体化

    探讨课内外一体化的教学实践方法,课内教育和课外教育是创新教育有两条途径。鉴于C语言程序设计对学生后续学习的永久影响性,进一步完善上届学生的课内外一体化教学模式,通过开放实验室为学生提供学习资源丰富,引导学生养成“制定计划——自由学习——总结归纳”学习习惯,配备老师和优秀的高年级学生进行辅导答疑,形成学生以寝室小组形式在课外进行探讨、交流、解决问题的氛围,培养学生的自主学习能力和团队协作素养,同时保证了课内学习在课外的延续和扩展。由于课内课外一体化模式的效果依赖于执行细节的掌控和学习过程的跟踪和监督,所以聘任学生为助教,协助任课老师和指导老师团队完成学生的监控指导工作。

    3 教学改革方法实施方案

    3.1知识点梳理

    C语言课程改革的核心是对教学内容和教学资源的重新整合,重点围绕专业人才培养目标和社会对本专业学生能力的要求,实现理论知识够用,动手能力够强,有效实践够多的教学改革目标。在知识点梳理过程中不再过度追求C语言知识点本身的系统结构和细节,而是集中精力编排好常用的核心知识点对其重点讲解,不常用的或者不重要的知识可简单介绍主要通过学生自学来完成。

    具体方法是根据知识点的重要性和使用频率,把其依次分为A、B、C三个等级。等级A为核心知识,老师要精讲多讲,学生必须掌握并能够熟练运用的知识点。等级B为应该知道并理解的知识点,这些知识作为A等级的辅助知识点,对这部分理解之后有助于A等级知识的综合运用。等级C为自学内容,这类知识不是不重要,而是根据学生的学习能力和理解能力不同,给予他们灵活把握,学好了这部分可以锦上添花,没学好也不至于对本课程一无所知或知无所用。

    3.2知识点模块化

    知识点模块是教学过程中的重点内容之一,知识点设计难易是否合理、内容是否全面、衔接是否得当等都直接关乎教学改革质量。通过查阅文献、外出学习、到企业培训机构调研、学生座谈等方法设计知识点模块。按照掌握的资料,对整个教学内容由简单到复杂、由单一到综合划分为入门能力、基础能力、应用能力和综合能力四个模块,每个模块根据不同的训练目标指定明确学生的学习目标,模块具体内容见表1。通过知识点模块,把知识全部融入到实例当中,加强了知识在实际应用中的比重。

    表1 《C语言程序设计》知识模块化

    [知识点模块\&学习目标\&入门能力\&使学生快速接触程序基本结构、函数、数据类型(包含数组、结构体、指针和链表)和程序设计的三种基本结构的概念、不过分追求知识本身的系统化和使用细节。\&基础能力\&主要包含数组、字符串和字符串函数的相关知识,强调应用,巩固入门阶段的分支和循环。\&应用能力\&主要包含函数调用、结构体和共用体以及对应的数组结构类型和应用方法,通过讲解一个简单使用的通讯协议加深理解和应用,最终实现举一反三,增强应用能力。\&综合能力\&主要包含指针和链表两部分。指针部分涵盖前三种知识的全部内容,链表部分来整合整个C语音的系统知识,进行综合应用,在应用中实现对整个课程重要知识点的复习。\&]

    3.3教学资源整合

    依据应用技术型人才培养目标,成立课程教学改革小组,探索基于项目驱动的教学模式,形成以案例教学资源为主、基础语法资源为辅的基础教学参考教材。整体资源设计要遵循由简单到复杂,由易到难,全部案例覆盖整个教学知识点,循序渐进,符合学生的认知规律。改革小组根据知识模块的划分完成《C程序设计案例实训一体化教材》的自编讲义,课程改革小组完善教学过程资源,形成可以推广的教学资源整合模式。

    3.4设计实践教学和考核过程

    本课程每周周6学时,多媒体教师2个学时,实验室4个学时,多媒体教室授课为编程思想互动课堂环节,主要以案例为驱动,以养学生成良好的分析解决问题的思路、方法为目标,让学生掌握基本的编程思想。实验室授课为技能应用及拓展环节,主要以技能为单元,以小组为组织,以实际问题为任务,进行基于基本编程技能的素质训练以及基于自主学习能力的拓展训练。把考核方式放到整个教学过程中,增强学生的主体作用,把每个小组成员课下自评作为成绩的参考,激发学生课下学习兴趣。

    4 总结

    根据修改完善后的教学改革实施方案,在课程教学中针对不同类型的知识点用不同的方法来解决,理论与实践紧密结合,更加注重培养学生的编程思维能力和动手能力,夯实专业课基础,弱化基本语法和概念的学习。通过完善的教学过程跟踪监控方案,真正实现课内外一体化教学,体现在课堂上教师主导教学过程,学生主动参与的教学过程。通过分析计算机核心课程的共同特点,在《C语言程序设计》教学改革研究的基础上,可以把本次改革成果进一步推广到计算机专业其他课程当中,也为其他类别课程改革提供经验借鉴。

    参考文献:

    [1]谭浩强.C程序设计(第四版)[M].北京:清华大学出版社,2010.

    [2]曾光.独立学院计算机语言类课程教学改革研究与探索[J].吉林省教育学院学报(上旬),2013(4):47-49.

    [3]龚沛曾,杨志强,朱君波,高枚.以计算思维为切入点的计算机基础课程联动改革与实践[J].中国大学教学,2015(11):53-56.

    [4]刘志敏,唐大仕.以培养计算思维为导向的计算机基础课程教学[J].工业和信息化教育,2014(6):14-16.

    [5]张高敏,吕海莲.高校课程考试改革探索[J].新课程(下),2014(12):12-14.

    [6]车万翔,苏小红,袁永峰,叶麟.计算机专业高级语言程序设计课程改革探索[J].计算机教育,2014(13):56-58.

相关文章!
  • 融合正向建模与反求计算的车用

    崔庆佳 周兵 吴晓建 李宁 曾凡沂<br />
    摘 要:针对减振器调试过程中工程师凭借经验调试耗时耗力等局限性,引入反求的思想,开展了

  • 浅谈高校多媒体教育技术的应用

    聂森摘要:在科学技术蓬勃发展的今天,我国教育领域改革之中也逐渐引用了先进技术,如多媒体技术、网络技术等,对于提高教育教学水平有很

  • 卫星天线过顶盲区时机分析

    晁宁+罗晓英+杨新龙<br />
    摘 要: 分析直角坐标框架结构平台和极坐标框架平台结构星载天线在各自盲区状态区域附近的发散问题。通过建