您好, 访客   登录/注册

非计算机专业C语言教学优化

来源:用户上传      作者:

  【摘 要】针对目前非计算机专业C语言教学中存在的问题,提出注重计算思维培养、引入混合教学模式、精选教学内容和加强实验实践教学四项优化措施。
  【关键词】C语言教学;计算思维
  【中圖分类号】G642       【文献标识码】A
  【文章编号】2095-3089(2019)17-0017-01
  一、引言
  为了尊重学生个性与专业发展,培养符合新时代需求的有创新思维和创新能力的新型人材,早在2009年,教育部非计算机专业计算机基础教学指导委员就提出了“1+X”模式教学改革的建议。所谓“1+X”课程体系,就是指大学计算机基础课程+若干必修/选修课程。许多高校在必修/选修课程里,对于理工类专业都基本开设了有利于训练学生思维能力的程序设计类课程。由于C语言具有易于理解、语法简洁、既可以面向高层开发也可面向底层开发等优点,一直是各高校程序设计类课程的首选。但在目前互联网+时代,如果还是按传统方法教授:重语法,轻实践;教学内容照本宣科,不进行精选调整;教学模式还是老师讲授学生实践验证……那么随着课程的推进,有的学生会逐渐感到枯燥无味,晦涩难懂,最后产生畏惧心理失去学习兴趣,无法达到教学目标和教学效果。因此,有必要从教学目标、教学模式、教学内容和实验实践教学等方面进行改良和优化,以期让学生能积极地投入到C语言的学习、思考和探究中来,达到思维能力和创新能力的培养。
  二、C语言教学优化途径
  1.注重计算思维能力的培养。
  2010年7月,教育部高等学校计算机基础课程教学指导委员会发布《九校联盟(C9)计算机基础教学发展战略联合声明》,标志着我国高等学校计算机基础教育进入一个新的以计算思维为核心的计算机基础教育阶段。计算思维是指运用计算机科学的基础概念求解问题、设计系统和理解人类行为的科学方法。在以往C语言的教学中,老师往往花费大量的时间讲授语法知识,忽视了对学生计算思维能力的训练,没有实现知识技能传授向思维能力培养的转变。在C语言教学中,如果把握得当,其实是非常有利于培养学生的计算思维能力。具体体现在以下3个方面:
  (1)解决问题的一般化思维训练。
  在每一章节简明扼要地讲解语法知识后,应花费更多的时间应用语法知识进行程序实例设计。一般采用案例教学法和任务驱动教学法。老师提出要解决的问题,引导学生全面分析问题,写出解决问题的解答步骤,也即算法。算法出来后,程序也就呼之欲出,只要用C语言规范实现即可。程序是否正确,接下来进行调试和修正,直至得到正确结果。最后,启发学生思考是否还有其它解决方案并进行对比,总结这一类问题的解题思路。发现问题,分析问题,明确解决问题步骤,解决问题,总结思路。通过大量的实例训练,特别是一些经典核心算法的学习和使用,有助于学生形成解决问题的一般化思维。相信学生在以后求解工作或生活中的问题时,会做到积极思考、全面分析、条理清晰、多方权衡并找到最优解决方案。
  (2)模块化思维训练。
  C语言中对于复杂程序的处理采用了模块化程序设计的概念。当一个程序功能复杂时,我们将分而治之,把复杂功能分解成许多小功能,逐层向下,直至能分别实现和解决它们。这些小功能,也就是模块。模块最终通过函数来实现。例如实现对一个数组的排序,并实现数据的插入和删除,要求插入和删除后数组还是有序的。如果将整个功能用一个main()函数实现,解题思路庞杂,容易混乱,且代码实现也繁冗拖沓,难度较大。我们用模块化思维可以轻而易举地将它分解为主程序、排序、插入和删除几个模块,并分别用函数实现,增加了程序结构的清晰度,降低了程序实现的难度。这种模块化思维训练,对于学生以后解决复杂问题时,将会是很好的指导和方法。
  (3)抽象思维训练。
  抽象思维是一项重要的思维能力,它有助于人们通过现象发现事物的共性和本质。在运用计算机编程时,程序是解决某一类问题的通用解法。因此,在问题分析阶段,往往要通过大量的实例来进行抽象建模,实现个别到一般的思维提升。比如在讲用数组实现菲波拉契数列时,菲波拉契数列前两项是1,后面的数据项为它前两项之和。你让学生逐一写出前20项,没有任何问题。但让他们用数组实现时,感到有难度。先申请数组int f[20],赋初值f[0]=1;f[1]=1,其余项通过抽象通式即可写出:for(i=0;i<=20;i++)  {f[i]=f[i-1]+f[i-2];}。此外,数位分离类、寻找区间有特点的数、汉诺塔、冒泡排序、二分法查找等等,都可让学生的抽象思维能力得到有效训练。
  2.引入混合式教学模式。
  传统C语言教学往往是老师课堂授课,实验课学生做实验实践。
  Mooc(Massive Open Online Course),又称慕课的快速发展,对这一传统的教学模式带来了不小冲击。Mooc教学资源丰富、不受时间空间限制、学生自主性较强、入学门槛低,受到了许多人的追捧。国内比较知名的Mooc平台有中国大学Mooc—爱课程网、清华大学的学堂在线和上海交通大学的好大学网络教学平台。我校也正在积极建设和使用自己的Mooc平台—湖南师范大学在线课程中心。这些Mooc平台上都有制作精良的C语言教学课程。但Mooc教学存在很多弊病:师生、生生缺乏互动和情感交流,老师无法根据学生学习情况调整上课节奏和内容,对学生的约束力小,对学生的自觉性自律性要求高等。所以,教学实践证明:Mooc教学无法取代传统授课课堂,但可作为一种非常有效的补益。在C语言教学中,我们将两种教学模式有机结合,充分发挥各自优势。在学校在线课程中心,我们积极完善C语言课程资源,以各章节知识点为单位录制微课视频、上传PPT课件、创建习题库。课前,布置学生通过在线课程中心进行要讲授知识的预习和自学;理论课堂中,根据平台反馈和教学大纲要求对重点难点进行统一讲解;实验课堂中,布置相关习题指导学生进行针对性实践;课后,对于没弄清的知识点,鼓励学生有选择性地再观看教学视频和练习相关习题。这种混合教学模式,既可以让老师有更多精力优化课堂教学,也便于学生课堂外进行自主学习。   3.精选授课内容。
  目前,C语言课程教材编写大多按C语言简介、数据类型与表达式、三种基本程序结构、函数、数组与字符串、结构体与共用体、文件进行章节划分,各章各节选取的程序实例相互独立,几乎没有任何关联。这导致学生在学习和理解各知识点时是脱节、片面、孤立的,无助于各章节知识的比较、关联、融合。
  所以老师在备课时,应该对教学内容进行精选和调整,做到各知识点在横向和纵向上相互关联,层层推进。比如在讲循环结构、递归函数和数组时,我们都可以求解同一个问题:求菲波拉契数列。在讲解循环结构时,我们采用三个变量空间迭代变换的方法实现;在讲解递归函数时,我们采用函数自己调用自己的方法实现;在讲解数组时,我们定义数组,用数组中各成员单独存放菲波拉契数列各数据项的方法实现。同一个问题用前后所学的不同知识求解,让学生更能清晰认识到各知识点的特点并建立起它们之间的对比和关联,全面构建知识体系。就算是一个小节教学内容的编排,也要注意这个问题。例如在讲函数时,学生感到汉诺塔问题很不好理解。我们先讲简单的,用两个独立简单函数分别实现最大公约数和最小公倍数。弄清基本函数概念后,接着,引申到函数嵌套调用,在求最小公倍数函数定义中直接调用事先已经定义好的求最大公约数函数,也就是在函数定义时调用别的函数。再此基礎上,顺利引出另一概念:递归调用,在函数定义时调用自己。通过讲解几个简单的递归调用程序实例如阶乘、累加求和、菲波拉契数列后,顺势讲解汉诺塔递归求解,一切就水到渠成,迎刃而解。
  此外,由于我们进行的是非计算机专业学生C语言教学,在教学内容难度上也要把握得当。不能盲目向专业学生看齐,内容求全求难,学生难于理解,产生畏惧心理,厌学弃学。应注重基础核心内容,并注重程序实例的经典和趣味性,让学生能学懂、感兴趣,愿意思考和探究。
  4.加强实验实践教学。
  C语言课程是一门实践性很强的课程。在C语言教学中既要重视语法知识传授,更要重视学生的实验实践教学。只有通过大量规范的上机实践,学生才能将繁杂的语法知识、常规算法和编程技巧做到领悟、理解和熟练运用,实践能力和思维能力才能得到有效提升。
  我校历来重视计算机基础课程的实验实践教学,除了在实验课时上予以保证外,还开发了专门的在线实验教学平台。经过十几年来的不断完善与改进,目前该平台达到了集教、学、练、测、评、分析等多功能于一体。在平台上提供了所有计算机基础必修课程的实验教学,包括C语言。C语言课程根据各章节知识点分布设计了21个实验任务,每个实验都录制了微课视频供学生观摩学习。任课老师也还可根据学生学习情况自主添加实验任务,以加强某些知识点的训练。在学生根据实验要求做实验时,老师在实验室来回巡视,及时了解学生实验完成状况,对遇到问题的学生及时给予指导。学生提交实验作业后,系统进行自动评分。如有错误,对错误原因逐一予以说明。学生根据错误提示可进行相应修改后再次提交,也可及时请教老师厘清相关知识。系统保留学生所有的提交作业数据和登录信息,方便老师了解所有学生的实验学习情况。对于完成情况欠佳的学生可个别进行提醒和督促。此外,系统还提供各章节的练习题和测试题,便于各章节知识的巩固和加强。系统中还具有学生管理、考试及考试数据分析等功能,能全面规范地进行实验教学。
  三、结束语
  通过注重计算思维能力培养、引入混合教学模式、精选教学内容和加强实验实践教学这些优化措施,相信会有更多的学生喜欢这门课,学好这门课。
  参考文献
  [1]杨俊生.基于计算思维的“C程序设计”案例设计初探.工业与信息化教育,2013-6.
  [2]张玉宁.基于计算思维的程序设计类课程教学实践研究.现代电子技术,2017.12.
  [3]战德臣.“大学计算机”“Mooc+Spocs+翻转课堂”混合教学改革实施计划.计算机教育,2016-1.
  作者简介:邓冬梅(1974-),湖南师范大学副教授,研究方向:计算机软件。
  项目支持:湖南师范大学校级教改项目《计算机基础二》。
转载注明来源:https://www.xzbu.com/1/view-15011208.htm