摘 要 随着计算机编程技术的发展,“C语言程序设计”的课程地位由专业核心主干课程转变为专业基础课程,课程地位的改变必然使得课程内容体系、教学方法和教学模式、实验指导等发生改变。从课程建设的角度探讨了新形势下大专院校“C语言程序设计”的改革。
关键词 C语言 课程建设 改革
中图分类号:G424 文献标识码:A DOI:10.16400/j.cnki.kjdkz.2016.09.054
The Construction and Reform of C Language
Program Design Course in Colleges
LIN Huijun
(Computer Science Department of Basic Educational College, Zhanjiang Normal University, Zhanjiang, Guangdong 524037)
Abstract With the development of computer programming, the professional foundation courses position of C Language Programming design has been changed to core specialty course. With the change of its courses position, content of the curriculum system, teaching methods and teaching model, experiment guide will be changed. Discuss the reform of C language program design in the new situation of college from the angle of course construction.
Key words C Language; course construction; reform
0 引言
C语言是一种面向过程的计算机程序设计语言,其功能丰富、表达能力强,具有完善的模块程序结构,可移植性好,既具有高级语言的特点,又具有低级语言的功能。 C语言曾经是进行软件开发的主流语言,因此“C语言程序设计”课程曾经作为计算机技术专业核心主干课程,在高等院校计算机相关专业中广泛开设。然而随着面向对象程序设计思想的广泛应用,“C语言程序设计”的专业核心地位开始动摇,一些高等院校计算机专业已不再开设“C语言程序设计”,取而代之的是Java、C++、VC++等课程的直接开设。
那么,在高职高专院校的计算机应用技术专业中,“C语言程序设计”是否还有继续开设的必要?如果开设应如何开设?“C语言程序设计”课程应如何进行改革才能适应计算机专业课程体系的发展?在本文中,我们将从课程的地位和开设的必要性、课程内容体系、教学方法、实验指导等方面就大专院校的“C语言程序设计”课程建设进行深入的探讨。
1 课程的地位和开设的必要性
“C语言程序设计”曾经是计算机相关专业的核心主干课程,主要学习C语言的语法规则、算法、模块化程序设计思想,并以C语言为开发语言进行系统的开发。然而随着技术的发展,C语言由于其在可视化编程方面的局限性使得它不再成为软件开发的主流语言,在这种情况下,C语言的核心主干课程地位发生了改变,我们曾经对多所高校计算机相关专业的课程设置进行了调查,多所高校根据专业的发展已不再开设C语言,部分院校直接开设JAVA,部分院校直接开设C++,部分院校即使开设C语言,也只是把C语言作为专业基础课程来开设。
大专院校的计算机应用技术专业学制三年,通过学习,学生应具备基本程序设计能力,能使用计算机语言进行程序的设计、调试和维护。大专院校学生的入学基础较为薄弱,多年的教学经验我们得到一个结论:学生一入校门接触计算机专业课程,感觉最难的就是程序设计,如果其第一门课程学的是面向对象的编程语言,则须从结构化程序设计开始学,学习时间较长,很容易将结构化程序设计与面向对象程序设计混淆,导致学习越来越困难,因此有必要在开设面向对象程序设计课程之前先开设结构化程序设计课程。C语言是古老而长青的编程语言,它的语法是C++、VC++、Java、C#等多种面向对象程序设计语言的基础,也是后续课程“计算机组成”、“操作系统”、“编译原理”、“计算机体系结构”、“数据结构”等的基石。因此把C语言作为大专层次计算机应用技术专业基础课程或计算机语言的入门课程来来开设是必要的,有利于学生对计算机语言及结构化编程思想的理解和掌握,为面向对象程序设计课程及其他的开设后续课程的开设打下一个良好的基础。
2 课程内容体系
在把“C语言程序设计”作为核心主干课程开设时,其课程的最终目标是学生能使用C语言进行系统的开发,因此其教学内容是围绕着软件开发这一主题展开学习,学时较长,内容详尽。而把“C语言程序设计”作为专业基础课程来开设时,对学生能利用C语言开发系统的要求降低,学时不宜过长,课程总体目标转变为培养学生对程序设计的理解和操作能力以及提高程序设计的兴趣为主,同时让学生在学习程序设计的过程中,养成良好的代码编写风格,对代码不再感到害怕。
“C语言程序设计”可以说是大专院校学生入校后所接触的第一个程序设计语言,根据计算机编程思想和技术的发展,以及大专学生的特点,考虑相关的后续课程以及面向对象编程语言的开设,本着面向基础、以“必需、够用”为度,我们将“C语言程序设计”的课程内容进行了重新整合。
如图1的内容所示,我们对C语言的教学内容的重点和难点做如下的变革:
(1)C语言包含的基本概念很多,如变量、常量、存储空间、地址、运算符、表达式、函数、指针、数组等,这些概念都是后续课程的基础,因此应加强学生对这些概念的理解与掌握。
(2)不管哪一种编程语言,其程序的基本结构都离不开顺序结构、选择结构、循环结构,这三种程序结构也是面向对象编程的基础,因此C语言的教学重点也在于让学生完全理解和掌握三种程序结构的编写。在这三种程序结构的教学中,应以算法为主线、结合C语言的语法规则进行讲授,案例功能不宜太复杂,程序不宜过长,以单一功能为主,这将有利于后续面向对象程序设计课程学习的衔接。函数是C程序的基本构成,也是大部分计算机语言的基本概念,对函数的概念、定义和声明、返回值、函数的调用、参数的传递、变量的作用域应予以详细的讲解,以理解其中的基本方法为主。
(3)在数据类型部分,重点在于基本类型、指针概念、数组的讲解,放弃一些构造型的数据类型,如共同体、结构体等,因为在面向对象编程语言中,已使用类来实现这些复杂数据类型数据的封装。
3 教学方法
“C语言程序设计”以C语言为平台,使学生全面了解程序没计的基本算法、C语言的语法规则以及结构化程序没计的方法,并具有一定的结构化程序设计和调试的能力。“C语言程序设计”传统的教学方法是讲授与实验相结合的方法进行教学。由于C语言涉及的概念比较复杂,规则繁多,许多知识点抽象且难以理解,使用灵活,容易出错。在实际教学中,我们发现很多学生认为内容抽象、枯燥,学习起来都感到困难和吃力,并在不同程度上产生畏惧心理,学生学习兴趣度较低。
基于上述原因,我们认真研究了思维可视化技术、微课程技术等教学理论和教学方法,并将其用于实践教学,效果较好。
3.1 思维可视化技术
思维可视化技术是一种以数据可视化、计算可视化和信息可视化为基础,促进知识的传播和创新的技术,其要点是运用一系列图示技术把本来不可视的思维(思考方法和思考路径)呈现出来,使其清晰可见的过程。思维可视化的目的是使思维流程化、图形化、图谱化和清晰化,其可视化工具包括有概念图、思维导图、流程图、语义网络、图表等。
C语言概念繁多,层次性较强,思维可视化技术的引进有利于学生对计算机语言整体概念的理解。如在讲解C语言数据类型时我们可以使用一张图完成教学。图2为基本数据的概念图。
概念图以SWF文件出现,在教学时以数据基本数据类型为中心,进行层次的折叠,在讲授时以知识点为中心中心展开或折叠。整个教学直观,一目了然,效果较好。
思维可视化技术可贯穿C语言的整个教学过程,我们将可视化的各种图示工具教会学生,课前使用思维对图进行预习,课中使用概念图、流程图进行教学,课后使用思维导图进行内容的整理。这不仅有助于学生对知识的掌握,也有助于学生编程思维能力的提高。
3.2 微课程技术
微课程即微视频课程,是一段短小精悍的、以教学为目的的视频。一段微课程视频大约10分钟左右,讲解一个知识点,目标明确。与PPT相比,实践证明微课程的视频形式更有效,更吸引学生,视听结合,能增强学习者的信息处理能力,降低学习者的认知负荷,提高学习效率。微课程的反复播放有助于学生自己掌握自己的学习进度。
在C语言教学中,我们往往利用一节课的时间讲授知识点,知识点相对较多,一节课45分钟,学生的注意力不能持续集中。将微课程技术引入C语言的教学过程后,我们将微课程分为知识点微课程、练习微课程,每个微课程大约10分钟右左右,两种课程轮流交替进行,既达到传授知识的目的,也能在课堂上完成课后巩固环节。在多个知识点微课程和练习微课程后,进行综合实例微课程进行综合的训练。能最大程度地避免学生注意力的分散。
如循环结构是C语言教学的重点和难点,学生对循环的每一次执行较难理解。我们以例题作为知识点制作微课程,将循环的每一次执行、内存变量值的变化、执行的结果以动画的方式呈现出来,一目了然,且学生可以多次观看,避免因老师一次讲解难以掌握而又无法回顾的问题。实践证明C语言中许多的知识点使用微课程教学都取得了较好的效果,如排序微课程、运算符微课程等,其在显示程序运行过程中变量的变化、运行结果的变化等方面尤其有效。
4 上机实践与习题
上机实践是“C语言程序设计”课程的重中之重,我们需要培养学生程序设计的素养和程序编辑、修改、调试、运行的能力。C语言的开发环境经历了Turbo C、VC++6.0、VS等,目前使用较多的是VC++6.0。一般情况下,如果单纯是学习C语言,使用VC++6.0已足够,如果后续开设C#等课程,建议使用VS,以便于后续课程的开设。
大多数的实验指导书中的实践教学内容和题目以验证型和设计型为主。验证型的题目要求学生按照书本上的指示,输入程序,填写结果即可,学生处于被动接受的地位;设计型的题目对于大专院校的学生来说,难度较大,学生往往无从下手。为了全面提高学生的实践能力和应用能力,使实践教学能满足不同层次学生自主学习的需求,我们制定并实施了以下改革措施:
(1)改革上机实践的教学模式:我们对实验内容进行了重新的设计,每个实验衔接课程的内容,实验内容小而精练,将以往一个完整的理论知识点教学完之后再进行实践教学的教学模式改为由理论教学和实践教学相互联系、相互交叉、彼此渗透、有机结合、同步发展的教学模式。
(2)设计多种类型的实验题目:针对学生存在基础不同、接受能力不同、个性有差异等问题,设计出包含验证型、改错型、设计型共三种类型的实验,题目尽可能做到既与理论教学内容靠近,又能覆盖知识点,切合实际。通过完成不同类型的实验题目,有目的、分层次地培养学生的实践能力,使学生学会从实验过程中获取知识,积累经验。
要学好C语言,做习题是关键,习题能帮助学生有效地理解知识。通常情况下,习题是在一个章节完成后才进行,知识点过多,学生需要花更多的时间做习题。因此我们对习题进行了重新整理,在一个知识点教学结束后即进行(下转第118页)(上接第113页)习题的训练,将教学与习题有效地结合,将学生做习题的时间分散,缩短,减少难度,达到即时巩固的效果。
5 结束语
由于计算机编程技术的发展,C语言的课程教学也受到了影响。2012年,我校将C语言作为重点课程进行建设,结合实际,我们对大专院校“C语言程序设计”课程的地位、内容体系、教学方法和教学模式、实验指导进行改革探讨,以适应新形势下的大专计算机应用技术专业、电子专业人才培养方案的改变。这些改变能在一定程度上有效解决我校“C语言程序设计”课程发展与教学过程中存在的问题,但仍须在实践中去改进和完善。
基金项目:岭南师范学院2013年青年项目,项目号:QL1311;岭南师范学院基础教育学院重点课程项目
参考文献
[1] 林慧君.思维可视化及其技术特征[C].第十六届全国计算机辅助教育学会年会论文集,新华出版社,2014.8:697-702.
[2] 方英兰,刘高军,宋威.C语言程序设计课程的改革与实践[J].电脑知识与技术:学术交流,2014(12):8225-8226.
[3] 杨雷,张雷鸣.C语言程序设计课程的改革与实践[J].北京电力高等专科学校学报:社会科学版,2011.28.
[4] 张植才,李锋,刘娜.基于培养学生职业编程能力的高职C语言教学模式改革[J].福建电脑,2014(6):62-63.