大学非计算机专业计算机基础(C语言)教学效果研究
2015-07-24鄢莉银星
鄢莉 银星
摘要:该文针对非计算机专业计算机基础(C语言)教学现状中存在的问题,比如学生认识课程重要性不足,学习方法不正确和教师教学方法单一等,我们采用试点班在我校(攀枝花学院)进行教学改革探索。试点班教学中,首先让学生明确C语言和学生所修专业的联系,在以后的后续课程学习中哪些方面还将用到C语言编程知识或通过C语言学习掌握的计算思维,然后传授学生多思多看多练和“再学习”的学习方法,最后教师在教学中加入“3W+案例式”的教学方法,将零散的命令、语法和规则贯穿案例,通过编程解决现实生活中的实际案例。通过试点班和普通教学班学生参加国家级等级考试的一次性过级率来看,试点班过级率大大高于普通班,因此本文探索的教学改革方案是有效和值得推广的。
关键词:大学;非计算机专业;C语言;试点班;教学效果
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2015)14-0153-03
1 引言
针对高等院校非计算机专业学生的计算机教育,教育部提出了三层教学课程体系,即:“计算机文化基础”、“计算机技术基础”和“计算机应用基础” [1]。当前,在“计算机技术基础”这一层次教学中,我校(四川省攀枝花学院)理工类本科学生的计算机基础课程开设为C语言,即大学计算机基础II-C语言,(以下简称C语言)。根据我校规定,该课程的学分由学生参加四川省级或国家级计算机二级等级考试成绩折算合格后获得,目的在于督促学生学习并取得相关证书有利于今后工作就业。表1是我校近几年学生一次性通过二级C语言考试成绩统计表。
2 C语言教学中存在问题
客观上,C语言程序设计课程针对非计算机专业学生的学习存在一定的难度,主要原因是:学生普遍第一次接触编程语言,知识的专业性使学生入门困难,而且学生普遍不重视,不理解该课程的重要性,学习中缺乏主动性;另教师的教学方法僵化,方法单一,C语言教学课堂不能吸引学生。教学中还有很多次要原因比如C语言课程学时数偏少,理论实验教师不统一,教学内容脱节等,现具体分析教学中存在的问题:
2.1学生认识不到学习C语言的重要意义
作为非计算机专业学生常这样认为:我到大学是学习掌握某某专业技术而非计算机技术,毕业后我也不会从事计算机编程工作。因此,学习C语言“无用论”在学生中普遍存在。没有学习的内在需求,学生很难主动积极学习,更不能克服学习中遇到的重重困难。所以,学生认识不到学习C语言的重要意义是C语言教学中存在的最大的问题。
2.2学生在学习C语言过程中存在重重困难
学生中大多数是初次接触计算机编程语言,该课程较强的专业性使他们在入门时存在很大的困难。同时作为编程语言牵涉到的繁多的计算机和编程相关的概念、规则、术语,且使用灵活、容易出错, 因此很多学生感到学习困难。
学生对计算机处理问题的思维和方法不理解,陌生的编程逻辑和数据处理过程让他们在学习上感觉非常困难。虽然学生在之前学习了计算机文化基础课程,其内容涉及了计算机的组成和信息编码存储等基础的专业知识,但是由于学时数有限,且这部分知识不是计算机文化基础课程的重点,学生对这部分知识掌握的不好。同时学生没有做好转变思维的准备,分析事物时还停留在以前一直采用的数学、物理思维的方式,因此在刚开始学习程序设计时就很难理解计算机的运行模式和处理数据方式,从而造成学习C语言的困难。
有限的授课时间让学生不知所措。很多学生并没有意识到大学里学习是自主学习为主,教师授课为辅,因此课后学生普遍存在看书思考时间不足,很快部分学生跟不上教学进度,学习中遇到的问题越来越多,出现上课听不懂、看书看不懂的情况,从而丧失学习兴趣。随着课程进度的逐渐深入,逐渐造成恶性循环,加上学生自主探究意识薄弱,又缺乏主动性,长此以往,丧失了学习下去的信心,产生学习厌倦心理。
2.3教师教学活动中存在问题
目前的现状是我们所使用的教材(包括国内经典教材)大都偏重于对知识的罗列,缺乏趣味性、实用性和引导性,教师在教学中也偏重对C语言各知识点,语法等的阐述,且方法单一死板,缺乏对C语言知识和结构的整体分析和讲解,授课中的枯燥乏味致使学生进一步丧失学习的乐趣,增加学习C语言的困惑
2.4理论和实验教学脱节严重
C语言是全校非计算机专业理工类专业学生的必修课程,学生人数众多,教师相对缺乏。理论课堂都是大班教学,每班人数至少在80人以上,有的教学班多达110人,实验课则是小班教学,每班不超过40人。理论教师平均要上3个理论班,对应的8个左右的实验班则不可能再由同一个理论教师独自授课。为了解决此问题,学校安排课程时理论和实验是分开设置课程供学生选课,对每个学生来说理论和实验几乎是不同教师,这必然造成教学内容的脱节。
2.5课程要求高和课程学时数越来越少的矛盾
我校作为应用型本科院校,近年来,学校为了提高办学效果,大力开展“教学质量工程”,各院系各专业加大专业课程教学力度,努力提高学生专业素质和技能,增强学生就业竞争力,并取得了较好的效果。但由此也带来消极的一面,计算机基础II作为公共基础课,各院系忽略其重要性,对学时数一再进行压缩。近几年C语言公共基础课开设学时数统计表见表2。
3 C语言教学改革方案
根据前面的分析,为达到培养非计算机专业学生学习C语言的学习兴趣并提高教学效果,在试点班教学中我们采取了以下措施:
3.1使学生认识到学习C语言课程的意义和作用
学生认识不到学习C语言的重要意义是C语言教学中存在的最大的问题。人本主义心理学代表人物罗杰斯认为,人类具有天生的学习愿望和潜能,这是一种值得信赖的心理倾向,它们可以在合适的条件下释放出来;当学生了解到学习内容与自身需要相关时,学习的积极性最容易激发[2]。因此在教学活动的开始,教师就应该明确地向学生指出C语言作为基础编程语言对所有专业学生都有着重要意义和作用。而且将此意义和作用贯穿到课程教学的整个过程。
非计算机专业学生学习C语言的意义和作用在于以下两点:
1)通过对C语言的学习,培养学生分析问题、解决问题的能力,并由此提升学生的逻辑思维能力和学习能力。逻辑思维能力是对事物进行观察、比较、分析、综合、抽象、概括、判断、推理的能力,采用科学的逻辑方法,准确而有条理地表达自己思维过程的能力[3]。逻辑思维能力是学生在大学期间应当主要培养和提高的能力之一,也是现代社会中人才应当具备的主要能力之一。
学习C语言就是学习如何通过计算机解决各种实际问题。面对现实中各种问题,要很好地解决,首先就要完整正确地分析问题,并设计出运用计算机解决的方法和步骤,最后设计出相应的程序。此过程就是对学生逻辑思维能力和学习能力最好的训练和提高。
2)通过对C语言的学习,使非计算机专业学生更深入了解计算机工作原理,并初步掌握程序设计技能,对各个专业学生今后的学习和工作更好地奠定良好的基础。
当今社会,计算机作为重要且高效的工具,各行各业都无法离开。对学生而言,理工类学生更应当了解掌握编程技术,从而具有一定的计算机思维能力。例如,理工类学生在后续课程学习中会使用Matlab软件、数据处理软件、多媒体处理软件(如Flash)等等,这些软件都无一例外都需要加入一定的程序代码。学会了C语言,再学其他语言就轻车熟路了。
3.2指导学生掌握正确的学习方法
非计算机学生学习C语言过程中存在很多困难,究其原因,是没有掌握正确的学习方法。学生明白了学习C语言的重要意义和作业,有了学习的内在需求,还需要掌握正确学习的方法,这样才能事半功倍。因此,应当明确地告诉学生,学习C语言的方法应当是:多思、多看、多练。
学生除了在课堂上认真听讲外,课后必须花时间看书、思考。与其他课程学习不同,C语言学习中仅仅掌握好相关的语法并不表示学会了编程方法。编程能力是一个综合能力的体现,需要学生再学习的过程。所谓“再学习”就是对基本的编程规则和要求了解掌握后,再来学习如何利用所学知识进行编程,这个过程十分重要但是被许多教师和学生忽略了。
“再学习”的过程需要教师和学生共同的努力才能完成。首先,教师在讲解例题时一定要把求解的问题分析清楚,找到解决的方法和步骤(即算法),用所学的知识对应地给出语句从而设计出程序。第二,学生在开始阶段要学会读程序。把教材中的每个例题认真阅读多遍,学会分析其中出现的每条语句的功能和作用,逐步揣摩才能理解例题程序完整的内涵,从而明白编程的方法和思路。第三,学生必然要经过一个编程练习的过程才能真正具有编程能力。通过教师的要求和学生的努力,让学生在学习的不同阶段完成一定难度的练习。
3.3教师在教学中应加入3W+案例式教学
针对C语言教学内容繁多,学生难以理解,学时数少的具体情况,教师教学无疑是极艰巨极富有挑战性的任务。教师只能精心备课,沉着应战,可在教学中多使用3W+案例式教学方法。
“3W 教学法”即在教学中解决三个方面的问题:What、Why、How。What即明确授课要讲解的内容;Why是要说明为什么要学习上述内容;How则是通过何种方法将这以上2W 讲清楚[4]。案例式教学可以追溯到古希腊时代。古希腊哲学家和教育家苏格拉底的“问答教学法”,被认为是现代案例教学法的朴素形式,这种“问答教学法”是教师围绕教学内容向学生进行提问,由学生做出回答,启发学生积极地思考问题,充分发挥学生学习的主动性,学生通过对所提问题的分析,做出正确的回答[5]。在C语言教学中,教师应始终贯穿对学生思维和方法的启发和引导。在每个知识环节的教学中,应坚持发现问题、提出问题、分析问题并解决问题的过程,实时的加入能涵盖本次课或本章节理论知识的经典案例,启发激励学生自主学习,通过3W+案例式教学使一些零散的命令、语法和规则不经意间被学生掌握理解并能运用。
3.4 C语言中几个重要知识环节教学的把握
在C语言整个教学中有几个重要的知识环节对学生十分关键,在这些环节上教师授课时应当注意。
1)数据类型、运算符和表达式
这部分内容在C语言中地位不言而喻,这个阶段学生才开始接触C语言,面对数据复杂的类型划分、众多的功能各异的运算符和复杂的C表达式会不知所措,这时教师必须耐心地向学生说明为什么数据要分类型;为什么要学会各种各样的运算符。先让学生明白其中的道理,再让学生逐渐掌握相关的知识。否则,学生会因无法理解其中的原因而带来学习的困难。
2)循环结构和数组
在这个阶段之前学生已经初步学习并掌握了最简单程序的编写方法,应当从中获得了一定的成就感。此时教师应当告诉学生,循环结构和数组的引入尤其是使用循环嵌套、循环+数组的结构,使得运用C语言解决实际问题的能力大为提高,但是我们面对的例题和练习的复杂程度也将大为提高,学习的难度也相应地大幅增加。先使得学生明白将面对的困难,让他们有充分的思想准备。教师在教学中重点应当是帮助学生分析例题中循环结构和数组的使用所带来的便利,让学生理解到循环结构和数组的在编程中的功能和作用。
3)指针
指针是C语言的精华,指针应用灵活、多样,但难以被理解和掌握,学生常常望而生畏,遇到困难就放弃。这种情况教师可设计只有指针才能实现的一个案例,让学生知晓指针的重要不可代替性和使用灵巧方便,让学生有学习掌握指针的主观愿望,同时又通过案例引申出指针的概念和使用方法和技巧,循序渐进的传授C语言中的指针知识。
3.5尽量使理论教师和实验教师一致
C语言教学分为理论和实验教学,应尽量做到同一教师授课,统一理论实验课对学生的要求,真正做到实验课堂是理论课堂的延伸。要做到理论实验课堂的统一,这需要学校领导层的重视,多派优秀教师执教,减少理论标准班学生人数,最好不超过80人每班,每个理论教师不超过2个理论班的教学任务,这样相应的实验班级由同一个理论教师承担。
4 教学效果
笔者从10级开始,每级在全校理工类本科学习《计算机基础II-C语言》的班级中随机抽2个班作为试点班,试点班基本情况如表3:
5 结束语
我们认为大学非计算机专业的C语言教学对培养学生逻辑思维能力、提高学生学习能力、奠定计算机思维有着极其重要的意义,对学生以后的学习和工作都有极大地帮助。学校应充分重视C语言教学,推行C语言教学改革,组织教师积极探索适合本校学生特点的行之有效的教学方法和措施。本文中教学试点班的教学探索值得推广和借鉴。
参考文献:
[1] 中国高等院校计算机基础教育改革课题研究组.中国高等院校计算机基础教育课程体系2008[M].北京:清华大学出版社,2008.
[2] 章建跃.教育心理学概览.http://www.edu—first.corn/discourse/show.asp?id-426.2003—12—11
[3] 刘泽文.非计算机专业《C 语言程序设计》教学目标及方法的探究[J].福建电脑,2010(4).
[4] 邓旭华.案例教学法+3W 教学法在计算机语言教学中的应用研究[J].科技广场,2007(2).
[5] 沈丹.试论案例教学法在教学中的应用[J].云南财贸学院学报,2005(6).
[6] 刘玉萍.大学计算机基础教程[M].中国铁道出版社,2011.