第一篇:《语言程序设计》学习总结与心得
《汇编语言程序设计》学习总结与心得
其实说实话在学这门课之前自己对汇编语言一点都不了解,只知道它也是一种语言,而且是一门很少用的语言,可能很多人都是这么想的,或许在学这门课之前不少同学也有和我当初一样的思想,大概学学就好,反正以后很少能用到,毕竟现在高级语言这么发达,而且运用起来灵活易懂,像汇编这种低级语言又难又不易学。或许老师是知道我们之前有这种想法,所以第一节课就跟我们讲解了一下了汇编语言在当今这种高速发展的社会的作用和地位,让我们能够正确的认识汇编语言的精华,正确对待这么课。而且还在课堂了百度了汇编语言的招聘信息,或许这才是使我们正确对待汇编的最直接的原因,关系到我们以后的出路,或许我们学好了一门汇编,以后出去找工作的机会不就更广了吗?正是在这种动力的驱使下我才对汇编语言有了一个新的认识,而且决定要把它学好。
在后来的学习中我发现其实汇编不是很难学,其实学汇编就像学其他的高级语言一样,高级语言要求对语言非常了解。在学汇编的过程中,我们最重要的就是要掌握汇编语言中的指令的一些基本用法。当然要能够真正的了解其中的内涵,这样我们在实际的编程中也能够像运用高级语言一样灵活的变通。汇编语言作为一种低级程序设计语言,既然是低级所以应该是最底层的,与我们计算机内部的结构联系应该联系很密切,而且在我们学习中也深刻的了解到了这一点。比如说后来学到的寄存器、中断、还要各种寻址方式以及进栈出栈,好多的就是设计到计算机硬件。前面几章都是对计算机内部结构和一些常用的指令以及寻址方式的寻址方式。到后面学到子程序以及宏的作用才真正发现到其实跟高级语言差别不大。以C语言为例,C语言不也是由一个一个的函数组成的吗?没想到想汇编这样的低级语言也可以这样。在汇编语言的子程序和宏中,我个人更感觉宏的运用更像我们高级语言的子函数,通过定义好的宏,我们在后面直接调用就可以了。尤其是宏带参数的宏跟C语言中带参数的函数真的很像,根据参数的不同调用宏就能得到不同的结果。而汇编中的子程序没有这个传递参数这个功能。在调用子程序的时候要注意各寄存器中的内容。子程序是在程序执行期间由主程序调用的,它只占有它自身大小的一个空间,他不仅是源程序级别 简化,形成的目标代码较短;而宏调用则是在汇编期间展开的,每调用依次进把宏定义体展开一次,它是源程序级的简化。因而它占有的存储空间与调用次数有关,调用次数越多则占有的存储空间越大。如果宏调用次数较多的话,则其空间上的开销也是应该考虑的因素
汇编程序给人感觉最烦的就是好多程序的结果不能直接通过运行EXE文件显示出来,而更多的是经过DEBUG单步调试才能看到其内在变化,看是否正确。在初次接触汇编的几个汇编工具时,有一种神奇的感觉,因为汇编程序不像其他的高级语言一样需要编译器,而是直接的就能在记事本上编写,然后进行汇编和
连接就可以了。学习汇编调试,关键就是要掌握DEBUG的运用。我们在实际的调试中,最常用的几个命令有:D:显示内存单元的内容。T:单步执行。G:连续单步执行。G:连续单步执行。我们编程也只用过这几个。说到这个DUBUG我就不得不说我之前有一次的经历了。我在最后一次的上级实验的编程中我用到的是AX这种寄存器,我按照我自己的程序认真走了好几遍,找不到一点错误,但程序运行就是不对,我为此郁闷了好久。后来只有一步一步的单步调试。由于是最后一个综合实验,实验比较长,我就一直盯着AX内容的变化,经过我的苦苦等候才找到了错误,就是在DOS功能运用的时候出现了错误。也就是执行下面这条指令Mov ah 02h,int 21h,其实这两条指令中里面还包含好多的微指令,不自己亲自调试一下根本就发现不了问题。正是因为这些微指令对AX寄存器的影响所以才导致了我的错误。于是我就感觉学好汇编步进要把指令学好,还要把DEBUG学好,这样才能少走好多弯路。
学完汇编这门课我也对之前的高级语言中的一些知识有了更新的认识,能够让我们更好的理解高级语言,尤其是高级语言中的C语言,汇编语言对于内存的操作都是基于内存地址的,而C语言中最令人头疼的指针概念,说白了就是内存的地址指针的学习和应用中最头疼的就是在指针这个抽象的概念和实际的内存单元之间建立思维映射,而这些恰恰是我们在汇编语言学习中频繁做的一件平常事另外,对于C语言中的数据类型形参实参函数调用全局变量局部变量等概念及操作,我们都可以用汇编语言中的一些操作相关联,把这些抽象的概念和过程,通过汇编语言形成一个具体的映像,深度剖析,这样我们才能真正的学会学好C语言计算机科学的各个方面是一个统一的整体,只有多方面穿插,交互才能更好的搭建计算机知识体系,汇编语言本身还是一门很重要的应用技术。首先由于汇编的操作由于跟硬件紧密相关,所以,很多硬件设施的嵌入式编程使用的都是使用的汇编语言,因为汇编语言更直接,更有效率!我们现在的数码产品很多,而这些数码产品赖以生存的芯片,主板等,都包含了嵌入式程序,而这些程序中,汇编语言的使用是相当重要的!我想如果我们以后想从事嵌入式这方面的话汇编语言是必备的一种本领。而且我也正是想从事这一方面。我想如果想学好计算机编程技能,如果想做一名合格的编程人员,如果想在计算机编程之路走的更远,我们只有,也必须从汇编语言开始,才能完整、完善的建立计算机编程知识体系!所以对于我自己来说,要以今天的学习为跳板,为今后的汇编语言的继续学习打好基础。愿自己在计算机这条道路上越走越远。
第二篇:C语言程序设计心得
C语言教学心得交流
通过本次教师发展在线的C语程培训中,我受益匪浅,几位教授的精彩演讲,让我找到了自己的不足和日后教学中的改革方向和内容。同时,也让我感觉到了,有今天各位教授的良好教学效果,这其中包含了他们的艰辛、背后的大量付出和无私奉献。
我是一直从事C类语言的教学工作,对C语言的教学已有5年教龄,在这几年的教学过程中,我们也一直在寻找好的教学方法和新的教学理念。通过本次学习,我总结要教好《C语言程序设计》这门课,最基本要把握好以下几个方面:
(一)要重视实践环节,上机调试成绩非常重要。
学习一门语言,就是要按照它的语法来编程。要编程,当然就要上机操作来验证你程序的正确性。所以上机非常重要,通过执行你所写的程序,完成你所写程序的目标,最终达到你的目的。而且通过执行程序,你会发现程序中的错误,从而使你了解你所学知识中的不足,同时,要学会根据编译时提示的错误来改正程序中发生的错误,以便下次不会再犯同样的错误。
(二)基本语法学习虽然枯草乏味,但是它相当于高楼大厦的一砖一瓦,一定要下硬功夫让学生掌握熟练。
C语言的语法部分。这部分内容是学好C语言的基础,只有学好了这些语法,才会写程序,看程序。所以对一个初学者来说,这部分内容是非常重要的,所以要扎实地熟悉每一个语法,并能根据这些语法来编程。
(三)学习要抓住重点,难点部分要多讲、多学、多练。
通过这次学习使得我对C语言的重点,难点,以及易出错的地方把握的更精准了。当然,这只是针对我个人而言。在C语言学习过程,重点就是数组,指针,以及结构体了。难点也是它们了,不过数组和结构体还是挺简单,所以在此主要就指针方面谈谈自己的看法。
下面谈谈通过这次学习,结合我们学校的教学情况,打算对该课程的教学进行如下几个方面的改革:
(一)理论教学内容的组织
C语言的重点知识包括:结构化程序设计方法、流程图的组织、三种程序设计结构、三种基本数据类型和三种自定义数据类型;难点包括:结构程序设计方法、算法的分析、流程图的组织与设计、函数、指针等。
根据知识内容和每年的新学时安排,我们将理论教学内容分为授课内容和自学内容两大模块。
(1)授课内容
C语言的授课内容分为两阶段:①基础准备阶段 这部分内容确保学生“实用、够用”,主要包括三种基本数据类型(只要求掌握常用的int,float,char);三种常用运算符及其表达式(赋值、算术、逻辑(包括关系));三种程序设计结构(顺序、选择、循环)。②实训项目驱动阶段 这部分内容主要是“实训实战”,主要包括数组、函数、指针和结构体。通过第一阶段的学习,学生已经具备了一些程序设计的基础知识,在这一阶段将通过一个实训项目的完成来熟悉主要内容,同时巩固第一阶段的成果。
(2)自学内容
课本中的内容上课没重点介绍或者说就是没提到的,划为自学内容。但这些内容,我们并不是在课堂要求学生回去自学:要求过高,规矩过多,这样效果不佳。而是让学生在实验中发现问题后,带着问题去学习,去找答案。
例:整型 我们只介绍int基本类型,当学生想计算n!时,学生测试5!=120时,他可能会去测试20!、50!,这时,存放阶乘的变量Factorial再定义为int,结果就是0了,这时问题就来了,他就会去寻找正确的处理方法(long int)。
(二)实验教学的安排与设计
教学改革方案确定后,我们对本课程实验教学上从多方面进行了教学更新。我们考虑到学生处于了解计算机语言及编程的初级阶段,有许多最基础的内容有待掌握,所以本课程的实验教学不太适合完全以项目开发的形式进行,注重的是加强模块化实训。
(1)上好第一节实验课
我们常说“上好第一节课”,那么第一节实验节的重要性也不言而喻。这节课对培养学生的学习兴趣、增强学生的学习信心、锻炼学生的自主学习等多方面影响很大。
第一次实验项目是—熟悉Turbo C的运行环境,主要是掌握一些在TC中的一些键盘操作方式。一般是教师给学生提供程序代码(三个),但我们在学生不知情的情况下,给学生两个有语法错误的和一个正确的程序。这样,当学生运行正确的程序时,知道计算机可以帮我们处理问题,原来程序就是这样写的;当学生运行错误的程序,首先他会诧异(老师给的程序原来是错的),于是要求他们自己修改,尤其是有时一个致命错误导致的10多个errors,被学生修改后,没有了errors或所剩无几,这时学生表现的很兴奋、很有成就感,从而加强了本课程的学习兴趣和信心。
(2)分两阶段进行 实验内容与理论教学内容相互应,在基础准备阶段,这方面教学方法上主要是加强操练。通过各种大小程序、多重训练和一个问题的多种解法来加强语法知识点的掌握和训练,开阔学生编程的思路,掌握编程基础。同时,在这过程中我们严格把关,让学生课后认真准备,每次进实验室时,应有写好的完整代码,上机调试,发现问题同时解决问题,要求认真完成实验内容,并在课后书写实验报告。鼓励学生多写程序,要加强实践环节,首先要从量上有个划分。在实训项目驱动阶段。本阶段实训项目的设计非常重要,原则是既要使学生有切入点能够动手又要使各章的内容之间有联系点。
(三)案例教学法
C语言的教学,教师一般受传统应试教育的影响,狠抓理论考试,忽略了程序设计能力的培养,把授课重点放在程序设计语言的基本语法的讲授和掌握上,所选的编程实例大多用于语法规则的验证和说明,仅从程序设计语言的使用这个单一的角度进行教学,而使得大多数学生在学完本课程后,“吃不透、用不活”,表现为学生在程序调试时,对程序中出现的逻辑错误经常不知所措,在开发较大的应用程序时,不知道如何入手。
采用案例教学法,以程序设计为主线,以编程应用为驱动,通过案例和问题引出教材内容,重点讲解程序设计的思想和方法,穿插讲解相关的语言知识。使教学效果既有深度又有广度,学生实际动手能力大为增强。
以上是我个人结合我院C语言程序设计的教学情况,自己总结了几点看法和一些改革措施,拿出来和大家一起分享,请大家多提宝贵意见。通过这次学习,我将会灵活运用几位教授的教学经验,根据我院的教学对象,调整一些上课方法和措施,望能更好的提高教学质量。
第三篇:C语言程序设计学习探讨
C语言程序设计学习探讨
罗××
(湖南理工学院物电学院电子09-2BF班,学号14092500×××,序号003,湖南 岳阳 414000)
摘要:本文对c语言的难点、学习方法等方面作了简要的介绍,并谈到了一些个人的学习心得,仅供参考。
关键字:C语言;程序结构;指针;心得体会
A Study of the Learning of C Language Program Design
Luo × ×
(Hunan Institute of Science and Technology, school of Physics and Electronics, Yueyang,Hunan, China 414000)
Abstract: In this paper,C language's difficulties, learning methods are briefly introduced
and describes some of the personal learning experience, for reference only.Key words: C language;program structure;pointer;feelings and experience
C语言是在国内外广泛使用的一种计算机语言,它具有功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性高等特点,但由于c语言牵涉的概念比较复杂,规则繁多,使用灵活,容易出错,不少初学者感到困难。在此
本人谈谈自己的体会和见解。1我的C语言基础分析
通过上学期所开设的《c语言程序设计》课程的学习,我对c语言有了初步的认
识和理解,对数据的结构和存储方式、程序设计的语法算法以及程序的调试都具备了一定的理论基础。通过上机亲自编写和调试小程序,掌握编程的常见方法和步骤,我的实践能力也得到了不少的提高。但总的来说,我的基础还是比较薄弱的,我希望通过下一阶段的学习得到更大的提高。
2C语言的学习难点
就个人而言,我觉得c语言学习的难点在于逻辑算法和结构控制。我自己在编
程的时候常常是知道如何用数学方式表达出来,但要转化成程序设计语言就比较困难,其一是因为表达式的语法规则繁多运用不如自然语言的语法得心应手导致出现很多错误,其二是因为对逻辑思维的要求较高,要实现一个程序功能,其流程控制显得比较难,一个小小的步骤不能实现就会使整个程序编写寸步难行。所以多做编程练习显得尤其重要,这也是真正提高编程水平的最根本的方法。
3指针的学习心得体会
指针是c语言的一个特色,也是c语言学习中最难掌握的部分,一是因为它的抽象性,二是因为它的灵活性。通过指针的运用可以实现用其他语句所不能实现的功能,它也可以使程序变得简洁、紧凑、高效。指针既是地址,它牵涉到数据的存
储和访问方式,这往往是比较隐晦的,若还和数组及函数等结合更让人费解,比如
说如何理解“指向指针的指针”。指针变量的灵活运用也是个比较难掌握的的技能,我在使用它的时候通常都画出它在内存中的示意图,以便能清晰看到它的运算和引
用过程,这对加强初学者对指针的运作机制的理解是很有帮助的。
4对教师教学的建议
梅老师授课很细致认真,对知识点的细节问题尤其讲得很透彻,使我们对c语
言的理论知识的全面掌握很有帮助。但我们最缺少的是上机实践,以前在上机课上,我们遇到的困难和问题往往不能立即得到老师的指导,课后往往就不会再去仔细钻
研它们,这使得我们的问题累积得越来越多,所以希望老师能把理论和实践很好的结合起来,才能高效迅速提高我们的编程水平。
5总结本学期C语言学习的收获
本学期通过仔细听了梅老师的每一节课,首先在c语言理论学习上又更进了一
层楼,以前很模糊的概念、不太重视的细节问题和杂乱的知识体系现在都很清晰明
了了,其次对程序设计语言的结构和特点有了更好的理性认识,至少不会再犯一些
低级的语法错误。最重要的是学到了程序设计的思想以及思维方式,这对于我们的学习、工作、生活各个方面都是有帮助的,使得我们在处理其它事务时也能有个清
晰的逻辑思维和程序化的处理方法。
参考文献
[1] 谭浩强著.C程序设计(第三版).北京:清华大学出版社,2005
[2] 李丽娟,马淑萍主编.C语言程序设计(第二版).北京:中国铁道出版社,2009
作者简介:罗××(1991-),男,湖南衡阳人,湖南理工学院物电学院本科学生,主要研究方向
为电子技术。
第四篇:《 C语言程序设计》读书心得
读书心得
学
期:
心
得
题
目:《 C语言程序设计》读书心得 心得报告人姓名:
学
院:
专
业
班
级:
重复字数/总字数: 查
重
率:
《 C语言程序设计》读书心得
最近在图书馆借了一本关于C语言程序设计教的书,C语言是目前流行的程序设计语言之一,具有程序简洁、数据类型丰富、表达能力强、使用灵活、实用高效等优点,在当今软件开发领域有着广泛的应用。
现在我来介绍这本书的内容和目录:第一章 概述【程序设计基本知识、C语言的发展与优点、C语言程序的基本结构、C语言程序的运行】,第二章 基本数据类型【C语言的数据类型、基本数据类型、常用的数学库函数、基本运算与表达式、混合运算时数据类型的转换】,第三章 顺序结构程序设计【C的语句、赋值运算与赋值语句、数据输入/输出】,第四章 选择结构程序设计【条件描述、if选择结构、条件运算、switch多分支选择结构、选择结构程序举例】,第五章 循环结构程序设计【while循环结构、do„while循环结构、for循环结构、与循环有关的控制语句、3种循环语句的比较、循环的嵌套、循环结构程序举例】第六章 函数与编译预处理【C程序的模块结构、函数的定义与调用、函数的参数传递、函数的嵌套调用与递归调用、变量的作用域与存储类别、内部函数和外部函数、函数应用举例、编译预处理】,第七章 数组【数组的概念、数组的定义、数组的赋值与输入输出、数组的应用、字符数组与字符串、数组作为函数参数】,第八章 指针【指针的概念、指针变量的定义与运算、指针与数组、指针与字符串、指针与函数、指针数组与指向指针的指针、指针与动态内存管理、指针应用举例】,第九章 结构体【结构体类型的定义、结构体变量、结构体数组、结构体类型指针、结构体与函数、链表、结构体应用举例】,第十章 共用体与枚举【共用体、枚举、位运算与位段结构、用typedef定义类型名】,第十一章 文件操作【文件概述、文件的打开与关闭、文件的顺序读写操作、文件的随机读写操作、文件操作时的出错检测】,第十二章 还有本章小结和习题。
这本书让我学会了什么是字符数组与字符串,字符串处理函数都包括那以下六点,如:
1、求字符串长度函数strlen(),该函数用来计算字符串的长度,即所给字符串中包含的字符个数(不计字符串末尾的“ ”字符),函数返回值为整形,其调用格式为:
Strlen(字符串)其中的参数可以是字符数组名或字符串常量。列如: Char s[]=”good morning”;Printf(“%dn”,strlen(s));
Printf(“%dn”,strlen(“good afternoon”));将输出:12 14
2、字符串复制函数strcpy()和strncpy()该函数用来将一个字符串复制到另一个字符串中,函数类型为void,其调用格式为:strcpy(字符数组1,字符数组2)该函数可以将字符串2中的字符复制到字符数组1中。其中字符数组1必须定义得足够大,以容纳被复制的字符串。函数中的参数字符数组1必须是字符数组名,字符数组2可以是字符数组名或字符串常数。
3、字符串连接函数strcat()函数调用格式为:strcat(字符串1,字符串2)该函数将字符串2连接在字符串1的后面。限制字符串1不能是字符串常量。函数调用返回一个函数值,函数值为字符串1的开始地址。正确使用该函数,要求字符串1必须足够大,以便能容纳字符串2的内容。
4、字符串大写字母转换成小写字母函数strlwr()函数调用格式为:strlwr(字符串)该函数将字符串中的大写字母换成小写字母。其中的“字符串”不能是字符串常量。
5、字符串小写字母转换成大写字母函数strupr()函数调用格式为:strupr(字符串),该函数将字符串中的小写字母转换成大写字母。其中的“字符串”不能是字符串常量。
6、字符串比较函数strcmp()函数调用函数为strcmp(字符串
1、字符串2)该函数比较两个字符串的大小,对两个字符串从左至右逐不字符相比较(按字符的ASCLL码值的大小),直至出现不同的字符或遇到“ ”为止。如全部字符都相同,则认为相等,函数返回0值;若出现不同的字符,则以第一个不相同的字符比较结果为准。若字符串1的那个不相同字符小于字符串2的相应字符,函数返回一个负整数;反之,返回一个正整数。
通过这本书可以让我学习到C语言逻辑思维的能力,通过一些很复杂的程序编程来转动我们的大脑,同时,还可以更好的掌握计算机的一些相关的知识,不断的提高自己的学习,
第五篇:C语言程序设计教学的实践与心得
《C语言程序设计》教学的实践与心得
【摘 要】 在21世纪的大环境下,各种实践性学科都将面临着强大的冲击,而作为计算机软件开发等的入门语言,更显得尤为关注。强调实验的重要性,可以促使学生在学习C语言的基本知识之外加强编程实践,使学生在掌握C语言语法知识的同时,也掌握程序设计的思想和方法,这样才能引导和督促学生多编程序,编出优秀的程序,增强学生的动手能力。
【关键词】 C语言 可移植性 应用性 程序调试
C语言是一门高级程序设计语言,使用广泛,表达能力强,目标代码运行效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点,既可以用来编写系统软件,又可以用来编写应用软件。因此《C语言程序设计》课程在教学中占有重要地位。
《C语言程序设计》是高职高专院校计算机专业的一门核心专业基础课程,同时也是多数非计算机专业的主要选修课。该课程是一门实践性与应用性较强的课程,目的是培养学生算法设计的基本思想和程序设计的基本技能。课程的内容主要涉及C语言的基本概念、基本语法以及C语言程序设计的基本方法,在教学中既要重视严谨的系统理论教学,又要重视实践性环节和案例的讨论与分析,为以后有关课程的学习和从事软件开发奠定基础。以下是本人在《C语言程序设计》课程教学过程中的一些经验和体会,与大家共勉。
一、提高教师自身素质
教师首先要提高自身的政治素质和业务水平,及时了解最新的科技成果并掌握C语言应用技术的发展方向,要不断拓宽知识面,具备一定的知识高度,同时不断研究与改进教学方法,理论联系实际,提高自身的教学水平。
二、合理选择教材
高职教育是针对岗位一线培养应用型、技能型人才的,而目前高职教育的C语言教材普遍存在的问题是结合岗位的针对性不强,技能训练的实践性不够。教材是提高教学质量的基础和前提,是学生系统学习知识的依据,一本好的教材应能培养学生的自学能力和独立思考能力,使学生能够依据教材理解课堂教学内容,深入了解本学科各个领域的知识。在选择教材方面应注重以下几个方面:(1)充分考虑高职高专教学的特色,理论知识要够用,注重理论联系实际,突出实用性。(2)语言表达要通俗易懂,在内容编排上尽量符合初学者的要求。(3)注意点与面的结合,注重基础与新技术的结合,使教材不仅是师生教与学的媒介,还是能够培养学生编程能力的工具。(4)在选择好的教材的同时,教师应积极编写符合实际教学需要的高质量的教材。明确C语言课程的教学目标,培养学生模块化程序设计的逻辑思维能力,掌握程序设计的基本语法规则和程序调试方法,具备初步的分析问题与解决问题的能力。主要的教学目标包括:掌握C语言语法,能够熟练运用基本程序结构解决简单问题,理解模块化程序设计原则并能针对复杂问题进行合理分解,掌握基本算法分析与设计知识。
1.作为计算机专业的基础课,目的是使学生掌握程序设计的基本方法并逐步形成正确的程序设计思想,能够熟练地使用C语言进行程序设计,具备调试程序的能力,为后继课程及其他程序设计课程的学习和应用打下基础。学生要在理解C语言的基础上更加专注于理解《算法》或者《数据结构》等课程,而不至于被语言本身的复杂语法现象干扰,要强调C语言的实用性。另外,在掌握C语言的基础上,比较容易学习其他主流编程语言,学生通过对C语言的学习,可以获得针对基本程序结构的程序编写与程序调试知识。
2.学生对C语言的熟练掌握可以在一定程度上降低后续计算机硬件技术基础课程的学习难度。计算机硬件技术基础课程中有很大一部分内容是对汇编语言的学习,同样作为面向机器模型的程序设计语言,C语言仅仅是抽象程度更高一些,其程序结构与汇编语言具有一定的相似性,C语言的编程经验对学生学习汇编语言会有很大的帮助。
3.对于非计算机专业理工类学生而言,该课程有比较强的工业基础应用前景,C语言为用计算机解决实际问题提供了方法,是后续理论与实践教学的基础和重要工具,同时也是计算机二级考试所统一要求的课程之一。教学内容的改革应本着突出基础理论知识的应用和实践能力培养的原则,以应用为目的,以“必需、够用”为度,加强针对性和实用性。
三、注重教学过程,优化教学方法,把握教与学的关系
高职高专C语言课程理论性强,概念性强,抽象而且复杂,在教学过程中要注意的问题主要有:培养学生对C语言的兴趣;教给学生正确的学习方法;加强实践教学环节;有效地组织课程设计;培养学生分析和解决实际问题的能力。教学过程是教师和学生的双边活动,只有既注重教,又注重学,才能真正做到教为学服务。教师所要做的就是传道、授业、解惑,开阔学生的思路,激发学生学习的积极性和主动性,激发反思,调动潜能,引导学生讨论,帮助学生解决遇到的问题,寓教于学。只有把握好教与学的关系,才能优化整个教学过程。
1.将案例带到教学中来。C语言是应用性很强的一门课程,既有理论,又有实践,既讲方法,又讲动手能力。采用案例教学法可以改变“满堂灌”的做法,将学生的眼、手、脑全部调动起来,培养学生的学习兴趣。本人在上课过程中,将课程内容分为若干个主题,以程序设计作为贯穿各主题的主线,每个主题的教学过程由“要点讲解”、“自学/上机实践”和“疑难解答”三个阶段组成。通过案例分析,重点讲解程序设计的思想和方法,辅以语言知识的介绍;然后通过上机练习,包括基本训练(自测作业和主题作业)与综合训练(大型作业),教师针对学生暴露出的问题答疑解惑,结合案例教学,努力将C语言作为解决实际问题的工具,强化学生的编程能力,在分析程序与程序设计的过程中使学生逐步熟悉语法,应用语句,提高学生分析问题、解决问题的能力,由浅入深、由易到难、循序渐进地使学生在实践中掌握知识,培养程序设计能力,逐步理解和掌握程序设计的思想和方法。最终在课堂上教师扮演“和方法,运主导”角色,而学生真正地成为“主体”。
例如:《C程序教程》(谭浩强主编)中有一题为:用循环语句结构判断整数m是否为素数。
/* ex5_5.c */ #include“stdio.h” main(){ int m,c=2;
scanf(“%d”,&m);
while(m%c)
} 书中介绍了三种循环语句结构均可以作出判断结果,这时我们就应该利用“比较法”,将三种循环语句结构进行对比,使学生有一个较为深刻的理解与记忆。
2.切合实际的分组教学。要真正掌握程序设计的思想用语言解决实际问题,综合训练势在必行。整个过程以学生独立完成为主,教师提供相应的理论辅导。经过这样的模拟实际软件开发的演练,不但提高了学生的学习兴趣,培养了学生问题求解和编程能力,还有利于培养他们探索与创新的能力,更加有利于激发学生学习的积极性。
3.分层次教学。即标准化教学与个性化教学相结合,结合不同专业、不同班级学生的具体情况,制定各有特色的教案、讲稿和教学课件。既发挥群体智力优势,又充分发挥教师个体的教学风格特长,有利于提高教学水平。
4.加强实验课与理论课的联系。在理论课上将上机实验任务题目进行讲解,也可以将案例算法作为实验内容。实验课程可以分为两部分,实验任务问题作为理论课的内容在课堂上讨论、讲述,确定实现算法。对于同样的题目,可以确定若干不同的算法,比较其优劣,分析其原因。上机实验的任务是完成已确定算法的编码实现和运行。这种做法相当于在教师带领下,对实验内容做了集体预习,贯彻了“算法重于语法,语法重于编码”的课程指导原则,综合运用学过的知识,加强实践教学。学生只有通过大量的c++;
printf(“%d is a prime number.n”,m); printf(“%d is not a prime number.n”,m); if(c==m)else 练习,才能真正掌握语言知识,培养程序设计能力,逐步理解和掌握程序设计的思想和方法,学会利用计算机解决实际问题。
5.充分利用多元化、现代化的教学手段。在教学过程中应多方位应用现代教育技术手段,尤其是多媒体辅助教学手段与网络化辅助教学手段。在课堂教学中采用多媒体教学课件,加强直观教学,可提高学生的空间想象力。教师应从最简单的C语言程序的调试入手,详细演示C语言程序的调试过程与调试细节,同时让学生参与进来,实现教师与学生、学生与学生的双向交流和互动,提高学生的学习兴趣,加深学生的理解与记忆。使其检验自己本阶段的学习成果,加强对所学知识的吸收和消化。
总结:
改革考核方式,强化应用能力《C语言程序设计》的考核应采用多种形式考核学生的知识掌握程度和实践能力,包括卷面考试与实验考核,要强调职业技能。实验考核可采用上机考试与平时训练相结合的方式,上机考试可以使用能自动组卷和评分的考试平台;平时训练包括作业和综合编程训练的完成情况。该评价方法可以提前让学生体验全国计算机等级考试的过程,也可以促使学生在学习C语言的基本知识之外加强编程实践,使学生在掌握C语言语法知识的同时,也掌握程序设计的思想和方法,这样才能引导和督促学生多编程序,编出优秀的程序。
介于本人的能力有限,在实践及教学环节中还存在着许许多多的问题与不足,今后将会更加关注自身能力的提高,以便取得更好的教学效果。
【参考文献】
[1] 张陵山 《C语言程序设计教程(修订版)》 湖南大学出版社 [2] 杨起帆 《C语言程序设计教程》 浙江大学出版社 [3] 谭浩强 《C程序设计(第二版)》 清华大学出版社