第一篇:学习 C语言 心得
C语言学习心得
刚开始学C语言的时候,很迷茫,在此之前从没有接触过C语言,有点摸不着头脑。可是在上机过后,我觉得编程是很有趣的一件事。我知道要学好C语言不容易,可是我决定
=完成这件不容易的事。
要学好C语言就要先懂得最基本的语法知识,看课本是必需的。我觉得看不懂也没关系,尽力去理解就好了,在对知识有了一个大致的了解过后,就要上机实践。学习C语言一定要动手,只看不做,眼高手低是不行的。
最开始可以打书上的例题,熟悉程序,慢慢的开始试着编程。在编程时要理清自己的思路,然后再转换成C语言中的语言,这个时候就更要动手了,只有通过上机操作才能验证自己程序的正确性。执行程序,不要害怕错误,其实,我觉得错误是好的,知道了自己所学知识的不足,并根据提示改
正程序中发生的错误,一种成就感油然而生,觉得自己的付出都是值得的。
良好的编程习惯是学好C语言的重要因素,只有勤动手,多动脑才能学好C语言,光说不练是不行的。
在学习的时候,不会的一定要问明白,可以求助于老师,同学,不要自己一个人钻牛角尖,浪费时间又学不到东西。
上课的时候一定要认真听,老师讲的肯定是最重要的,错过了就是一大笔损失,认真听讲才可以提高学习效率。
我觉得在编程之前,要把自己的想法写在纸上,如果是简单一点的程序不需要这样,如果程序比较复杂,就写下来,这样可以让思路更加清晰。
输入程序时一定要认真,不要把“,”与“;”混淆,用
scanf的时候不要忘记“&”,用“switch”要记得“break”,用if,while的时候注意不要加“;”,“{}”“()”一定要配对,不要多也不要少一半,“=”与“==”的区别要清楚,要勤查优先级,要记住一些基本的,例如两个值之间的调换怎么写等等。
在编程时除了要认真谨慎之外,更重要的是掌握基本的知识,例如if语句与switch语句的区别,它们都是条件语句,用来执行判断功能,但是什么时候用if什么时侯用switch应该弄清楚:若条件分支多但是条件的值是一个确定的值时就用switch。反之,在大多数情况下就用if。又如各种循环的应用,及循环之间的嵌套都要能灵活应用。还要注意一些细小的琐碎的知识,如C语言规定的标识符,大小写字母间的ASCII代码值相差32,强制类型转换符,自增自减运算符,符合运算符,逗号运算符等。
学习C语言需要的是坚持下去的毅力,认真对待每次错误的耐心,还有孜孜不倦的努力。拥有一个良好的心态,相信自己,你就会发现学好C语言不再困难!
第二篇:学习C语言的心得
学习C语言的心得
还依稀记得刚刚涉足于C语言这门课程是在大二下学期。对于这门新的学科,在大一上学期学习VB时已经从任课老师那里有所了解,虽然在我们的等级考试中有要求必须得过VB的等级,但是之前有听过毕业了的学姐学长们说过,真正以后实时用到的还是C语言的比较多一点,所以于是乎我便对VB产生了一种抗体,而对C语言的学习有所期待。。。
起初学习VB时,我对那些所谓的关键字很不是理解,感觉用VB编写的程序代码又复杂又冗长,顿时对之失去了信心。但是随着科技的快速发展,计算机已经取代了人类,更快的改变世界、改变人类生活,它已经成为我们生活中不可缺少的一部分,因此学好计算机则刻不容缓。
在真正学习C语言之前,我已经通过上网搜索以及图书查阅得知关于C语言的一些基本特性,这为我以后的学习打下了结实的基础。以下就是本人通过图书查阅所获得的一些C语言的最基本的特性资料。
C语言是在国内外广泛使用的一种计算机语言,学习使用C语言进行程序设计是计算机工作者的一项基本功。自20世纪90年代以来,C语言在国内迅速普及,不仅为计算机专业工作者所使用,而且为广大计算机应用人员所喜爱和使用。
C语言起初只是为编写UNIX操作系统提供一种工作语言而设计的。后来,C语言多次做了改进,但主要还是在贝尔实验室内部使用。随着UNIX的日益广泛使用,C语言也迅速得到推广。C语言和UNIX可以说是一对孪生兄弟,在发展过程中相辅相成。1978年以后,C语言先后移植到大、中、小、微型计算机上。C语言很快风靡全世界,成为世界上应用最广泛的程序设计高级语言。C语言是在B语言的基础上发展起来的,它是一种计算机高级语言,它具有如下几个主要特点:1)语言简洁、紧凑,使用方便、灵活;2)运算符丰富;3)数据类型丰富;4)C语言是完全模块化和结构化的语言;5)语法限制不太严格,程序设计自由度大;6)C语言允许直接访问物理地址,可以直接对硬件进行操作;7)生成目标代码质量高,程序执行效率高;8)用C语言编写的程序可移植性好。
通过学习与了解如上特点,这便更加坚定了我学习C语言的信念。在学习C
语言的过程中,我发现在编写程序时更加的灵活,更加的简单易懂。用C语言编写的程序代码可实行性更高,更能便于开发应用。
虽然在C语言的学习过程中,有时也曾因为一时想不到或者搞不清楚而苦恼过,但是通过与同学之间的交流学习以及向老师请教和上网百度后,难题毅然很快速的解决。看到在自己苦思冥想中获得的程序能成功实现某一功能时,此时的喜悦之情难以言表。忽然感觉能将书中所学的理论很好的融入到实践中将是多么美好的一件事,这也为我以后的毕业设计及以后的工作打下结实的基础,我将更进一步的学习这门课程,更好的将之运用到实处。
第三篇:c语言心得
C语言学习心得
林林总总的计算机语言,林林总总的计算机技术,林林总总的计算机书籍让我们初入计算机的菜鸟一次就吓的没有勇气。迷茫和徘徊让我们丧失了时间和信心。没有诀窍吗?有的,看你怎么把握了,接下来我就以C语言为例子,讲一下有关学习的方法和技巧,同时也分享一下我学C的感想。
许多人第一次接触C语言都会觉得C语言难懂和不容易使用,其实就我个人的看法,C语言其实是很基础的汇编语言,除了一些必须要记忆的关键字、语法和库函数,其余的都是需要靠自己的逻辑思维通过这些关键字、语法和库函数来组织或构成一个完整的函数,所以C语言大多数的学习时间都是在锻炼我们的抽象逻辑思维能力。只有当你具有了抽象逻辑思维能力和弄清楚了关键字、语法和库函数的相关知识后,编写C语言就不是难事了。通过C语言初步的学习后都很容易弄懂关键字、语法和库函数的相关知识,但是由于大部分人因为以前没有接触过电脑或电脑语言的相关知识所以缺乏抽象逻辑思维能力,不知道如何将所学到C语言的知识如何组织和构成一个完整的函数,那么如何来有效的锻炼自己的抽象逻辑思维能力呢?
在这里是我个人的一套自学心得,通过学习后所掌握的知识使用上课老师所提到的案例或找一段简单的完整的案例,然后将案例读懂,也就是把它转换成我们日常所能接受的自然语言(在这里不妨把你所能理解的自然语言写下来)。例如下面这段代码是手工输入两个整数数字并计算两个数字之间从最小的数字开始到最大的数结束其中所有奇数相加的和:void main()
{
首先INT是表示整数形数据的定义,那么接下来有两个未知的整数和一个已知的整数0;这里出现的3个整数数字用C语言里的变量来替代它们,这时第一个数字就用取名为NUM1的变量,第二个数字就用取名为NUM2的变量,第三个数字就用取名为X的变量并且用赋值符号来为它赋予0这个值。
int num1,num2,x=0;
由于知道了有两个未知的整数,所以要通过键盘输入使这两个未知的整数变成已知的整数并且储存在前面所提到的变量中。
scanf(“%d%d ”,&num1,&num2);
得到数字后下面就开始进行一系列的运算和判断,如果NUM1小于NUM2的话最小的数字就是NUM1最大的数字就是NUM2,如果NUM1这个变量不小于NUM2的话就跳过这个{}所包含的内容。开始进行循环。
if(num1
{
NUM1到NUM2之间的数字个数不是固定的,不能得到固定的循环起始点,所以这里的循环起始点就不输入代码中,但是通过题目中的提示知道NUM1这个变量如果大于NUM2的话循环就终止了,而NUM1这个变量还需每循环一次就必须改变其值。由于NUM1到NUM2之间的数字列如1-9每个数字跟其右边的数字都是存在加1的关系,所以这里就可以把NUM1这个值用做循环的“计数器”每循环一次就让NUM1加1,让其跟NUM2做比较是否结束循环。
for(;num1<=num2;num1++)
{
在循环当中将每次循环所改变的变量NUM1的值除以2来判断其是否是奇数,如果用2除后余数为0的话就是偶数(因为偶数是不参加运算的)一旦判断其为偶数就用continue这个关键字来跳出一次循环。
if(num1%2==0)
continue;
那么NUM1的值除以2余数为1的话就是奇数(奇数是要参加运算的)一旦判断其为偶数就用下面这个公式来使其进行相加,因为已知X变量的值是0那么下面的公式就可以理解为假设NUM1=1,X=0+1;这时X的值已经发生变化,X=1;假设NUM1又等于3,X=1+3;以此类推直到循环结束X+NUM1也就结束了。
x=x+num1;
}
}
那么NUM1这个变量不小于NUM2的话NUM1是最大数,NUM2是最小数,开始执行{}内的内容。
else
{
for(;num2<=num1;num2++)
{
if(num2%2==0)
continue;
x=x+num2;
}
}
最后通过显示器输出显示X这个变量的值也就是所有奇数的总和。
printf(“%dn”,x);
}
由于计算机读取C语言代码时是从main()函数开始由上自下的逐一读取一条代码并运算的,所以从int num1,num2,x=0;开始来用自己所能接受的自然语言来描述这段代码。最后将你所记录的自然语言转变成伪代码在转到流程图,这样反复努力多次后,就一定可以达到有效的锻炼自己的抽象逻辑思维能力。另外还需注意的就是自己实在无法理解的地方不妨指出来多多请教老师和懂的同学让他们用自然语言来描述一道,并且记录下来这样可以达到事半功倍的效果。
我觉得入门还是多看些书,多实践,养成良好的编程习惯,在实践的同时多思考问题,多看别人优秀的解题思路与方法,多看别人优秀的代码,尝试自己去实现或者说模仿着去实现,让别人对你的代码多提意见,探究别人的思维过程,增强自己的思维能力,拓展视野,经常看看自己以前写的东西,有空拿出来改良改良,我想每隔一段时间,都会有意想不到的收获。
第四篇:究竟怎样学习C语言?心得。。
究竟怎样学习C语言?心得。
来源:异度空间
第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它。
第二:C语言能够让你深入系统底层,你知道的操作系统,哪一个不是C语言写的?所有的windows,Unix,Linux,Mac,os/2,没有一个里外的,如果你不懂C语言,怎么可能深入到这些操作系统当中去呢?更不要说你去写它们的内核程序了。第三:很多新型的语言都是衍生自C语言,C++,Java,C#,J#,perl...哪个不是呢?掌握了C语言,可以说你就掌握了很多门语言,经过简单的学习,你就可以用这些新型的语言去开发了,这个再一次验证了C语言是程序设计的重要基础。还有啊,多说一点:即使现在招聘程序员,考试都是考C语言,你想加入it行业,那么就一定要掌握好C语言。
那么究竟怎样学习C语言呢?
1:工欲善其事,必先利其器
这里介绍几个学习C语言必备的东东:
一个开发环境,例如turbo C 2.0,这个曾经占据了DOS时代开发程序的大半个江山。但是现在windows时代,用turbo C有感觉不方面,编辑程序起来很吃力,并且拖放,更没有函数变量自动感应功能,查询参考资料也不方便。建议使用Visual C++,这个东西虽然比较大块头,但是一旦安装好了,用起来很方便。一本学习教程,现在C语言教材多如牛毛,但推荐大家使用《C语言程序设计》谭浩强主编 第二版 清华大学出版社,此书编写的很适合初学者,并且内容也很精到。
除此以外,现在有很多辅助学习的软件,毕竟现在是Window时代了,学习软件多如牛毛,不象我们当初学习,只有读书做题这么老套。我向大家推荐一个“集成学习环境(C语言)”,里边的知识点总结和例程讲解都非常好,还有题库测试环境,据说有好几千题,甚至还有一个windows下的trubo C,初学者甚至不用装其它的编译器,就可以练习编程了,非常适合初学者。还有一个“C语言学习系统”软件,不过感觉只是一个题库系统,如果你觉得题做的不够,不妨也可以试试。
2:葵花宝典
学习计算机语言最好的方法是什么?答曰:读程序。
没错,读程序是学习C语言入门最快,也是最好的方法。如同我,现在学习新的J#,C#等其他语言,不再是抱着书本逐行啃,而是学习它们的例程。当然,对于没有学过任何计算机语言的初学者,最好还是先阅读教程,学习完每一章,都要认真体会这一章的所有概念,然后不放过这一章中提到的所有例程,然后仔细研读程序,直到每一行都理解了,然后找几个编程题目,最好是和例程类似的或一样的,自己试图写出这段已经读懂的程序,不要以为例程你已经读懂了,你就可以写出和它一样的程序,绝对不一定,不相信你就试一试吧,如果写不出来,也不要着急,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到你手到擒来为止,祝贺你,你快入门了。
3:登峰造极
写程序的最高境界其实就是掌握各种解决问题的手段(数据结构)和解决问题的方法(算法)。
是不是写出底层程序就是程序设计高手呢?非也,写底层程序,无非是掌握了硬件的结构,况且硬件和硬件还不一样,要给一个芯片写驱动程序,无非就是掌握这块芯片的各种寄存器及其组合,然后写值读值,仅此而已。这不过是熟悉一些io函数罢了。那么怎样才算精通程序设计呢?怎样才能精通程序设计呢?举个例子:你面前有10个人,找出一个叫“张三”的人,你该怎么办?第一种方法:直接对这10个人问:“谁叫张三”。第2种方法:你挨个去问“你是不是张三?”,直到问到的这个人就是张三。第三种方法:你去挨个问一个人“你认不认识张三,指给我看”。不要小看这个问题,你说当然会选第一种方法,没错恭喜你答对了,因为这个方法最快,效率最高,但是在程序设计中找到解决问题的最优方法和你用的手段却是考验一个程序员程序设计水平的重要标志,而且是不容易达到的。刚才这个问题类似于数据结构和算法中的:Map数据结构,穷举查找和折半查找。所以掌握好数据结构和一些常用算法,是登峰造极的必然之路。最后给大家推荐严尉敏的《数据结构》清华大学出版社,希望每一个想成为程序设计高手的人研读此书。
===============================(二)
关于C语言的学习方法
本人偶然发现了这篇文章拿来和大家分享!
初学C语言的同学应该首先了解C语言关键的核心概念(结构化、三个执行流程、优先级、指针、文件、共用体、函数、作用域、重载等),只有弄明白了这些才能在今后的学习中游刃有余的把握C语言的精髓。这几个概念就像逻辑线一样,把整个C语言的体系贯穿起来,给人一种“结构化”的思想体系。下面我简要谈一下这几个核心概念。
1、从宏观角度来看,结构化是C语言的编程思想基础,就是说C语言每一个功能模块就是一个结构,每一个结构实现一个运算或一个算法,这个结构就用大括号表示“{ }”,大括号里面的就是算法。尤其注意的是大括号的“}”括在那里,就决定在哪里结束算法功能。这些是初学者经常犯的错误,往往会把算法功能的结束点弄错。
2、三个执行流程就是顺序流程、条件流程、循环流程。三个流程都是计算机通用的执行流程,是必须了解的流程,每一个算法都基于这三个流程执行顺序。
3、优先级是对多个函数并列时候优先算法的特权,没有注意优先级的顺序就会把算法出错,这些优先级是必须记住的。
4、指针是C语言的重要特点,是对运算速度加快运算的重要精髓。它是对数据地址的操作,而不是对数据的操作。
5、文件和共用体是很简单的概念,不用多说了。文件顾名思义和日常概念一样,学过数据软件的都对共用体了解不是太难。
6、从微观角度来看,函数是C语言的驱动机制,所有的语句都由函数驱动来实现的。记住函数命令和相关的配置参数,就能好好的利用C的优势。注意的是,函数不能记错,不然你将得出错的结果。如果能学会调试,那就会更深一层了解函数功能的作用。
7、作用域就像使用期限一样,说明从那里到那里所起的作用,在这之外的就不起作用了(过期的东西就不值钱一样)。把握好作用域的使用方式,就能明确函数的关系,不会在巨大的函数名里面迷失方向。
8、重载就是为了方便用户,使用类似于调用的机制给用户减少写入时间的功能。就像查字典一样,你不懂一个字,就要去查字典(相当于调用别的工具来实现你要做的事),而查字典是你已经学会的东西,就可以做这件事了。
学习C语言从大体上了解还不够,要把各种原理在脑海里模拟一遍,实现把计算机C的功能在人脑里运作,就能从宏观上把握C的步骤。
**************************************************************************
(三)好的文章大家共同分享
引言:
最近看见一些朋友问如何才能学好C/C++,有的也发邮件来询问我.我现在也不能算个牛人,但我觉得自己学的还是比较对路.做为斑竹,也有义务与大家探讨这些问题,一是为了我们这个版,二更是为了大家能够少走弯路.我就结合自己的经历,来谈谈我对学习C/C++的看法.我的历史:
1.大一下,C语言必修,开始接触C,以后2年多都是用DOS下的TC.书嘛,课本:(潭浩强)
2.大3,忘了哪个学期,C++选修课,没怎么听,就学了些基本的语法.还是继续用C.3.大概是大学最后一年的样子,做一些课程的上机作业,用到一些数据结构,开始用C++的模板类.也可能觉得C++比较时髦,那个时候不管什么东西都故意写成类,所以就渐渐熟了.4.做毕业设计,才开始使用VC,主要是发现它的调试环境比TC好.5.毕业了,这个时候只会纯C/C++语言,连lib,dll,ocx,以及MFC,API,SDK什么的听都没听说过.我唯一的优点大概就是代码写的比一般人多,那是因为他们都不是自己写的缘故.整个大学4年,就2本C和C++的教材,学校发的.也没有找什么东西来做,除了帮一个读夜大的完成过一次作业,都是学校里各课程布置的作业.有的人说学校里教的没用.我不同意,至少我觉得自己学的都很有用,都是学校里开的课.我这个人比较懒,不喜欢找东西去学,但我保证做好自己分内的事,老师教什么,我就学什么,完成作业算数.我的导师说过一句话:如果人人都做好自己的事,那么这个社会就不需要雷锋.6.然后我就工作了,工资也不高,一般的软件公司.找工作的时候,我就把成绩单一贴,再把自己以前写的比较好的作业来个截图,就OK了.什么自荐信,我后来发现别人更本就不看!我没得过什么奖励,就参加过一次竞赛,来最低等奖学金都没有.有些课不感兴趣,也混个及格,但有些学的的确是不错,和软件相关的这些课分数都比较好.找工作主要还是看成绩的.也没考过什么认证,现在也没有.刚开始的时候,我连lib都不会写的,就会写代码,因为我是数学专业的,软件开发这方面没什么接触,以前都是做些算法,写个老长老长的main完事的那种.什么东西都要新学.7.但我学的很快,认为是因为我的基础比较好,现在什么MFC,API,SDK,ADO之类的都懂一些了,而且觉得是掌握了OO,是公司里的一个牛人教我的.我从和他半年多的交流中,逐渐领悟了OO的奥义,C++真是博大精深啊!可惜那个人后来走了.8.这么多废话,其实很简单:
2年C
一年C++,3年只懂语言
1年工作,学会其它的东东
瞧我水吧,和我比你是不是要优越多了呢?
到今天我对自己的总体评价还是满意的.我知道,可能我还不如一些在校的学生,但我和自己比,在我从事的事业上,还是对路的.有一句话,要送给大家:勤以致学,学以致用.我认为自己有一个最突出的优点,就是:认真!这是现在很多人都缺少的,我做什么事都认真,包括打游戏,要么就干脆不做,要做就要做到最好.或许你的技术和知识都很有限,但只要你把你所掌握的东西发挥到极限,那也不能算比别人差.因为你和别人的差距,只是别人比你多知道一些而已,而这些你迟早都会知道的.有的人问,应该学写什么,有的人答,看你做些什么.我想不是,你没有选择任
务的权利,除非你自己是老板.我对自己的评价是:劳动力,合格的劳动力,可以完成任何事的劳动力.我遇到的很多事都是自己不懂的,但我知道通过什么途径可以学习,在多长的时间内就可以完成,所以遇到新问题,我一点也不恐惧.而且,在学生的时候,我就把自己当作一名程序员,而且是一名真正的程序员!什么才是真正的程序员?我就是,我拥有一个程序员的骄傲,我认为自己写的程序是最完美的,如果不是,那至少是尽我所知的所有手段的最佳结果.知识的匮乏可以用时间类弥补,但一个人的品格却要贯穿始终.因为知道的少而水平烂,那你总有一天可以知道的多而水平高,如果是因为不用心而水平烂,那你一辈子烂到底!另外,基础知识很重要,语言知识工具而已.在工作中,我发现学校里的许多课程都是很有用的:数据结构,操作系统,算法,代数,运筹学,信息论,软件工程.我是学数学的,数学课程学的比较多,我也是赚了这个的便宜,我的研究方向是数字图象处理,所以我的专业知识都比一般人好.有的人开发工具用的挺麻溜的,但是算法几乎不懂,那永远掌握不了核心的技术,一辈子打字员.就象降龙十八掌,洪七公说打出去十分,体内就要留二十分.我认为开发工具就是掌法,基础知识就是内功啊!
有的人总在问,学什么好,学什么有用,先学什么,后学什么.我想说:好不好,有没有用,你用用就知道.不会因为你学会了一样东西而死掉了的.最后是我总结的一些经验:
1.自己编程
2.看书可以通过考试,但成不了程序员.3.基础知识比语言重要.4.少抱怨教育体制,多学些本事.5.不要为了钱和工作学习.6.不要因为感时髦而学习编程.7.认真,负责,自信,谨慎:
认真:学习和写代码的过程要认真,编程是要全身心投入的.负责:要对自己写的代码负责,要终身维护自己的代码,因为那是你的孩子.自信:相信自己的能够写出好的代码,相信自己的代码是最好的.谨慎:思考问题和编码要谨慎,不要想当然,每一行都要细细揣摩.
第五篇: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语言程序设计的教学情况,自己总结了几点看法和一些改革措施,拿出来和大家一起分享,请大家多提宝贵意见。通过这次学习,我将会灵活运用几位教授的教学经验,根据我院的教学对象,调整一些上课方法和措施,望能更好的提高教学质量。