军事院校C语言课程二维模块化教学方法探索
2018-10-21张晓雯王辉赵玮
张晓雯 王辉 赵玮
摘要:C语言程序设计是军事院校合训专业和非合训专业的核心课程,要求学员通过编程思维的训练,全面培养其信息化素养,为今后部队任职从事作战软件开发和使用工作打下良好的基础。本文结合军队院校C语言课程教学过程中存在的问题,提出二维模块化教学法,分为教学空间和教授内容两个维度,每个维度继续划分为三个部分,两个维度互相依存,对今后c语言教学工作有积极的指导作用。
关键词:二维;模块化;c语言教学;军队院校
信息化是世界军事发展的核心和标志,提升信息化素养是新时代下对军人的要求,通过广泛的运用现代信息技术,加速实现军队信息化,是中央军委的军队信息化建设目标,所以在培养优质军官的军队院校中,c语言课程是所有合训专业和非合训专业的核心课程,c语言课程的理论性、实践性、工程性和应用性很强,具有内容更新迅速、数据结构复杂、知识点繁多、难以掌握等鲜明特点,我们过去应用较多的方法是“五段教学法”,所谓的“五段”是指预备,提示,比较或联想,总结,应用,过于重视语法规则,学员不能在大脑中形成完整的知识网络体系,而且这种教员“传授”知识,学员被动“接受”的教学方法严重抑制学员的创新思维能力,使学员学习的主观能动性不能很好发挥。在教学空间上,主要是以传统课堂教学为主,知识获得途径单一。本文结合教学实际,在分析c语言课程教学现状的基础上,提出可以将c语言看作人与计算机交流的“普通语言”,把c语言的学习过程看作人类学习普通语言的过程,同时将传统的教学空间进行扩展,构建一种全新的二维模块化教学方法,对今后c语言教学工作有着指导作用。
一 c语言课程教学现状分析
c语言程序设计是军事院校合训专业和非合训专业的核心课程,要求学员通过对c语言程序设计的语言规则、数据类型、数据运算、系统函数,程序结构的学习,掌握应用c语言进行程序设计的技能,为进行各种实用程序开发奠定一个良好的基础[1]。通过对学员编程思维的训练,全面培养其信息化综合素质,为以后部队任职从事作战软件开发和使用工作打下一个良好的基础,为未来发展储备能量。本文从以下几个方面分析c语言课程教学现状。
1.1教材陈旧
目前,多数院校使用的c语言教材为谭浩强先生版《c语言程序设计教程》或者以计算机二级考试为依托的《c语言程序设计二级教程》,教材大多拘泥于各种繁琐结构及语法的讲解,往往使学生陷于细节的学习,并且章节之间比较松散,结合不紧密,学员学习呈离散性,没有在大脑中形成完整知识网络。而且过分琐碎可能会打击学生学习C语言的兴趣,从而丧失学习的动力。
1.2实验学时少
对于多数院校来说,c语言课程理论学时远多于上机实操学时,时间分配比例大致2:1,这个时间分配是不合理的。c语言课程是一门操作性很强的课程,只靠听老师讲、拿着程序看,或者纸上谈兵,而不上机实践,这些都是不可行的。只有在计算机上多编写程序、多上机调试程序,才能更快、更好地理解和掌握程序设计的思想、实质和精髓。另外,通过上机实践,也能尽快掌握C语言的语法规则和语句的基本形式。
1.3教学时间、教学空间固定
大部分院校都是遵从按照课表固定时间,固定教室授课,学员学习方式单一。没有考虑军事院校学员的特点,对于军校学员来说,既是学生,又是军人,既要学习知识,又要进行各种训练,时间离散,没有整块的时间进行知识的预习和复习,导致课堂上只能被动跟随教员讲解,不能主动思考分析问题。
1.4教学方法、教学手段落后
从目前的教学情况看,大多数军事院校都是以多媒体教学为主。当然,这种教学方式比单纯板书讲授有了一定进步,但仍然存在着一定的问题。首先,这种教學方式并没有完全脱离传统的教学方法,在整个教学过程中,教员仍起着主导作用。教学步骤还是秉承教员教,学员学,以教员为中心,授课时仍是原理-解释-练习三部曲进行讲授,完全属于“填鸭式”教育。学员被动接受知识,被动记忆,主动思维少,没有创新意识。教学过程中教员与学员沟通采用简单的“问答式”,教员问,学员答,鉴于学员的军人本性,无条件服从的心理使其不敢质疑教员的权威性,对于不太理解,有疑问的知识,不敢与教员进行讨论,长此以往,失去学习知识的热情和主动性,学习效果大打折扣。在c语言课程具体内容的讲解上,也是按照课本章节进行,先是初步语法方面的学习,接着进行三大结构、函数、数组等单元的学习,章节之间联系不紧密。学员接受知识呈现片断性,没有在头脑中形成统一的知识网络,在具体应用时不清楚该用哪个知识点解决问题。
二、二维模块化教学在c语言中的创新应用
针对军事院校c语言教学中存在的问题,本文提出实行二维模块化教学方法。一是进行教学空间的扩展,二是进行教学方式的革新。共分为两个维度,第一个维度是按照教学空间的不同进行分类划分,将教学空间分为传统课堂、实验室、网络三部分,每部分作为一个独立的模块,知识可以分别从三个模块中获取,解决了传统教学空间单一的问题。另外,传统的课堂教学过多的强调语法知识的教学,极大地限制了学员编程思维的形成和编程能力的提高,所学到的语法知识也不能转化为实际能力,这就是学员不爱学、学不好,即使学会了语法也不能进行灵活编程的根本原因。因此,有必要改变传统的教学方式。因此,第二个维度是按照知识点来划分,将课本知识点进行整合,打破传统的按章节顺序,而是把c语言程序设计这门课当作一门语言来学习,不单纯重视语法结构,而是按照学习语言的自然顺序进行划分,在学习内容上分为三个模块,初级阶段模块,中级阶段模块,高级阶段模块。每个模块的学习可以在第一维度三个模块中进行。进而从“以知识的逻辑线索为依据”的教学模式转变为“以语言的学习过程”为依据的教学模式。
2.1第一维度的划分
2.1.1网络空间模块
互联网的普及和计算机技术在教育领域的应用,使“翻转课堂式”教学模式变得可行和现实。学员可以通过互联网去使用优质的教育资源,不再单纯地依赖教员去教授知识。而课堂和教员的角色则发生了变化。教员更多的责任是去理解学员的问题和引导学员去运用知识。在C语言的教学中,可以运用微课、慕课等多种方式,让学员提前对知识点进行学习,进行翻转课堂教学[2]。网络教学中教学手段是灵活多样的,除了有对应知识的课件、参考资料外,还有录制的微视频,在微视频中,可以采用动画,游戏,图形等多种方式直击知识点要害,例如c语言中数组一章,涉及到了数组元素的起泡排序算法,如果直接在课堂上用黑板或者幻灯片的形式进行排序过程演示,是很单调,枯燥的,学员在脑子里只会留下单纯的排序算法的代码,但如果采取MOOC的形式,将排序的整个过程设计成舞蹈形式,通过表演者的肢体语言展现整个起泡排序大数下移,小数上升的过程,配合参考资料,学员能够在头脑中构建生动、立体的知识反馈。军事院校学员业余时间零散,尤其适合学习短小精悍的微视频,在有限的时间内,真正的学到知识,遇到有问题的地方,可以随时停止播放视频,静下心来思考,这是传统教学课堂不能够给予的。
2.1.2实验室模块
C语言课程是门操作性很强的课程,学员需要大量的时间进行上机训练,所以在理论学和实验学时的分配上要合理,不能过于偏重理论学时,每次上机练习都要按照从易到难布置题目,使学员能够循序渐进,自己独立调试程序,建立自信心,进而对这门课产生兴趣,从被动学,到主动学[3]。
2.1.3传统课堂模块
在傳统课堂中,教员主要负责答疑,与学员进行讨论,解决学员在网络学习中遇到的问题,对群体性的问题给予细致讲解,并进行知识点的串联,学员在进行网络的自主学习后,得到的是零散的知识点,需要教员进行进一步的加工、整合,融会贯通后才能为自己所用。
2.2第二维度的划分
第二维度主要从c语言课程的内容上来分,将学习c语言程序设计这门课的过程看作是学习一门语言的过程,初级阶段-中级阶段-高级阶段,三个独立模块形象比作为从“呀呀学语”,到“日常用语”再到能“出口成章”[4]。
2.2.1初级阶段模块
人第一次接触语言时,其实只是开口说话,并没有注意语法规则,就像小宝宝一样,刚开始看见苹果,只是会说“果果”,就可以表达自己的意思,大部分时间都是在模仿大人的语言。同样c语言的学习也可以这样进行,学员刚开始接触c语言其实不需要掌握很多语法,只是能写出简单程序即可,所以在这个模块中,可以只是进行三大结构(顺序、选择、循环)的学习,选择第一维度中传统课堂的教学空间。举例来说,可以带领学员编写只是输出数据的简单程序,对应的语法规则可以让学员在课下零散的时间查阅课本,或者通过第一维度里网络空间进行自主学习。这个模块,以大量的模仿练习为主,教员手把手教写程序,学员模仿照搬,慢慢的语感就来了。当学员掌握了简单语法后,他有了进一步学习的需求,接着教员要一步一步引导学员理解选择结构、循环结构的思想。就像随着孩子长大,他会在说“果果”的基础上继续说出“我要吃苹果”或者“我吃苹果还是香蕉”等简单话语。
2.2.2中级阶段模块
当学员告别了“呀呀学语”模仿阶段,对学习c语言有了更高层次的要求,希望能写出能够完成简单功能的程序,如同孩子五六岁时,说话都喜欢加上形容词,例如“我要吃红红的苹果”。在内容上,可以将函数、数组的学习放在这个模块中,这个模块中学员已经掌握了基本的程序设计语句,所以教学空间可以以第一维度中实验室模块为主,教员进行任务布置,学员自己独立调试程序,加深对程序的理解,并以第一维度中网络空间和传统课堂为辅,在网络课堂中有很多制作精良的微课,将具体的知识点以图片,动画,视频等多种方式展现,学员可以随时利用碎片时间学习,满足军校学员时间“零散化”的特点,教员还可以将一些实战化内容录入微课中,例如,可以将宙斯盾作战指挥系统的模块化划分作为函数一章的导入内容,将军用密码水印技术作为二维数组的应用,使教学向实战化靠拢。
2.2.3高级阶段模块
在这个阶段,学员已经不满足简单程序的编写了,如同人已经学会使用日常用语之后,有了更高的需求,下一步就要“出口成章”了。所以将指针、结构体等比较难以理解的内容放在这个阶段来学习,这个模块注重学员个性的发挥,培养的是思维创新能力,就如同写一篇文章,文章的要求是一致的,但不同人有不同的构造框架。在教学空间上,需要第一维度三个模块协同工作,学员根据教员要求,自己设计程序,在实验室调试修改。除此之外,教员可以提出项目要求,学员自发组织小组,以项目驱动的方式进行学习,任务的布置和中期、末期的结果检查可以放在慕课中进行。小组定期围绕项目课题开展讨论,教员作为引导者,启发者,完成课堂教学的翻转。
总结
基于军校学员特点,在细致研究c语言程序设计课程特点后,本文创新的提出了c语言程序设计二维模块化教学方法,在教学空间上进行扩展,不再拘泥于传统的课堂教学,增加了实验室教学,网络教学,利用微课、慕课等手段翻转课堂,让学员成为主导,获取知识途径多样化;在教学内容上,打破传统的章节划分,按照人类学习语言的自然顺序进行学习,循序渐进,使学员的程序设计能力和创新能力在循序渐进的过程中不断锻炼和提高,从而培养出能力强、素质高、适应军事信息化发展、适应未来高科技战争需要的新型人才。
参考文献:
[1] 陈希,高森.MOOC课程模式及其对高校的影响[J].软件导刊,2014,(1)12-45.
[2] 邢小柱,马春旭,张圩等.高校计算机教学改革探讨[J].教育教学论坛,2012(3).
[3] 谭浩强.高等学校计算机基础教育改革的新阶段[J].计算机教育,2003(12).
[4] 李莉. C语言程序设计的教学改革[J]. 计算机教育,2009(12):28-29.
作者简介:
张晓雯(1978—),海军大连舰艇学院基础部,计算机教研室,讲师,研究方向:计算机教学 信息管理。
王辉(1980—),海军大连舰艇学院基础部,计算机教研室,讲师,研究方向:计算机系统结构。