《C语言程序设计》教学探讨(何全)

《C语言程序设计》教学探讨(何全)
《C语言程序设计》教学探讨(何全)

《C语言程序设计》教学探讨

摘要:《C语言程序设计》是计算机专业的主要专业基础课之一,作者根据自己的教学经验,分析了教学过程中存在的一些问题,并对如何提高教学效果进行了探讨。

关键词:C语言程序设计;教学方法;学习兴趣;任务驱动

引言

C语言是一种结构化的高级程序设计语言,它既有高级语言的特点,又有低级语言的功能,因此,至今C 语言仍是计算机专业学习中的一门非常重要的课程。学会使用C语言编写程序解决实际问题,有利于提高学生的思维创新能力,也有利于计算机专业相关课程的学习。因而,搞好C语言的教学具有非常重要而深远的社会意义。本人根据自己从事C语言教学研究的经验,在文中介绍了C 语言教学方法,并对其教学过程中一些需注意的问题进行了探讨。

一、存在的问题与原因

纵观C语言的教学现状,发现一部分学生轻视C语言,认为它已过时,不想学;一部分学生开始有兴趣,但随着课程内容的深入, 有的内容需要记忆、思考, 难度增大了, 兴趣就减退了, 调动不起积极性, 觉得学习 C 语言很枯燥;还有一部分学生课堂上能听得懂,但动手编程却无从下手,脑子一片空白。究其原因,主要有以下几方面:第一, 学生学习目点不明确;第二,由于C语言本身的课程特点,基本概念较多,语法较复杂,学生自己编程错误很多,又不懂得检查错误,更不会排除错误,结果程序通不过,自己失去了信心,学习积极性大打折扣,所有的问题就等着老师来解决了。第三,学生虽然能看懂一些例子,但对所学内容生搬硬套,教师往往也忽略了这方面的教学,当然,这也与学生掌握语法不透,基本功差,缺乏编程训练等分不开的。

二、解决办法

(一)激励学生学习兴趣,充分调动学生学习积极性

学习兴趣就是学生在心理上对学习活动产生爱好、追求和向往的倾向,是推动学生积极主动学习的直接动力。爱因斯坦说过:“兴趣是最好的老师,真正有价值的东西,并非仅仅从责任感产生,而是从对客观事物的爱与热忱中产生”。我国

古代教育家孔子也说:“知之者不如好之者,好之者不如乐之者。”只有“好之”、“乐之”方能有高涨的学习热情和富有创造性地去完成学习任务。前苏联教育家斯卡特金认为:教育效果取决于学生的学习兴趣。可见,学生的学习兴趣直接关系到教学效果的好坏。

(1)明确学习目的,激发学习兴趣

只有学习思想端正,学习目的明确,学生才会有学习的动力,才会有学习的自觉性。有的学生认为C语言已经落伍了,没有什么用,我们要使每个学生明确即将学习的知识与社会的关系,告诉学生学习C语言是建立程序设计思想,学习程序设计的各种基本概念、方法、技巧,培养良好的程序设计风格。在讲C语言程序设计课程前,收集大量招聘C语言编程人员的就业信息及毕业生从事C语言编程工作的收入、工作条件、工作岗位等学生十分关注的重要信息。同时,也列举了大量用C语言完成商业性软件工程,以激发学生学习C语言的动机的热情。学生有了主动性,才会自觉地学习这门课。

(2)创设乐学情境

教师要精心设计,营造最佳的教学环境和活动场所,运用多种教学手段。教师应精心设计课堂教学的结构,把书本知识化为血肉丰满、生动活泼的形象,充分利用媒体教学设备,设计丰富多彩、生动直观的教学内容。在教法上改变过去单一的“满堂灌”的注入式教法,将讨论式、对话式、辨论式等教法引入课堂教学,使课堂成为学生探求新知识的乐园。在讲解一些重点、难点算法时,运用多媒体动画图例可以让学生明确具体的解题思路。如C语言中链表是一种常见的重要的数据结构,是动态地进行存储分配的一种结构。在链表的讲解中,笔者认为,用多媒体图示与程序配讲解往往比单独讲某个程序效果更好。在讲解程序的同时,配以链表结构图,通过指针的指向动态表明语句的执行过程,即直观又明了。

(3)设计问题,开发智力,引导学生自己解决实际问题

在教学过程中,我们提倡学生在课堂上发现问题、提出问题,对于学生在练习中所遇到的问题,教师不能马上告诉答案,应当适当的启发和引导让学生自己找到答案,培养他们的思考能力。同时教师要精心设计一些富有启发性的问题,达到开发学生智力的目的。这样做有两方面的意义:一是为了引人入胜,激发学生的学习兴趣;二是对知识本身提出疑问,加深对问题的认识和讨论,这也是推动C

语言课程教学艺术化的途径之一。例如,利用C 语言小程序来解决大问题。C 语言的功能非常强大,很适合编写系统软件。利用它我们可以很容易地解决经常遇到的一些棘手的问题,如在任意DOS版本或windows中更改子目录的名称。下面的小程序可以很简单地更改任何一级子目录的名称,而且也可以用来更改文件的名称。

# include "stdio.h"

main(intargc,char *argv[ ])

{ int n;

if(argc$#@60;3)

{

printf("Required parameter missing\n");

exit(0);

}

n=rename(argv[1],argv[2]);

if(n==-1)

{

printf("Duplicate name or name notfound\n");

exit(0);

}

}

(二)上机实践采用任务驱动教学法

(1)任务驱动法

任务驱动法是在建构主义教学理论基础上发展起来的。它既能发挥教师的主导作用, 又能体现学生认知的主体作用, 形成鲜明的“双主模式”。任务驱动法的特点是教师通过巧妙设计教学任务, 将要讲授的知识蕴含于任务之中, 使学生通过完成任务达到掌握所学知识的目的。学生在完成一个个具体而真实的任务过程中要对任务进行分析, 提出问题, 并研究解决问题的方案, 通过自主学习或者小组合作学习与探究活动, 完成学习任务, 在完成“任务”的过程中,培养分析问题、解决问题以及程序设计的能力。

(2)任务驱动法的教学过程

(1)分组

分组是进行任务驱动下的协作学习的前提。根据全班总人数,上机分为几个小组,每组成员大概5名左右,并指定一个责任心强、热情高,反应较快的为组长。

(2)任务的设计

任务驱动法的启动就是“任务”的建立和下达,建立的任务应难度适中,是学生通过适当努力能够完成的。同时,任务设置应该短期任务与长期任务结合。以一个大题目作为长期任务,再按不同功能模块分解开来,形成一个个短期任务。每一章学过之后要求完成一项或几项编程作业,而各章的编程作业不是孤立的,而是相互联系的,实际上它们都是一个较大型较复杂程序的组成部分。这样就可以使学生的任务形成一种连贯性,在整个学科的学习过程中始终都有一个总任务的驱动,而学生又在一个又一个短期任务的驱动下,体验着一次又一次迈向成功的喜悦。例如,以“学生成绩管理系统”为课程设计的长期任务,在C语言中介绍了常用输入/输出语句printf和scanf后,要求学生编写主函数并在主函数中调用若干个空函数形成一个文本型菜单的雏形;在介绍了常用数据类型后,要求学生编写一个验证密码输入的函数;在介绍了选择结构后,要求学生编写一个菜单选取函数;在介绍了循环控制和数组后,要求学生建立一个班学生几门课程的成绩;在介绍了结构体类型后,要求学生使用结构体数组来存储和处理学生信息;在介绍了链表后,要求学生利用单链表动态管理不同数量的学生成绩;在介绍了文件之后,要求学生利用文件操作完成学生成绩管理。当学生学完整个课程,完成了平时要求的各项编程作业之后,他们会发现,原来自己完成的远不是一些零碎的程序段,而是在一块一块制作程序的各个部件,只要通过简单的程序拼装,就可以构成一个比较复杂的程序。这也在潜移默化中培养了学生采用各个击破的方法解决实际问题的意识。最后,让学生从整体的角度来审视整个程序的设计,并通过上机进行综合调试,从而达到提高编程能力的目的。

三、结语

《C 语言程序设计》课程的教学内容是十分丰富的,教学方法的采用应当以服务教学内容为准则,教学是一种互动活动,在教学活动中,应当大力发挥教师的“教”的主导性,调动学生“学”的积极性,做到密切配合教学相长。在教学活动中,不但要注意对C语言这门课的“精讲”,而且要注重编程能力的培养。即不但要使学生“学会”一门语言,更重要的是使学生“会学”,培养学生的开拓性,开发学生的创造性思维,从而为掌握计算机这个工具,更好地解决实际问题打下一个良好的基础。

相关主题
相关文档
最新文档