C语言教学实践论文

2024-07-26

C语言教学实践论文(精选12篇)

C语言教学实践论文 第1篇

C语言是我校学生学习程序设计的入门语言,学生分析问题、解决问题的能力和程序设计思想的形成都与C语言有着密切的联系。C语言既具有高级语言的优点,又具有低级语言的许多特点,既可以用来编写系统软件,又可以用来编写应用软件。C语言语法限制不严格,程序设计自由度大,在使用时会出现一些“副作用”,再加上现行在教学过程中存在的一些弊端,所以在学习中学生普遍反映“难学”、“不懂”、“没兴趣”,这也是在C语言教学中普遍遇到的问题。

2 现行教学过程中存在的问题

2.1 以书本为中心,忽视学生能力的培养

以书本为中心的教学模式,采用从概念到概念的注入式教学,偏重于C语言语法知识的详细讲解,而对程序设计思想、程序设计方法和程序设计风格的介绍很少,对编程能力的培养不足,导致学生学不深、学不透、学不精,不会编写和调试程序,不会测试程序的正确性,编写的程序可读性很差,遇到稍微复杂的程序就读不懂,更不用说运用学到的概念去解决实际问题了。

2.2 以教师为主体,忽视学生的能动作用

以教师为主体的教学方法中,由于片面强调和突出教师的主导作用,忽视和压抑了学生的能动作用;片面地强调知识的传授和灌输,忽视了学生创新能力的培养;注重“知识型”人才,忽略了“智能型”人才的培养。在教学的过程中,教师只注重讲解概念、语法和程序,不注意调动学生的学习热情,学生被动接受灌输的知识,学习热情低,即使掌握了这些内容,也不能灵活运用,达不到举一反三的目的。

2.3 多媒体教学过分强调表现形式,忽略了内容本身

在现代化的教学过程中,利用投影仪、计算机、网络等现代设备开展多媒体辅助教学,具有较好的教学效果。但是在课件制作上过分强调表现形式,忽略了内容本身,往往造成喧宾夺主,达不到预期的效果;另外在课堂上,教师过分依赖课件演示,忽视与学生沟通,影响学生参与教学活动的积极性。

针对以上存在的不足,我们在对C语言教学过程中,开展了一系列的教学改革,在教学中采用案例教学法,强化师生互动,积极培养学生学习兴趣,并合理使用现代教育手段,取得了良好的教学效果。

3 教学改革方法

3.1 采用实例教学,突出能力培养

为了改变以书本为中的注入式教学方式,我们探索采用了实例教学法,以程序设计的需要带动语言知识的学习,在每个知识点上以引例开头,激发学生的好奇心和求知欲,从而促进学生成为教学主体,引导学生进行自主学习、合作学习、研究性学习,增强学生的综合应用能力,从而提高了教学质量,取得了良好的效果。

在实际教学实施过程中,我们采用了项目递进驱动教学法,改变满堂灌的做法,将学生的眼手脑全部调动起来。精心设计实例,给学生一个比较实际的切入点,通过教师的演示使学生感觉能够入手,然后再将此实例不断修改、扩充,引导学生参与到程序的编写过程中,并将学生设计的程序展示,让学生来评判优劣、吸收优点、修改错误,引导学生进行程序优化。比如在进行if语句的教学时,针对符号函数的求解,我们给出多种可能实现的程序段,让学生分析哪些程序段能够完成计算,哪些不能完成计算,对不能完成计算的程序段如何进行修正等。通过这些程序的分析,使他们加深了对if语句的理解,掌握了if与else的配对关系,并灵活运用去解决其他问题。

3.2 强化师生互动,激发学习学习热情,发挥学生主观能动性

在C语言教学中,我们大力强化师生互动,充分发挥学生的主观能动性,注重培养学生独立学习、独立思考、勇于创新的能力。师生互动教学我们采用了“问答式”、“讨论式”等多种形式。每一种方式都有其特点和特定的适用范围,在实际教学中我们根据具体情况加以灵活运用。

“问答式”就是教师事先设计好问题,启发学生思考,引导学生在问题解决中构造算法进而掌握相关的概念、语法、功能及应用。例如:要求学生编程实现输入三角形的三条边a,b,c,计算以这三个数为边长的三角形面积。我们可以适当进行提示提问:(1)输入的三条边能否构成三角形?(2)已知三边长,三角形面积该如何求呢?这就要结合中学时的数学知识,对于问题(1)用数学语言来描述为:两边之和大于第三边。那么用程序语言该如何描述呢,应该采用哪一种程序结构?顺序、选择还是循环?程序结构知道了,下一步就是根据数学公式计算面积。这样,逐步对学生进行提示和引导,可以使学生的思维一直处于活跃状态。

“讨论式”就是教师预先设定讨论题目和要求,由学生分组讨论的一种互动教学方式。它适用于课程中的重点难点问题。如在链表的教学中,我们就如何利用链表实现栈、队列,用链表实现与用数组实现各有什么优劣等问题时就采用“讨论式”教学方法。课前教师将问题提出来,让学生自己去思考。学生自由组合形成若干各小组,每个小组应有一位秘书,负责全程记录讨论过程,最后每个小组要出一份讨论报告,然后由每个小组推选一位学生上台讲解本组的实现方案,其他组的同学可自由提问,最后由教师对方案的可行性、是否有创新、须改进之处一一进行分析讲评。这种方式有利于培养学生的思维能力和协作能力,激发学生学习热情。

3.3 合理使用多媒体,提高教学效率

在教学中结合形象直观的事例或图形讲解概念,可以充分发挥学生的形象思维能力,不但易于理解和掌握,而且印象深刻,能有效地提高学习效率。因此在C语言教学中我们可利用多媒体代替传统的板书,将文本、图像、声音、动画结合起来,使抽象的内容变得形象生动,学生通过多种感官来获取知识,形成相关的概念。但是滥用多媒体教学,不但达不到预期的教学效果,反而会分散学生的注意力,削弱教师在教学过程中的主导作用,甚至影响学生的学习积极性。在C语言多媒体教学实践中,我们着重解决好以下问题。

3.3.1 课件内容与形式的关系

在制作C语言课件时,我们要根据课程的教学内容的性质和特点选择恰当的技术手段和表现形式,充分利用了各种媒体信息为教学内容服务。在课件制作上,不需要花时间、花精力对课件进行包装,刻意追求特技效应。在课堂教学中,过多的画面切换,容易造成学生在学习过程中应接不暇,对所学内容生吞活剥,能力的培养无从谈起。实践证明,附加信息和无关信息过多,虽然从心里上加深刺激了学生的感知能力,但却显得主次部分,容易分散学生的注意力。因此我们要求课件制作要务实,不必特别美观,也不必有很高的技术含量,涵盖的知识点也不必很多,只要能使抽象、难懂的内容变得直观、易懂,有利于学生更好地接受所学的知识就够了。

3.3.2 注意发挥教师的主导作用

虽然教学课件事先已经做好,但不是说在课堂上教师只充当“解说员”、“演示员”就可以了,这样可能会出现学生看了很多,听了很多,却不知道要学什么,什么是重点难点,而事与愿违。其实,多媒体辅助教学作为一种现代化的教学手段,是用来提高课堂教学效率、突破重难点、解决一些传统板书教学不容易理解的问题。作为教师应把握住自己在教学中的主导地位和作用,通过教学过程的设计和灵活多变的操作,使多媒体发挥最佳教学功能。

4 结束语

采用这些教学方法,有提出问题、解决问题、扩展问题、再解决问题、对解决问题方法的评价、优化等几个环节,实际上是一个螺旋式滚动向前的过程,在这个螺旋式不断向前的过程中,能够非常自然地调动学生参与的积极性,而且通过问题的扩展,通过一个问题的多种解决方法,使学生在课堂上真正地成为“主体”,教师扮演“主导”角色。当然,在改进和探索教学方法的同时,我们还要充分利用机房、网络和课外环境,启发和调动学生的学习积极性,培养和提高学生的自学能力。

参考文献

[1]中国高等院校计算机基础教育改革课题研究组.中国高等院校计算机基础教育课程体系2006[M].北京:清华大学出版社,2006.

[2]全国高等院校计算机基础教育研究会.高等院校计算机基础教育经验汇编[M].北京:清华大学出版社,2008.

C语言函数教学设计与实践论文 第2篇

函数部分的学习被安排在三大程序控制结构之后,有利于学生对函数知识点的系统学习,也能够使学生深刻理解结构化程序设计的全局思想,在大学期间开设《C语言程序设计》课程的主要目的是培养学生充分利用信息时代的优势,通过编程解决实际问题的能力。实际上C程序的基本组成单位是函数,课程所有知识点的学习最终都将落实到编写各种函数来进行验证和实现。因此,学生只有灵活掌握函数的运用,才能为后续学习奠定坚实基础。

二、传统函数教学存在的问题

传统函数教学流程如下:

其一,函数定义及其形式;

其二,函数形参,return语句,函数返回值;

其三,函数声明,格式,位置;

其四,函数调用,函数实参等。这种传统的教学流程过于强调函数语法知识,概念和规则的讲解,这样导致学生似懂非懂,与教学理念相违背,为了适应教学要求,突出以学生为主,教员为辅的教学理念,主要探讨函数的教学设计及实践[1]。

三、新的函数教学设计及方法

函数教学主要以发现问题、分析问题、解决问题为思路开展教学,以启发、引导、对比和总结为辅帮助学生分析问题解决提出的问题。不仅可以让学生带着兴趣学习,也会加深学生对知识点的深刻理解及灵活应用。本堂课的教学流程是:交代任务;提出问题、发现问题、解决问题;巩固练习[2]。

第一,提出问题、分析问题、解决问题。学生只学过在main函数中编写简单程序,于是向学生抛出问题:复杂程序应如何进行组织和设计?在此,给学生一些时间利用main函数来解决给定任务,解决完毕和同学生一起验证结果,然后引导学生分析这种解决方式在实际中存在的问题,并启发学生思考解决此问题的最佳方法,从而引出学习的内容——函数法。接着再次引导学生用函数法重新解决给定的任务,最后将解决该任务的两种方法进行对比,让学生讨论、体会并总结出复杂程序的设计方法。

第二,巩固练习。在这个环节,笔者设计了带有陷阱的小例子:通过编写swap函数来实现主函数中两个整数的交换,给学生一些时间讨论、验证结果,引导学生分析其中的问题,同时引出函数调用流程这一知识点,并通过动画演示的方式帮助学生分析函数调用流程。

四、函数教学实践

第一,利用结构化程序设计原则设计复杂程序。在main函数中编程解决问题的基础上引导学生独立解决给定任务,发现大部分学生都能很好地编写出程序,让学生观察上述代码,联系实际启发引导学生讨论并总结出如下问题:

其一,代码冗余;

其二,不易维护;

其三,可靠性差;

其四,可读性差。

在此基础上启发学生剖析问题并让学生给出解决方案,即main函数没有能力独自解决整个任务,这样很自然引出复杂C程序组织和设计的原则:自顶向下,逐步细化,模块化设计,结构化编码。在这一原则的指导下,人们可以将任意复杂任务分解若干子任务。程序设计时每个子任务看成独立模块,每个程序设计人员分别完成一个或多个模块。人们称这样的程序设计方法为“模块法”,在编写代码时每个模块对应编写一个函数。最后选择一种结构化语言对各个函数进行编码,然后在机器上反复调试修改验证。函数定义形式函数首部函数体含义作用及功能功能具体实现对应知识点函数名,函数形参,返回值如:longfact(intm)声明语句,执行语句第二,函数定义及调用。

其一,函数定义形式;

其二,函数调用。通过知识迁移将以前学过的使用库函数的语句引导学生总结出函数调用的形式:①无返回值;②带返回值。在此,详细讲解实参与形参的区别及联系,接着给学生一些时间利用函数调用的方法改写程序并将两种解决问题的方法进行对比,让学生观察总结出程序模块化的优点。

第三,进阶练习。布置小任务:编写swap函数来实现main函数中两个整数交换。在学生编写时,教员应根据每位学生的情况进行适当指导提示,并及时纠正学生们共性的错误。提示学生思考计算机本身是如何执行程序中的main和swap函数的,引导学生回答并指正。通过画图这种直观的方式,让学生理解函数调用的执行流程,同时也加深了学生对函数模块独立性的深刻理解,将抽象的知识变得通俗易懂。

五、结束语

综上所述,C语言中函数涉及的知识杂而多样,在教学中采用启发、引导、对比等多种教学方法,不拘泥于知识点的讲解,而是从程序设计全局角度出发,以分工合作思想为切入点,探讨了现实中复杂程序编写多个函数来实现的必要性,发现问题,解决问题,让学生主动学习的思路展开,实践证明该思路符合学生接受知识的思维习惯,这不仅很好地调动学生学习的积极性,从而培养了学生独立思考解决问题的能力。

参考文献:

C语言教学实践论文 第3篇

摘 要:C语言语法灵活,执行效率高,移植性强,在业界应用广泛。高职院校C语言程序设计课程教学强调面向实际岗位群,教学难度较大。本文针对C语言特点,结合自身教学实践,从各个教学环节探讨了提高课程教学质量的方法和实施手段。

关键词:C语言 实际岗位群 教学实践 教学方法

C语言程序设计课程是高职院校计算机专业核心课程。本门课程对于学生而言,是一门比较抽象难学的课程。下面从高职C语言程序设计课程教学实践入手,谈谈提高本门课程教学质量的方法与实施手段。

一、明确课程定位

C语言在软件开发领域具有重要地位,尤其在嵌入式系统、工业控制等行业有着广泛应用。C语言程序设计课程是计算机及电子信息类专业的专业基础课程,是学习单片机开发、计算机接口技术等课程的必修先导课。

二、科学配置教学资源

1.精选教材

高职C语言程序设计课程教材选择方面应该注重以下几个方面。

第一,教材教学任务实践性,理论知识尽量简洁,满足够用即可。

第二,知识安排从易到难,符合高职学生学习规律。

第三,编写与指定教材相配套的实践上机校本教材,内容围绕教材理论知识,设计面向实际岗位需求的实践点。

2.建设精品课程资源

(1)组建专业能力强、学历年龄结构合理的师资队伍。

(2)录制精品微课程,按照教学计划将教学视频进行融合。

(3)制作课程题库,提高编程能力需要大量的实践训练,制作质量高的题库,让学生可以反复练习,不断提高动手能力。

(4)发挥移动互联优势,开发基于移动设备的课程网站,使学生可以在任何时间地点学习知识,充分激发学习兴趣。

三、合理优化教学方法

高职C语言程序设计课程理论性强,因此,在教学中要注重多种教学方法相结合,理论与实际相结合。选取教学方法应始终围绕以下要点:以突出课程实践能力为重点;以激发学生学习积极性为主导;注重实践性环节,做到“教、学、做”相统一。

1.启发式教学法

启发式教学也称引导式教学。它要求教师依据学生学习规律,引导学生积极、主动思考问题,掌握知识。这种教学方法突出了以学生为主体,教师为引导的教学思想。

例如,在讲解顺序结构时,引导学生思考烧菜这件事情。有些步骤是不能颠倒的,比如洗菜和炒菜,否则就无法食用了,从而进一步指出解决问题要遵循一定步骤。编写顺序结构程序时,也一定要按照逻辑顺序进行。

在讲解选择结构时,我们展示交通红绿灯图片,引导学生思考,按照交通法规行人通过红绿灯如何进行选择,才能确保交通安全。因此,得出结论是满足绿灯亮这个条件就通行,红灯亮则等候。在此基础上引出我们讲解的条件表达式,以及用if…else…条件语句编写选择结构的C程序。

在讲解循环结构时,引导学生思考统计班级期末考试5门课程成绩的步骤。几个同学容易计算,但如果几百名同学计算量就大。其实每个人计算方法是一样的,此处存在重复的操作和人数的有限性。引出C语言实现重复操作的方法:循环结构,可利用while,for,do while语句实现该结构。

引导学生主动思考,让他们把抽象的理论和现实生活中的事例相结合,激发学习兴趣,提高学习主动性。

2.项目教学法

为了提高学生编程能力,项目教学法必不可少。笔者采用常见的LED字幕滚动屏作为项目选题,要求在屏幕上模拟实现字幕一边滚动一边闪烁。

项目教学过程为:首先对班级进行分组(2~3人为单位),要求分工协作,共同完成;然后,学生在小组内互相讨论,教师巡回查看,发现某组学生碰到困难,参与讨论,指导答疑;最后,在教师的指导下,学生以小组为单位完成模拟软件开发演练,培养和提高学生编程能力。

四、大力改进教学实施

为了使教学方法能在课堂中发挥最大效果,教师必须改进实施手段。结合高职C语言教学目标和实际岗位群的需求,理论教学坚持知识必需、够用的原则,将多种教学方法相结合;上机前人人动手编程,上机直接调试,综合性项目合作完成,撰写实验报告,找出问题,总结方法。

五、完善考核评价体系

采用多元化考核评价体系,过程性考核和结论性考核相结合,理论考核和实践考核相结合。合理分配各个指标的考核比重,使考核更加全面科学。其中过程性学习和实践考核占比20%,单项技能考核占比20%,项目设计技能考核25%,试卷考核35%。

六、小结

笔者分析了C语言在计算机语言中的重要地位及教学难度大等问题,结合自身C语言教学目标和自身教学实践,对提高C语言程序设计课程教学质量进行了探讨。

参考文献:

[1]孙静.C语言精品资源共享课程建设规划[J].吉林省教育学院学报,2015(1).

[2]张义.启发式教学法在C语言程序设计教学中的应用[J].电脑知识与技术,2013(19).

(作者单位:潘山,江西冶金职业技术学院机电工程系;

C语言教学的实践与思考 第4篇

关键词:课件制作,日常教学,教学内容,教学方法,教学育人

C语言程序设计是理、工科专业的一门专业基础课,几乎所有理、工科专业都开设该课程。该课程也是大学生入校后第一门与计算机编程相关的课程,不少同学不知道该怎么去学习,往往采用其他课程类似的死记硬背、多做习题或是考前“突击”等方法来学习,导致无法真正领会和进入编程世界的大门。而作为从事高校C语言教学的教师应该从激发学生的学习热情和编程兴趣入手,逐步培养学生建立良好的编程思维,养成良好的编程习惯,进而达到事半功倍的教学效果。下面就探讨一些能够激发学生学习兴趣和编程兴趣的方法和心得,供大家参考。

一、做适合自己的课件

C语言的教学课件互联网上非常多,可下载的教学资源也非常多,把网上下载的课件稍作修改就拿去授课,是非常不负责任的做法。因为不同的人有不同的想法,表达能力和表达方式也不一样;新教师和老教师的知识背景积累不一样,对知识的系统性把握不一样,对知识点的理解程度不一样,进而对知识点的讲解方式也不一样。那么自己动手制作适合自己的课件就显得尤为重要。

首先,教师通过自己动手制作课件,可以对所讲授课程的内容有一个更加清楚的理解和认识,有助于提高对课程知识点的理解深度。比方说在讲解补码这一知识点的时候,备课时任课教师除了对补码的概念和计算办法进行讲解,还应该把0、-1、255等这些特殊数据的补码跟大家进行讲解提高学生对该知识点的理解。其次,自己制作的课件印象深刻,对每一张幻灯片的内容都非常熟悉,容易引起学生听课的兴奋点,增加课堂互动效果。第三,使用自己制作的课件有利于高效组织课堂教学,充分利用课堂时间。比如,授课过程中教师可以根据学生的反应及时判断所讲授的知识点学生是否理解,如果多数学生一脸茫然,就应该对刚讲述的知识点进行重复,此时如果课件了然于胸,那么对于讲课节奏的把握和时间的把控会更加游刃有余。

二、不断提高教学水平

C语言程序设计是一门实践操作性很强的课程,任课教师在上课的时候不仅要使用PPT对课程内容的知识点作讲解,还要用VC6.0等软件进行程序的演示和调试。那么对例程的选取就显得尤为重要了,既要能够通过该例程讲授要说明的知识点,同时也要兼顾例程的趣味性和难易程度。在例程中不妨适当引入一些常见的错误,比如少输入一个分号、输入了全角字符、变量名未定义、函数未声明、实参形参类型不一致等错误。这样在进行课堂程序示例演示的时候会出现各种常见的错误提示,势必会引起学生听课时的兴趣,激起学生的好奇和求知欲。

作为C语言课程的任课教师要不断提高自身的编程能力和“纠错”能力,做个“问不倒”的老师。要做到这一点其实并不难,但需要时间来不断的积累。例如针对某个问题进行编程时,作为老师要有多种编程思路和算法,必要时可以给学生进行讲解和比对,引导学生养成良好的编程习惯和逻辑思维。此外,作为任课教师要有很强的阅读、分析程序能力,要能够理解某些学生新奇的编程思路,并给以引导或是纠正。例如在进行上机实验辅导的时候,作为指导教师要能够迅速看懂学生编写的程序,并能够快速找到存在的问题。做到这一点一方面可以节省时间用以辅导更多的学生,另一方面无形中也增加了学生对老师的信任和佩服。

三、注重教学细节

在日常的教学过程中有许多需要注意的细节,这些细节虽然是小问题,但处理好了可以大大提高学生的学习兴趣,调动学生学习的主观能动性。

1.认真批改作业,作业中的问题课堂要讲。批改作业十分花费时间,但如果任课老师认真批改每一份作业,找出作业中的问题,给出中肯的评价,或是写一些鼓励性的话语,无疑能够促使学生认真做作业,通过批改作业发现学生在阶段学习中存在的问题尤其是共性问题,做好问题的记录,一定要在作业发回学生时的课堂上给学生集中进行讲解,列举学生作业中出现的错误,然后在学生的笑声或沉思中改正错误,这样要比授课时的直接讲解让学生印象更为深刻。

2.课堂上要把编程的思维过程讲出来。许多担任C语言教学的任课教师在授课的时候往往会忽略了这一点,但这一点对刚接触编程的学生来讲至关重要。编程的思维过程其实就是把用人类语言描述的问题变成用计算机语言去表述的思维过程。例如:编程“求三个数中最大数和最小数的差值”,在编写该程序时首先要思考如何定义变量,包括定义几个变量、变量类型是什么以及变量如何初始化;然后考虑如何输入输出数据,包括scanf()和printf()语句的使用问题;最后来讨论数据处理的过程,包括求最大值、最小值以及两者的差值。老师在讲解程序时只要把这个思维过程讲清楚,就给了学生一把钥匙,一把通往编程世界大门的钥匙。

3.注重相关课程知识链接,不要纠结于一些“知识死角”。C语言是工具,它服务于后续部分专业课程的学习。作为任课教师要了解所教专业培养方案中的后续课程有哪些,哪些课程会用到编程,哪些课程会用到编程的思想,哪些课程会跟C语言的哪些章节或是知识点相联系,在授课时加以说明和拓展,势必会提高学生的学习兴趣,提升教学效果。此外,C语言作为编程工具有它自身的结构和特点,作为非计算机专业的学生没必要过分纠结于一些“知识死角”,比如printf()函数输出实型数据时,有效的7位数字后面的数据是怎么来的等。这些“知识死角”在实际编程应用过程中基本不会遇到,对后续课程的学习又没有任何影响,对于非计算机专业完全可以直接告诉学生,C语言的编译器就是这么执行的,接受它即可。

四、“点滴”育人

教书和育人自古以来就是同时进行相辅相成的,作为教师只传授知识不注重品德培养,那培养出来的学生知识技能水平越高,潜在的危害也越大。因此,作为大学的任课教师,应该在授课过程中潜移默化的培养学生高尚的道德情操,做到“点滴”育人。

1.用时事正确引导学生。互联网时代的来临和手机的飞速发展使每个学生都成了新闻媒体传播的神经末稍,每天的各种头条充斥着手机屏幕,作为大学的任课教师在上课时,适当的花上一两分钟点评一下时下热点新闻是非常必要的。这样做既能调节一下课堂气氛,让打瞌睡的同学振奋一下,也能起到弘扬社会主义价值观,给学生传播正能量的作用,同时也提高了学生到教室听课的积极性,增加了学习兴趣。

2.用事例教育学生。任课教师随着工作年限的延长,会经历或是见证许多曾经发生在学生中的事情,这些发生在身边的案例也是教育和引导学生的素材。通过这些曾经发生在身边的事例引导学生积极向上,树立正确的人生观价值观;同时也告诉学生要珍惜时间,爱惜生命,莫虚度青春。将这些事例穿插在整个课程进行的始终,既能在潜移默化中引导学生,无形中也增加了课堂的趣味性,提高了学生听课的积极性。

3.跟学生算了“两笔账”。一笔账是金钱账,先让学生算算四年一共要交多少学费,再看看他们专业毕业要求拿多少学分,而每个学分又对应着固定的学时,然后一除就得到每个学时花掉多少钱。以河南理工大学为例,每个学时算下来折合5块多钱,而大学一般采用的是大课,一次课是2学时,于是就算出了学生每翘一次课要浪费家人10元钱,而旷一次上机课要比去网吧贵得多,这还没有加上学生住宿费和生活费。另一笔账是时间账,每个专业毕业要求的学分知道了,每个学分对应的学时也知道了,可以求出拿到这些学分一共要听多长时间课。仍以河南理工大学为例,算下来四年大学1460个日日夜夜用来听课的时间加起来不到100天。算出来的数据会给学生非常大的触动,给他们算这样两笔账,其实也是为了激励学生好好学习,不要旷课,不要浪费青春,也是以“育人”为目的。

4.课间也可以精彩。大学的课间学生除了上个厕所起来活动下基本上都会待在教室里,作为任课教师可以充分利用下这十分钟,也能达到非常好的育人效果。现在的大学教室大多都是多媒体教室,任课教师在课间给学生播一些音乐、视频、图片或者网页。播放这些内容时,应当是有所甄选的。网上的各类媒体资源海量的,主张和见解也是多角度的甚至反面,这就要求大学教师在课堂从中甄选一些趣味的、知识性的、有创意有寓意的短片,素材以充满欢乐和正能量的视频为主,当播完有寓意的短片时可以适当跟学生互动一下,既增加了师生课间的交流沟通,也提高了学习兴趣,同时也育人于无形。

参考文献

[1]黄宇.C语言教学中的几个常见问题[J].计算机教育,2009,(10).

C语言教学实践论文 第5篇

【摘 要】项目教学法作为一种优秀的教学方法,在职业教育领域有着广泛的应用前景。本文通过对C语言教学的特点与难点进行分析,并结合自己的工作实践,对C语言教学中如何运用好项目教学法进行了深入的实践与研究。【关键词】项目教学法 C语言 引言

目前,国内高职院校通常都将C语言作为计算机相关专业学习程序设计的基础性语言,虽然,作为一个优秀的程序设计语言,C语言几乎可以用于任何软件的开发,被认为是最受程序员欢迎的语言,但是,在实际的教学过程中,很多教师往往只注重语法等基本知识的讲解,没有体现出程序的整体概念和软件工程思想,使得很多学生在学完这门课程之后,对程序设计没有一个完整的认识,更谈不进行实际的软件工程项目开发,理论与实践脱节。如何解决程序设计语言教学中普遍存在的教学与实践脱节的问题,让学生对程序设计有一个完整的认识,并建立起软件工程的思想,是值得我们每一位从事程序设计语言教学的教师去认真研究的课题。项目教学法简介 2.1 什么是项目教学法

项目教学法,是师生通过共同实施一个完整的项目工作而进行的教学活动,其目的是在课堂教学中把理论与实践有机地结合起来,充分发掘学生的创造潜能,提高学生解决实际问题的综合能力[1]。

项目教学法的教学过程,一般分为五个阶段,即下达任务、计划制定、项目实施、效果展示、项目评价。教师可以根据实际情况将每一个项目分成若干个课题,每一个课题可以作为一个教学小单元来组织教学。下达任务阶段,教师布置任务,帮助学生理解任务要求;计划制定阶段,学生一般以小组方式工作,寻找与任务相关的信息,制定学习(工作)计划;项目实施阶段,学生根据计划完成设计与模拟,做好有关文字记录;效果展示阶段,学生采取各种手段展示出任务完成的效果;项目评价阶段,学生自我评价、其他同学评价、教师评价。整个的教学过程,就是以学生动手为主,教师的作用就是一个被咨询者,回答学生遇到的各种问题,这种互动过程能极大地提高学生学习的积极性[2]。

2.2 项目教学法的特点

项目教学法是在教学过程中以项目为主线展开,把相关的知识点融入到项目的各个环节中,它具有如下特点:

1)项目过程以学生为主体。从项目计划的制定、项目的实施到项目的验收与评估都是以学生作为主体,极大地调动了学生学习的积极性,学生通过完成与专业相关的具体工作任务,培养了学生分析问题和解决问题的能力,从而提高了学生的专业能力。

1.精心设计软件项目。项目教学法的关键,是设计和制定一个合适的软件项目,把相关的知识点融入到项目的各个环节中,该软件项目应该是来自企业的真实项目,同时,为满足教学的要求,可对项目进行必要的修改和分解,使其具有适当的难度和规模,确保学生在项目实施的过程中能有效地运用新学习的知识和技能,并最终完成作品。

2.构建与实际工作环境相似的教学环境。按照真实性学习理论,以来源于企业的项目为载体组织项目课程,同时,还应构建与实际工作环境相似的教学环境,按照实际软件开发过程中的分组协作模式进行教学,使学生了解真实的企业工作过程。

3.进行必要的解释与引导。虽然项目教学法提倡以学生为主体,由学生自主完成项目,但教师在下达任务之后还必须在适当的时机介入学生的项目活动,对新的知识进行必要的讲解,并引导学生将新知识运用到项目中,以达到教学目的。

4.给予恰当的评价与鼓励。按照鼓励教学的理论,适当的鼓励有助于提高学生的学习积极性,激发学生的创造潜能。教师在对学生的作品进行评价时应尽可能地发现作品中的闪光点,并鼓励学继续努力、不断完善,从而增强学生的自信心,提高学习的积极性。项目教学法的分析与研究 4.1 教学效果分析

经过我们的教学实践发现,采用项目教学法进行C语言教学的班级有以下显著的变化: 1)学习氛围发生明显的变化。传统模式教学的班级课堂上,学生死气沉沉,大多数学生在睡觉或看其它书籍,只有少数学生在听课,而采用项目教学法的班级,绝大部分的学生都积极地参与到项目中来,并能主动地承担项目中的任务,查找资料,或向老师咨询解决问题的方法,而这种学习氛围的变化还带动了其它课程的学习积极性,整体班风、学风明显进步。

2)学习能力得到提高。按照终生学习的理论,学习能力的大小将决定其最终取得的成就。经过项目教学法锻炼的学生,往往更容易找到问题的关键,并学会通过各种渠道去探索思考解决问题的方法,而不是一味地依靠老师,在项目过程中提高了学习的能力,这对学生今后的发展非常重要。

3)团队意识普遍增强。项目的开展过程就是一个团队协作的过程,这种长期的团队协作共同完成项目的经历,使学生真正体会到团队协作的优势,并最终形成团队意识,这种团队意识不仅表现在C语言的学习过程中,并被带到了运动会、艺术节等各种集体活动中。

4)学习效果明显不同。虽然,从学生期末考试的成绩上看不出这种学习效果有什么明显的提高,但是,在我的后续课程《软件工程》中发现,经过了项目教学法学习的学生,非常容易接受软件工程的思想,能将它与之前学过的C语言联系起来,并运用软件工程的方法完成软件的开发,而以往的学生要理解软件工程则要困难的多,并且很多学生直到毕业也不知道如何开发一个完整的软件。

C语言教学实践论文 第6篇

关键词 C语言 教学 实践 输入 安全性

中图分类号:G64 文献标识码:A

0背景

当前计算机系统安全性问题受到了空前的重视,重要原因是互联网的广泛应用使不知身在何处的人都可能把信息送到我们的计算机里去。随着近年移动互联网、物联网技术的飞速发展,系统安全、信息安全等问题又面临了新的挑战。归根溯源,目前广泛使用的系统和应用软件中存在大量安全性缺陷,计算机基础教学中缺乏对学习者在安全性方面知识和规范的教育可能难辞其咎。

我们希望从学生开始学习程序设计时就特别关注程序安全性问题,在教学中不断出现对安全性问题的讨论,提高学生的编写健壮性好、安全性高的程序的意识和能力。

1正确与可靠

我们要求学生编写正确的程序,这是C语言教学最基本的要求。但什么是正确的程序呢?针对一个具体问题写出的一段程序或是一个函数的正确与否,可以设法给出严格的定义,这种定义可以是一个具有数学意义的严格性定义,程序理论研究者在这方面已经做了很多工作。本文并不讨论严格的定义,主要借助以下直观观察:(1)一个C函数从参数计算出返回值的过程,即从输入到输出。(2)一个与外部交互的程序从输入的数据计算出输出数据的过程。

但是,函数和程序通常不是对所有输入都能计算出输出的。例如求平方根的函数,它只能对非负的double类型的数值计算出结果。又如,C编译程序只能对满足C语言语法的字符串生成目标代码。参考上述情况,对程序的正确性可以有如下认识:(1)一个C函数对满足要求的参数计算出正确的返回值。(2)一个与外部交互的程序,对满足要求的输入数据都能计算出正确的输出。

2遇到不正确输入时的行为

考虑这样的情况:如果写了一个程序,该程序对形式合适的数据都能正确的计算并输出其平均值,这个程序完成了所需工作,那么可以认为该程序是正确的。现在假设输入的数据有错,例如文件里出现了不能转换为数值的字符或字符序列,这时程序已不能“正常”完成工作了,那么这个程序可能出现的行为有:

(1)报告被处理数据有错,输出正常输入数据的平均值后结束;

(2)报告数据有错,丢掉非数字字符后继续处理,直至读入所有数据并输出得到正确数据的平均值后结束;

(3)报告数据有错后立即结束;

(4)没有任何报告,产生输出后结束;

(5)不产生任何输出就立即结束;

(6)陷入无限循环,既不报告数据有错误也不结束;

(7)进入不明状态,胡乱修改内存甚至破坏其他正在运行的程序,或破坏计算机内存或外存里的数据后结束或不结束。

对用户而言,前三种情况比较容易接受。第4种情况容易给人造成假象和误解。第5、6两种情况会让人感到莫名其妙。最后的情况则非常可怕。实际程序中常常会遇到不合需要的输入,任何实用的程序,都必须考虑对错误输入的恰当处理。设计程序时要确定恰当的原则并始终如一的贯彻。处理的原则可能与应用有关,但也有一般性的原则。例如:(1)保证任何错误输入不破坏本程序自身,不将程序带入无法预知的状态。对上例,就是避免最后两种情况的产生。(2)保证程序对任何输入都有合理反应,必要时给用户提供适当的报告。上例中的前三种处理方式都有报告。(3)尽可能恢复到能继续工作的状态。上例中的第2种情况。

可见,设计和实现交互式程序时,必须合理处置错误输入。不但要使程序保证对正确输入能正确工作,还需要保证它遇到不正确输入时具有可保证的合理行为。没有这方面保证的程序或系统是有问题的。

3输入与安全性

程序安全性的一个大问题就是程序输入的处理。第一,输入是不受编写程序的人控制的;第二,已经写好的程序可能遇到各种各样不满足需要的输入;第三,在遇到不满足需要的输入时应该如何处理,常常出现很难权衡的设计选择。

合理地处理不合要求的输入,第一个条件是检查输入。要帮助学生明白这样几点:第一,从理论上说,程序的每个输入都应该仔细检查,确定其是否满足程序的需要。第二,只有满足需要的输入才能送给后续处理阶段。第三,要了解处理不正确输入时的各方面考虑。

C语言标准函数库的输入函数的输入机制本身就是有安全性缺陷的。例如,gets函数没有输入长度限制,因此完全不应该使用而应该用fgets函数来代替;又如,scanf输入函数的%s转换描述不安全,使用时必须加上域长度限制,如%256s等。在使用C语言的输入函数时,应该检查其返回值,了解输入工作完成的情况,理解如何在输入未能正常完成的情况并且做出合理的处理。

目前讨论较多的输入问题有两个:(1)缓冲区溢出:通过馈入超长字符序列的方式造成程序的输入缓冲区溢出,从而将某些信息写入系统内存中不应使用的位置,藉此造成进一步破坏的可能性。(2)整数溢出:输入的整数有时不是简单地作为程序里的数据,而是用于做其他事情。例如确定内存分配的大小,非合法范围的整数就可能导致系统垮台,或者导致外部取得对程序的控制。

4结语

由于C语言不做运行时检查,因此可能导致程序运行时出现的错误没有报告,典型的情况有:数组越界访问、空指针或不合法指针的间接访问、联合变量的不正确使用等等。在教学的过程中,这些问题都值得向学生提出并加以讨论。每个程序设计的学习者,都可能对未来计算机系统的安全运行和社会安全产生影响,因此,作为C语言教学工作的承担者对此负有重大责任。

高校C语言教学的探索和实践 第7篇

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

2 现行教学中存在的问题

(1) 学生学习目的不明确, 没有学习兴趣。很多学生认为这门课就是介绍关于C语言本身的一些语法规则, 不知道它究竟对以后的学习和工作有什么用处, 所以学生不愿学。有的学生不了解C语言是面向对象语言的基础, 总是想直接学习当前最流行的—些开发语言, 如JAVA和C#等。因此对学习C语言的兴趣不高。而且很多学生在学习时不能灵活掌握要点, 而去死记硬背, 因而产生枯燥无味的感觉, 进而产生厌学情绪, 这样的学习结果一定是不理想的。

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

(3) 学生对计算机基础的学习不深入,

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

(4) 学生在学习中处于被动的接受知识的地位, 没有机会主动参与到学习中来, 导致学习

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

3 探索新的教学方法

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

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

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

(3) 重点分析程序设计过程, 培养学生良好的编程习惯, 熟练掌握调试工具, 逐步提高学生编程能力。很多学生认为, 进行程序设计就是用计算机语言编写源代码, 这其实是一个认识的误区, 编写源代码仅仅是完成了程序的编码, 而程序设计从问题分析就开始了, 它包括分析问题、选择算法、绘制流程图、编写源代码、调试并测试程序, 直到取得正确结果这样一个完整的过程。其中绘制流程图能使程序员在编程时思路清晰, 减少编程错误。利用流程图来分析、查找、解决程序设计中的问题能够一目了然。在C语言程序设计教学过程中, 即使对简单的程序设计的讲解也严格按照程序设计的过程一步步地分析和引导, 培养学生良好的编程习惯。而熟练掌握调试工具能够使学生提高发现错误和修改错误的能力。

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

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

(6) 改革考核方式, 促进学生实践能力的提高。以往的C语言教学考核是以传统的闭卷考试为主, 这不利于培养学生上机实践的积极性。笔者在教学实践中, 加大了平时上机实践教学考核的比重, 并将期末的闭卷笔试改为在线上机考试。这些措施对于提高学生上机实践的积极性, 提高学生的动手能力起到了明显的作用。

4 结语

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

摘要:C语言程序设计是高校计算机及其他工科专业开设的一门非常重要的计算机课程, 但学生普遍反映难学、难懂。学校往往在教学上投入很多, 却收效甚微。本文从学校教学和学生学习两个方面出发, 分析C语言教学过程中现存的问题, 通过多年的教学经验, 对教学方式和方法进行总结, 试图探索出一种符合现代人才培养需求的教学模式。

关键词:C语言,程序设计,实践教学

参考文献

[1]谭浩强, 张基温.C语言程序设计教程 (第3版) [M].北京:高等教育出版社, 2006.

[2]靖国平.重构知识教学:一种交往价值的走向[J].高等教育研究.2002 (4) :79-93.

[3]张震.论课堂教学的信息沟通与教学效果的提高[J].山东师大学报.2008 (3) :66-67.

C语言教学模式的改革实践 第8篇

1、课程教学模式的演变

C语言课程开设五年来, 主要的教学模式有二种, 一种是传统的应试教学模式, 即按照江苏省等级考试大纲的要求组织教学, 该模式一般分两学期实施。每学期4学时, 总学时120学时, 选定江苏省登记考试专用教材教学。

第二种是分段教学法, 即把C语言课程分为初级、中级和高级三段内容, 低级和中级以C语言传统教材内容为主, 以全国计算机等级考试二级C语言考试为目标, 高级部分通过专业选修形式, 通过实际案例丰富提高学生的编程能力。该模式一般分三学期实施。每学期4学时, 总学时180学时, 选定谭浩强老师的教材教学。

这两种教学模式的实施都由课程组教师协作完成。根据全省计算机等级考试公布的成绩, 与同类著名的设置了C语言课程并参加考级的兄弟院校相比, 我们的通过率情况与他们相近。从这个意义上讲, 我们的课程教学水平已经达到省内高职院校的先进水平。

尽管如此, 我们也清醒地认识到该课程的教学不理想的现状, 我们尝试去发现症结所在, 探索解决的策略和方法。为此我们先后举行了课程组全体教师专项课程研讨、学生座谈会、实际现场在线测试和调查等, 发现囿于考级所限, 课程教学设计实施时与考级相关联, 考级与能否毕业再关联, 所以课程的两大教学目标在具体实施时就浓缩为过级一个目标。重语法、轻算法, 理论性强、趣味性弱, 不能因材施教, 学生的学习积极性不高, 实际教学效果并不理想, 即通过该课程教学提高学生编程技能的目标没能很好实现。学生学会了应试, 编程的思想、方法等计算机语言的精髓掌握的偏少, 与高职课程的目标存在偏差, 课程教学模式与国家职教的课程教学模式、要求、方向等不吻合。

基于这个不乐观的教学现状, 我们不得不对C语言到底该如何定位、什么样的模式才适合我们的学生、什么样的教学方法才能让学生学好等等问题进行思考和研讨。在综合考虑了课程自身的特点, 我系文理兼收的学生素质和现状, 课程的定位不应是考级而应是提高技能, 教师的责任心和教学水平等因素的基础上, 本着“以人为本, 重在兴趣, 分层教学”的思想, 我们制定了面向编程技能的“1+1+1”课程教学新模式。

该模式设想将C语言课程仍旧分为三个阶段, 第一阶段采用比较快的速度介绍C语言的基本内容, 标准课时为60, 一学期完成, 职业知识必修课程。这阶段不追求学生牢固掌握语法, 摒弃要求学生必须掌握语法的教学方式, 考试采用开卷方式。

第二阶段采用案例式教学方法, 标准课时数为60, 一学期完成, 职业知识选修课程。将课程组织为单元式, 每个单元为4~6课时, 包括讲解和上机实验。

第三阶段采用案例/项目式教学方法, 标准课时数为48, 一学期完成 (或2周设计) , 职业拓展选修课程。

2、“1+1+1”课程教学模式的实施策略和保障

1、教师本人要作为“以人为本, 分层教学”的实践践行者

实施过程中要贯彻“以人为本, 因材施教”的教学理念。由于受工业化大生产和传统教学模式、习惯和继承的影响, 我们目前的高等职业教育具有显著的“产品生产”特征。而真正的学习过程并不应该是物的操作流程, 而是有情感、动机、兴趣等因素的可以理解、交互与共享的文化过程。我们将众多的因素加以分析, 得出不同的解决方案 (而不是建立一个单一的模式, 不论时间、地点、对象, 在一段时期进行下去) , 按照学习发生时的实际需要, 进行选取和组合, 逐步实现个别化, 突破人才培养的批发模式。高职教育是一种以人为本的高等教育, 在本课程教学过程中, 要充分考虑参与者的内部情感、知识准备、能力可能性与环境通过有形或无形的媒介进行交互的作用等影响, 以客观素质条件为本, 分层次教学。

2、教学内容选择

课程教学内容的选择是新教学模式的重要方面, 由于目前没有与该模式相配套的教材, 所以课程组将根据该模式组织教材内容。

第一阶段主要包括介绍语言基础内容, 包括语言语法基础、程序控制结构、数据类型、指针、函数、文件以及它们的应用等。该阶段难点较为集中, 跨度大;概念多, 分析少;语言语法生硬, 较难理解, 适用性不强。在课堂教学过程中, 对教学内容重新进行了归纳, 将难点再次分散, 达到循序渐进。

第二阶段采用案例式教学方法, 如小游戏、曲谱等各种趣味程序。每次教案一般采用三个案例, 其中第一个案例进行精讲, 第二个案例给原代码, 让学生自己分析 (或者采用改错、填空等方式) , 要求学生能够掌握阅读和分析原代码的能力。第三个案例不提供任何原代码, 教师尽量不提供分析, 要求学生根据题意自己设计出原代码。

该阶段对教师的要求较高。要求教师精心收集和设计案例, 对案例仔细归类和排队, 具有一定的层次性、实用性, 案例难易要有梯度, 由简到难。本阶段的案例可以借鉴接口电路的实验和机器人的实验, 使学生更加能够体会到学习C语言的意义, 提高学习兴趣。

第三阶段主要使用案例/项目内容教学, 所选案例或项目要具有一定技术难度或算法复杂度, 总体求要要高于中级, 如选择一个实际的图书管理系统、财务管理系统等作为实际教学的内容。

3、教学方法运用

C语言课程教学要获得好的教学效果除了要精心设计内容、安排计划等认真备课外, 还要讲究相应的教学方法, 笔者在几年的C语言课程教学中采用了一些行之有效的方法。这些方法主要有:

问题探究法该法在C语言教学中是一种相当有用的教学方法。这种教学法能够充分发挥学生的思维, 突出学生的主体作用, 能有效地培养学生的分析问题与解决问题的能力。

归纳法C语言有很多的定义、概念、语法规则, 它们使用灵活、难以记忆, 也特别容易出错。如果能够引导学生进行归纳, 将会起到事半功倍的效果。C语言的定义、概念、语法规则有许多相似的地方, 例如:printf () 与scanf () 函数, 有很多语法规则是一样的, 对它们进行归纳之后, 学生只要记住其中一个, 另一个自然就会使用了。

讨论法在C语言教学过程中, 充分发挥学生的积极性与主动性是非常重要的一环。笔者针对这门课程的特点与学生的兴趣, 课前给学生布置了几个专题, 让学生利用课余时间去思考、收集资料, 并在课堂上组织学生发言和讨论。这种教学法不仅可以让学生获得许多课外知识, 同时也促进教学内容的改革, 而且也有利于充分挖掘学生的学习潜力。

4、教学过程的把握

分层教学实施的策略把握针对C语言的学习难度大, 不是所有学生都适合学习C语言, 特别面对目前文理科混杂的招生现状。第一阶段对所有计算机类专业学生开设。通过第一阶段的学习, 如果学生发现自己不适合学习C语言, 可以不再进入第二阶段的学习, 把精力投入到其他更加能够适合自己的其他课程上去。从第二阶段开始, 本着自愿选修原则, 遴选出对C语言感兴趣, 程序感和逻辑思维能力较强的学生, 重点进行培养。对于那些有志于程序员方向的学生在个人自愿和兴趣基础上继续进入第三阶段的学习和深造, 这个阶段一般设置在相应的软件技术课程如数据结构、软件工程等都已经结束, 具备小型软件设计的基础, 可以开展以项目为主导内容的教学。

教学过程细节设计的把握在教学过程尤其是第一阶段, 内容多杂、抽象, 如果不借助一些非常规手段, 常常唤起初学者的厌学情绪。为此需要教师对教学内容重新进行了归纳, 将难点再次分散, 以缩小台阶, 达到循序渐进。例如, 语言的数据类型、运算符、表达式种类繁多, 如连续讲授, 学生感觉规则化教条化, 难度大, 于是笔者就刻意将算术型的数据类型、运算符以及相关的表达式先介绍。紧接着又教学生编写简单的、实用的C程序设计, 然后引入基本输入、输出函数就顺理成章了。这样一来台阶小了, 学生的信心也增加许多, 学习积极性很快就被提高起来。做每次实验前教师一定要把需要学生完成的任务准备充分, 尽量让每次课学生都能得到一个圆满的结果, 不断增强学生的编程成就感, 打消对编制程序的畏惧心理。

5、考试开放性探索

课程考试改革是课程改革的重要一环, 为了贯彻课程教学目标, 该课程的考试将摒弃那种“划齐为一”的考试模式。课程第一阶段考试使用机考开卷方式, 基于全国通用的计算机等级考试平台 (100套试卷) , 每个学生通过随机抽卷生成自己的考试试卷, 该题库主要有程序阅读、程序填充、程序改错和程序编制四类题型组成。第二阶段使用学生协作设计方式组织, 即把学生随机成若干小组, 按照既定的问题在规定时间内 (如2天、1周) 完成算法和程序设计, 这个阶段考试得主要特点是开卷, 学生可以参考教材、图书馆技术资料, 甚至各类网络技术代码和其他资料。第三阶段的考试内容主要包括算法和代码优化, 不同算法的优劣比较等。这个阶段的考试强调开放和独立完成, 与第二阶段类似学生可以使用所有资源。

6、课程资源开放性建设

经过多年的课程建设和实践, 形成了一些积累和沉淀, 为了扩大课程的影响, 打破课程局限于课堂和实验室的现状, 提高建设示范作用, 让社会共享课程建设的经验和成果, 我们在课程的开放性方面做了一些有益的探索, 这些内容包括:建立了内容资源丰富、针对性强、与课程教学紧密相关的课程网站;课程的第二课堂教学逐渐成为学生欢迎的项目之一, 课程组成员亲自开设基于C语言的第二课堂项目。编写了实用、好用的编程和考级应试指导和实验指导。

3、结论

C语言是我系重要的一门面向考级和编程技能培养的专业基础课程, 经过2轮的改革和探索, 课程的教学模式和方法已经逐渐成型。但为了适应高职课程改革和发展的新形势, 按照“以人为本, 重在兴趣, 分层教学”的新理念, 和“按照岗位设课程”的指导思想, 兼顾学生个性和兴趣, 在尊重学生个体的职业趋向和能力的前提下, 我们又提出了“1+1+1”的新模式。本文对该模式的思路、方法实施策略和保障等方面进行了详尽的论述和说明, 不仅包含一些模式内涵等粗线条的东西, 也包括一些课程教学中一些细节性的内容。同时, 根据我们的经验, 本教学模式也可稍加修改就可以应用到VB、JAVA等课程的教学中。

参考文献

[1]吕鑫祥.高职课程改革的若干理论分析[J].中国大学教学.2002, 10:31-33.

[2]教育部.关于全面提高高等职业教育教学质量的若干意见[Z], 教育部教高[2006]16号, 2006.

C语言课程教学与实践方法的探讨 第9篇

关键词:C++语言,课程教学,实践方法,探讨

1 C和C++的比较

C语言是一种面向过程的程序设计语言。它既具有高级语言的特性,又具有低级语言的特性,它能实现汇编语言的某些功能,如:直接对硬件进行操作。程序的执行是流水线似的,在一个模块执行完前,人们不能干别的事,也无法动态地改变程序的执行方向,这和人们日常处理事物的方式是不一致的,对人而言是希望发生一件事就处理一件事,也就是说,不能面向过程,而应是面向具体的应用功能,也就是对象(object)。

C++语言既支持面向过程的程序设计语言,也支持面向对象的程序设计语言。其方法就是软件的集成化,如同硬件的集成电路一样,产生一些通用的、封闭紧密的功能模块,称之为软件集成块,它与具体应用无关,但能相互组合,完成具体的应用功能,同时又能重复使用。对使用者来说,只关心它的接口(输入量、输出量)及能实现的功能,至于如何实现的,那是它内部的事,使用者完全不用操心,

2 C语言教学存在的问题

(1)许多学生还习惯于应试教育下教与学的模式,学习上有依赖思想,缺乏主动学习的精神。对课程学习中将遇到的困难心理准备不足,一旦遇到困难厌学、逃课现象严重,有的甚至轻言放弃。

(2)C是从面向过程的B语言发展而来的,并非是纯面向对象的语言,C语言既支持面向过程的程序设计,也支持面向对象的程序设计。面向过程和面向对象的教学分离,不利于学生掌握先进的面向对象程序设计方法。

(3)面向过程程序设计和面向对象程序设计有什么区别呢?面向对象程序设计认为现实世界所有事物都是由对象组成的,对象是由数据和数据上的操作构成的统一体。类是具有相同数据和相同操作的一组对象的抽象。通过继承和多态,实现了代码的可重用性及扩展性。程序中对象之间能够通过消息互相联系。这样,面向对象的软件开发方法,使开发软件的方法和过程尽可能接近人们认识世界解决问题的方法和过程,从而使描述问题的问题空间与解决问题的解决空间在结构上尽可能一致。

(4)如何处理C教学以课堂纯理论讲授为主的教学方法和以理论与实践相结合的教学方式相结合的教学方法的探讨。

(5)如何处理语法规则和实际编程之间的关系,使学生迅速掌握基本的语法规则和基本的编程方法,并能熟练地应用于编程实际中。

(6)如何提高课堂教学效果,活跃课堂气氛,激发学生学习的积极性和主动性,使学生能在课堂上消化吸收教师所讲授的知识。

3 C++教学注意事项

(1)注意培养学生对学习内容进行总结、归纳,培养学生从全局理解问题的能力。

(2)培养学生阅读程序能力及程序调试能力,以利于学生模仿编程;其次重点培养学生分析、理解问题的能力,建立面向对象程序设计的思想、掌握面向对象程序设计的基本方法。

(3)培养学生对C++语言的兴趣,逐渐培养学生进行程序设计的正确思维模式。掌握C++中类和继承的概念:类描述了一组有相同特性(数据元素)和相同形为(函数)的对象,类实际上就是数据类型。继承表示了基本类型和派生类型之间的相似性。一个基本类型具有所有由它派生出来的类型所共有的特性和行为。

(4)在教学过程中,作为教师应尽可能地增加与学生交流、沟通的机会,让学生将学习中遇到的问题及时提出来,以了解学生对课程内容的掌握情况。

4 教学指导思想

首先应淡化语法、强调算法,注意介绍有关独立于任何特定编程语言的算法要领和结构,即突出程序设计而不是语法。

第二,力图把面向对象与面向过程有机地结合起来。面向过程突出了算法,学生易接受,C++不应该不讲面向过程的部分。但必须尽早引入面向对象的概念。学生刚进入编程能力培养的实质阶段,学习的就是面向对象的程序设计。这样,大学生才能顺利接受面向对象思想。

第三,程序设计是一门实践性很强的课程,仅在基础教学中“精讲多练”还是不够的,实践教学与基础教学应各有侧重,互为补充。

5 教学方法的改进和优化

(1)明确教学目标,激发学生求知欲望

通过对教学特点和学生认知能力的分析,本课程不仅仅要教会学生C++的语法知识,更要通过课程教学,培养学生抽象思维和逻辑推理能力,掌握程序设计的思想和方法。教学的重点是培养学生掌握程序设计的思路和方法。

(2)做好教学策略设计

C++教学最简单也是最直接的组织方法是:强调算法,整个教学过程突出程序设计的方法和技术(算法),注重对学生的逻辑思维训练和程序设计能力的提高,立足于让学生掌握实实在在的应用技能。

(3)优化教学过程管理

根据学生的反馈及时调控教学进度:在教学的全过程(课前、课间、课后),教师要始终关注学生的学习态度(出勤情况、上课状态、复习情况等)、学习方法(是否记笔记、是否及时复习)和学习效果(是否听得懂、是否能深刻理解重点难点、是否能进行一般问题的程序设计)等,并根据学生的实际情况及时调整教学进度。

注重师生互动:调动学生自主学习的积极性,对学生接受感到困难的章节(如指针、函数等),实行课堂讨论式;先给出思路(写算法),再根据算法编写程序,最后上机进行调试,形成师生互动的良好的教学氛围。

(4)适时提出问题,激发学生创造思维

问题是最好的老师,是学生学习的指导者。因此教师在教学过程中,应当有意设置一些疑难问题,引导学生在问题解决中学习。例如,在讲数组一章,先设置问题“编程计算10名学生的数学平均分”。根据以前所学,学生会想到需要10个类型相同的变量来存放这10个学生的数学分;接着进一步提出“要计算50名学生的数学平均分”,再深入一步提出“计算100名学生的数学平均分”。这时再引出数组的概念、分析数组的性质时,学生不仅能容易了解数组的性质,而且还能明确在什么情况下使用数组类型。这种方法有助于学生了解程序设计的思路和方法,容易把握问题全局,调动了学生学习的积极性和主动性,直到事半功倍的效果。

(5)采用渐进的学习方式

C++是对C的扩充,而不是新的方法和新的程序设计模型。学生在学习要理解这些性能,逐渐应用并继续创建的有用的代码。

(6)“库”事半功倍

创建程序的最快方法是使用已经写好的代码:库。C++的主要目标是让程序设计人员能更容易地使用库,这是通过将库转换为新数据(类)来完成的。引入一个库,就是向该语言增加一个新类型。编译器负责这个库如何使用,保证适当的初始化和清除,保证函数被正确地调用,因此程序设计人员的精力可以集中在想要这个库做什么,而不是如何做。

(7)加强实践环节,重视学生能力培养

C++具有实践性很强的特点,很多内容不通过上机实验是难以理解和掌握的。本课程除了安排验证性的实验外,还让学生选择一些综合性、设计性的实验题目,以巩固理论知识,提高实践能力。

6 结语

通过一年的C++程序设计课程的教学试点,虽然C++程序设计课程在教学过程中还会遇到很多的问题。但改革后的教学方法,在保证教学大纲的同时,极大地增强了学生学习热情,扩展了学生的视野,使学生在能力和素质的提高方面取得更大的成绩。

参考文献

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

[2]廉师友.C++面向对象程序设计简明教程[M].西安:电子科技大学出版社,1998.

[3]安志远.程序设计基础--面向对象及C++实现.电子工业出版社,2002.

[4]陈晓冬.信息技术与未来教育[J].上海电教,2001,(1).

[5]谭浩强.C程序设计.第2版.清华大学出版社,2001.

[6]安志远.程序设计基础--面向对象及C++实现.高等教育出版社,2005.

[7]周叙国.C语言程序设计.天津科学技术出版社,2008.

[8]黄金象.Visual C++6.0基础与实例教程.高等教育出版社,2007.

C语言程序设计教学探索与实践 第10篇

1 教师自觉转变教学观念, 提高自身素质

纵观C语言程序设计课程的教学, 现在最典型影响面最大的教学模式就是由教师和学生构成一个教学体, 教师在讲台上自我表演, 学生充当看客或听众【1】。所谓知识也好、信息也好, 都是一个从教师到学生的单向流动。在这种以教师为主导、以教材为核心、以课堂为中心的教学模式下, 教学蜕化成为一种单纯的知识传授, 学生学习的积极性和主动性的调动, 学生创新能力和创新思维的培养, 都无从谈起。面对这样的现状和背景, 教师教学观念的转变和自身素质的提高显得尤为重要。本着对学生负责, 对学校负责的态度, 教师应在自身责任感的驱使下, 主动了解先进的教育思想和教学理念, 像教学互动性、学生主体性和知识建构性等等;认真思考大学教育的功能, 比如授人以鱼还是授人以渔;结合教学实际, 转变教学观念, 改变传统的教与学的地位, 由过去的“以教师为中心”转变为“教师主导, 以学生为主体”, 营造民主的教学氛围;改变课堂老师单向灌输、学生被动听讲的授课模式, 引入多元化的教学方法, 比如启发式, 探究式, 引导学生独立思考, 鼓励学生主动参与学习。

2 引导学生转变学习观念, 培养学生学习的主体意识

C语言程序设计课程的开设面对的多数是大学一年级的新生, 而对于刚入校的大学生来说, 受中学养成的学习习惯的影响, 学习的自主意识淡薄, 学习还习惯性地全部寄托在老师身上, 对老师的依附心理严重。同时, 面对大学里比中学多得多的自由学习时间不知如何有效地管理和支配, 对新的学习环境和新的学习生活有不同程度的不适应和困惑。面对这样一个处在比较特殊阶段的学生群体, 承担C语言程序设计课程的任课教师要有针对性对学生进行引导和管理。首先, 任课教师从一开始就让学生明确一个观点, 即C语言是学生自己学会的, 而不是老师教会的。俗话说, “师傅领进门, 修行在个人”, 尽管教师的教在教学活动中起着主导作用, 但更重要的是学生的学, 学习的主体是学生本人, 只有学生充分发挥自己学习的自觉性和主动性, 教师的教学思想才能得到很好地贯彻, 教学效果才能得到很大的提高, 整个学习活动也才会成功。其次, 强化学生的责任意识。对绝大多数学生来说, 如果单从年龄判断, 步入大学校园也往往意味着步入成年人的行列。而成年人也就意味着要对自己负完全责任了。教师在教学过程中要不断强化学生对这一点变化的认知, 让他们知道要对自己负责, 对自己的学习负责, 而不应再完全依赖教师或家长的监督。最后, 教师的指导和管理。学习观念的转变, 新的学习习惯的养成, 不是一蹴而就的事情, 需要在实际的学习活动中逐步完成。课前的预习、课堂的参与、课后的作业、实验的完成、期末的考试等是C语言教学活动不可或缺的环节, 每一个环节里需要学生完成的任务, 任课教师从一开始都给出一个明确的要求并严格按照要求去管理, 将大大有益于转变学生的学习观念, 培养学生学习的主体意识。

3 激发学生的学习兴趣, 调动学生学习的积极性

在C语言程序设计课程的教学过程中, 往往有学生反映C语言比较抽象, 课堂教学又枯燥无味, 很容易丧失学习的兴趣和热情。如何激发学生学习C语言的兴趣并始终保有这种兴趣, 也常常是教授C语言课程的老师很头疼且又不能回避的问题。“兴趣是最好的老师”, 每位教师都深知学生的学习兴趣对教学活动成功的重要性, 但C语言程序设计课程侧重思维训练的特点又决定了在这方面留给任课教师的空间是有限的。笔者在自己的教学实践中做了一些尝试。

1) 演示典型的完整的C语言应用, 培养学生的学习兴趣

学生在学习C语言程序设计课程之初, 对该门课程的学习目的和学习目标多数是模糊的, 对C语言的认识也多半是空白, 任课教师适当的引导很容易引起学生学习的兴趣和探究的欲望, 因此该门课程的开篇很重要。笔者摒弃了以往通过文字抽象地介绍C语言的产生、C语言的特点和C语言的应用的做法, 直接从演示典型的完整的C语言的应用开始。演示的程序有难有易, 涉及的范围涵盖实际生活中的应用、有趣的数学问题、图形动画、游戏等。笔者一度选择了图书管理系统、文本编辑器、学生成绩管理系统、兔子产子问题、百钱百鸡问题、图形时钟、扑克牌的自动发牌、猜数游戏、五子棋游戏等应用, 引起了学生浓厚的学习兴趣。

2) 营造轻松的学习氛围, 创造愉快的学习体验, 强化学生的学习兴趣

要引起学生对C语言一时的兴趣不是一件难事, 但要让学生在整个C语言程序设计课程的教学过程中始终抱有这样的学习兴趣就不是一件易事了。哪位任课教师做到了这一点, 他的教学活动无疑就是成功的。C语言比较抽象, 课堂教学容易枯燥无味, 是一个不争的事实。为此, 在实际的教学活动中, 选择难易适中贴近生活的问题, 比如利息的计算、持有的股票价值的计算、学生成绩的管理、募捐活动的模拟等;涉及C语言的语法特性时, 尽量使用生活化的直白的语言, 少用专业术语;课堂教学的开展过程中鼓励学生积极参与, 对学生提出的任何有意义的问题都及时地给予肯定;面对问题, 对学生做出的任何有价值的回答都及时地给予表扬, 都有助于营造轻松的学习氛围, 有助于让学生体验到成功的欢乐, 有一种成就感, 有助于强化学生学习的学习兴趣和热情。

4 践行以应用为本位的教学思路, 有选择性地采用以知识为本位的教学思路

C语言程序设计课堂教学的组织有两种思路两种模式。一种是以知识为本位的教学思路下形成的“建筑模式”【2】, 课堂教学以讲授语法为主, 先是提出语法概念, 然后解释该语法概念, 最后举例说明其应用, 强调先系统学习理论打下宽厚的理论基础, 然后再进行应用, 讲究的是理论的系统性与严密性。另一种是以应用能力为本位的教学思路下形成的“生物模式”, 课堂教学以程序设计为中心, 以编程为目的, 从应用的角度切入, 先是提出问题, 然后引导学生分析解决问题, 最后着重介绍涉及的C语言的语法特性, 强调结合应用学习必要的理论知识, 随着应用的展开, 编程难度的逐步提高, 算法和语法的学习同步趋向深入, 有利于学生能力的培养。

C语言系人工设定的具有确定内涵的概念和知识体系[3], 同时C语言程序设计又是一门实践性很强的学科。为此, 在C语言程序设计课堂教学的组织上, 笔者始终践行以应用为本位的教学思路, 同时根据课程内容的特点有选择性采用以知识为本位的教学思路, 比如C语言中的基本数据类型、运算符和表达式、文件等基本概念和语法知识, 在教学中只需把规定的内容阐述清楚, 使学生理解并接受, 同时又不破坏这些理论知识的系统性, 就适宜采用以知识为本位的教学思路。

5 根据课程内容特征, 选择灵活多样的教学方法

教学方法是在教学过程中, 教师为了实现教学目的、完成教学任务而采取的教与学相互作用的活动方式的总称。C语言程序设计课程的教学目的是使学生掌握用C语言进行程序设计的基本思想和方法, 并具有灵活应用这些思想和方法分析解决实际问题的能力。实现这一教学目的要完成的教学任务包括C语言基本语法的介绍, 结构化、模块化程序设计思想和方法的引入, 基本程序设计训练以及程序调试方法的演示等。面对这些多样的教学目标和任务, 灵活多样的教学方法的选择和恰当应用成为必须。笔者在自己的教学实践中, 结合课程内容的特点, 有选择性地应用了如下的教学方法。

1) 启发式教学, 引导学生思考, 在应用中学习。

在C语言程序设计的课堂教学中, 根据课程内容的特点, 精心设计任务或场景, 引导学生发现问题、思考问题, 使学生在启发诱导下获取知识, 解决学习中的疑难问题。比如, 在引入数组时, 笔者设计了这样一个任务, 即编写一个C语言成绩管理程序, 要求能够统计出学生C语言成绩的平均分、最高分、最低分以及各个分数段的人数 (为了说明问题的方便, 假设当前要处理的有10个学生的成绩) 。第一步, 引导学生描述出10个学生的成绩。根据之前的学习经验, 学生很容易想到用10个float类型的简单变量表示, 比如score1, score2, 、、、, score10。第二步, 为节省时间, 直接给出用这10个相互独立的简单变量实现的程序, 引导学生观察。在学生感叹程序复杂之余, 带领学生读程序, 引导学生发现, 当前的程序无论是成绩的录入、求学生成绩的最高分、最低分, 还是统计各个分数段的人数, 对每位学生成绩的处理方法都是一样的, 存在大量的相似的操作。同时提出问题, 这些相似的操作能不能用循环结构描述和实现, 让学生思考。诱导学生分析发现, 要想用循环结构描述这些相似的操作, 学生成绩的描述必须有一个统一的表示方法。适时地给出score[i]这一表示方法, 指出让i从0到9变化表示10个学生的成绩, 和学生一块用该表示形式改写之前程序的关键部分。让学生比较改写前后的两个程序, 很容易得出结论, 用score[i]描述批量数据, 方便和循环结合起来使用, 数据的处理更为有效。最后指出score[i]这一描述形式就是数组, 接下来介绍数组的定义完善改写后的程序。

函数、变量的作用域和生存周期、指针等内容都是C语言程序设计课程有一定难度的主题。这些较难的主题, 笔者采用螺旋式的讲授方法, 即先进行简要介绍, 然后在后续章节的例子中再多次涉及该主题, 由浅入深, 循序渐进, 在应用中强化。比如在介绍指针时, 设计一个任务, 输入a、b两个整数, 按照先大后小的顺序输出a、b, 要求数据的交换用自定义函数实现。学生很容易写出这样的程序。

和学生一块模拟执行该程序, 由之前的知识积累学生知道, 形参m、n和实参a、b对应的是不同的存储单元, m、n和temp是自动变量, 从变量的作用域和生存周期的角度, 容易得出一个让学生意外的结论, 该swap函数中形参m、n值的交换影响不到实参a、b。在学生诧异之余, 启发学生思考, 诱导学生尝试给出不同的解决方法。往往有学生提出定义a、b为全局变量, 诚然这不失为一种解决方法, 在鼓励学生的同时, 再次诱导学生发现问题的关键并在此基础上找解决方法。和学生一块梳理思路, 发现swap函数中形参m、n值的交换传递不到实参a、b, 一方面是因为彼此对应的是不同的存储单元, 另一方面是由于变量的作用域和生存周期的问题。学生提出的定义a、b为全局变量的解决方法显然是从后者考虑的, 现在有意识地诱导学生只从前者考虑, 让学生大胆假设在什么样的前提下形参m、n值的交换即是实参a、b值的交换。毋庸置疑, 只有当形参m、n和实参a、b对应的是相同的内存单元时。在学生给出了这一假设之后, 启发学生思考该假设能不能成立以及如何成立。和学生一块分析, 要使形参m、n和实参a、b对应的是相同的内存单元, 表面上看它们不能是相同的类型, 但实现又要求形参m、n操作的对象是实参a、b, 显然形参m、n操作的对象和实参a、b应该是相同类型, 同时形参m、n指向的是和实参a、b相同的内存单元, 学生相对容易想到形参m、n应该是指向实参a、b的指针变量, 问题由此迎刃而解。最后结合该任务的完成引导学生总结, 在主调函数和被调函数之间双向传递数据变化, 全局变量和指针变量都是不错的解决方法。

2) 注重当堂实践, 现场编程互动, 在学习中应用。

C语言程序设计是一门实践性很强的课程, 在践行以应用为本位的教学思路的过程中, 笔者不仅重视实验课这一实践环节, 更是把实践延伸到课堂教学中。在带领学生对特别设计的问题做了充分的分析之后, 引导学生当堂实践, 或者师生现场编程互动, 不仅可以调动学生学习的积极性, 更能培养学生解决实际问题的能力。

摘要:围绕着如何提高C语言程序设计课程的教学效果, 就C语言程序设计课程教学中存在的问题和现象进行分析, 从教师和学生两个方面, 提出解决问题的对策和措施方案, 倡导“教师主导, 学生为主体”的教学观念, 采用启发式教学方法。

关键词:C语言程序设计,以应用为本位,启发式教学

参考文献

[1]李克东.教育技术学研究方法[M].北京:北京师范大学出版社, 2003:132-137.

[2]熊芳敏, 许烁娜..C语言课程教学探讨[J].计算机教育, 2010 (13) :104-105.

C语言教学实践论文 第11篇

关键词:中等职业学校;C语言编程教学;编程能力培养

中图分类号:G712 文献标志码:A 文章编号:1673-9094-(2016)06C-0046-03

南宋诗人陆游在他的《冬夜读书示子聿》中写道:“纸上得来终觉浅,绝知此事要躬行。”这两句诗的意思是从书本上得到的知识终归是浅薄的,最终要想认识事物或事理的本质,还必须自己亲身的实践。作为一门实践性很强的课程《编程语言基础——c语言》着重程序设计在实践中的应用。因此,对于计算机专业的学生,仅仅在纸上写写程序是远远不够的,必须让他们把自己写的程序拿到电脑上去运行、调试,发现问题,然后再尝试解决问题,循环往复,在实践教学中培养他们的编程能力。

一、巧选题,激生趣

很多计算机教师都认为,只要是在机房上课,就有很大的随意性,所以往往不是很认真准备,有时会在课前准备两个题目,让学生上机做;有时干脆在上机的过程中随机出个题,目的就是只要让学生有事可做,不闲着就行,只要没学生问问题,就认为他们都会。表面上看,学生热热闹闹、忙忙碌碌,其实他们真正用于做题的时间并不多,很多学生都是浑水摸鱼、滥竽充数,只有少数几个学生是认真对待。

究其缘由,就是教师没有认识到上机的重要性,或者认识到了,没有在课前做充分的准备。而练习题的选取其实是首当其冲的。选得好,学生既喜欢做又提升了能力;选不好,学生既无趣又浪费了时间。那么,该如何巧选题呢?

(一)基础题+提升题的搭配套餐

上机就和上课一样,也有一个过程:从生到熟,所以刚开始上机编程时,教师应选取一些最基础的题目加深学生对c语言基础知识的理解。比如如下程序:

main( )

{float x1,x2;

double z1,z2;

float x;

double y;

x=123456.789;

y=123456.789;

printf(“x=%f”,x);

printf(“y=%f”,y);

}

选取这道题的目的就是让学生理解浮点数的“精度”和“范围”的确定,通过把这个程序输入电脑,并调试运行得出结果,学生很容易就记住了float型和double型数据的区别,而且该题没有任何难度,即使是学习能力较差的学生也很容易调试成功,所以很容易打动学生的心。

但没有挑战,就感受不到胜利的刺激。如果每次上机都是这种不费吹灰之力就可以完成的程序,时间长了,学生就会觉得索然无味,失去兴趣。这时就要适当地提升程序的难度,既要能激起学生的斗志,但又不能把学生一棍子打死。比如这道题:从键盘上输入a、b、c三个整数,按从小到大的顺序输出。选这道题的原因是刚学习过求两数之中的大者、小者的编程方法,而且已上机调试过,因此在此基础上又增加一个数,而且不是求最大或最小,而是要按一定的顺序输出,既联系了之前所学知识,又使其上升了一个梯度。在学生可以解决的范围之内,但又需要思考,调动了学生的兴趣,激发他们去探究。

(二)实用性+趣味性的完美组合

既然编程的目的是为了以后的实际应用,那么选取一些贴近生活的实用的程序就是必不可少的,因为和生活相关,学生看得到,想得出,当然也会有兴趣参与。看这道题:编程判断2020年是否为闰年?

学生看到这道题,立刻会想到以前中学学过的判断闰年的方法:能被4整除但不能被100整除或者能被400整除的年份即为闰年,接下来自然会把这个判断方法用c语言的语句和结构表示出来,一切都是顺理成章、水到渠成。

实用性的题目很多,但并不是所有的都符合学生的兴趣,如果再加些趣味性,相信学生会兴趣倍增,思维也随之开阔。如,把10元钱人民币兑换成1元、2元和5元的零钞,有多少种兑换方法?这是一道既贴合生活又很有趣的题,学生可能会立刻拿出三种面值的人民币,然后进行组合,也有可能会在大脑里进行快速地思考,然后结合学过的“百钱买百鸡”的编程方法编写该程序。

(三)题目形式的多样化

单一的题型,学生会感到腻,如果一上机就是从头到尾的编程,他们的兴趣就会锐减,所以多样化的题型更会吸引学生的眼球。教师就要多动脑子了,什么样的程序适合填空题型,什么样的程序适合改错题型,什么样的程序适合学生自己编写,什么样的程序只要学生调试,看结果。只要教师灵活选择,合理使用,相信学生定会乖乖配合,乐在其中。

二、巧搭配,促合作

上机时,虽然每个学生都有一台电脑可供使用,但这并不代表着他们是孤立的个体,相互之间不需要帮助和交流。恰恰相反,由于编程题的特殊性,他们之间更需要合作、互助,因此采取分组的学习方式是最适合不过的。

(一)组间同质,组内异质”

教师应对学生的个性、知识水平等方面有充分的了解,目的就是为了在学生合作过程中做到组内合作、组间竞争,让每个学生在合作中都能展示自我,发挥自己的特长。在充分了解之后,教师就应该以此为依据进行分组。比如,有的学生打字比较快,有的学生逻辑思维能力强,有的学生英语水平高,有的学生比较心细,合理搭配就可以集各家之所长,让他们在编程的过程中互相协作,互相鼓励,每个人都有事可做,每个人也都认为自己是不可缺少的,在合作的过程中共同学习,共同进步。

(二)明确分工,激发参与

为了达到最佳的合作效果,小组成员还应该在完成具体的任务前明确各自的分工,这个工作可由小组长来做。在具体做的过程中,每位成员应该积极参与,不偷懒,不耍滑,齐心协力,共同完成从程序的设计到编写,到运行,到调试,到获取正确结果,到最终记录的全过程。只有这样,巧妙搭配,合理分工,才能促进合作,从而使大家的编程能力都上升一个层次。

三、巧考核,提能力

C语言课程的考试,基本上是出一份试卷,学生只要动动笔即可。因此,很多学生并不重视上机,只重“纸上谈兵”,而这种思想对其编程能力的培养有百害而无一利。为了扭转学生这种不正确的想法,教师应把上机考核作为学生c语言成绩的一部分,而且考核的方式应该多种多样。

(一)竞争考核

教师把精心准备的编程题给各小组,然后开始观察各小组成员之间的合作情况:是否能全员参与,是否能齐心协力,是否能发挥各自的长处,小组长是否起到了应有的作用。而这些都将计入考核评价中;编程完成后,看哪个小组用的时间最短,并且编程的思路最清晰,用的方法最简洁,程序输入的格式最完美,有自己独到的见解,用了一种以上的方法等等,最后综合权衡,评出获胜小组,并给予一定的奖励。

(二)“小老师”考核

上机时,教师出题,给学生充分的时间思考,然后由学生自愿充当“小老师”,把编程的思想、方法一一道来,教师和其他学生根据其回答的条理性、正确性等方面为其打分,纳入考核成绩。

四、巧表扬,增信心

学生都以得到教师的表扬为荣,而在机房编程时,教师的表扬尤其重要。因为编程是一个细致的过程,来不得半点马虎,一个分号忘了,都会满盘皆输。一节课下来,完不成一个程序更是常见的现象,这就会导致学生疲乏、厌烦、急躁,如果教师的表扬或者一些鼓励性的话语适时地出现,对学生是很大的心理安慰。

学生的语法格式总是不对的时候,教师要表现出极大的耐心,和他一起查看错误提示,并适当鼓励学生:“你做得不错了,只是语法上有点错误,再找找看是哪个地方粗心了,马上就成功了,加油!”

学生不知该用哪种结构时,教师可以说:“你很不简单,能把编程的方法想得如此奇妙,老师都没想到这个方法,相信怎么用c语言的结构实现,对你来说一定不是问题,老师相信你!”

别的小组完成,而只有一个小组未完成时,教师可以说:“别着急,你们小组合作得很好,大家都能齐心协力,你看,都完成大半了,坚持到底就是胜利!”

总之,实践教学中的“四巧”策略确实可以培养学生的编程能力,改变他们对c语言的畏难情绪,让他们爱上编程。

Strategies of Developing Students' Programming Ability in Secondary Vocational C Language Practice Teaching

DONG Ping

(Xuzhou economic and Technological Development Zone Industrial School, Xuzhou 221121, Jiangsu Province)

Abstract: For secondary vocational computer professional students, C language course is the most difficult one to learn, which is reflected in programming. Therefore, cultivating the students' programming ability is particularly important, which should focus on "four skillful strategies" in practice teaching.

信管专业C语言课程实践教学探索 第12篇

根据我院情况, 信息管理与信息系统 (以下简称信管) 专业定位于着重培养从事信息管理与信息系统分析、规划、设计、开发、管理与维护的应用型本科人才, 强调学生的实践性与应用性能力的培养。《C语言》课程是我院信管专业开设的首门高级程序设计语言课程, 它使用广泛, 表达能力强、目标代码运行效率高、可移植性好, 既具有高级语言的优点, 又具有低级语言的特点, 既可以用来编写系统软件, 又可以用来编写应用软件。因而学习好C语言程序设计具有更重要的意义。但是在实际的教学中却出现了学生普标抱怨编程难, 教师抱怨教学效果不理想的现象。

因此, 学生学习的兴趣不高, 缺乏学习的主动性, 使得教学目标难以实现。为了加强学生对该课程的理解和掌握能力, 实践教学环节就显得尤为重要[1]。只有将实践教学和理论教学结合起来, 才能在最大程度上帮助学生尽快掌握课程理论知识, 并更好地应用于实践, 提高编程能力, 同时提高知识和实践应用能力。

2 实践教学中存在的问题

2.1 缺乏程序设计的相关概念

程序设计人员在设计程序时需要综合运用算法、数据结构、程序设计方法、计算机语言这几方面的知识。《C语言》课程面向的是大一新生, 教材重点是《C语言》的语法, 相关程序设计方法的知识很少, 只是简单提及, 而大一新生在高中阶段并未接触过相关程序设计方法, 这就意味着学生在没有充分了解程序设计方法的基础上直接学习《C语言》的语法, 必然导致学生不能灵活使用程序, 更不用说在实践教学中编写风格良好、效率高的程序了。

2.2 实践和理论联系不够紧密

《C语言》课程主要介绍了一些语法规则和理论性和抽象性强的算法, 教师在讲解时也主要是把书本上的知识给学生讲清楚, 很少能够去联系实际。而且学生的实验课时较少 (我院理论40学时, 实践24学时) , 在实验课上只是对书本上的算法进行简单的验证, 所以学生不知道如何才能灵活应用。有的学生甚至就认为:这些只是理论, 根本就没办法去实践, 更有甚者认为学习这门课程只是为了应付考试, 根本就没有实际的作用, 最终导致缺少学习的动力。

2.3 考核方法过于单一

我院信管专业《C语言》课程考试还是采取笔试的形式, 没有设置上机考试。考核成绩的评定是由平时成绩和考试卷面成绩两部分构成, 其中, 平时成绩占20%, 卷面成绩占80%。笔试题目类型简单, 以选择题、填空题、程序设计或修改题为主, 学生只要熟记考试知识点和某些算法, 就能通过考试, 这样导致学生只是记住了C的知识点, 并不能解决程序运行中的实际问题。

3 实践教学探索

3.1 理论采用案例教学法

案例教学法是一种开放式、互动式的教学方式, 教师要根据理论教学内容事先策划和准备恰当的案例, 指导学生提前阅读, 在课堂上组织学生对阅读的案例展开讨论, 以便加深理解, 形成反复的互动与交流[2]。案例是教学的核心, 案例的选择要注意以下几个方面: (1) 根据教学目标选择案例, 案例的选择要难易得当, 这样学生可以比较容易地理解和掌握数据结构的基本理论和方法; (2) 案例应具有内容的完整性、真实性和典型性特点, 与实际生活相联系; (3) 案例的选择应考虑到学生的专业特点, 选择与学生专业相关的内容, 尽量贴近学生的兴趣点; (4) 案例应该系统化。

3.2 理论与实践相结合教学法

C语言的教学分为理论教学和实践教学两个环节, 二者相辅形成, 互为补充, 缺一不可。教学流程是首先教师要根据教材内容或先讲解理论再举实例进行说明, 或在理论中穿插实例, 然后布置相应的实验题目;其次要指导学生进入机房实践操作, 让学生明白实验的目的, 每个题目的算法设计, 在实验过程中常出现的问题及解决方法, 在实验的过程中, 学生要做好实验报告;再次, 实验结束后, 教师要收好实验程序和报告, 根据学生的实践结果, 得出总结, 分析学生出现问题较多的地方, 然后到下一次理论课上再给学生强调说明。

3.3 实验题目层次化

在设计实验的过程中, 要综合考虑学生的编程基础和专业水平。不同学生的编程基础不同, 接受新知识的能力各异, 使用一两个实验就想要学生们在对知识的掌握上达到相同的水平是不现实的。为充分调动不同层次学生的积极性, 使学生都能在实验中有所收获, 在同一个实验中根据学生编程基础的不同设计不同的任务是有效的方法, 这样任务难度有高有低, 学生的学习兴趣会一直保持下去, 对于学好这门课程也会有着充足的信心。例如在做“数组”这一实验中, 按照难易程度从低到高, 可以设计出初级题目:一维数组和二维数组数据的输入、求和 (或求平均值) 、数组值的输出;中级题目:冒泡法、选择法排序等[3];高级题目:筛选法求100以内的素数、输出杨辉三角前20行等[4]。

3.4 考试方式多样化

改变单一的笔试考试方法, 将理论知识的考核同上机实践的考核相结合, 全面地检验教学成果。笔试的侧重点是考核学生对该课程基本知识和理论的掌握情况, 比较片面, 不能准确分析学生的水平。上机实践也就是技能考核, 针对的是学生编制程序和使用计算机解决实际问题的能力, 该部分考核要在机房让学生真正操作运行, 以全国计算机等级考试的模拟系统为考题。

考核学生对这门课程的掌握程度不能由一次考试决定, 要采用分散成绩的评定方式, 采用平时成绩占10%, 平时作业练习占20%, 实践编程考核成绩占30%, 期末考试成绩占40%的成绩评定模式[5]。

3.5 加强实验环节

做实验的目的有三个, 一是让学生加深对授课内容的理解, 单纯的理论性的课堂讲解, 枯燥乏味, 学生很难理解并记住, 特别是语法规定, 只有经过多次上机实验, 才能熟练地掌握。二是帮助学生熟悉C语言的开发环境。三是让学生真正学会上机调试程序, 发现程序中隐藏的错误, 并及时地排除错误, 保证程序正常运行, 而不是单纯地去验证程序的对错。

在上机实验前应事先做好准备工作, 以提高上机实验的效率。准备工作如下: (1) 充分了解和熟悉所用的C语言编译系统。 (2) 复习与本次实验有关的教学内容。 (3) 准备好上机所需要的程序 (一般要写注释) 。 (4) 对操作过程中可能遇到的问题做出估计, 对自己不理解有疑问的地方做出标记, 以便在上机时注意。 (5) 准备好调试和运行时测试的数据。

实验后, 应及时整理出实验报告。实验报告应包括以下内容: (1) 题目。 (2) 实验目的和内容。 (3) 程序清单。 (4) 运行结果。 (5) 总结此次程序调试的经验教训, 对于未能通过的程序, 认真分析原因。

4 结束语

本文针对我院信管专业本科学生在C语言的教学过程尤其是实践教学中存在的问题, 给出了实际有效的解决方法, 并已成功将此方法应用于我院信管专业11、12、13等3个年级, 受到了本专业学生和同事的好评。最终有效地提高了学生动手编程的能力, 以及自主分析和解决问题的能力。

参考文献

[1]耿国华.数据结构-C语言描述[M].北京:高等教育出版社, 2010, 5.

[2]宗瑜.案例教学法与《数据结构》教学改革[J].皖西学院学报, 2009, 25 (2) :30-31.

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

[4]谭浩强.C程序设计题解与上机指导 (第三版) [M].北京:清华大学出版社, 2005.

上一篇:班主任的人文关怀下一篇:主要管理措施