民办高校本科《C语言程序设计》课程教学改革方法探讨与实践

2016-01-09 13:15聂丰英
电脑知识与技术 2015年30期
关键词:C语言程序设计C语言民办高校

聂丰英

摘要:我校是一所新建民办本科院校, 2015年第一届本科生毕业,在全校所在的本科生中,约百分之五十的学生为少数民族学生,学生基础差异较大,部分少数民族学生基础薄弱,上课听得懂与会进行程序设计完全是两码事,在课堂上,学生学习积极性不高,实践效果达不到教学目标,教学效果不理想,该文针对我校本科《C语言程序设计》课程教学中存在的问题,结合我校学生的实际情况,对教学内容、教学方法、考核方式、评价方式等进行了改革。

关键词:民办高校;C语言;教学改革

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2015)30-0104-03

《C语言程序设计》是针对我校理工类专业大一新生所开设的一门重要的专业基础课程,该课程是目前高校最流行和实用的一种计算机高级程序设计语言,是进行程序设计教学和计算机软件开发的主要工具之一,也是理工类专业学生学习其他相关专业课程的一座重要桥梁,因此,该门课程一直是高校所开设的高级语言课程之一。

1 现状分析

笔者通过问卷调查的方式,了解目前我校教师在《C语言程序设计》这门课程教学方面的现状及学生的学习情况,分析,总结了师生普遍感到这门课程难教、难学的原因,觉得有以下几个方面。

1.1 我校学生的学习积极性处于比较低层次

大多数学生是少数民族,入校时学习基础比较薄弱,对中文的学习能力和理解能力比较弱,逻辑思维能力和动手能力相对比较差,对学习的自信心不太强,学习的主动性和积极性也有所欠缺,大部分同学自主获得知识的能力偏差,总的来说,他们的学习能力处于较低层次,学习方法比较落后,在学习过程中,对中文的理解能力欠佳,大多同学,不理解课堂上老师所讲的内容,只会采用死记硬背的方法,被动地记忆教师讲授的基本概念、语法知识等,上机也只会调试程序,根本设计不出程序,对上机实践操作兴趣不高,缺乏对所学知识的综合运用能力,不会举一反三,给自己增大了莫名的学习负担,编程上遇到一些困难就容易退缩。尤其是在大一第二学期阶段,有不少学生对计算机的基础知识及操作还不太熟悉,程序设计课程对初学计算机的非计算机专业学生来说显得更加抽象、一些程序设计的流难以理解,这往往是导致学生的学习兴趣不高,产生畏难、甚至恐惧情绪的原因,最终导致厌学的后果。

1.2 教学内容的组织不太合理

教学内容的组织和教学方法对培养和增强学生的学习兴趣和学习信心起着极为重要的作用。《C语言程序设计》这门课一般都是在大一阶段第二学期开设,此时学生对计算机的系统结构、工作原理有了一定的了解,但对高级语言程序设计方面的内容,了解的甚少。因此,针对我校学生的基础特点,现对《C语言程序设计》这门课程内容进行提炼,减少传统的C语言教材较为复杂语法知识、算法等知识,传统教材一开始上来的几节课便是介绍和计算机硬件结合紧密术语、数据类型、语法规则,算法流程等基本概念,学习内容显得相当的抽象、繁杂、枯燥,新概念名词和规则如排山倒海般涌来,学生在学习过程中感觉学习的内容相当多,而且比较枯燥乏味、跟实际生活毫无关联,顿感学习压力很大,对程序设计的好奇心和期待随着前几节课云山雾罩般语法知识和规则的涌来消失殆尽,一开始满怀的学习热情受到压抑,因而失去进一步的学习兴趣和学习信心,失去学习动力,甚至有极少学生因而产生畏惧情绪选择放弃,不利于课程的进一步学习。

1.3 上机实践存在问题

《C语言程序设计》是一门实践性很强的课程,主要培养学生的动手能力和编程能力,所以,实践教学对这门课程来讲,非常重要,很多理论知识必须要通过上机动手调试才能够加深理解,帮助学生掌握和巩固所学知识。目前,许多高校的《C语言程序设计》这门课程的考试形式基本上是采用笔试,考试的主要内容仅仅是对所学的理论知识进行检测。这种考试形式使得学生在平时只注重理论知识的学习,不太重视实验实践的环节,另外,也有因为硬件环境或课时原因而造成学生上机实践课时不足,使得学生的理论知识学习与实践环节脱节,反过来影响了对理论知识的深入理解和掌握。

2 教学内容的改革

重构《C语言程序设计》课程教学大纲,包括理论教学大纲和实践教学大纲,课程内容分为2个阶段,第一阶段C语言基础,第二阶段是程序设计。制定的新课程教学大纲“本着理论够用,重在实践”的教学理念,强调学生的自主学习能力、创新能力、程序设计能力和对所学知识的综合应用能力。教学内容由浅入深,由易到难,降低程序设计的难易程度,加强程序设计中分析问题和解决问题的深度和广度,教学内容循序渐进,螺旋式上升。增加新知识、新理论以及交叉学科知识的介绍,补充教材难以编入的学科发展的前沿知识,充分体现该课程教学大纲的系统性、实用性、实践性、科学性、先进性。

该门课程的开设64课时,其中理论32课时,实践32课时,在教学实施过程中,在充分掌握理论知识的同时,加强实践教学。通过修订教学大纲、课程标准、授课计划等相关教学文件,着力加强实践教学,并对实践过程进行单独考核。另外,为了弥补不同层次学生对不同知识的需求情况,将实验项目计划增设了选做内容和必做项目,要求学生根据自己的学习情况选做相应的项目,利用业余时间完成。在实践教学过程中推行“项目驱动、小组合作”的实践教学模式。选择趣味性强且与学生生活贴近的项目作为教学主线,合理布局第一个项目,将每个实践项目分解成一个个体现相关的知识点又与实际生活紧密相连的子项目,对应理论教学的各个教学知识点,把相关的知识点融入到项目的各个环节中去,层层推进项目。通过对项目中的问题的深化和知识点的补充,来拓宽学生对所学知识的深度理解,实现独立完成项目的目的,从而达到学习知识、培养能力,提高实践能力的目的。

另外,在教学内容的选择上,尤其是介绍新内容时,避免选取复杂程序或学生不熟悉的数学、物理等问题作为案例,尽量选择学生平常比较熟悉的问题来进行分析讲解程序设计。在学生了解了新的知识点及新的编程方法后,再扩展介绍新方法的应用和一些常见的技巧,由浅入深,有利于学生了解掌握有一定难度但常用的一些编程技巧。

在教学内容的安排上,以程序设计思想为教学内容的主线,围绕着一个学生熟悉项目,努力让学生能主动而非被动接受新教学内容。用教学项目把整个课程诸多关联的知识点有机地联系起来,紧紧围绕着一个案例,如学生进行计算器的设计,从这个主题出发,循序渐进,逐渐延伸、拓展,随着带领学生不断提出新的用户需求并主动设法解决,引出能满足新要求的方法和相关知识点。

3 教学方法的改革

按照我校学生的实际情况,制定符合我校学生实际的课程标准、教学大纲,围绕本课程的教学目标,根据《C语言程序设计》课程和学生的特点,按“够用、实用”为原则对传统的教学内容进行重新组织,合理取舍设置教学内容。教学内容上舍弃了一些不常用的语法和章节,注重强调基础性、实用性和实践性,同时,兼顾教学和自学两方面的适用性。例如:可以先带领学生完成一个简单的项目——设计一个简单“加减乘除”的计算器程序,做简单的输入二个数据、然后计算结果和输出计算结果的工作,而后再给学生进一步讲解完成每一步工作所用的相关语法知识和需要注意的问题。而学生对两个数据的“加减乘除”的处理方法很熟悉,学生通过把平常熟悉的工作用计算机语言描述出来并在计算机上运行得到所需的工作结果,让学生体会到C语言程序的神奇而不神秘,有趣而不难学,体会到用计算机解决问题步骤的条理性、逻辑性和掌握相关语法知识的重要性,减少、消除学生初学程序设计语言时的神秘感和恐惧感,激发学生的学习兴趣和求知欲望。

形成“三结合一补充”的教学方法,即:“理论教学与实践教学相结合、自主学习与过程评价相结合、平时考核与开放考试相结合,模拟项目对课堂教学进行补充”的教学方法;充分利用信息技术手段,满足学生的个性化发展,包括多媒体教学手段、网络课堂、数字图书馆等。

3.1 采用任务驱动式的项目教学法

在理论教学过程中,抛弃传统的从介绍基本概念、语法知识和规则再到举例说明它们的应用的教学方法,采用任务驱动式教学方法。在教学过程中,全程贯穿任务驱动式教学的思想,按照提出问题、分析问题、解决问题的逻辑思路,引导学生主动参与从接受任务到如何完成任务的整个过程中,改变以往的被动接受为主动学习,充分发挥主观能动性,积极地思考、学习和掌握编程知识和编程方法,锻炼提高分析问题和解决问题的逻辑思维能力。

3.2 采取有效的讲课方法

在课堂教学过程中,采取有效的讲课方法,调动学生积极性。如采用师生互动法,避免传统的“满堂灌”、“填鸭式”教学方法,以免学生因被动学习产生抵触情绪。加强师生互动,采用小组合作的教学模式,融“教学做”为一体,引领学生积极参与教学中,主动提问题,积极思考解决问题。在利用基础知识解决问题的过程中,培养学生举一反三的能力,适时提出或引导学生提出一些进一步的要求,拓展学生的思路,让学生从如何编出程序能解决问题再进一步提高到如何把问题解决的巧妙些、任务完成的更好些、程序的质量更高些,培养学生的问题求解、编程及创新能力。

图1 采用“教、学、做一体化”的教学模式图

对于重点、难点的问题,要采取有效的讲课方式和思路进行讲解,如启发式、循序渐进式、师生互动式、实例法、类比法等方法,可以有效突出重点、化解难点。如帮助学生对循环控制变量作用的理解,可以类比环形跑道上的长跑裁判员统计运动员所跑的圈数并给出最终判断。

对于一些比较抽象的、难于理解的内容,借助动画将其转化为直观的形象便于学生理解。如讲解数据冒泡排序时,我们老师做了教学动画帮助学生理解一组数据排序的过程及最后最终结果,这样学生对抽象的一组数据的排序就容易理解了。

在教学手段上,充分利用多媒体教学和传统板书的优势互补,在碰到难点内容时,我们制作微课,帮助同学们理解较为抽象的内容。使用多媒体电子课件和微课相结合的方式,演示程序设计中的难点部分,提高教师、学生的教、学效率,利用微课,提高学生的学习积极性。因此,结合传统板书来讲课,写出重点难点,画龙点睛,帮助学生加深对重点内容的印象,理清程序运行过程中的数据变化情况。尤其在初期讲解程序设计时,利用板书逐步写出程序的效果更好些,这样在整个板书过程中能够有效控制要讲解的内容,思考、提问、修改等环节有机结合起来。使得学生的思路能与教师的讲解保持同步。

3.3 实验教学的改革

让学生明确编程理论知识必须要通过上机动手调试才能加深理解和掌握,思维能力、编程能力等都需要通过实践教学来培养,建立重视实践教学的新理念,主动积极参与实践教学。将实验内容设为基本篇和提高篇,基本篇用以锻炼学生应用基本知识编程解决简单问题。在此基础上提出更高的要求,设为提高篇用以锻炼学生能灵活运用所学知识编程解决较为复杂的问题,培养学生探索创新能力和实践能力。

为保证实验的效果,要求学生必须做好上机前准备,设计源程序和调试中可能会出现的问题及解决方法,实验结束上交源程序,课后上交实验报告。

3.4 建设多元的立体化教材

积极进行立体化教材的建设和实践。其中包括教材、教学大纲、实验大纲、实验指导、教案、电子多媒体课件、微课堂、教学网站、题库、习题集等。 出版1部教材。由笔者参编的《C语言程序设计项目教程》是以项目教学为编写思想,在该教材中融入大量最新的以同学们生活非常贴近具有趣味性的教学案例和操作性非常强的实例,力求提高教材的通读性和实用性,强化学习实践操作能力,做到“教师易教,学生易学,技能实用”。

教案中除教学目的与要求、教学重点和难点、教学内容等内容外,根据《C语言程序设计程序设计》课程特点,编写了课后的作业题、思考题等内容,电子教案内容非常充实,充分体现了教师与学生之间、学生与学生之间的互动;在多媒体课件内容的设计上,尽量简明扼要,突出重点,只要有用的;知识点之间的衔接思路清晰,既包括了教材的所有内容,在又能激发少数民族学生的学习兴趣,取得良好的教学效果;本课程电子课件、作业、课后思考题、教学大纲等均通过网络以精品课程的形式对全校所有同学开放,另外有充足的网络教育资源加上对于该门课程的难点内容利用微课来展现,这些对提高学生的自主学习能力,培养学生的学习兴趣,发挥了积极作用。

4 考核方式的改革

考核对学生的学习起着重要的引导和促进作用。改变以往以笔试为主的考试方式为全面考核,既要考核学生的理论知识,也考核学生上机动手实践能力。为了更加公平、公正的检测学生的学习效果,体现教学改革的效果,《C语言程序设计》课程采取“过程考核”和“期末考试”相结合的方式,改变传统的一考定成绩的方式,过程考核是以上机操作为主,突出学生的实践能力的培养,在进行完一个知识点的学习后,就进行相应的考核,让学生更好地掌握自己的学习情况,以及与同学之间的差距,根据考核结果调整学习计划;期末考试,以试卷考核为主,主要考查同学对所学理论知论的综合应用能力。

5 评价方式的改革

在《C语言程序设计》这门课程的教学改革中,对考核的评价方式作了大量的修改,制定了符合我校学生实际,又能激发学生学习热情的考核方式。在该门课程的考试中,除了期末的考试由教师来评价之外,对学生的实践操作采取了过程性的考核方式,其中过程性的考核采用了“学生评价、学生互评、教学评价”等多种评价方式,激发了学生的学习兴趣。

6 总结

本课程的教学改革在我校实施一年以来,取得了一定的成效,但教改成果与国家精品课程标准有相当大的差距和不足,我们将继续加大《C语言程序设计》这门课程的教学改革国度,加强教学研究,发表高水平教学论文,完善网络教学资源,加强课程在线学习手段,提高学生的自主学习能力,最终增强学生对所学知识的综合应用能力。

参考文献:

[1] 任淑美, 李宁湘, 陈杰. 《C语言程序设计》课程教学改革与实践[J]. 计算机时代, 2014(7): 65-67.

[2] 王冰. 《C 语言程序设计》实验教学方法研究[J]. 中国现代教育装备, 2014, 191(7): 58-60.

[3] 蒋小莺. 《C 语言程序设计》课程教学方法实践[J]. 电脑知识与技术, 2014, 10(7): 1467-1468.

猜你喜欢
C语言程序设计C语言民办高校
基于Visual Studio Code的C语言程序设计实践教学探索
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
关于民办高校人才培养适应市场需求的研究
浅谈民办高校中的人才培养模式
论子函数在C语言数据格式输出中的应用
民办高校“脱困”要多从自身找原因
民办高校大学生人际关系与自我概念的研究