浅析C语言教学中的“教”与“学”

2022-12-22

C语言作为大多数高校的第一门计算机程序设计语言课程, 其自身的重要性及其在课程体系中的基础性决定了其教学效果和教学质量的好坏对学生后续的学习和应用将产生广泛的影响。由于教学是教师的“教”和学生的“学”组成的双边活动, 教学过程是师生相互交流的双边活动过程。师生以什么样的心境进入教学过程, 是学生主动参与学习并取得教学效果、提高教学质量的前提。因此, 处理好C语言教学中的“教”与“学”的关系, 对改善教学效果、保证教学质量有重要的意义。

1 C语言教学现状

目前, C语言教学中普遍存在一个“难”字, 教师“难”教, 学生“难”学。仔细分析, 原因有多方面, 与教师的“教”和学生的“学”息息相关。

1.1 学生的“学”存在的问题

1.1.1 学习动机不明确

学习动机是影响学生学习的一个重要因素。学生在学习的过程中, 有各种各样的学习动机, 有的是因为想学自己真正感兴趣的东西, 有的是由于对今后的职业生涯的向往。目前, 在不少学生看来, C语言已经过时, 已经没有多大用处了, 现在用户都是在Windows环境下进行操作, 只需要学习Visual Basic、Visual C++等可视化编程语言就可以了, 他们对为什么还要学习DOS环境下编程的C语言还认识不清, 认为学习C语言既浪费时间又浪费精力, 所以在学习的时候缺少兴趣、热情和主动性, 仅仅是为了应付考试而被动、消极地学习。

1.1.2 学习信心不足

C语言作为程序设计的入门课程, 所面对的学生其程序设计基础基本为零, 他们在学习C语言之前没有学习过其他程序设计语言, 不仅对算法和数据结构不太了解, 对程序语言本身也是一无所知。而C语言的内容多、难, 牵涉到的概念比较复杂, 规则繁多, 使用灵活, 并在使用过程中容易出错。C语言的很多语法都没有十分严格的限制, 只作出说明性定义, 给编程者以较大的自由, 所以也使得语法检查放宽, 即使是通过了编译的程序也可能存在语法错误。使刚刚接触到C语言的学生感到眼花缭乱, 无从下手, 甚至动摇其学好该门课的信心。

由于该门课程的学时数比较少, 课程进度比较快。面对繁杂的内容和较快的课程进度, 部分学生在学习的过程中会逐渐掉队, 并对该课程的学习产生畏难情绪。由于该课程的内容前后连贯性很强, 随着课程内容的逐步深入, 如果没有掌握前面章节的内容, 后面的内容很难学懂, 导致了学生的畏难情绪进一步加重, 最终一部分同学失去学习的信心, 并彻底放弃该门课程的学习。

1.2 教师的“教”存在的问题

1.2.1 重语法介绍, 轻能力培养

C语言是一门实践性和应用性很强的课程, 其教学目标是让学生掌握初步的程序设计思想和方法、具有良好的程序设计风格、具备编写程序的基本能力。但是在目前的C语言教学中, 教师过分偏重于C语法知识的详细讲解, 对程序设计思想、程序设计方法和程序设计风格的介绍却很少, 对编程能力的培养就更不足。最终的结果是学生上课能听懂, 计算机等级考试的笔试题也会做, 就是不会编写和调试程序, 不会测试程序的正确性, 编写的程序可读性很差, 遇到稍微复杂的程序就读不懂。这种教学内容和课程性质脱节的现象极大地挫伤了学生学习的积极性和自信心, 导致学生认为自己不适合学习程序设计课程, 有的甚至彻底放弃学习。

1.2.2 教学方法陈旧

传统教育中, 教学过程是单一的、线性的、由上而下的知识传递过程。目前, 在C语言的教学中, 教师只注重单方面的课程内容讲解和知识的灌输, 漠视或忽视了学生的主体地位, 不顾学生的课堂反应和接受能力, 只顾赶课程进度, 往往是“满堂灌”、“一家言”, 导致课堂气氛沉闷, 使学生丧失学习的兴趣。

2 解决方法

现代教学论认为, 教学的实质是师生的交往, 教学过程不是单一的、线性的、由上而下的传递过程, 而是师生交往、积极互动、共同发展的过程。因此, 在该过程中, 应该把教师的“教”和学生的“学”紧密地结合起来, 才能保证良好的教学效果和教学质量。为此, 针对目前C语言教学中“教”和“学”两方面存在的问题, 我们提出以下的解决方法。

2.1 关注学生的“学”

在教学活动中, 学生是主体, 教师是主导, 教师应该为学生创造一个民主、和谐、宽松、自由的教学氛围, 诱发学生的学习愿望, 提高学生的学习兴趣, 让学生主动参与学习, 充分体现学生的主体地位。

2.1.1 明确学习动机

教育心理学指出, 学习动机是学习活动得以发生、维持进行、直到完成的内在动力。为了让学生能主动参与C语言的学习, 必须明确其学习动机。为此, 讲“C语言程序设计”课程前, 首先应该向学生强调C语言的重要性:C语言是国际上广泛流行的一种计算机高级语言, 它功能丰富, 表达能力强, 使用灵活方便, 应用面广, 目标程序效率高, 可移植性好, 既具有高级语言的优点, 又具有低级语言的优点, 既适用于应用软件编写, 又适用于系统软件的编写;是很多现代的新型语言 (C++, Java, C#, Objective-C等) 的基础;还是数据结构、操作系统等后续计算机课程的基础, 是程序员、等级考试、一些高校研究生入学考试的必考课程。此外, 还可以收集大量招聘C语言编程人员的就业信息及毕业生从事C语言编程工作的收入、工作条件、工作岗位等学生十分关注的重要信息。

除了老师在课堂上介绍C语言的重要性外, 还可以在C语言的第一堂课上为学生布置一个作业, 要求他们通过网络查找资料, 写一篇题为《为什么要学习C语言》的文章, 文章应该从C语言自身的特点、C语言在计算机课程体系中的地位及C语言在今后工作中的重要性等方面论述。通过完成这样一个作业, 学生对C语言的重要性会有更深、更全面的了解, 由此可以进一步增强学生学习C语言的动机, 激发学生学习的兴趣, 使其积极、主动地参与学习。

2.1.2 树立学习信心

美国心理学家罗森塔尔曾抽取某校18个班部分学生的名单留给学校, 并说他们都是“天才”学生, 8个月后, 他来该校复试, 结果他名单上的学生成绩提高很快, 求知欲旺盛。事实上这些学生名单都是随机抽取的, 学生并非都是所说的“天才”。罗森塔尔通过自己的“真实的谎言”暗示教师, 坚定了他们对名单上学生的信心, 在教师的信任和爱护下, 这些学生更加自尊、自信、自强。罗森塔尔效应说明教师应该帮助学生树立信心, 要善于发现和利用他们的闪光点及时表扬和鼓励, 让每一位学生都感受到自己被重视、自己很优秀。学生经常受到激励、鼓舞就会产生肯定性愉悦性的心理体验, 从而有助于增强其自信心。

C语言对绝大多数学生来说, 是一门既新又难的课程, “新”是因为学生此前没有接触过类似的课程, “难”是因为该课程强调程序设计能力的培养。学习该课程的过程, 就是培养和获取程序设计能力的过程, 而能力的获得并非一朝一夕之事, 必须付出巨大的努力和克服重重困难。在学习过程中, 当学生碰到各种困难和障碍时, 教师应该给予及时的帮助和关怀, 鼓励他们, 助其渡过难关;当学生取得一些成绩时, 教师也应该给予适当的表扬和鼓励。那么学生的自信心会慢慢增强, 并在以后的学习中会愈挫愈勇, 最终取得良好的学习效果。

2.2 改善教师的“教”

教师应该充分发挥其在教学活动中的主导地位, 精心设计教学内容, 采用科学、合理的教学方法引导学生进行有效的学习。

2.2.1 注重课堂讲授和实践环节的结合

掌握必要的C语法知识是编写C程序的前提, 但是过份片面强调语法知识, 而忽略程序设计能力的培养, 就违背了程序设计课程的目标。在教学中, 应该将二者结合起来, 使二者融为一体, 做到通过实例讲解语法, 在讲解语法的同时介绍程序设计方法、程序设计思想和程序设计风格, 在实践课上通过练习强化课堂内容、增强程序设计能力。例如, 在介绍结构体时, 可以通过一个计算第二天日期的实例引入结构体的概念并介绍相关语法, 实例1如下:

介绍完结构体的基本语法后, 可以组织学生进行讨论, 引导他们找出实例1所示程序存在的问题, 即缺少对闰年判断的部分。为了完善程序功能, 我们对实例1进行修改得到实例2, 在实例2的设计中充分体现了程序模块化设计的思想, 子模块功能单一、独立性强、大小适中, 并通过实例2介绍结构体作为函数的语法知识。实例2如下:

为了把理论课堂和实践课堂结合到一起, 在实践课中, 可以布置一些与课堂实例相关的题目, 例如计算任意两个日期之间的天数 (2004年8月8日与2005年2月22日相隔几天) , 这些题目既与课堂实例相联系又有区别, 学生编写程序时可以参考实例, 但不是机械模仿, 这样一方面降低学生编写程序的难度, 另一方面又可以训练编程的思维, 培养编程的能力。在学生具有初步编程能力的基础上, 为了进一步增强学生综合运用能力, 我们在课程的中期和末尾分别设置了“猜数字游戏”和“学生信息查询系统”两个综合设计题目。

程序设计能力是在不断的实践中逐步获得的, 为了扩充有限的课内实践学时, 我们还为学生提供了免费机房, 供其课余时间上机练习。

2.2.2 采用互动式教学方法

学生是学习的主体, 只有让他们充分地参与到教学活动中, 他们才会感受到其中的乐趣。就象跳舞, 作为旁观者, 观看的时间长了可能就厌倦了, 但如果作为参与者, 由于真正体会到跳舞的乐趣, 就会乐此不疲。在C语言的教学中, 教师作为主导者, 应该为学生创造各种条件, 让学生参与到课堂中, 作为教学活动的参与者, 而不是旁观者。具体做法:教师讲授与学生讨论相结合, 在讲授过程中, 根据课程内容, 多设置疑难问题, 让学生思考和回答, 或者根据讲授内容的重点和难点布置几个有关的讨论题目, 安排时间组织学生进行讨论;面对面答疑和网上答疑相结合, 在规定时间和地点进行答疑, 同时利用网络可随时答疑;鼓励、引导学生多思考、多提问题, 在师生交流中实现教学相长。

3 结语

教学活动是师生相互交流、共同参与的过程, 其中教师是主导, 学生是主体, 处理好教学中的“教”与“学”的关系, 引导学生真正参与到教学中积极、主动地学习, 对于改善C语言的教学效果和提高教学质量有重要的作用。教学研究是一个长期的过程, 我们将继续对C语言的教学进行探索, 努力搞好C语言的教学, 让学生学好C语言, 为以后的学习和应用奠定良好的基础。

摘要:本文针对C语言教学难的现状, 从教和学两方面分析教学中存在的问题, 并提出相应的解决方法。

关键词:C语言,学习动机,学习信心,实践能力,教学方法

参考文献

[1] 路连梅.发挥教师主导作用让学生乐学, 善学策略研究[J].中国科教创新导刊, 2008 (6) .

[2] 冷宇.从课堂管理者到共生互动的对话者[J].滁州职业技术学院学报, 2006, 5 (2) .

[3] 叶枫.提高C语言教学中学生的学习兴趣[J].南京人口管理干部学院学报, 2003, 19 (4) .

[4] [美]Stephen G.Kochan.Programming in C (Third Edition) [M].人民邮电出版社.