HI,欢迎来到好期刊网!

c语言程序设计

时间:2022-04-14 19:23:03

导语:在c语言程序设计的撰写旅程中,学习并吸收他人佳作的精髓是一条宝贵的路径,好期刊汇集了九篇优秀范文,愿这些内容能够启发您的创作灵感,引领您探索更多的创作可能。

c语言程序设计

第1篇

关键词:C语言;程序设计;学习方法;学习兴趣

中图分类号:TP312.1-4

《C语言程序设计》是计算机专业的一门核心专业基础课程,是专升本、考研和等级水平考试的必考科目,也是学生学习中感到比较吃力的一门课。那么,如何学习《C语言程序设计》这门课程呢?现根据自己多年在教学中的体会,谈一些粗浅的认识。

1 为什么要学习《C语言程序设计》

《C语言程序设计》是用C语言来编写程序的,每个程序员在他们的编程生涯中都应该学习C语言,因为它有太多难以忽视的好处了。除了它会给你提供更多的工作机会之外,C语言还会教给你更多的关于计算机的知识。它的好处如下:

1.1 C语言是一种计算机程序设计语言

它既具有高级语言的特点,又具有汇编语言的特点,既可以用来编写系统软件,又可以用来编写应用软件。它不仅具有绘图能力强,还具备很强的数据处理能力,因此也适于编写三维,二维图形和动画。

1.2 C语言具有功能强大、使用灵活、丰富的数据类型和运算符、结构化的控制语句、目标代码运行效率高、适用范围大、可移植性好等优点。

1.3 C语言是各大操作系统的基础,Unix、Linux、Windows其内核都清一色是C语言开发的,(某些地方是和汇编语言混合开发的),还有各种语言的编译器,包括java虚拟机,各种嵌入式设备,如手机、PDA等都是C语言开发的。

1.4 C语言是基础,如果你学习过C语言,你就能学习现在任何的高级编程语言

因为所有的高级语言都是以C语言为基础的(像JAVA,C++,C#等等)。C语言学好了,将来想学其他的语言,就比较好入门了。

2 如何学习《C语言程序设计》

2.1 克服畏难心理,充满自信的学习《C语言程序设计》

大多数学生一看到《C语言程序设计》课程的教材,就有畏难的情绪,觉得C语言难学,学不会,因为他们对计算机语言不了解,另外有些英语差的同学,看到计算机编程是用英语编写的,就未学先弃了。其实学习语言并没有他们想象的那么难,英语差也对学习计算机语言影响不大,比如学C语言,真正要记的关键字不多,语法也不复杂,只要大家不带着畏难的心理,充满自信,一定能学好的。

2.2 要明确《C语言程序设计》的学习目的

通过《C语言程序设计》课程的学习,掌握C语言基本知识,掌握程序设计的基本方法并逐步形成正确的程序设计思想,能够熟练运用基本程序结构解决简单问题,理解模块化程序设计原则并能熟练使用C语言进行程序设计,具备调试程序的能力,为后继课程及其他程序设计课程的学习和应用打下基础。

2.3 要明白《C语言程序设计》与一般的计算机操作课程有所不同

《C语言程序设计》是计算机的一门软件编程课程,是用C语言来编写程序的,它具有难度性、抽象性、连续性和逻辑严密性。如果你第一次课来听了,第二次课没来,第三次课很可能就听不懂了。比如,第一次课讲的是数字1,2,3,4……,第二次课讲的是运算符号+,-,*,/,第三次课老师让你算1+2=?,如果你前两次课都来听了,那么你就能算出它的结果,否则你就算不出它的结果。因此,如果要想学好《C语言程序设计》,必须坚持每次课都来,如果那天确实不能来,就应在家自学,不懂的地方应及时向老师请教,一定不能落课。

2.4 要整体把握《C语言程序设计》

C语言是一种通用的程序设计语言,在开发系统软件和应用软件中得到广泛的应用,已成为当今计算机世界最流行的语言之一。C语言是一个整体,各个方面是有机联系的,要从总体上把握它,不要把它割裂成互不关联的部件。它包括C语言概述、数据类型(整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等)、运算符和表达式、流程控制语句、函数、数组、字符与字符串、指针、结构体、文件等。通过《C语言程序设计》的学习,掌握程序设计的基本概念、基本思想、基本方法和基本技能,进而学会利用C语言解决实际问题,培养计算机程序设计的能力和素质,以及思维方法,为以后学习其它计算机程序语言和后续的专业课程打下基础。

简单的C程序是由主函数和函数体两大部分组成。它的基本框架如下:

main()

{

}

其中main表示“主函数”。每一个C程序都必须有一个main函数,而且只能有一个main函数,它表示程序从这里开始执行。由花括号“{ }”括起的部分是函数体。其中函数体又包括定义变量、变量赋值、函数调用、输出打印等。

例:一个简单的求和程序

main() /*主函数*/

{

int a,b,sum; /*定义变量*/

a=123;b=456; /*变量赋值*/

sum=a+b; /*求两数之和*/

printf(“sum is %d\n”,sum); /*输出和值*/

}

这是一个简单的求和程序。/*...*/表示注释部分,只给人看的,对编译和运行不起作用。第3行是声明部分,定义变量a、b、sum,指定a、b、sum为整型(int)变量。第4行是两个赋值语句,使a和b的值分别为123和456。第5行使sum的值为a+b,第6行中“%d”是输入输出的“格式字符串”,用来指定输入输出时的数据类型和格式,“%d”表示“以十进制整数形式输出”。Printf函数中括弧内最右端sum是要输出的变量,现在它的值为579(即123+456之值)。因此输出一行信息为:

sum is 579

从这个例子可以看出,想要把《C语言程序设计》这门课学好,不仅要知道《C语言程序设计》的基本框架,还要学好函数体中的内容(变量类型、定义变量、变量赋值、输入输出格式字符串、输入输出函数格式、调用函数等)。另外还要学好C语言的运算符、运算顺序 、四种程序结构(顺序结构、分支结构、循环结构、模块化程序结构 )、掌握一些简单的算法等。

2.5 熟练C程序的上机步骤

在编好一个C源程序后,如何上机运行呢?要经过编辑、编译、连接和运行四个步骤。

(1)编辑源文件。在编辑(Edit)状态下输入或修改源程序。

(2)编译源程序。选择“C编译”菜单并选择“编译到OBJ”,进行编译,得到一个后缀为.obj的目标程序。

(3)然后再选择菜单“L连接EXE文件”,进行连接操作,可得到一个后缀为.exe的可执行文件。

(4) 运行程序。在“RUN”菜单中选择“R运行程序”项,或直接按Ctr+F9键,系统就会运行已编译好的可执行目标文件。此时,TC集成环境窗口消失,屏幕上显示出程序运行的结果。如果程序需要输入数据,则应在此时,从键盘输入所需数据,然后程序会接着执行,输出结果。

2.6 要加强编程训练

《C语言程序设计》是实践性非常强的课程,要求学员要理论联系实际,在掌握C语言的基本语法和基本知识后,重点应放在提高编程能力的训练上。根据学生学习的认知特点,我认为主要应从以下几个方面进行强化训练:

(1)吃透课本例子。每学完一次新课,让学生对课本例子先分析任务、再仔细阅读程序,然后按书上的源代码敲出来,编译执行输出结果,如果结果跟书上一致就算完成,如果不一致,就要仔细找原因。再后不看书自己编写代码与课本对照,找出自己的不足,然后改进。最后在此例的基础上自己加以改造,举一反三,变为其它的例子,如此反复练习,不仅培养了学生动脑思考的习惯,而且养成了遇事三思、认真、周密的作风。

(2)精选上机题目,要求调试通过。每章找出一个或两个综合性的具有代表性的应用题目,如编写一个程序,计算一个整数的名位数字之和;用选择法对数组中10个整数,按由小到大的顺序进行排序等,要求用C语言编写可执行的源程序,上机调试。这样不仅锻炼了学生解决实际问题的能力,更重要的是激发了学生学习课程的兴趣,抽象变具体 ,理论变实践,对这门课有了更深的认识。

(3)阅读填空法。找一些经典程序,配上必要的说明,适当去掉语句或表达式,让学生通过阅读填补空白,训练学生的程序设计能力。例编写一个程序,输入月份号,输出月的英文月名,还有求和、排序、报号等。

(4)准备一个经验本,记下C语言重要的语法和知识点,还有自己出错的解决方法及老师讲解的其他同学出现的常见错误,抽空常翻看,逐步积累经验,加深印象,使以后避免。

(5)带着作业去上机。每次理论课结束后,老师都会给学生布置一些作业(如习题)让学生做,那么学生一定要认认真真的把作业完成好,先把程序编写在作业本上,上机时再把这些程序敲到计算机上,进行修改、调试、运行,最后输出结果。如果学生不带作业去上机,第一次老师警告下次一定带作业上机,如果第二次还没带作业,不准学生进机房,让学生到教室把作业做完后再到机房上机调试。有人说学生可以直接在机器上编写程序,固然没错,但对于初学者来说,如果在机器上边思考边编写,也就是说想一句编一句,再想一句再编一句,这样太浪费时间,一节课说不定连一个程序都编不好,所以老师一定要求学生在课下把程序编好,上机只需把程序敲出来进行修改、调试、运行,这样能节约大量的时间,学生上机时间本身都是有限的。

上述方法在教学实践中证明是行之有效的,学生对问题分析、程序设计的自觉性和能动性得到提高,动手能力加强,对后继课如《C++》、《面向对象程序设计》等,学习起来倍感轻松,较好地完成了该门课程的学习目标。总之,实践出真知,多学、多练、多思、多交流,勤奋好学才能学成。

参考文献:

[1]严桂兰.C语言程序设计与应用教程[M].福建:厦门大学出版社,2001.

[2]谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,2005.

[3]陈东.计算机多媒体教学改革的一些尝试[J].福建师范大学学报(自然版),2004,20(3):98.

[4]王兰.学好《C程序设计》的几点建议[J].科技信息,2007(9).

第2篇

关键词:C语言;理论教学;实践教学

中图分类号:G642.0 文献标识码:A 文章编号:1674-9324(2012)07-0079-02

随着计算机学科和其他学科交叉应用的不断深入,高校都开设了程序设计课程,培养学生掌握和利用计算机分析解决问题的能力,同时提高学生的逻辑思维能力。要进行程序设计,必须掌握一门计算机语言作为编程工具,由于C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,它既有高级语言的优点,又有低级语言的许多特点,通过该课程可以很好地提高学生的编程能力,进一步为学习其他涉及到计算机知识的专业课程或者从事编程开发工作打下良好的基础,因此很多高校都把C语言程序设计作为一门基础的必修课进行开设[1]。然而通过调查发现,在教学过程学生普遍反应C语言难学而老师感觉难教,课程结束后很多学生对程序设计没有清醒的认识,更谈不上进行实际的应用开发[2]。如何解决C语言程序设计课程教学中普遍存在的问题,让学生对程序设计有一个完整的认识,进而培养和提高学生的综合素质,是值得每一位从事程序设计语言教学的教师去认真研究的课题。

一、存在的问题

高校C语言课程大都在一年级开设,由于大多数学生在高中时接触计算机编程较少,这就导致了学生在学习C语言的过程中,感觉其枯燥、抽象、难以掌握;对基本概念尚能理解,但当实际编程时,又感觉无从下手。这些问题跟教师讲课过程中过多注重语法等理论知识,对学生学习兴趣和解决实际问题的能力培养不够有很大关系,主要原因体现在以下几个方面。

(1)学习目的不明确。一些学生不清楚程序课程的学习目的和意义,认为就是学习语法规则,学习内容抽象并且晦涩难懂,没有实用价值,学习只是为了考试及格,认为大一开设的课程是基础课,和专业课联系不大,对自己的就业没有影响。一些非计算机专业学生学习该课程目的甚至只是为能通过计算机等级考试拿到证书。

(2)学习内容不合理。许多老师在讲授课程内容时往往都是先给出一般的语法格式,然后介绍语句的语法规则,最后讲解语法要点和例题,没有易于理解和能够提高学习的案例,由于书本内容死板枯燥且和实际问题脱节,无法满足学生的认识水平,也不能调动学生学习的兴趣。在进行上机实验时,试验内容往往是书本上的或是老师上课时所讲的案例,由于内容的选择不恰当,上机实践很大一部分情况下都变成了打字练习,或者只会验证性地做一些修改对错、得出程序运行结果的实验,一旦要求功能改进,不能进行算法和语法结构的调整,最后学生总会觉得出C语言难学的结论[3]。

(3)教学方式不完善。部分老师的教学仍然采用理论讲授在先、上机实验验证、最后布置作业巩固的传统教学模式,在教学过程中过多强调学习语法格式等理论知识,重点分析程序和算法的运行过程,而不是讲解根据问题如何分析和设计算法和程序,从而致使学生的程序设计能力不强。这种教学模式培养出的学生虽然理论知识学得很好,考试的时候也可以拿到高分,但在真正要求解决实际问题的时候,往往没有编写程序的思路,不知如何下手。由于经常解决不了问题,不能体会到计算机编程在解决实际问题时带来的便捷以及没有编程的成就感,久而久之,学生也就失去了学习计算机编程的动力。

二、解决方法

(1)激发学生学习兴趣。兴趣是最好的老师,能够使人产生愉快的心理状态,并对学习过程产生积极的影响。研究证明学习者只要对学习有兴趣,就可使人脑处于开放状态,学习者对于学习的兴趣越浓,信息在传输过程中受到的干扰就越小,信息接受量就越大。从教育心理学的角度来说,兴趣是一个人倾向于认识研究获得某种知识的心理特征,是推动人们求知的一种内在力量。人的注意力、观察力、思维能力、记忆力乃至想象力都和兴趣紧密相连,兴趣能使人的认识理解记忆处于最佳状态,思维能力最为主动和活跃[4]。有了学习兴趣,学生才有可能有意识地去思考和解决问题,因此在C语言教学的过程中要注重激发学生的学习兴趣。

第3篇

关键词:中职;C语言;设计;教学;有效性

中图分类号:TP312.1-4

1 存在的问题和困惑

《C语言程序设计》课程共72个学时,其中36课时安排在教室进行理论课教学,另外36课时安排上机练习。教学效果并不理想。经过一段时间的观察与分析,总结了原因有以下几点:

首先在教学环境上存在着一定的问题。我校的微机房和教室是分开的,也就是说理论教室和机房并不在一起。这就导致了在授课过程中需要把理论知识内容和上机操作的内容完全割裂开来进行讲解。但作为课程来说,大多数知识点并没有明确的归类,而是理论和实践穿插在一起,理论知识给实践环节提供支撑,实践环节又能通过感官加深对理论知识的认识。因此将理论和实践上机割裂开来的后果是,每次在教室讲到某一知识点时,不能及时通过上机练习加深学生的认识,使得学生在课后很短时间内便将课堂所授知识慢慢淡化并遗忘。其次,我校招收到的学生整体素质不太理想,学生的学习习惯仅仅停留在课堂教学过程中,学习热情也不高,因此基本上也就是当下课后,除了完成老师布置的作业外,很少有同学能自觉、主动完成课程的预习和复习。因此知识在学生头脑中的存在感很弱。

第三,由于《C语言程序设计》这门课程的逻辑性较强,需要学生发挥更多的想象空间去思考、去理解。当同学们遇到某个难题,无法跨越,不能立刻理解的时候,就会造成学习信心不足,导致对课程产生一种恐惧心理,而把这种心理带到课堂中,造成了后面知识点的学习不畅,进而进入了一种学习的恶性循环。

2 解决问题的方法和措施

按照以往传统的教学策略,老师们常常是通过对后进同学进行补课、辅导,且在平时教学过程中适当增加课时量或大量增加作业量,期望学生能通过这种不断、反复的灌输与练习来加深记忆,达到理解知识的目的。但作为一门具有较强逻辑性和对学生动手能力要求较高,并且需要通过理解才能达到灵活应用的计算机语言类课程,这一做法显然已经不适用于本课程的教学。增加课时量或作业量,学生或许能暂时加深对知识的记忆,但对于帮助学生达到理解知识并灵活应用这一目的,却并不能起到很好的推动作用。因此,通过我在教学实践中的反复摸索,尝试结合以下几种措施来进行改变:

2.1 深入钻研,用好教材

首先,教材是教学之根本,教师必须围绕教材进行知识点的讲解。脱离教材进行讲解,很容易让学生在课后的学习过程中无从下手。教材用的合适可以大大减轻学生完成课后作业的压力。

做到这一点,首先教师应通过深入地研读教材,准确把握教学内容,提炼教学重点难点;其次,通过了解学生,准确把握学生学习起点及需要,结合教材内容精心设计教学活动。

(1)深度透视教材,把握教材脉络。教材是知识的载体,是教师教学的依据,是学生学习的平台。但大多数教材并没有提供完整的教学过程,也没有提供详尽的教学设计理念。面多种学生个体差异,教材也并不会罗列出有针对性的教学方法。因此作为教师在备课过程中就应树立整体概念,高屋建瓴,从教材的整体入手通盘考虑教材的编排意图,弄清每部分知识点在教材体系中的地位和作用,多问几个为什么。如:这例题为什么这样设计?习题为什么这样编排?结论为什么这样引出?经过一系列思考后,教师驾驭教材的能力肯定可以有所提高。通过教材脉络的把握,教师可以更合理的进行课后习题的设计与编排。有利于学生参照课堂教学环节进行课后的作业及课后的自主学习与探究。

(2)合理地确立教学内容。作为中等职业学校的学生,学习基础相对比较薄弱,缺乏良好的学习习惯。而对于中等职业学校而言,需要培养的是具有高素质的职业技能人才,较强的实践动手能力尤为重要,而对理论知识的深度并没有太多的要求。此外,由于C语言程序设计,对于学生来说,逻辑性较强。太深的教学难度不容易激发学生的学习兴趣,容易挫伤学生的学习积极性,而增加教学难度。

因此在教学过程中,我在保证知识、技能目标前提下,对教材内容进行了拓展开发,删除了一部分学生不容易理解和掌握的内容,比如文件、类的章节,而在条件、循环等基础性环节上增加了课时量。这样使教学过程充实、丰富。

2.2 分层教学,各个击破

从思想上来开,中等职业学校学生正处于青春叛逆期,如果过于强调课程的重要性,作业布置太多,容易引起学生的抵触心理。因此在授课过程中,我强调理论联系实际。尽可能多的引入一些计算机方面的新技术,新应用,通过PPT、图片、视频、游戏等方式展现给学生看(如图1)。一方面提高学生对于计算机学习的兴趣,另一方面,通过新技术的应用,帮助同学们树立学习的信心,减少学生的畏难情绪。促使学生积极主动的掌握所学知识,激发他们不断深入研究学习的兴趣和激情。

同时,在课程教学过程中所用的示例也尽可能的贴近学生的实际,例如,求学生多门课程的总分、平均分或根据成绩进行登记划定等等。

此外,在教学过程中,我根据学生的基础,把学生分成红、蓝两个战队,在这两个战队中,有基础比较好的同学,也有基础比较薄弱的同学。在上课过程中,基本上都是由这两个战队的同学形成竞争。例如,在做题过程中,由两个战队分别派出一名同学完成题目,进行分数计算,最后的分数,计入两个战队同学们的最终平时成绩中。这样,一方面可以通过竞争,激发同学们的学习兴趣;另一方面,加强同学们的学习凝聚力,基础比较好的同学会自觉帮助比较薄弱的同学,自动激发学习的主动性。

2.3 保证基础,不断拓展

任何事物都有一个由量变到质变的过程,学习也一样。逐步深入,对于C语言课程来说,这点尤其重要。因此在课程中,针对同学们的基础参差不齐,我给她们布置的题目也分为容易、较难、难三个层次。在课堂上,我也时刻提醒自己:要坚持做到以学生为主体,老师只是起到一个主导的作用。

对于基础比较薄弱的同学,保证会做“容易”层次的题目,尽量学会做“较难”层次的题目。这样做既能确保她们的成绩不会落下,同时还能通过不断的进步来提高她们学习的信心。同时在不知不觉中我已经一步步的将难度加大,同学们的知识也在不断地升华、扩展。对于一些基础较好的学生,简单容易的题型已不能满足她们求知的欲望,我的原则是:在她们能够独立完成简单题目的基础上,另外增加难度较大的任务给她们完成。这样做既能安抚她们骄燥的情绪,同时通过不断的挑战难题也充分的激发了她们的学习激情。

通过思考与总结,我发现在我校其他计算机语言类课程的教学过程中同样也存在着类似的情况,因此我觉得对C语言课程的改革同样也应该适用于其他相类似的课程中。

参考文献:

[1]景运革,孟朝霞.C语言程序设计教学目标描述研究[J].运城学院学报,2008(05).

[2]郭来德,窦玲.“C语言程序设计”双语教学改革研究[J].价值工程,2012(13).

第4篇

[关键词]C语言 程序设计 实践教学

一、前言

上个世纪70年代以来,C语言在以其目标代码质量高,使用灵活,数据类型丰富,可移植性好等特点而得到广泛的普及和迅速发展,成为一种在系统软件开发、科学计算、自动控制等各个领域广泛应用的程序设计语言。在众多高级程序设计语言竞显风流的当今社会,C语言以其强大的功能仍在高级程序设计领域占据着重要的地位。

C语言作为计算机类专业的一门专业课,是学生学习程序设计的开端,学生分析问题、解决问题的能力和程序设计过程理念的形成都与C语言有着密切的联系。C语言有着其它高级程序设计语言不可比拟的优点,同时也有其较难学习的一面。由于现行教学过程中存在着一些弊端和学生自身因素的原因,所以在学习中普遍反映“难学”、“不懂“,这也是学生普遍遇到的问题。

二、现行教学和学习中存在的问题

1.现行教学中理论课与实践课完全分离,不能相互促进。理论课中往往只注重对教材知识的分析和灌输,在广度上对知识没有拓展和延伸,必定会影响对知识深度的剖析,也会造成学生理解的困难。而实践课程通常被放到了次要的地位,很多时候是在走形式:一方面,学生对知识一知半解、往往用上网来对付实践课;另一方面,老师很难监控到每个学生,了解他们是否都在认真编写、调试程序。这就造成理论课没有起到为实践课打基础的作用,实践课也没有起到巩固、应用理论课的作用。

2.学生对计算机基础的学习不深入,严重影响了C语言的学习。因为C语言程序设计课程的延续性和拓展性非常的强,包含了算法、数据结构、计算机基础等相关专业课程和基础课程的课程的知识。在C语言教学中涉及到进制转换、取值范围和顺序存储等基础知识时,发现很多学生还没掌握这些基础知识,甚至根本不理解。在这样薄弱的基础上,C语言教学很难顺利进行。

3.学生在学习中处于被动的接受知识的地位,没有机会主动参与到学习中来,导致学习兴趣不浓、学习停留在表面、对知识学的一知半解。由于接受的多是课本知识,所以动手能力差、应用能力差,导致不能把自己所学的知识应用到实践中去。这样培养出来的学生不能满足社会的需要,也没有达到教学的目的。

三、探索新的教学方法

在多年的教学过程中,尝试多种教学方式,不断总结教学经验,探索新的教学方法。

1.上好第一堂课,引起学生的学习兴趣。第一堂课是最基础的理论知识课,如介绍C语言的发展、特点、优点等内容,往往不被教师所重视,认为应该把精力放到程序设计部分。其实恰恰相反,上好第一堂课至关重要,它关系着学生是否会对学习产生兴趣,渴望进行后继内容的学习问题,所以绝对不能照本喧科。而对C语言的发展追本溯源,将C语言领域的开发投入、研发过程、遇到的问题进行详细的分析,对C语言在现实中的应用以及C++、VC++进行介绍,往往能够引起学生学习C语言程序设计的兴趣、推动后续知识的学习。

2.详细讲解基础知识,深度剖析与后继课程相关的内容,激发学生学习动力。C语言程序设计教学中涉及的数据类型、取值范围、运算符、优先级、表达式等内容虽是基础知识,但对学生来说却是迈入程序设计大门的第一步。没有坚实的基础知识,便无从谈及程序设计,所以对基础知识的讲解一定要详细。比如遇到整型数据的取值范围问题时,可以适当拓展一些原码和反码的知识,让学生知其然,更知其所以然;链表知识是C语言的难点,这部分内容和数据结构联系密切,所以要深度剖析,尤其是对带表头结点的单、双链表更要讲解的清晰、透彻,为数据结构、JAVA语言等后继课程打下坚实基础。这样继往开来,不仅可以巩固以前的计算机基础知识,更能激发学生的学习动力。

3.重点分析程序设计过程,培养学生良好的编程习惯,逐步提高学生编程能力。很多学生认为,进行程序设计就是用计算机语言编写源代码,这其实是学习程序设计的一个误区,编写源代码仅仅是完成了程序的编码,而程序设计从问题分析就开始了,它包括分析问题、选择算法、绘制流程图、编写源代码、调试并测试程序,直到取得正确结果这样一个完整的过程。其中绘制流程图能使程序员在编程时思路清晰,减少编程错误。利用流程图来分析、查找、解决程序设计中的问题能够一目了然。例如:下面这一简单的while循环结构,用流程图便可以轻易发现错误所在。图1是错误代码的流程图,它使程序陷入了死循环,图2是正确的流程图。所以绘制正确的流程图,是减少代码错误的有效手段。

Main(0

{int i,sum;

i=sum=0;

While(i

Sum+=i;

i++;

Printf(“1+2+3+…+100=%d’,sum);

}

在C语言程序设计教学过程中,即使对简单的程序设计的讲解也严格的按照程序设计的过程一步步的进行分析和引导,培养学生良好的编程习惯。

4.通过实践教学,让学生亲自体会程序设计全过程,巩固所学知识。学生通常在C语言的学习上投入了很多的精力与时间,但却离实际要求相差很远。因为缺乏了实践经验和能力,不能满足社会的需求,这也是计算机类学生的通病。为此,在教学中一定要注重理论与实践相结合。案例实验可以说是学习C程序设计最有效的方法之一,在教学过程中我们故意将赋值符号“=”和等号“= =”互换、漏写分号“;”和大括号“{}“,设置一些待解决的错误,引导学生在编程和调试过程中逐一解决这些问题,不仅能够巩固理论知识、养成编程的好习惯,更能调动学生思考问题和解决问题的积极性。同时在解决问题的过程中使学生有一种成就感,这对学习能力的提高和积极性的培养有很好的作用。

5.多种教学手段相结合,提高教学效果。理论教学与实践教学相结合,适当减少理论课、增加实践课,将理论教学融入实践教学中来,逐渐模糊两者之间的界限;传统教学与丰富多彩的多媒体教学相结合、教师讲解与学生课堂讨论相结合,以便调动学习的主动性和积极性。

6.注重对知识的归纳和总结,让学生温故而知新。在教学过程中,按章节、按阶段对相关重点知识进行归纳总结,让学生把模块化的知识连接起来,系统、全面的掌握所学内容。

四、结束语

目前C语言程序设计教学中仍然有很多需要改进的地方,如何提高实践教学质量,使理论与实践相结合,仍需要在教学过程中不断的探索和改革。

参考文献

[1]杨路明等.C/C++程序设计教程.长沙:湖南科学技术出版社, 2003.

[2]谭浩强. C语言程序设计教程.北京:高等教育出版社,1997.

第5篇

【关键词】C语言程序设计 教学方法 资源整合

C语言是一门结构化程序设计语言,对于学生来说,C语言程序设计的思维方式和概念都是全新的,学生接受起来很困难。那么,在C语言程序设计教学过程中,怎样开展这种构造性的又具有创造力活动的教学呢?笔者经过这几年的自我学习以及实际教学中的不断摸索,对C语言程序设计教学方法有了一些认识,与大家共同探讨。

一、注重网络环境下的资源整合

互联网技术的飞速发展彻底引发了阅读、计算等方式的变革,巨大的信息量、便捷的信息传

递、极强的交互性,使得网络成为最有效的资源获取工具。因此,在教学过程中建立或利用一个以C语言为专题的编程学习网站,整合与C语言编程相关的丰富的学习资源,为学生提供动态的、协作性的学习环境和学习工具,让学习者自己选择信息资料,自己收集、分析并应用知识,去解决实际问题。通过网络学习环境开展C语言教学,提高了C语言教学活动的有效性。

二、以合作学习为导向,改革课堂教学环节

合作学习是备受国际教育界推崇的学习模式,因为它有助于培养学习者的合作精神和协同解决问题能力。

教学中,以几名学生为小组组成学习的基本单位,学生在学习小组内相互协作、相互帮助、群策群力,共同完成相应的教学任务。实际教学中,教师向各小组布置项目任务,给以必要的说明,提供必要的资料和网络资源,然后各学习小组研究问题,制定解决方案,最后将结果展示出来。例如,在C语言中的函数调用这一个问题,将程序分解为数个模块,每个小组各自承担其中一个模块的程序编写,C语言模块化程序设计的思想在这时得到充分地展现,让学生深刻理解了模块化程序设计理念,同时也使学生感受到了团队合作的重要性,培养了学生协作互助精神。

三、抓住重点,分散难点,注重循序渐进

学习程序设计是一个逐步积累的过程。教材在整体设计上,要注意分散难点、合理选材,为学生建立科学的学习顺序,并注意适时、适量,学以致用地逐步渗透相关的知识、思想和方法。对于有难度的知识点,采用先用一个简单的例子让学生有所了解,经过一段时间的反复练习以及相关知识的积累后,再引入一个复杂一些的例子,深入理解和掌握,然后再加以概括和总结。让学生对知识的认识、理解、运用有一个逐步深入的“螺旋式”上升过程。帮助学生把已学到的内容不断纳入新的内容体系中去,使学生认知结构中原有的概念和新的知识建立起实质性的联系。例如,双循环结构知识点中的打印规则图案的程序设计方法,就可依据问题的难易程度,先找出直角三角形图案形成的规律,再探究等腰三角形图案的形成特点,最后解决构成菱形图案的程序设计,让学生有一个全面、系统的理解和掌握解决该问题的思想方法。

四、立足任务驱动,渗透基本概念

概念的形成过程常常是学生进行逻辑思维的过程,如果遵循逻辑思维过程去组织教学,必将使学生容易掌握概念。因此,要想让学生领会C语言中抽象的概念,教学中以实例任务作为知识的载体,在每个实例中适时、适量渗透一些相关的概念和知识,由实例去驱动学生主动发现、分析和处理问题,让学生在做中学,在学中做,使学生在完成任务的过程中,逐渐地、很自然地去体会C语言的语法规则及相关概念,并且在这一过程中,学生还能体会到相似概念之间的差别,以及解决这一问题的不同程序设计步骤。比如,当型循环while与直到型循环do-while语句的区别,如果只通过教师讲述,多数同学一般只能在表面上知其然,实则不知其所以然,但如果给出一个具体的任务实例,让同学们在实践后的结果中自己去体

验两者之间的不同,留在学生脑海中的记忆将犹为深刻。

五、引导学生建构自己的知识体系

基于网络环境下的学习过程具有开放性、广域性和易交流性。因此,网络环境下的创新教育能真正达到因材施教、发展个性的目的,能够使学生主动参与学习过程,并按照自己的认知水平有序地进行学习和提高,并使其创造性学习成为一种习惯。建构主义的教学活动中,教师的教学形式并不固定,学生则作为一个主体,积极会同其他的小组成员一起,通过已经整合的学习资源在网络下讨论和学习,教师给予学生引导和帮助,解决学生建立知识体系过程中所出现的问题。这样,学生既掌握了教材上的内容,同时又通过网络资源学习了相关的知识点,完成了对自己知识体系的建构,形成了自己的学习方式,而教师不但完成了教学任务,也教会了学生学习的方法,为学生以后的自我学习打下基础,正所谓“教”与“学”相得益彰。

六、做好归纳总结,提高学生学习效率

C语言程序设计的学习,很重要的一点在于归纳总结。一个章节的结束,学生则难以形成完整、清晰的框架,因此,教师在教学中要及时归纳、做好小结。教学归纳可以是一个知识点的归纳(如if条件语句的归纳),也可以是对一种知识结构的归纳(如分支结构中包含if语句、while语句、循环语句等的归纳)。总结可以是一个小节的总结,也可以是一个单元内容的总结。归纳总结的形式也可以多种多样,可以使用文字概括,也可以使用图表总结,重点难点要着重强调。做好归纳总结,有利于学生对知识的理解、做到融会贯通,顺利实现知识迁移,提高学生的学习效率。

教学方法在程序设计教学中的重要性是不言而喻的,它制约着程序设计教学的效率。面对的教学对象不同,教学方法各异,但使每位学生都能得到充分的发展,培养创新人才,是我们的同一目的,教学绝不能脱离学生的知识背景和认知规律。

参考文献:

[1]扈中平.现代教育理论.高等教育出版社,2004.

第6篇

目前,计算机专业其他课程(如数据结构、算法设计)中,也经常用c语言程序说明其过程和算法。因此,《c语言程序设计》已经成了许多高校计算机专业的必修课。中央广播电视大学自开设计算机专业以来,各地电大也把《c语言程序设计》作为一门重要的专业基础课程,列入教学计划,下面就我几年来的教学经验谈几点自己的看法:

一、实例为引导,激发学生学习兴趣

为了激发学生对C语言的学习兴趣,教师要在教学方法与手段上多下功夫,加强对学生的引导,在讲清语法规则的基础上,可通过许多具体有趣的实例,如“兔子问题”、“水仙花数”、“竞赛记分”等来培养学生的学习兴趣,综合利用板书、课件、程序演示等手段,做好师生互动,使学生加强理解和记忆。整个教学过程中把解题思路和算法当作授课的重点,从而让学生明白如何分析并解决实际问题,逐渐培养学生进行程序设计的正确思维模式。

二、注重上机教学,通过程序调试加强容易被忽视细节的教学

C语言虽然说与自然语言和教学语言十分接近,但在实际中却存在着许多“细小”的却又十分严格的差异。由于它的细小,常常不能引起注意而被忽略。如表达式、函数、变量、分隔符等,学员在学习中,常常因重视不够不能正确理解或没有形成较深印象,造成程序设计时不能正确使用或习惯地用数学方法代之。

因此,教师在讲授C语言课程时,不能忽视实践课的教学,尤其是学生上机辅导课的教学。很多教师认为,上机辅导课就是让学生自由练习,及时为学生解决问题,实际上这种教学辅导方式是不合理的。上机辅导课中教师一方面应反复强调C语言的“书写格式自由但一点不能差”的特点,另一方面应视具体情况通过演示程序调试的方法加强容易被忽视细节的教学。

如程序abc.c:

#include<stdio.h>

voidmain()

{

inta=1

printf("a=%d\n",a);

}

编译时出现以下问题:abc.c(5):errorC2146:syntaxerror:missing'''';''''beforeidentifier''''printf'''',给学生讲解提示,让学生通过提示明白问题所在,即该程序第5行的printf语句前缺少“;”。通过程序调试的方法不仅可以为学生解决错误,使学生自己通过实践证明了问题的所在,使之深受体会。同时也增强了学生调试程序的能力,从而提高编程的经验和技巧。

三、利用多媒体进行辅助教学

对于一些抽象的、学生难以接受和理解的语句和算法,如条件语句、循环语句、指针、排序程序设计过程等,利用多媒体教学的优势,进行通俗易懂的讲解和演示,模拟计算机的内部状态和执行过程。精心制作多媒体课件,增强学生的直观感觉,方便理解,起到事半功倍的作用。

例如在讲解到三种循环的结构时,学生很难理解三种循环的区别,通过制作多媒体课件来模拟三种循环的执行过程,使学生一目了然的看清楚三种循环的结构及其执行过程,清楚了用什么构成循环时,要注意在循环体内对循环控制条件的修改,也清楚了三种循环的区别。再比如在分析用选择法和冒泡法排序时通过用Flash制作一个若干个人按大小个子顺序排序的动画演示程序,这样就起到了将抽象问题形象化、枯燥问题生动化的效果。

第7篇

(山东理工大学计算机科学与技术学院,山东 淄博 255049)

【摘 要】C语言程序设计是理工科专业的一门重要公共基础课,根据实际教学经验通过类比法对函数定义和函数调用中参数的多样性进行分析,提高学生对C语言学习的兴趣和积极性,加强知识点的综合掌握和应用。

关键词 C语言;函数;参数;类比法

基金项目:山东理工大学计算机科学与技术学院院级教学研究课题“网络教学平台下C语言分组教学研究与实践”。

作者简介:陈波(1981—),女,山东淄博人,硕士,山东理工大学计算机学院基础教学部,讲师。

巨同升(1965—),男,山东潍坊人,硕士,山东理工大学计算机学院基础教学部,副教授。

0 引言

函数是构成C程序的基本单位,也是实现模块化程序设计的重要手段[1]。函数可以和C语言的其它知识点综合起来,实现对C语言知识点地综合理解和应用。但是学生在对函数的学习过程中存在诸多问题,笔者认为首先从宏观上理解函数,再从微观上学习函数。

1 函数的宏观理解

C函数有四要素:函数名、参数、函数体、返回值,函数就像一台机器(函数名),对输入的数据(参数)进行加工(函数体)并输出加工得到结果(返回值)。如图所示。具体函数的输入、功能及输出是什么取决于函数的定义。

2 函数的定义

函数的定义是制造一台实现某一功能的机器,函数定义的基本格式为[2]:

返回值类型 函数名(形式参数列表)

{

声明语句序列

可执行语句序列

}

返回值类型即机器加工输出数据的类型,函数的返回值最多有一个通过return语句实现,若没有返回值用void来定义。函数名是这台机器的唯一标识,用于说明其功能。形式参数列表来说明机器需要的输入原材料的个数及类型,如果不需要输入需用void代替函数形参列表中的内容,声明语句序列来说明函数内部的变量,可执行语句序列实现对原材料的加工处理,实现函数的功能。例如:

bigger这台机器需要两个整形的输入,对其进行大小比较并把较大值放在局部整形变量max中返回回来。

3 函数的调用

函数调用就如用已经制造好的机器生产产品一样,实际放入的原材料称为实参。函数调用的一般形式:

函数名(实参列表);

在函数的调用过程中就产生了实参向形参的数据传递,并且只能由实参传递给形参,而不能有形参传递给实参[3]。函数的参数可以有多种形式:简单变量、指针变量、数组名。下面通过“借书”为例对其进行分析。

3.1 简单变量作为函数的参数

实参传递给形参的是值,即“单向值传递”。例如A来向B借一本书, B复印了一本给A,他们手中的书虽然相同但是不是同一本,A在拿到的书中作标记不会对B的书产生影响。

3.2 指针变量作为函数的参数

由于指针变量存储的是一个地址,所以实参传递给形参是地址,即“地址传递”。例如A来向B借一本书, B把放书的位置告诉了A,A通过位置信息找到书并在上面作标记,B再来看这本书时就是A做了标记的书了。

但并不是B把放书的位置或一套书的起始位置告诉了A,书的内容就会发生改变,如下面代码,A只是看了看书并且改变了放书的位置,书的内容没有发生改变。

3.3 数组名作为函数的参数

数组是相同类型数据的有序集合,采用连续顺序存取的方式,数组名标识数组的首地址,如果要传递批量数据用普通变量作为函数的参数实现起来非常麻烦,就可以把数据先存放在数组中,把存放的首地址传递给函数即可。如B有一套书(10分册)按照分册号整齐的摆放在书橱中,A来向B借这套书,B就把第一分册在书橱中的位置告诉A,A就可以找到这套书了,进而可以进行标记了。B再来看这套书时就是A做了标记的书了。

void Aborrow(int book[10]){ int i;

同样B把一套书的起始位置告诉了A,书的内容就会发生改变, 可能A只是看了看书并且改变了放这套书的位置,但是没有在书中作任何标记。

4 结束语

本文以学生经常进行的“借书”活动为例,通过类比法对函数定义、函数调用进行分析,可以看出函数参数的传递只能是实参的值传递给形参。指针变量作为函数的参数可以产生双向的影响,数组名作为函数的参数可以实现批量数据的处理。加强学生了对局部变量、指针、数组的理解及综合应用,提高了学生的学习积极性。

参考文献

[1]谭浩强.C程序设计[M].北京:清华大学出版社,2005.

[2]苏小红,王宇颖,孙志岗,等.C语言程序设计[M].北京:高等教育出版社,2011.

第8篇

关键词:C语言程序设计;实例教学;启发式教学;正反馈

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2014)42-0271-02

一、背景

随着计算机技术的飞速发展和普及,计算机在各个领域中得到了广泛应用。为了适应时代需求,帮助大学生更好地利用计算机编程技术解决专业问题,在高校的本科教育中,计算机程序设计课程已成为大部分理工科专业的必修课或者选修课。而C语言作为最经典的编程语言之一,以其丰富的数据类型、清晰的语言结构和结构化编程思想,成为首选的程序设计课程。

本文结合笔者在高校多年从事C语言程序设计这门课程的教学经验,讨论C语言程序设计的教学模式,从而调动学生学习C语言的积极性,帮助学生更好地掌握C语言编程技能。

二、激发学生对课程的学习热情

大学生在修一门课程时通常会问:为什么要学这门课?这门课程有什么用处?如果问题得不到答案或者认为这门课程学了也没有用处,那么学生就会缺乏学习动力和积极性。在修C语言程序设计这门课程的时候,学生也会存在同样的疑问。所谓“磨刀不误砍柴工”,在开始正式讲述C语言理论知识之前,给学生阐明C语言的重要性和实用性是非常有必要的。只有这样,才能从一开始就激发学生学习的内在动力和激情。

那么,如何阐明C语言学习的重要性呢?作为老师,应该结合学生的兴趣点,让他们感受到C语言的重要性和学习意义。笔者在讲授C语言的第一节课时,通常会花一点时间给学生讲述这方面的知识。例如,Linux和Unix操作系统都是以C语言为主进行开发,Windows操作系统是以C++为主开发。手机内部的应用软件、游戏等很多都是采用C语言进行嵌入式开发的,例如推箱子、贪吃蛇等游戏。学生所熟知的游戏“仙剑奇侠传”,由WATCOM C/C++写的。而C语言是C++的基础,通常都是先学习C再学习C++,可见C语言的重要性。另外,在上课过程中,再穿插讲一些著名人士(如比尔・盖茨、马克・扎克伯格)的成功故事,则更有益于激励和提升学生对于计算机编程课程的学习热情。

三、实例教学渗透基本概念

很多学生在上C语言程序设计课程之前,未上过其他计算机语言课程,在刚接触这门课程时,通常怀着惴惴不安的心情,担心自己学不好。因此,在刚开始上课时,应该用简单的例题吸引学生,让学生感受到学习C语言并非想象的那么难。例如,在第一节课,可以先在屏幕上通过运行C程序显示一行信息:“This is a C program.”然后给学生显示该信息的C语言源代码:

void main()

{print ("This is a C program.\n");}

此时学生虽然还未学C语言编程,但是发现程序很简单,就比较容易接受这门课程。随后可以让学生仿照例题写程序显示“I am an undergraduate student.”让学生动手写自己的第一个程序,内容也与他们自己有关,增强学生的参与性,无形中也会增加学生的学习热情。

最初的几堂课由于内容相对简单,学生感到新奇,因此学习积极性比较高。随着课程内容的深入,出现大量的语法规则时,往往会觉得枯燥乏味。因此,在讲解C语言的一些定义和语法规则时,最好避免按部就班,直接给出定义和语法规则再给出例题。相反,我们可先举若干例题,让学生从中发现规律和总结规则,再给出定义。一方面有利于激发学生的上课积极性和活跃思维,另一方面也有利于学生记住这些规则。毕竟,通过思考总结出来的规则比死记硬背的知识更让人印象深刻。在给出定义时,应对照着例题进行解释,这样有利于帮助学生记忆和理解。例如,我们在讲解for循环语句规则时,可以先给出以下两个简单的例题(例1和例2),并通过运行程序给出对应运行结果。让学生思考和猜测程序大致完成什么工作,再结合例题给出for循环的语法规则,并通过例题讲解for循环中各个表达式及语句的执行顺序。其解释过程如图1所示。学生对应示例理解规则,就能较快地掌握for语法规则。

在讲完语法规则以后,可趁热打铁让学生进行课堂练习,巩固刚学习的知识点。例如,在讲解完for语句规则以后,可以让学生模仿例2用for语句完成1到20的偶数之和,加深其对知识点的理解。

四、启发式教学提高学习积极性

在学习过程中,提高学生主动学习的积极性非常重要。只有学生发自内心想学,主动思考,学习效果才会更好。因此,在课堂教学过程中,老师应避免直接陈述知识点,而应积极引导学生思考。理工科的学生,逻辑思维能力较强,让他们通过例题分析去总结知识点,更利于他们的学习和记忆。例如,在讲解while和do while语句差异时,可以先给出以下两个例题(例3和例4)。在不运行程序的前提下让学生思考k=1和k=11时两个例题的结果;然后运行程序给出例题运行结果(k=1,例3和4的结果都为sum=55。k=11,例3的结果为sum=0;例4的结果为sum=55)。对于理解while和do while循环的同学,在写出答案的时已经领悟出while和do while两者的差异;而对于不理解while和do while差异的同学,则让他们对比程序运行结果,思考两者差异。最后,再由老师解释两者差异:“while语句先判断,后执行循环体;do while先执行循环体再做判断。当while判断表达式第一次的值为‘真’时,两种循环结果相同;否则不相同。”通过例题对比思考,可加深学生对知识点的理解。

除了通过对比让学生加深思考以外,也可故意在程序中制造一些错误,使程序编译报错或者编译通过但无法实现预期目标,让学生从老师给出的程序中找bug,在程序调试过程中解决问题并加深对知识点的掌握。例如,给出例5,该程序的本意是计算1到10之和,运行程序后屏幕上没有任何运行结果,再让学生思考为什么得不到想要的结果。学生通过观察可以发现,“while(i<=10);”中的分号代表while循环体为空,i的值始终为1,导致程序陷入死循环。要想完成计算1到10之和,只需将“while(i<=10);”中的分号删除。此例题也体现出对于C语言而言,“失之毫厘,谬以千里”,从而让学生在编程过程中关注细节。

五、引导学生积极参与课堂互动

著名的《本科教育实践七原则》一书中指出,本科教育的前两个原则为:(1)加强师生交流;(2)引导学生间开展互惠合作。可见,在教学过程中,加强师生交流以及学生与学生之间的交流是非常重要的。一方面,老师应该通过课堂提问等方式加强师生互动。另一方面,老师也应该积极引导学生与学生之间开展互动。例如,在课堂练习时,可将学生分成若干小组,给出题目由学生在小组内通过讨论给出答案。受竞赛获胜心理的驱使,使得学生通力协作,积极思考。另外,由于不同学生的思维模式不一样,对于同一题目,不同组往往给出不同的解题方式,实现了“一题多解”的课堂教学。

除了在上课期间分组讨论以外,在实验课也应鼓励学生之间互相讨论。实验课是学生真正亲自动手的阶段,在实践过程中难免会遇到各种问题。有些学生担心向老师求助会被老师认为上课没有认真听讲,所以不敢问老师。如果鼓励学生之间讨论,学生可以没有思想负担地向其他同学请教,回答问题的学生则从学生的角度帮助提问的学生解答问题,更有利于学生对知识点的理解。另外,在学生A向老师求助时,老师也可以让学生B分析学生A编程中存在的问题,鼓励学生积极思考。如果学生B发现问题所在,则会有一定的成就感,从而更喜欢这门课程;如果学生B无法找到学生A程序中的问题,则可以同时给学生A和B讲解这一知识点,帮助两位同学解决问题,这样也有利于学生更好的掌握C语言编程技能。

六、形式多样的正反馈

在上课期间,老师通常鼓励学生不懂就立即提问。但是,不同学生喜欢和老师沟通的方式不一样,有的同学可能因为害羞不喜欢课堂提问,所以应该鼓励学生通过其他方式与老师沟通。例如,让学生在作业本上写出完成作业时遇到的问题,或者通过email、qq等方式寻求老师的帮助,老师也应及时给学生回馈。例如,学生在编程过程中遇到问题,通过email向老师求助,隔了几天还没有收到老师的回复,那么学生会认为老师让学生提问只是流于形式,下次再遇到问题时,也就没有再与老师沟通的积极性,也影响了学生的学习积极性。相反,老师若能立刻给学生回馈或在课堂上分析讲解,学生则会认为老师重视自己的问题,学习积极性也因此提高。

另外,无论学生提什么样的问题,都应给予正回馈,而不是对学生进行批评教育。事实上,学生向老师提问前会有各种顾虑,通常需要很大的勇气才敢提问。所以,学生提问本身勇气可嘉,这一点就值得表扬。如果学生提问遭到批评,学生以后再不敢也不愿提问,直接影响其学习积极性。

七、结语

本文从如何激发学生学习热情、开展启发式教学、引导学生参与课堂互动、给予学生正反馈等多个角度探讨C语言课程教学模式。相信通过以上方法,可以帮助学生更好地掌握这门课程。同时,笔者认为本文所提的教学模式也可以推广到理工科其他课程,尤其是偏重实践的课程教学中。

参考文献:

[1]Arthur W.Chickering and Zelda F. Gamson. Seven principles for good practice in undergraduate education[J]. American Association of Higher Education Bulletin,1987,39(7).

[2][美]拉尔夫・泰勒.课程与教学的基本原理[M].罗康,张阅,译.北京:中国轻工业出版社,2008.

第9篇

关键词:C语言 教学方法 探讨

1 明确学习目的,调动学习积极性

在讲述C语言概述时,着重强调计算机语言学习的重要性和必要性。首先,C语言是其它高级语言的基础。C++的核心基础是C,C#的基本语法、基本数据结构和基本控制结构都和C语言类似, 学好C语言的基本语法对于学习其它高级语言起到非常重要的作用;其次,C语言的适用范围非常广,几乎所有的硬件驱动、网络通信、快速数据处理等都涉及到C语言;第三,C语言的普及率非常高,而且依然在不断扩大,国内几乎所有大学都把语言作为程序设计相关专业的一门必修基础课,国外也是一样,很多大学都将语言作为必修课开设。第四,语言是各种认证考试的上机操作语言,目前计算机水平考试中的二级、三级、四级和程序员等考试中都将语言作为上机考试的内容。

2 抓住学生的好奇心,用实例渗透基本概念

为了使学生能尽快进入C程序设计课程学习的角色,在讲课过程中,要特别注意培养学生的学习兴趣。初始几节课,学生感到新奇、好玩,但随着课程的不断深入,大量的语法规则、程序代码的出现,很容易使部分学生感到枯燥无味,甚至望而生畏。为了把学生的好奇心转化为学习兴趣,授课时改变过去先给出定义和语句规则的讲授方法,而是从筛选趣味实例出发,将“语言”讲得生动、活泼。

为了激发学生的兴趣,在C程序设计中的第一课,演示一些由学生自己编写的、有趣的程序。如加密解密程序等,从而吸引学生。

由于刚接触程序设计的学生,对程序设计充满了好奇,如果这时把变量、函数、指针等一大堆的概念放在前面讲,一下子引入大量抽象的名词、概念,就会打击学生的学习兴趣,同时,在学生没有任何知识背景的情况下,要完全理解这些概念也是比较困难的。因此要想让学生领会这些抽象的概念,教学中应以一个个鲜活的具体实例为切入点,在每个例子中适时、适量渗透一些相关的概念和知识,让学生在做中学,在学中做,在完成任务的过程中,逐渐地、很自然地去体会变量、函数、指针等概念。

3 坚持循序渐进,在实践中举一反三

在教学的整体设计上,要坚持循序渐进的原则,分散难点、合理选材,为学生建立科学的学习顺序。对于有难度的知识点,先用一个简单的例子让学生有所了解,经过一段时间的练习以及相关知识的积累后,再引入一个复杂一些的例子,使学生能深入理解和掌握,最后再加以概括总结,使学生对知识的认识、理解、运用有一个逐步深入的“螺旋式”的上升过程。教师要注重把已学过的内容不断纳入新的内容中去,将学生认知结构中原有的概念和新的知识建立起实质性的联系。

例如,程序的循环结构在程序三种基本结构中是比较难掌握的,安排了三次课,从简单到复杂,从单重循环到双重循环,逐步加深。

第一次课,先设计一个用多条赋值语句重复累加的程序,引出重复即是循环的概念,并列举生活、工作中的循环实例,通过编写这个程序,帮助学生分析语句的含义,让学生对循环结构有一个初步的认识。

第二次课,以典型的双重循环实例“打印九九乘法表”,介绍双重循环的概念,重点剖析内循环作为外循环的循环体和外循环的关系,使学生循序渐进地掌握难点。

第三次课,循环程序应用举例,通过难度适宜和一定量的程序实例,帮助学生理解和掌握循环结构。最后对循环结构知识点进行总结,使学生对循环结构形成完整、清晰的整体知识框架,实现知识的迁移。循序渐进的原则同样适用于实践环节。

4 给学生搭建多种自主学习平台

(1)发挥计算机专业的优势,充分利用网络资源,创建C语言教学网站,提供教学课件,便于学生课后自主学习与复习。建立不同层次的题库与测试内容,方便学生的自我检查。开辟讨论区与答疑区,随时对学生的学习问题进行解答。并开展讨论,提高学生的创新能力。

(2)开放学校机房。c语言是一门实践性很强的课程。大量的上机调试程序,可以帮助学生发现问题,理解问题,掌握程序设计的方法,锻炼创新能力,拓展逻辑思维。

5 抓住重点和难点,做到有的放矢

只有知道“该学那些,那些最重要,哪些最难学”,才能真正做到有的放矢,有备而来。语言中必须要掌握的知识包括数据类型、控制结构、函数、数组、指针、结构体和文件操作等几部分。因为这些知识都是使用语言进行程序设计时使用最广泛的,所以必须掌握。C语言中最重要的知识包括流程控制、数组、函数等。因为这些知识是程序设计中最实用的基本技能,所以,不仅要掌握。而且要熟练。C语言中比较难的知识包括字符串处理、指针、结构体和文件等内容。语言中必须掌握的知识是每个初学者学完之后都必须达到能够使用的层次,而重点知识则必须非常熟练,难点知识做到基本掌握即可。