中学阶段C语言程序设计教学的思考
- 格式:doc
- 大小:26.50 KB
- 文档页数:4
中学阶段C语言程序设计教学的思考
【摘要】《C语言程序设计》是大学的一门知名难课,为适应形势之需,在中学开设这门先修课势在必行,通过笔者近两年在中学进行C语言程序设计课程的推广教学,并对中学阶段程序设计教学的方法和途径进行探讨和总结,希望能对C语言程序设计教学有所帮助,旨在进一步提高C语言程序在中学阶段的教学效果,缩短中学到大学的过渡期。
【关键词】C语言;中学教学;程序设计
中学阶段是人生的黄金阶段,在这个阶段,开始树立崇高的理想,开始确立正确的人生观,开始吸取大量文化知识,为成长为一个对社会有用的人才奠定了各方面的基础;现代教育教学理论认为,中学教学要以学生为中心,充分发挥学生的想象性和创造性,鼓励学生对知识的探索和追求,鼓励学生求异、求新,尊重学生的个人感受和独特见解,从而体现出学生的首创精神。
C语言作为当今最为流行的程序设计语言之一,也是广大中学生喜爱的一门技能课,在本课程教学中,由于基本概念比较多,编程规则繁多,各种使用技巧灵活,导致广大学生感到学习困难,产生一定的畏惧心理。
根据笔者近两年在南通市实验中学等学校进行C语言程序设计课程的推广教学,谈谈如何在中学阶段进行《C语言程序设计》课程教学的体会。
一、分析案例,培养兴趣
俗话说:“兴趣与爱好是最好的老师”。
由于中学生的数学知识基础没有比较薄弱,在C语言课程教学时,常常会碰到学生晦涩难懂或是兴趣索然的知识点,此时老师应该根据C语言的具体特点,在讲清基本概念的同时加强知识的趣味性,让知识点变得通俗易懂,引发学生的兴趣,所以C语言教学的首要任务就是启发广大中学生的学习兴趣。
为了让学生对编程有兴趣,举出如“猴子分桃”、“鸡兔辨脚”等趣味算法,引导学生的学习兴趣。
随着课程的不断深入,大量的语句格式、语法规则、定义和要求出现,大部分学生会产生枯燥无味的感觉。
讲授时知识点时,先给出程序的调试结果,然后介绍相关的基本定义和规则的方法,这样,有效的避免了空洞的理论,把“语言”课讲生动、有趣。
例如在介绍输出函数(printf)和输入函数(scanf)时,先给出实际案例,通过编写一些短小的程序演示程序的输出结果,同时让学生通过简单改变函数(printf)和输入函数(scanf)的相关参数就看到结果的不同,这样学生就会对这两个函数以及相关程序具有较强的感观性,可提高学生的兴趣;然后再介绍输出函数(printf)和输入函数(scanf)的参数表,参数表中给出了输入或输出的变量,强调当有多个变量时,用英文逗号(,)分开。
二、夯实基础,循序渐进
在C语言课程教学过程中,本着“夯实基础,循序渐进”的指导思想,针对中学生的特点和教学大纲的要求,认真归纳教学内容,以基础知识为重点,同时有
效地绕开难点,以缩小台阶,达到循序渐进。
例如,在介绍正负数时,可以先把简单的四位二进制数依次围成一圈如图1所示,再设想在该图中将A点处把圆周剪开,然后把圆周拉直竖立起来如图2所示,在图1.2中表示了与十进制数0~15相对应的全正数的四位二进制数。
若在图1中的B点处把园周剪开,然后把园周拉直竖立起来如图3所示。
此图的上半部0000~0111表示了十进制的正数0~7;下半部1000~1111则表示了十进制的负数-8~-1。
这样对于有正负的二进制数,其最高位为0者为正数,最高位为1者为负数,有效地回避了传统的“真值”、“原码”、“反码”、“补码”等诸多概念,从通俗事物实质出发,让学生轻松掌握二进制数据的正反数表示和范围。
在介绍数据类型、运算符、表达式时,由于这些数据形式种类繁多,放在一块学习起来难度大,于是先介绍算术型的数据类型、运算符以及相关的表达式,使学生学习起来没有想象中的那么难;在学生掌握了这些概念后,让学生练习编写简单实用的小程序,然后趁机引入基本输入、输出函数。
这样一来知识跨越度小,学生的信心不仅得到增强,学习积极性也被提高起来。
这种在掌握理论知识的基础上,通过一个个小程序的层层推进,引入课程内容,使得学生的学习每一步都有较好的基础,学生的学习是在“走台阶”,而不是“三级跳”,真正做到知识的循序渐进、螺旋上升。
图1 四位二进制数
图2 全正数四位二进制数
图3 有正负四们二进制数
三、类比启发,融会贯通
类比启发,融会贯通是学习C语言的两大法宝。
类比启发与融会贯通是指针对程序设计中的具体实际问题,启发学生从不同的角度、采用不同的知识去思考、解决相应的问题,使学生准确地把握教材的整体结构以及每章内部的相互关联,辨别其中的区别与联系;同时对提高学生系统思维和整体把握能力也大有益处。
例如:在定义一个类时,这个类要分两大部分:说明部分和实现部分,说明部分来说明类中的成员的数据成员和成员函数即方法,定义了类的public(公有的)、private(私有的)和protected(保护的)访问权限;类的实现部分主要用来对一些在类体内只说明没定义的成员函数进行定义。
下面是一个类定义的程序代码:
#include<iosteam.h> //类的说明部分
Class Base{
int x,y,z;
…
fun(){…}
… } //类的使用部分
int main()
{ Base b; //创建一个类Base的对象b
…
b.fun(); //给对象a发消息,调用成员函数fun()
return 0;
}
又如,我们经常遇到的练习题:“给定若干学生信息(含班级、学号或姓名),录入学生的成绩,然后可根据学号或姓名查询成绩并可以任意按姓名或学号或成绩的大小顺序依次输出”,要求学生用数组和结构体两章知识分别求解。
引导学生自行进行比较两种知识的不同与联系,加深对程序设计思想的理解。
从而得出结论:结构体的出现,是为了解决数组只能存放相同数据类型的数据的限制。
这样纵向类比可以显示教材知识发展的轨迹,揭示知识发展的深度,达到不知不觉让学生学会了融会贯通。
四、分组学习,系统训练
合作学习是在充分发挥学生个体能力的基础上,培养学生的团队合作精神的一种好的学习方法。
学习小组是由不同性别、不同成绩、不同能力的学生组成,每个小组为了完成一个共同的编程题目,有的学生负责查找资料、有的负责算法、有的负责写程序,然后大家一起进行程序调试、优化与提高并分享程序结果。
实际分组时按自愿原则每8人一组把全班分成相对固定的若干小组,然后由老师根据学生能力的强弱进行适当调配,确保每一组学生好差搭配,以便在学习中互帮互助,让学生动口、动手、动脑,开发学生的潜能,促进全体学生的发展,培养学生团结合作的精神,通过程序模块测试、系统知识训练最终达到学生整体编程能力的提高。
五、结束语
在中学阶段要完成好C语言课程的学习,必须在具体教学过程中摈弃大学教育中采用的传统教学方法,通过案例分析与兴趣培养相结合、类比式启发与融会贯通相结合、系统培训与知识传授相结合的途径,采用各种启发式教学方法启发学生的思维,在发挥教师主导作用的前提下,通过小组学习模式,充分调动中学生的积极性和主动性,引导学生通过自己的独立思考和模块训练,融会贯通地掌握系统的C语言知识,让广大学生主动学习,满足他们的求知欲,扩大他们的知识面,为他们到大学后知识进一步提升打下坚实的基础。
参考文献
[1]郝惠馨等.C语言程序设计实验教学探索[J].计算机教育,2010(09):82-84.
[2]张艳明.C语言程序设计教学体会浅析[J].电脑知识与技术,2010(04):2690-2693.
;南通大学教学研究课题(2011B39);南通大学2011年精品课程培育项目(JP11021)。