非计算机专业C语言程序设计课程教学探析

2023-02-20

目前, C语言程序设计课程已成为计算机专业及其他相关专业的基础课, 目的是通过C语言程序设计课程的学习, 使学生掌握用计算机解决问题的方法, 学习常用的各种算法, 掌握程序设计的基本思想。程序设计思想贯穿于相关专业的后续课程, 是最基础的内容。多年的教学实践证明:程序设计课的教学质量的高低, 对相关后续课程的教学与实践有很大影响。

我校非计算机专业的C语言课程基本上都安排在大一的下半学期。这一阶段学生还处于学习方式由高中向大学转变的过程之中。并且这一阶段课程多, 课时长, 都是基础课, 课余时间较少。而C语言课程侧重于应用, 需要大量的上机实践。并且C语言课程中存在较多新的概念和思想, 较为抽象、复杂, 对于一年级学生尤其是非计算机专业的学生来说还存在很大的难度。

针对这一问题, 我们在多年的教学实践当中对于教学方法进行了一些改进和探索, 取得了较好的效果。在这里作一个简单的总结和分析。

1 采用启发式的教学方法

教师在教学过程中, 应当注意设置疑难问题, 引导学生思考和探索, 让他们的思想活跃起来。

问题是最好的老师, 是学生学习的引导者, 没有问题便没有深入。在教学过程中, 引导学生在问题解决中学习, 即提出问题, 留给学生时间思考、讨论、解决问题, 从而更深入地展开学习。实践证明, 这种教学方法充分调动了学生学习的积极性和主动性。

例如, 在讲数组的概念时, 教师先设置问题:编程计算10个人的英语平均成绩。根据以前所学, 学生会想到:需要说明10个类型相同的变量用于存放这10个人的英语成绩。再进一步要求:计算50个人的英语平均成绩。这时候如再说明50个变量, 则会将问题复杂化, 学生此刻需要讨论该如何合理说明变量。此时教师再引出数组的概念、分析数组的性质, 学生不仅能够很容易记住数组的相关知识, 还能够知道在什么情况下使用数组类型, 事半功倍。

2 探索程序设计方法与规律, 发挥实例教学的优越性

程序设计是一个很重要且难度较大的环节, 学生普遍存在着自己动手编写程序有困难, 不知如何下手等现象。究其原因是见的例子少、思路窄, 程序设计的实质、规律没有很好地掌握所致。为解决这一问题, 我们在教学中主要采用了实例教学的教学方式。如以实例引出, 以实例介绍语句功能、格式、特点, 以实例分析执行过程, 经实例指出注意细节等。

例如:从键盘输入任意三个整数, 要求输出其中的最大数。

教师首先需要带领学生进行以下分析:

(1) 要解决问题, 需要定义几个变量, 变量的类型如何确定。

(2) 变量没有值可以吗?如何给变量提供值。

(3) 求三个数的最大值。

(4) 输出结果。

进一步分析:

(1) 经过分析可以定义四个变量, 分别为:a, b, c, max;根据题目要求其类型应为整型 (int) 。

(2) 要求a, b, c的最大值, 这三个变量有值才能求最大值, 如何从键盘给它们提供值?学生自然会想到scanf () 语句。变量max可以用来存放找到的最大值。

(3) 要求三个数的最大值, 可转化为先求出两个数的最大值, 再将这两数的最大值与第三个数比较, 求出的最大值即为所求结果, 将结果存入m a x。

(4) 输出m a x的值。

将 (3) 再进一步深入:

>如何求a, b的最大值?问题可描述为:若a大于b, 则a为所求, 将其存入max;否则b为所求, 将b存入max。分析到此, 学生会将该结构与if-else语句对应。

>求max与c的最大值, 问题可描述为:若c大于max, 则用c更新max;否则max为三数中的最大值, 其值不变。分析到此, 学生会将该结构与if语句对应。

>将每一步用相应的C语句实现, 即为求三个数最大者的C程序。

3 用风趣的语言进行形象的比喻, 帮助学生理解难点

教育家斯维特洛夫说过:“教育家最主要的, 也是第一位的助手是幽默。”教师富有哲理和情趣的幽默, 能深深地感染和吸引学生, 使自己教得轻松, 学生学得愉快。用风趣幽默的语言进行形象的比喻, 可以帮助学生理解教学难点, 同时提高学生对课程的兴趣。

比如C语言中有两个很重要的概念:直接访问和间接访问。授课中举了一个例子:一个人到村子里去找一个叫刘桂香的妇女, 一个办法是到村里直接打听“刘桂香在哪里”。另一种可能是不知道她的名字, 但知道她是王二麻子的媳妇, 于是先找到王二麻子, 再找他的媳妇刘桂香。前者属于直接访问, 后者就属于间接访问。这个例子浅显易懂, 诙谐生动, 同学们听了都忍不住笑了起来, 同时也深深地记住了这两个概念。

再比如break和continue语句的功能。break语句是跳出当前循环/语句体的运行, 继续执行其后的下一条语句;而continue语句则是结束循环体中的本轮循环, 继续执行循环体中的下一轮循环。很多学生初次接触这两个语句时往往不能掌握其要领。我们就以学生日常学习中最经常的交作业为例作了一个形象的比喻:班上的三个区队轮流交作业, 我们把三个区队都交完一遍作业看作一轮。整个课程当中要交三轮作业, 则这个过程可看作一个需要循环3次的大循环。假如当前一轮循环中二区队已经交了作业, 此时碰到了continue语句, 则剩下的三区队这次就不用交作业了, 直接开始下一轮循环, 又从一区队开始交;而此时碰到的如果是break语句, 则将跳出整个循环, 大家都不用交作业了!同学们听了都恍然大悟, 一下子明白了这两条语句的区别和联系。

4 综合运用多种现代教学手段

授课过程中同时打开PowerPoint和Visual C++两个软件, 当讲解到程序示例时, 适时切换到VC环境中演示程序运行, 让学生直接看到程序的真实运行结果, 大大调动了学生的学习兴趣和积极性。同时, 还可以修改程序的部分语句再次运行, 让学生立即看到修改之后的结果, 帮助学生彻底搞清楚程序每个部分的功能。VC环境中字体较小, 后排的同学往往看不清楚, 可以打开Windows辅助工具中的“放大镜”功能, 对局部区域进行放大, 加强显示效果。

我们还结合Visual C++集成开发环境进行了示错教学的尝试。给出一些例子和程序, 让学生进行分析, 哪些是对的, 哪些是错的, 错误的原因是什么, 应该怎样修改。然后立即在VC中演示, 先演示未作修改之前的运行情况, 提示学生注意VC报告的错误信息及相关位置, 接着作修改后再次运行程序。这样可以使学生对于相关知识点掌握得更加牢固。

同时, 我们针对某些比较复杂、学生理解起来有一定困难的算法制作了生动有趣的FLASH动画。如排序算法中的冒泡排序、选择排序。函数调用中的递归调用 (以汉诺塔问题为例) 等等。讲解具体算法时结合动画演示, 将抽象问题形象化、枯燥问题生动化, 可以使学生较快的理解相关算法的思想实质。

5 电子课件与传统板书相结合

我们在多年的教学实践中总结出, 电子课件与板书相结合的教学模式, 是完全板书模式、完全电子课件模式、电子课件与板书相结合模式三种当中最受学生欢迎的、教学效果最好的一种教学模式。授课中不能完全依赖计算机和电子课件, 传统的板书仍然有其强大的优越性。电子课件能清楚地显示复杂的图表和较长程序, 连贯性强、效率高。而板书则能更好地传授教师的思维逻辑和研究问题的方法, 便于学生理解和记忆。

例如, 对于多媒体教学不易实施的程序设计方法的讲解, 我们采用传统的教学方法, 首先对其进行综合分析, 划分模块, 然后带着学生在黑板上一条一条语句地把程序分块编写出来。在这个过程中教会学生如何思考、推理, 如何用语句实现算法, 培养了学生的抽象思维、逻辑推理能力。这样, 将传统的教学方法与多媒体教学相结合, 大大提高了学生的综合思维能力。

6 开展形式多样的课外辅导

C语言课程更侧重于应用, 需要大量的上机实践。但是在课程设置上非计算机专业相对来说课时较短, 尤其是课内上机时间较少。这之间存在着一定的矛盾。为解决这一问题, 我们开展了形式多样的课外辅导。

课外答疑和习题课是课外辅导的一种形式。每双周安排答疑或习题课一次, 习题课上由辅导教员详细讲解每一道课堂作业的编程思路及程序结构并演示运行结果。答疑由主讲教员和辅导教员同时参加, 携带笔记本电脑, 以兼顾理论和实践两方面的答疑需求;

课外上机是课外辅导的另一种形式。每单周至少安排2小时;

同时我们还充分利用了学校开设的网络教学平台, 学员可以利用平台下载课件、浏览资料、获取教学通知, 利用协作板进行信息交流、讨论和答疑等。这一措施促进了师生的交流和沟通, 提高了教学效果。

摘要:C语言程序设计课程较为抽象、复杂, 对于初学者尤其是非计算机专业的学生存在一定的难度。本文对C语言课程的教学方法做了探索和总结。分别从采用启发式教学法、发挥实例教学的优越性、风趣的语言、现代教学手段的运用、传统板书的重要性以及形式多样的课外辅导方式等几个方面谈了在教学上的一些经验和体会。

关键词:C语言,程序设计,教学探析

参考文献

[1] 谭浩强.C程序设计, 清华大学出版社, 2002, 6.

[2] 张书云.关于汇编语言课程教学方法的探析, 全国高校计算机基础教育研究会, 2002年学术论文集.

[3] 李新霞.也谈C语言教学, 计算机教育, 2004, 12.

上一篇:图式理论与英语阅读教学下一篇:企业强化营运资金管理点滴谈

本站热搜