C语言课程设计改革初探
2017-02-13王辉衣丽霞
王辉+衣丽霞
摘 要: 通过一份问卷调查,发现C语言课程设计这门课程存在诸多问题。借鉴学生提供的建议,分别从课程设计的时间安排、课堂教学及课程设计的命题方面进行了改革,相信这些改革措施一定会取得很好的教学效果。此外还对学生反映比较多的问题,比如“编译错误不好发现、也不好修改”提供了一个很好的解决方案。所有这些教学改革措施的最终落脚点都是要为国家培养出更多、更优秀的建设人才。
关键词: C语言 课程设计 问卷调查
1.引言
C 语言作为一门程序设计语言的入门课程,很好体现了程序设计的灵魂,是进一步学习其他语言或者计算机技术的理论基础。“课程设计”在中国绝大多数高校已经开设很多年,那么什么是“课程设计”呢?简单地说,“课程设计”是一门这样的课程:学生利用所学的书本知识来解决现实生活中的各种实际问题。本文从一份简单的关于C语言课程设计的问卷调查说起,系统地总结了C语言课程设计存在的优点和不足,并针对这些不足提出了一些可行的改进措施。希望这些措施能够落到实处,能够对相关的课程起到借鉴作用,以便为中国高校培养更多更优秀的人才发挥一点作用。
在计算机发展的历史上,还没有哪一种程序设计语言能像C语言这样应用广泛。C语言不是一种“很高级”的语言,也不“庞大”,并且不专用于某一个特定的应用领域[1]。由前面的叙述可知,学习C语言对大学理科生,尤其对计算机学院的学生而言非常重要。笔者在一次C语言课程设计课上进行了一次问卷调查,问卷调查的内容参见图1。尽管这个问卷调查非常简单,可是通过它能发现C语言课程设计存在的问题。笔者对该问卷调查的结果进行了汇总,首先看学生是怎样评价C语言课程设计优点的,如图2所示。其实学生们提到的这些优点教师早已知道,本文重点关注的是学生们提到的不足和建议。
那么C语言课程设计在我校开设的过程中存在哪些缺点和不足呢?有关的详细信息如图3所示。笔者将学生们提出的缺点与不足分为五个类别,这五个类别分别是:(1)关于时间安排和课时量的问题;(2)关于课堂教学的问题;(3)编译与调试方面的问题;(4)关于教师辅导方面的问题;(5)关于题目方面的问题。笔者将在第3部分对这些存在的问题给出可行的解决方案。最后看看学生们给出的建议都是什么?详细信息参见图4,笔者提出的课程设计改革方案也参考了学生们提出的建议。
2.相关工作
曾辉等人[2]指出了当前C语言程序设计课程教学中存在的问题,分析了问题产生的原因,论述了教学改革的必要性,探讨了教学中如何提高学生积极性、教学方法和手段等几个方面的教学改革问题。张敏霞[3]根据当前大学生的具体情况,针对如何有效地进行程序设计语言课程的教学,提高学生的程序设计能力和计算机素质提出了几点具体的措施。殷秀云[4]指出传统的C语言程序设计课程的授课方式和考核方式存在一定的局限性,进一步加大了学生掌握C语言编程方法的难度。因此,如何改变这种现状,以适应不断发展的社会的需要,已经是一个亟待解决的问题。马杰等人[5]针对C语言教学中存在的若干问题,提出了从任务驱动、培养学生兴趣、改革教学内容和方法、加强实验教学环节及改革考核机制五个方面进行教学改革,以提高学生的编程能力,变被动学习为主动学习,培养自学的能力。谢竞博[6]从教学目的、教材选择、教学方法、实践教学及考核方式等方面,阐述了它们与教学效果的关系,详细分析了目前教学中存在的一些普遍问题的成因,并从几个方面分别提出了一些可行的改革建议。陈婷[7]论述了在应用型本科C语言程序设计教学实践中,根据应用型本科教育培养要求,对课程合理定位,采用“阶梯式”、“案例式”课堂教学方法,以“项目驱动式”实践教学为核心,同时搭建多种自主学习平台,采用更科学和完善的考核方式,较好地兼顾了学生的不同需求,激发了学生的学习积极性。
刘三满[8]结合学生的学习心理和认知规律,分析了C语言教学问题的主客观原因,提出了“先过程,后对象”的教学理念,从教材建设、教学内容安排上阐述了教学内容的具体组织实施过程,从教学思路、教学观念、教学手段几方面探讨了教学方法的改革。谢中科[9]阐述了C语言程序设计课程的教学改革与实践,提出了通过激发大学生的学习兴趣、创新热情、教学互动等手段来建立大学生的编程思想,培养大学生的程序设计能力和创新意识。通过课程设计,培养大学生运用C语言解决实际问题的能力和创新能力。刘晓锋等人[10]从教师、学生和教学内容等方面介绍了在《C语言程序设计》课程建设中,以程序设计和实验为主,更新教学内容,改革传统的授课方式的探索,阐述了注重能力培养,提高学生的学习兴趣,充分调动学生的主动性、创造性的重要意义。
3.改革措施
前面部分,学生们针对C语言课程设计指出了一些缺点,同时提出了一些好的建议,在本部分将有针对性地提出一些改进的措施:(1)关于课程设计时间安排的改进:将C语言课程设计的开课时间定在学生学完C语言之后的下一个学期初。(2)关于课堂教学方面的改进:任课教师申请一个QQ或者微信群,在学校正式放假前,任课教师通过该群把课程设计的题目发送到每个学生的手中。下学期开学后的前几周进行课程设计的集体辅导,然后进行答辩验收。任课教师可以将没讲完的课程内容及对课程设计题目的大体梳理都录制成视频,然后将该视频文件上传到群文件里供学生们分享。群是实现师生互动的一个最重要的媒介,借助它可以突破时间和空间的限制。任课教师在放假前将题目发送到每个学生手里的一个最大好处是:学生们可以利用假期里的大量时间,充分地思考和准备这些课程设计题目。(3)关于题目方面的改进:允许学生自由命题,但是需要任课教师最终把关,以决定该命题是否适合作为课程设计的题目。此外,任课教师也可以考虑让企业帮助出题。
前面学生们提出“编译错误不好发现、也不好修改”的问题,笔者认为可以通过下面的方法进行解决:第一,首先告诉学生这是C语言的特点之一:语法限制不太严格,程序设计自由度大。一般的高级语言语法检查比较严,能检查出几乎所有的语法错误,而C语言允许程序编写者有较大的自由度,因此放宽了语法检查。“限制”与“灵活”是一对矛盾,限制严格,就失去灵活性;而强调灵活,就必然放松限制。第二,教会学生进行单步(Step Through)调试、设置断点(Breakpoint)等调试程序的技巧,必要时还可以通过额外添加一些输出语句辅助进行程序调试。第三,任课教师将常见的编译出错信息进行汇总,然后上传到群文件里供学生分享。其实对编译出错信息进行总结,不如直接告诉学生记住C语言的一些专业术语,表1中列出了其中的一些,相信这对学生调试程序将会起到很大的帮助作用。另外,还要告诉学生从一开始就要形成良好的编程风格,比如适当地添加注释(Comment),程序要有缩进(Indent),给变量、函数、数据结构等起名字时要做到见名知意等。
4.结语
从一份C语言课程设计的问卷调查入手,笔者根据学生指出的缺点和提出的建议对该课程进行了尝试性的改革,分别从课程设计的时间安排方面、课堂教学方面及课程设计的命题方面进行了改革,笔者相信这些改革措施一定会取得很好的教学效果。另外,笔者还对学生反映比较多的问题“编译错误不好发现、也不好修改”提供了很好的解决方案。将按照文中提出的一些观点编写《C语言课程设计》一书,该书将严格贯彻执行讲练结合的原则,对课程设计过程中可能涉及各个知识点通过举例子的方式进行讲解,例子的选择标准是不仅能说明问题而且要求最简单。
参考文献:
[1]Brian W.Kernighan,Dennis M.Ritchie.The C Programming Language.北京:机械工业出版社,2006.8.
[2]曾辉,王倩,韩芳,赵德群.C语言程序设计教学改革初探.福建电脑,2015,31(09):62-63.
[3]张敏霞.程序设计语言课程教学方法改革的探索与实践.中国高教研究,2004(02):90-90.
[4]殷秀云.C语言程序设计教学改革探讨.《商》,2014(38):213-213.
[5]马杰,杨磊.C语言程序设计改革探索.软件工程师,2013(12):27-28.
[6]谢竞博.C语言程序设计教学中的问题及改革建议.重庆邮电大学学报:社会科学版,2008,20(2):137-140.
[7]陈婷.C语言程序设计实验教学改革探究.实验技术与管理,2010,27(10):182-184.
[8]刘三满.《C语言程序设计》课程教学改革的研究与实践.计算机教育,2008(16):23-25.
[9]谢中科.《C语言程序设计》的教学改革与实践.《理工高教研究》,2004,23(3):96-97.
[10]刘晓锋,吴亚娟.计算机专业《C语言程序设计》教学与教学改革.西华师范大学学报:自然科学版,2003,24(1):34-36.