美章网 资料文库 语言设计论文:C语言策划要点与教程革新研讨范文

语言设计论文:C语言策划要点与教程革新研讨范文

本站小编为你精心准备了语言设计论文:C语言策划要点与教程革新研讨参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

语言设计论文:C语言策划要点与教程革新研讨

作者:丁海燕单位:云南大学信息学院

大一的新生对编程的逻辑思维不熟悉

作为计算机专业大一的必修课,C语言程序设计课时少,内容多,逻辑思维严密,实践性强,多数学生从高中进入大学,对老师依赖性较强,自学能力不足,此外对计算机专业的学习方法不适应,对编程的逻辑思维方法还没有形成,VC++上机操作不熟练,对编译、调试过程中出现的专业英语不熟悉等各方面的因素,导致这门课程学生学习起来有一定困难,容易形成成绩两极分化的结果。因此更需要教师提高教学水平,激发学习兴趣,使得枯燥难懂的编程变得生动有趣。

过分强调语法,忽视算法

C语言的学习类似于外语,要先会词、句,然后才能写出段落,C语言也必须掌握常量、变量、运算符、顺序、选择、循环语句等,才能写出程序来。但要写出好的文章光有词汇和语法是不够的,还需要流畅的思路,编程也是如此,算法才是程序的灵魂。大多数C语言教材中通常先给出一般的语法格式,然后讲解语法要点,再举例说明。很多教师对语句语法进行深入的教学,而对算法教学却偏少、不重视。加上应试教育的选择题、填空题题目侧重于语法细节,与程序设计的实用性偏离甚远,使学生产生了学习误区,导致了学生会读程序,但自己上机写程序时有种无从下手的感觉。学习程序设计语言的真正目的是编程解决问题,必须大量练习编程题,在编程的过程中掌握语法。

教学内容与解决实际问题有差距

C语言的教学目的是要熟练掌握C语言的用法和培养结构化程序设计的思维方式,培养编程能力,因此理论联系实际是教学改革的一个重点。在高校中普遍存在着注入式教学方法,学生为学习而学习,而忽视了学习的目的,C语言程序设计是一门理论性和实践性都很强的课程。当前,在程序设计实践常用的模式中,基本遵循着前几十年延续下来的习惯做法,即教师布置与程序设计语言教材的知识点相符的任务,学生通过上机来验证教材和讲课的内容以及自己所编的程序正确与否。这种做法与实际完全脱节,学生只会解决书上的问题,如求最大、最小值、平均值、排序、交换数组元素位置等,而对于现实问题却很茫然。很少有教师仔细斟酌实验的内容,以使其与实际联系更紧密,导致学生学完了不理解学了C有什么用处。因此讲解和练习要多引入日常生活中的实际问题:如计算器、小游戏、具备插入、查询、删除、保存等基本功能的学生管理信息系统等,通过这些编程问题使学生综合应用各章的知识,如循环、数组、函数、指针、文件,达到解决实际问题的编程能力。

教学重点

C语言是函数式的语言,因此C语言的重点一是函数、二是指针。而数组与指针是密切联系的,因此在C语言程序设计的教与学中一定要抓住数组、函数、指针这条主线,掌握数据在内存中的存储和变化,就有利于突出重点和突破难点。与其他编程语言相比,C语言中数据类型和运算符众多,指针概念抽象复杂,函数参数用法灵活,概念、语法规则和例子众多,不易掌握。通常学生对单一的知识点能够掌握,但对于知识点的联系理解不深,难以形成完整的知识体系。

因此C语言在讲解时在介绍完数据类型、变量、常量、运算符、表达式和面向过程的三种基本程序设计结构以后,要围绕数组、函数、指针这一主线展开程序设计,这样的话才能抓住C语言的重点,将纷繁的知识点形成清晰的脉络。我们知道,数组是相同数据类型的变量的集合,函数的作用是将程序模块化,而函数的参数可以是普通变量,数组名和指针变量。当在函数间传递数组和字符串时就可以用指针变量或数组名作函数参数进行地址传递,这样实参与形参就有四种组合,即:(1)实参、形参均为数组名;(2)实参为数组名,形参为指针变量;(3)实参为指针变量,形参为数组名;(4)实参、形参均为指针变量。数组、函数、指针通过这一主线就贯穿和联系起来了,学生既懂得它们之间的区别也懂得它们之间的联系,学习起来轻而易举。例如编写swap函数(指针法):交换数组a和数组b中的对应元素并输出a、b数组。该例子既用到了函数调用,又用到了数组,还用到了指针变量作函数参数,函数、指针、数组三个重要的知识点都联系起来了。四、课程改革

(一)案例教学,语法与算法结合

C语言程序设计课程是C语言与程序设计相结合的一门课程,这就要求教师在授课过程中,既要讲解C语言的一些语法规则,又要重视程序设计。如果上课的老师不能准确把握,把重点简单放在讲述一些语法规则方面,往往会使学生丧失学习兴趣,另一方面也没有达到教学目的,有损教学质量。通过典型的例题既讲了语法,又掌握了算法,可谓一举两得。如果按照章节的顺序,往往是先讲变量、运算符,才讲顺序、选择和循环结构,但孤立地讲变量,常量,运算符学生往往学了就忘,理解不深,这时可以引入后面的实例。例如可用循环的例子指出变量要先定义后使用,定义数据类型的作用是为变量分配相应大小的内存空间,p为n!其值可能会超过基本整型变量的表示范围-32768~+32767,因此p要定义为长整型,++是自增运算符,它的作用是i=i+1,for循环的功能是完成累积,乘数i从1至n,每循环一次i增加1。通过具体的实例使学生理解语法不是孤立的规则,而是互相联系,使得一个功能得以实现的不可缺的组成部分。

(二)总结归纳,深入本质

在C语言中,指针是C语言中的重点和难点,概念抽象,学生不容易掌握。要启发学生多进行对比,归纳总结,深入本质,透过现象看到本质,培养和提高分析和解决问题的能力。例如,指针是地址,通过指针可以间接访问它所指向的目标变量,但为什么要用指针?还要引导学生深入思考。函数之间传递数据要依靠参数,而且只能由实参向形参传递,有值传递和地址传递两种方式。如果将数组名或指针变量作参数就是地址传递。在函数间不仅可以传递变量的值,变量的地址,还可传递数组,字符串等。形参是局部变量,函数调用结束形参变量就释放掉了,而函数返回值又只能有一个,那如何才能够从调用函数带回多个不同数据类型的数据呢?带着这样的问题,让学生思考通过指针进行地址传递的作用,其好处就在于可以通过形参的指针变量间接访问实参变量,达到了“双向传递”的效果,这样在函数调用时对形参变量的操作就等价于对实参变量的操作,理解了这一点就可以明白指针的重要性和好处了,学习也变得轻松和简单了。例如交换两个数的例子,用指针作形参。当函数调用结束后,形参空间虽然释放了,但在函数调用过程中通过形参对实参的影响却留了下来。

(三)以图示方法形象化算法

在教学中只要抓住数据在内存的存储和变化这个关键点,结合适当的图形教学,例如数组元素的内存分配,指针操作数组元素时,指针的自增与自减运算,指针的交换,目标变量的交换,链表的创建、插入、删除和输出等,都可以画出内存单元的图示来,一步一步地操作,循序渐进的学习,学生就容易理解和学好C语言了。例如用图示法形象化上例中的swap函数交换两个变量,如图1所示:

(四)多种编程方法开阔思维

同一个问题,鼓励学生用几种不同的方法编程实现,并让学生去分析它们的异同,从而加深对知识点的理解,掌握本质的算法思想。例如求1到100的累加和,可以用while,for和dowhile循环三种方法实现,输入字符串时可以用scanf,getchar,gets函数来实现,输出字符串时可用printf,putchar,puts来函数实现,输入、输出数组元素时可以用下标法,也可以通过指针法等。通过让学生尝试用不同的方法解决问题,一方面使学生对相近知识点的异同有了深刻的理解,培养了学生发现事物之间内在联系的观察能力,另一方面锻炼了学生编程的能力,培养了学生主动学习,积极思考的学习习惯,并且能将所学知识融会贯通,可谓一举两得。

(五)加强上机实践

程序设计课程,上机操作是必不可少的重要教学环节,程序调试能力的培养是重中之重,通过程序调试,学生可以查出自己编写程序时容易犯的错误,而且更重要的是能培养学生分析问题、解决问题的实际能力和创新意识。实际上任务的完成标志着学生实践能力的提高,学生也能体验到任务完成后的成就感,从而激发他们进一步学习兴趣和积极性。所以应大力加强实践教学和实训,不断提高学生的动脑动手能力。教师要做好实践设计,结合教材每一章都要有上机内容,供学生练习,使学生上机目的明确,使之成为加强学生实践能力、自学能力和创新思维的重要依托。期末考试尽可能采取客观题在线考试与上机考试相结合的形式,使学生从根本上重视上机编程实践。