摘 要: 《C语言程序设计》在中职计算机专业课程中起着举足轻重的作用,职业学校的学生素质偏差,学生理解、接受能力较低,倘若教师的教学方法不能很好地吸引学生,势必会造成学生厌学的情绪,使教学陷入困境。

关键词: 中职计算机专业 《C语言程序设计》 教学方法

《C语言程序设计》在中职计算机专业专业课程中起着举足轻重的作用,也是对口高考技能考核和理论考试的必考科目。学生素质偏差是中职学校普遍存在的共性,由于学生素质一般不高,学习兴趣不浓,学习态度不端正,学习目的不明确,再加上学生刚刚接触计算机语言类的专业课,该课程本身难度较大,枯燥无味,又存在传统教学的弊端,教学设施设备落后,这些因素造成学生学习困难,没有兴趣去学,甚至有些学生望而生怯,不愿意去学;教师上课也无精打采,照本宣课,课堂氛围死气沉沉,教学效率不高,教学质量上不去,使教学陷入困境。如何使教师的教与学生的学走出误区,已成为当务之急。

一、培养学习兴趣,提高学生的学习积极性

爱因斯坦曾经说过:“兴趣是最好的老师。”一些老师往往不注重学生兴趣的培养,在第一课简单介绍完自己后就步入正题,开始按部就班地教学了,认为早点让学生接触本课程的相关基础知识,可为后面紧张的学习争取时间。其实不然,中职学生素质不高,学习兴趣不浓,甚至有厌学情绪,如果一开始就讲授课本知识,容易使本就厌倦学习的学生产生抵触情绪,从而为后面的教学带来诸多不利因素。

教师首先应想方设法调动学生的学习积极性,不要急着去讲解书本知识,把学生学习积极性调动起来,让学生感觉学习C语言程序好玩,把C语言的研发当成一种游戏,产生强烈的求知欲望,进而挖掘出巨大的学习潜能。

其次在C语言教学中应多采用通俗易懂的例子,避免抽象问题挫伤学生学习积极性。比如在讲解两个变量值互换时,很多学生采用数学中的解法:A=B,B=A,不理解为什么要引入中间变量C,使用C=A;A=B;B=C语句。[1]此时教师如果用生活中看得见摸得着的实物来比喻,学生就很容易理解了。假设A和B两个盒子里分别放满白色粉笔和彩色粉笔,现要求在不借助第三方载体的情况下将两盒粉笔交换,请同学演示,能否成功?如果再拿一个空盒子来并允许使用第三个空盒,能否成功?由此得出必须借助第三个盒子,才能交换成功。这样学生理解起来就容易多了。

二、重新整合教学内容,分类汇总

教材一般先介绍数据类型、表达式、算法、函数等抽象难懂的C语言基本概念,然后才介绍程序的编辑和运行。如何利用现有资源重新整合教学内容打破教材原有的顺序章节,将各知识点按先分类后汇总的原则重新组织?这就要求教师对整本教材的内容非常熟悉,能前后照应、融会贯通,而不是为了上课而上课,照本宣课,不能尽信书,也不能无书,这样会取得更好的教学效果。例如在讲解命名规则时,老师可以把变量和数组放在一起,使学生感觉到知识间的关联,记住了一个,另一个也记住了,提高学习效益。再如利用C语言把一系列杂乱无章的数据按照一定顺序排列,此时我们可以把顺序法、选择法、冒泡法放在一起,让学生能直观地看出各种方法的区别,举一反三,有利于加深对知识的理解。

如学习循环结构时,举例:sum=1+2+3+4+5+…+n;让学生建立两个概念:装和的变量sum(初值为0),表达式:sum=sum+n;例题变化:p=1*2*3*4*5*…*n;装乘积的变量p(初值为1),表达式:p=p*n;深化例题:s=1!+2!+3!+4!+5!+…+n!;引导学生分析并发现这是前两个循环的合并,得出循环体语句:p=p*n,s=s+p,[2][3]使学生掌握一题多变的思维模式,举一反三、触类旁通。

三、改变传统单一的教学方法

C语言和其他计算机专业课不同,它要求初学者要具备较好的数学和英语基本功,而数学和英语是职业中学学生普遍感到头疼的“老大难”课程。针对这种现状,我们要根据学科间的联系,以及学生的个性差异因材施教,要改变过去单一、乏味的以教师讲为主的传统教学方法,采用适应时代需求的符合学生客观规律的“项目教学”、“自主学习”、“任务驱动”、“案例学习”、“合作学习”[4]等多种方法。

例如:输入5个学生的3门课程成绩,求每个学生的平均成绩和每门课程的平均成绩。学生拿到题目感觉无从下手,我把题目拆分成两个任务:1.求每个学生的平均成绩;2.求每门课程的平均成绩。再将学生分成A、B两组,分别将任务1交给A组学生完成,将任务2交给B组学生完成。这样学生感觉轻松多了,轻而易举地完成了各自的任务。最后我把两个任务再组合在一起,此题就迎刃而解了。在教学过程中我改变了过去一个人讲的传统教学方式,采用项目教学和合作学习相结合的复合法使问题得以解决,学生对二维数组有了进一步的认识,加深了理解。

求学生平均成绩程序段如下:

For(i=0;i

Aves[i]=0

For(j=0;j

Aves[i]+=scor[i][j];

Aves[i]/=3;

求课程平均成绩程序段如下:

For(i=0;i

Aves[i]=0

For(j=0;j

Aves[i]+=scor[i][j];

Aves[i]/=5;

C语言程序设计课程本身要求培养学生的动手能力和综合运用知识解决实际问题的能力,这就要求学生要多动手上机练习。教师要采用多媒体技术,多形式地运用教学方法激发学生的学习兴趣,引导学生的发散性思维的形成。例如:打印杨辉三角形,由于学生对杨辉三角形不了解,教师可以借用Flash动画形象地打印出杨辉三角形,帮助学生找出其中的规律:第一列的数都是1,各行最后一个数也是1,从第3行第2个数起,为上行同列数与前一列数之和,例:a[i][j]=a[i-1][j-1]+a[i-1][j];(i>=3,j>=2)。教师借助动画,可使得原本抽象难懂的概念变成形象直观的动态模型,为学生在练习的过程中发现问题、探讨问题、解决问题,积累丰富的经验,使学生体会到成功的喜悦。

只要我们能从学生的实际出发,充分调动学生的学习积极性,运用科学有效的适应时代要求的教学方法,就一定能使学生学好这门课程。

参考文献:

[1]林东,陈琳.编程语言基础――C语言.高等教育出版社,2006.6,(2).

[2]黄煜编.程序设计语言课程教学方法探讨.山西农业大学学报,2006,(1).

[3]谭浩强.C程序设计题解与上机指导.清华大学出版社,2000.9,(2).

[4]王吉庆.信息技术课程与教学论.浙江教育出版社,2003.8.

C语言10个学生分粉笔,《C语言程序设计》教学方法初探相关推荐

  1. c语言10个人 三向成绩,C语言入门学习精华:这样学习C语言最有效

    C语言入门学习精华:这样学习C语言最有效 c语言死了吗? 本材料描述了使用C语言的高级技能,并努力将您的C语言能力从"基本"提升到"高级".然而,学习态度比学习 ...

  2. 字符串转内存c语言,【一起学C】C语言面试题必考:字符串操作函数,内存操作函数实现...

    本帖最后由 奉聪 于 2017-1-25 14:54 编辑 *******前言******* 我数一下,我发了几个帖子,1.2.3? 哈哈哈,没几个哈,感谢吾爱,让我学到了很多,乐于分享,共同进步! ...

  3. 没有语言基础可以学python_没有Python语言基础可以学习深度学习吗?

    展开全部 Python学习路线.32313133353236313431303231363533e78988e69d8331333433643031 第一阶段Python基础与Linux数据库.这是P ...

  4. c语言 10个小朋友分糖,C语言的小孩分糖问题

    C语言的小孩分糖问题 答案:2  信息版本:手机版 解决时间 2019-10-03 01:27 已解决 2019-10-02 10:39 10个小孩围成一圈分糖果,老师顺次分给每个人的糖块数为12,2 ...

  5. 转成html语言,转一学就会__html语言成品代码

    百叶窗效果 代码如下: 调整scrollDelay=XX可以调整滑动速度 效果如下: 不懂html语言的朋友也可以做一幅漂亮的图哦,只要复制这些代码.换上你自已喜欢的图片网址或者动画网址, 一幅属于你 ...

  6. c语言10个数如何求最大值,C语言,输入10个数怎样输出10个数中最大值,最小值(大一计算机)...

    可以参考下面的代码: #include int main() { int loop = 10; int min, max, value; do { printf("输入整数:"); ...

  7. c语言10位域宽怎么写,C语言格式修饰符洋解

    格式修饰符: 最小域宽限定符: 百分号和格式代码间的整数称为最小域宽限定符,它保证输出时用空格填充以达到最小域宽.默认为空格,如果想用0来填充,那么在域宽限定符前放一个0.如: %05d将对不是五位数 ...

  8. C语言10进制写法,用c语言编写函数Htoi(s)把由16进制数成10进制的数

    满意答案 iaooifi 推荐于 2016.07.05 采纳率:53%    等级:12 已帮助:6961人 #include "stdio.h" #include "s ...

  9. 程序员入门c语言还是java,先学java还是c语言?入门学哪种语言?

    很多刚接触编程语言的小伙伴都会有一个疑问先学 Java 还是 C 语言?今天 W3Cschool 小编就来和大家简单介绍一些,做个对比相信小伙伴们能够自行作出适合自己的判断. 在探讨先学 Java 还 ...

最新文章

  1. 重磅丨国家发改委公布56个AI支持项目名单
  2. ionic项目相关的操作命令
  3. golang 编译提示 cannot assign interface {} 和golang断言使用
  4. 自定义你的VSCode:主题、文件图标、快捷键、设置、schema、插件
  5. Windows Storage Server 2003 R2 英文正式版已发布
  6. js实现复制html页面
  7. python 字节码 优化_字节码优化
  8. 【嵌入式Linux】STM32MP157开发板上Linux启动流程
  9. 新AlphaGo这么强!36小时从0自学成大师,100:0把李世乭版秒成渣渣 | Nature论文
  10. php序列化后换服务器不能解析,利用php序列化和反序列化的语法差异绕过防护_网站服务器运行维护...
  11. 计算机组成原理 唐朔飞 知识点,计算机组成原理知识点总结(唐朔飞版)
  12. xps15u盘装linux,戴尔XPS 15 9575笔记本安装win10系统的操作教程
  13. 物联网开发笔记(29)- 使用Micropython开发ESP32开发板之控制240x240的oled屏幕显示动态图片GIF(ST7789芯片)
  14. C# 计算农历日期方法 2022
  15. 公众号添加跳转网页链接
  16. axure 调整中继器列宽_Axure教程:用中继器做图片轮播
  17. 多吃什么食物可以明目护眼?
  18. 谢烟客---------Linux之bash编程
  19. Codeforces - DZY Loves Sequences
  20. 一般椭圆方程表示的椭圆的绘制

热门文章

  1. 7-6 打印水仙花数(10 分)
  2. 什么是期货反向跟单?
  3. 遥感IDL二次开发(辐射定标)
  4. 【系统分析师之路】面向对象开发方法,Coad方法、Booch方法和OMT方法及UML
  5. P4281 [AHOI2008]紧急集合 / 聚会(LCA做法)
  6. 分布式 —— 基于Raft算法的KV服务
  7. sql server 子查询的两种方式
  8. c语言编程物理实验,大学物理实验报告大全C语言编程在大学物理实验中处理数据的研究...
  9. CANoe软件之离线数据分析
  10. python中找出numpy array数组的最值及其索引