c语言课程十篇

发布时间:2024-04-24 16:57:17

c语言课程篇1

关键词:C语言;教学方法;上机实践

由于C语言功能丰富、应用广泛,很多高校都将C语言作为一门计算机及相关专业的重要专业基础课开设,甚至有不少高校将它作为计算机公共基础课来开设。但在C语言课程的开设过程中,教师与学生都有误区,教与学的效率和效果不理想。本文针对该课程在教学中存在的问题、在教学方法、上机实践的设计与考核方式等几个方面来进行分析与探讨。

1教学中存在的问题

1.1教学观念与学习观念的误区

讲授C语言程序设计课程的教师容易走入一个误区,即重视C语言的语法和概念的学习,忽视程序设计能力的培养,它使得该课程成为纯粹C语法和概念的介绍[1]。另外,学习C语言课程的学生多数只是重视语法、概念和规则的学习,忽视更为重要的上机实践,认为学习C语言就是学习C的语法、概念和规则,认为掌握了C的语法、概念和规则,就掌握了C语言,但实际情况是学生并不具备用C语言来编写代码和解决实际问题的能力。

1.2授课方式枯燥乏味

从传统教学方法来看,C语言课程教学任务繁重、教师要用大量时间向学生解释大量概念、术语和语法,而该门课程的理论学时有限,多数专业课程每周只有两学时,教师授课时难免陷入静态说明书式的状态。语法知识枯燥乏味,而这样一种静态说明书式的授课方式,更加剧了学生的厌恶感,导致学生厌学。

1.3实践课程比例不够或不重视

受传统的教与学的影响,师生双方都或多或少忽视上机实践。实际上,该课程的实践课尤其重要,只有在实践课上我们才能有效地检查和验证学生学到了什么,能够做些什么。

2教学改革及教学方法探讨

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

教师要从以往的以教师为中心的模式向“教师主导,学生为学习主体”的模式转变[2],改变老师单向课堂灌输、学生被动地整堂课听讲的传统授课方法。我们要规范整个教学过程,这些工作最好是由教授该课程的全体教师(即课程项目组)来共同合作完成。教师在熟悉教材内容的前提下,编写完整的课堂教学教案;制作完整的教学用ppt;课程组从大量的例题中精选出部分典型的、针对性强的例题也是非常必要的,只有这样才能减少教师在教学过程中选择例题的盲目性;精心设计好实践课内容,每次实践课的内容要有针对性,有具体的目标和要求,并要求学生下课时必须提交实验报告或作业,这样,在提高实践课效率的同时,可以有效增强学生实际动手能力,从而真正掌握C语言。

2.2采用灵活多变的动态的授课方式

对于C语言课程的教学,我们应采用灵活多样的授课方法,可以尝试采用启发式、任务驱动式、比喻式等多方式有机结合,具体授课时采用的形式和手段也可以多样化,根据实际知识点的具体情况,灵活采用传统教学方法+多媒体教学文法。例如,对课程中的语法、语句、流程图的画法,采用多媒体教学,减少板书时间以增加对算法思想的传授;在讲完一个程序后,把程序在课堂上进行多媒体演示,这样既有利于学生的理解,又能激发学生的兴趣,还节省了讲解时间,避免了静态说明书式的教学方式;对于程序设计方法的讲解,则采用传统的教学方式,教会学生如何思考、推理,如何用语句实现算法,培养学生的抽象思维和逻辑推理能力。下面介绍几种授课方式。

1)采用启发式授课方法,以培养学生分析问题和解决问题。启发式授课方法,是指教师在全面掌握讲授内容的前提下,在讲解新的授课内容前,对以前所学知识进行回顾,引出新的讲授内容。

例如,在讲授“数组”一节的内容时[3],首先提出一个问题:用基本数据类型可以解决所有的问题吗?具体实例有:对某班学生的成绩按从高到低的顺序进行排列。教师先让学生回顾以前所学过的基本数据类型的相关知识,在教师引导下,学生能够轻松地找到准确答案。比如,如果班里学生只有少数的几个,如3个,那么用基本数据类型可以解决,但一个班通常有几十名学生,这时候用基本数据类型解决就无能为力了。此时,教师就可以引出新的讲授内容――数组的概念,并指出前面提出的实例,用数组来解决就显得非常容易了;然后,简要地向学生讲授数组这一节课需掌握的理论知识――一维数组的定义和初始化,冒泡法和选择法的原理,最后引导学生用数组这个新学到的数据类型,采用冒泡法和选择法分别解决之前所提的问题。大多数学生都能够做到,而且学生对两个算法的理解也比传统教学法深刻。

实践证明,这种授课方法能充分调动学生的学习积极性,变被动学习为主动学习,培养学生分析问题和解决问题的能力。

2)将项目教学法应用于C语言课程教学[4]。为了达到既能让学生掌握C语言基础知识,又能培养学生的编程动手能力,教师还可以纵观全局,事先按照学生将要掌握的知识点,设计一个或几个有一定规模的项目(规模大小视该教学单元模块的难易而定),采取项目驱动法,即以项目为驱动力,从分析项目开始,讲解完成项目所需要的编程知识和技能,在讲授知识点的过程中,引导学生去解决实际问题,最后,以小组讨论形式,共同完成该项目(任务)。具体实施过程如下:设计具体教学项目,按各个知识模块来划分,并根据知识模块的大小和难易程度,确定项目的大小、教师的讲解时间以及要求学生完成的时间。

3)采用比喻式授课方法,将复杂问题简单化,引起学生的学习兴趣。比喻式授课,是指教师应用形象化的比喻,将抽象复杂的问题简单化、具体化。这种授课方式适用各门课程。就C语言这门课来讲,在上述两种授课方式的具体实施过程中,都可以穿插应用比喻式授课方法。学习一门语言总要学习其语法和语句,而这些内容通常都比较枯燥,让人厌烦,所以,教师要善用身边的例子,利用形象化的比喻,把枯燥的东西变得形象生动,引起学生的兴趣。

例如,在上述启发式授课方法中提到过的用数组来解决多个学生成绩排序的问题,可以采用冒泡法和选择法,但这两种算法都比较抽象,教师如果只是机械地讲解冒泡法和选择法的原理,学生会产生厌学心理。对此,教师可以把它形象化,从而将这个问题简单化,将问题转变成是10个两位自然数排序的小问题;并运用多媒体教学,在教学课件里用动态的排序过程,分别展示运用两种不同的算法去解决这个排序问题的具体实施流程。这样一来,在动态数字排序过程的展示下,学生的目光都不由自主被吸引到讲台上来,随着10个数字排序的动态全过程的完成,学生就能够印象深刻地理解到选择法和冒泡法的原理,从而达到事半功倍的效果。

2.3重视实践教学

实践教学是C语言课程学习的重中之重,教师和学生都应该从观念上先认识到这点。在具体要求实施过程中,可以尝试从以下途径来完成实践。

首先,课程项目组在开学初已制定好了完备的实验教学计划及实验教案,针对每周的实验课都有相应的实验教案,清晰指明该次实践课的目标、实验指导、实验要求及提交实验作业的要求。

其次,在每次上机实践的基础上,视学生掌握知识点的情况以及动手能力的高低,一学期布置1~3个综合的实验项目,并体现项目教学法的精髓,即要求学生从初期规划开始,从功能设计、模块划分、算法设计与描述、代码编写、调度、分析、心得体会等方面撰写实验报告,并提交电子源代码与手写的实验报告。这一过程是对学生真实的动手能力的训练,可以督促学生养成自主学习的好习惯,培养探索精神[5]。

再次,教师要让学生明白,在实验课上学生自己是学习的主体身份。在到机房上课前,学生已在之前的理论课上了解了该次实验的内容与要求,是带着任务来上实验课的。在这个环节,教师可以实施小组协作学习的模式,同小组座位安排在一起,方便讨论。上实验课时,学生有问题可以与相邻座位的同学相互讨论,充分发挥学生的自主能动性和小组团队协作的学习精神;如果出现了小组解决不了的问题,再寻求教师帮助。与此同时,教师在学生实践时,可以巡视,并结合机器里安装的教学软件netop,观察学生具体做实验的情况,锁定学生实践的难点,对多数学生的共性问题通过大屏幕演示,进行统一指导与解答;而对于个别学生的问题,实施一对一的指导;最后,教师还可以抽出5~10分钟的时间,针对上次实践课的作业,利用大屏幕或netop软件控制每个学生的机器进行点评,在共享目录里展示学生好的源代码,以便其他同学参考借鉴。

最后,在学生提交作业环节,教师可以从提交截止时间、提交目录的权限设置及实验课的实时监督等保证学生作业的真实性,防止抄袭拷贝现象发生。

2.4考核方式的改革

实践对于这门课程很重要,故笔者建议将每次实验作业的成绩与综合实验项目报告成绩,按一定的比例作为学生期末课程总评成绩的一部分录入,即采用上机实验+综合实践+期末考核的方式来决定学生的C语言课程的总成绩,具体比例如下:上机实验(包含考勤)占30%,综合实践占30%,期末考试占40%。期末考卷最好能够实现教考分离,例如,课程组的各位老师共同设计题库,再从题库里随机抽题考核是一个不错的方法。

总的来说,这样的考核方式可以避免传统的一卷定分数的“高分低能”现象的出现,按这样的考核方式出来的成绩,既能反映学生平时的学习过程,又能督促学生自始至终都重视实践能力的学习与锻炼,考核里加上了解决实际问题的大中型综合实践与期末的卷面考核,能全面真实地反映学生的实际水平。

参考文献:

[1]丁峻岭,张克军,代俊雅.C语言课程教学的探讨与研究[C].北京:高等教育出版社,2009:510-511.

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

[3]谭浩强.C程序设计(第三版)[m].北京:清华大学出版社,2006:99-118.

[4]刘平.任务驱动式教学法在C语言程序设计教学中的应用[J].无锡南洋职业术学院论丛,2009(3):78-80.

[5]郭有强.C语言程序设计课程建设探索与实践[J].教育与教学研究,2009(2):72-74.

DiscussiononCprogrammingLanguageCourse

XionGFang-min,XUShuo-na

(informationengineeringandtechnologyDepartment,nanhaiCampus,SouthChinanormalUniversity,Foshan528225,China)

c语言课程篇2

关键词:C语言;教材建设;项目驱动

C语言程序设计课程是计算机专业本科生的一门很重要的专业基础课,对后续数据结构、操作系统、面向对象程序设计等专业课程的学习,起到至关重要的铺垫作用。课程旨在培养学生熟练掌握C语言语法规则,具备扎实的软件开发基本技能,养成良好的编程风格,为进一步学习后续课程和将来从事应用软件开发工作奠定良好的基础。因此,学好C语言程序设计课程是计算机专业本科生能否顺利完成大学阶段学习的关键一步。教材是教与学的载体,拥有一本集科学性、完整性、趣味性于一体的C语言程序设计教材是学生学好这门课程的先决条件。

一、C语言程序设计教材建设现状

目前,市面上能够买到的C语言程序设计教材大多注重介绍语法规则,绝大部分篇幅都在反复陈述各种正确的或错误的C语句用法,枯燥无味,更像是工程人员手边使用的工具书,而非引领毫无编程基础的大一学生走入编程知识殿堂的读物。这些教材中缺少与现实生活联系紧密的项目实例,为数不多的例题也都是1到100累加、10个整数排序这样无法吸引学生兴趣的题目,因此造成学生在学习过程中把过多的精力放在记忆各种灵活多样的C语言语法规则上,而真正使用C语言解决实际问题的能力没有得到很好的培养。

然而,C语言程序设计课程的培养目标恰恰是要求学生在掌握C语言语法规则的基础上,具备用工程化思想分析实际问题的能力,掌握使用C语言解决实际问题的方法。因此,针对C语言程序设计课程特点、应用型本科院校生源水平以及C语言程序设计课程教材现状,编写注重引导学生兴趣,有利于学生专业素质和创新能力培养的教材势在必行。

二、C语言程序设计教材建设指导思想

结合C语言程序设计课程在课程体系中的地位、作用、任务确定教材基本内容;结合应用型本科院校计算机专业大一新生的实际情况确定教材难易程度;结合经典项目实例在教学中的作用,注重教材建设的整体性和趣味性;注重学生程序设计思路和技能的培养,避免多而杂的语法规则介绍,坚持少而精的教材建设原则;配合实验课教材和网上题库建设,注重培养学生实践动手能力。

三、C语言程序设计教材建设具体措施

1.理论课教材建设

(1)语言通俗易懂,重点突出,适合初学者。鉴于C语言程序设计是计算机专业本科生学习的第一门程序设计类课程,教材在语言组织上特别注意避免过于专业的术语,做到通俗易懂。在讲解过程中步骤详尽,版式新颖,重点突出,避免学生因一味追求细节而忽略C语言的精髓,舍本逐末。

(2)提纲挈领,注重知识点的实际应用。C语言中,每个单独的章节都讲授了一个全新的知识点,比如选择、循环、函数等。刚刚接触一个新知识时,学生经常找不到切入点,不知如何完成这一章的学习,重点难点也把握不住,导致眉毛胡子一把抓,好像都知道一些,却又都不精通,学得快,忘得也快。针对这种状况,教材各章节后部均设有小结,言简意赅地给出如何使用该章节知识点解决实际问题及使用时的注意事项,起到了事半功倍的效果。

(3)启发式设问引导教学,明确章节学习目标。C语言难学的原因有多种,学生面对多种不同的数据类型、语句功能结构、繁多的语法规则等,往往无所适从。从启发式教学的角度出发,在每章的开始部分都以设问形式提出问题,使学生在学习该章内容前先想到一些问题,提出问题,再给出该章节的学习要点,引领学生带着问题学。这样不仅在课程教学过程中简单明了地给出了章节学习目标,有利于教学活动的顺利开展,更为重要的是,激发了学生的学习热情,锻炼了他们主动思考、善于提问、敢于质疑的学习习惯,培养了专业的软件工程师工作风格,为将来实际的程序设计相关工作奠定良好的基础。

(4)采用实例趋动教学的方法,讲解C语言基本概念和实用程序设计技术。为了帮助学生对C语言各章节知识点有更加深刻的理解,提高程序设计的能力,各章节中配备精心选择的经典实例程序,所选的例题覆盖了C语言程序设计中最常用的方法、实用技术。并且,选取一个经典实例“学生成绩管理系统开发”,从第一章抛出问题,至以后各章节都结合该章节所学知识点逐步地分析、解决问题,由浅入深,最后完整地给出问题求解方法,引领学生循序渐进地掌握一个较大软件的实用程序设计技术。教师授课过程中,可以适时引入一些软件工程思想,从需求分析、系统设计、编码、测试等各环节加以讨论,让学生从大学一年级就对自己将来从事的职业有一个具体的认识,为其他后续课程做一个很好的铺垫。

(5)构造学习框架,强化程序设计思维。以往的C语言教学过程中,经常出现学生对于编程题有个大概的想法,但不会具体编写程序的现象。其根源在于C语言教学与实际问题的脱离,教学不注重培养解题思路与解题方法,而过多偏重语法规则介绍。因此,为使学生熟练掌握编程技术,在编程题目的讲解上提出了一个学习框架,各章节中实例的讲解均按照“变量分析——设计思路——程序源码——运行结果——说明”的思路。对于一个实际问题,首先分析解决问题需要设置哪些变量及变量设置技巧;其次分析解决问题的具体思路及步骤,给出程序流程图;然后,给出程序源码及运行结果,重点讲解编码规范;最后,针对程序设计和实现过程中容易出现的错误及需要注意的问题给出必要的解释说明,并配有大量图解来帮助学生更直观地了解内存变化情况,降低了阅读难度。

2.实验课教材建设

结合C语言程序设计理论课教材和学生实际水平,进行了C语言程序设计实验课教材建设。实验课教材的章节设置与理论课相同,每一章按实验目的、实验内容、实验习题的形式组织。实验目的给出该实验环节中学生必须了解、理解和熟练掌握的编程技能分别有哪些,学生可以根据实验目的并结合自身情况,有选择地进行实验题目练习及课后复习。实验内容按照验证性、设计性和综合性层次分别设计题目,每道题目给出题目描述、测试数据、题目分析、参考代码和参考运行结果。其中,题目分析从变量分析和设计思路两个角度讨论,题意明确,分析透彻,让学生能够充分体验程序设计整个过程中的思考方法。实验习题部分进行知识扩充,不给出标准答案,进一步锻炼学生的程序设计能力和创新思维能力。C语言程序设计实验课教材建设紧紧围绕理论课教材的重点难点,注重学生基本技能和实际应用的训练,强调对学生分析解决实际问题能力的培养。

四、结语

课题组教师结合多年实际教学经验,针对应用型本科院校计算机专业大一学生的实际情况,积极开展C语言程序设计课程教材建设工作,得到了学校领导的充分肯定。在大连理工大学出版社的大力支持下,课题组成员编写了《C语言程序设计》教材及配套的《C语言程序设计习题答案与上机指导》,现已公开出版发行。经教学实践检验证明,教材符合应用型本科院校学生认知规律,取得了较好的教学效果。

[参考文献]

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

[2]吴文虎.程序设计基础(第二版)[m].北京:清华大学出版社,2004.

[3]武桂力.C语言程序设计项目化教程[m].青岛:中国海洋大学出版社,2011.

[4]黄璐,于红,王建彬.C程序设计课程教学探讨[J].吉林省教育学院学报,2012(04).

c语言课程篇3

计算机程序设计类课程具有实用性强,和应用广泛的特点。C语言作为现代非常流行编程的语言,更是具有通用性强和面向对象等众多特点,作为大学计算机基础编程类课程被广泛学习。C语言存在一定的复杂性并且授课时限制,授课方式限制等等问题。将计算思维融入到C语言的教学中,合理调整针对各专业授课内容,将计算思维融入课程,并与mooC教学模式对接。笔者结合十年的教学实践经验,总结出授课效果不佳的原因,提出若干改革措施。

关键词:

计算思维;C语言程序设计;mooC;

黑龙江省教学改革项目《高等院校计算机基础程序设计类课程综合研究性教学改革与实践》项目编号:JG2014010854

1教学内容与模式存在问题

1)先理论后实验

C语言程序设计课程在传统的教学中,理论部分采用课堂讲授的模式,边讲知识点边进行编程,实验课则是在理论课城讲完之后,单独进行实验教学,单人单组,这种教学模式容易出现理论与实践脱轨,接连不上,理解不透彻等问题。

2)创新性实验不足

一般教学模式下,设计性实验和创新性实验占的比例在20%以下,创新性项目不足。这种模式下,学生在课堂上的学习积极性大部分依靠于教师的授课技巧或个人魅力来吸引学生,教师把知识点讲授得清楚明白,但是学生自己动脑思考相应问题的时间短,并且大部分学生课前预习基本没有,不能真正发挥学生主观能动性和自主学习能力。

3)直接灌输

大多数学生对与课前预习做的并不出色,可能大部分学生是完全没有课前预习的。学生在头脑中并没有带着问题听课,而是老师直接灌输C语言定的设计结构、数组、指针等复杂内容。学生没有预习,没有思考,只有类似直接灌输式的教学模式。

2从教学模式改良教学内容

1)将计算思维能力培养融入课程中

程序设计类课程的教学方法要注重将“不可见”变为“可见”,变“无关”为“相关”,把大问题碎片化,把复杂问题进行分离与分层处理。例如,将C语言中的语法有融合到程序设计中,在程序中讲语法,又在学语法的同时练习训练了编程,这样就避免了枯燥乏味的讲述语法,将语法融合入程序设计中。

2)在C语言程序课程中扩展计算机思维的改革模式

①改进教学方法。不将C语言程序设计课程的教学内容做大量调整,而是通过改进教学方法来启发引导学生认知知识点背后蕴含的联系与规律,比如设置问题导引,问题讨论,追溯反思,新建构架等等方式来潜移默化的渗透计算思维,使计算思维模式逐步走进学生的思维方式中。②重新构架体系结构。并不对课程教学的知识点做大量更改与替换,而是以计算思维模式为主干重新构建知识体系,只是课程内容授课顺序和结构有较大复读调整。例如容易基本的数学问题,生活常识问题,即由C语言外而进入C语言内的知识体系的调整。③更新大量陈旧项目。以往的教学内容包含一些生硬死板的程序项目,其目的只是为了说教语法和结构。取而代之的融入计算思维的程序项目则更加新颖,更加联系实际,更加突出对计算思维的训练,例如,爱因斯坦天国的阶梯;生肖属相轮回等项目,不仅生动、引人入胜,更能训练思维。

3)依据计算思维融合传统科目内容

我们可以将一部分学生选出来进行试验性教学,打破传统的几门课程包括C语言、数据结构、算法分析、VC程序设计,等系列课程的教学方式,采用根据不同专业设定的包含基础数学、程序设计技巧、算法分析的一体化教学内容,打破传统的教学内容,该体系能够更充分利用学生的自主能动性,课下的工作量比课上的工作量要大得多,学生在课前要进行大量的准备工作。

4)加大课前预习量

打破传统的理论教学与实验教学分开的模式,在理论教学中同样需要学生进行大量的课前准备,然后在课堂上进行分组讨论老师提出的问题,根据每组学生的讨论内容,讨论结果设置而在实验教学方面,可运用本校的网络教学平台,提前发放讨论内容及作业题,在实验课中以项目提交的方式来完成实验教学。

3对接mooC网络教学

1)mooC兴起

网络技术的不断发展,人们更愿意使用电子产品依托网络进行学习。mooC大规模网络公开课程(massiveopenonlineCourse,mooC)[1]是2012年在美国兴起,它作为一种大型的开放式网络课程,为学生提供免费的学习平台。随后全球的各大知名大学逐步开设mooC课程,纷纷涌入到mooC的浪潮中。在中国的很多知名高校也加入其中,纷纷开设mooC网络课程,当前的coursera、udacity和edx的火热应用,实施了翻转课堂进行教学。

2)登陆mooC

C语言程序设计的授课,为了适应新时期的教学发展趋势和教学需求,要将传统教学与在线教学平台融合,更好地使二者相互补充和促进。mooC也将教育推上了全球化的舞台,这种变化带来的好处显而易见,最明显的一个特征是打破了教育壁垒,令教育资源平等化[2]。

3)重组设计课程内容

C语言课程登陆到mooC,并不能简单的将课堂的内容简单,直接的传送到mooC平台上,而是应该结合C语言程序设计课程的特点,和mooC平台的优点,进行课程内容的整体策划,重新设计设计整门课程的体系结构。

4总结

我们要通过分析教学中存在的问题,教学模式和教学内容进行多管齐下的相关改革。改革并不能与从前的单一模式相同,要针对课程的特性,改革教学内容与计算思维相对接,改革教学模式与mooC相对接,实现多管齐下,真正达到教育教学目的,让学习者能真正学以致用,转换思维模式,无论在哪一方面都收获良好的教育教学效果。

作者:逯柳陈刚孙毅耿姝王树芬单位:哈尔滨石油学院信息工程与计算机技术系

参考文献:

c语言课程篇4

[关键词]C语言程序设计改革实践

引言

C语言程序设计课程足以C语言为平台,使学生全面了解程序设计的总体思路、程序没计的基本算法、C语言的语法规则以及使用C语言进行构化程序没计的方法,并具有一定的程序设计和程序调试的能力,为今后使用C语言解决实际问题打下良好的基础由于C语言涉及的概念比较复杂,规则繁多,使用灵活,容易出错,同时该课程又是学生首先接触的第一门程序没计课程,所以很多学生学习起来都感到困难和吃力.并不同程度产生畏惧心理。

在C语言程序设计的教学工作中,我们发现,学生的学习热情不高,更谈不上综合应用能力的培养与提高。我们C语言课程教学组通过对我校C语言程序设计课程教学现状的调查分析,总结出了教学效果较差的主要原因,并从教材内容、教学方法、教学手段和、上机实践和考核评价体系五个方面进行了大胆的改革与实践,并取得了较好的教学效果。

一、C语言程序设计课程教学现状分析

为了实时掌握学生的真实学习情况,任课教师对学生进行了问卷调查。根据问卷结果及各位教师的教学经验,总结出我校C语言程序设计课程教学效果较差的主要原因有以下几点。

(1)内容抽象、枯燥,学生学习兴趣度低。相比第一学期已经或多或少有所接触并有一定基础的大学计算机课程而言,第二学期开设的程序设计课程是一种截然不同的全新的课程,出现了大量的新概念、新名词和新方法。上机时好不容易敲上了一个程序,一运行就会出现一堆错误。62.4%的学生看不懂错误提示,84.76%的同学不会使用单步跟踪、watch窗口等基本调试工具,22.3%的同学竟然根本不知道这些调试工具。于是学生对该课程的学习举步维艰,学习的热情急速降温。

(2)实用性不强。近80%的同学认为C语言的语法知识学了一大堆,但不知道学这些语法有什么用,和自己的专业知识有什么联系。因此,多年积累下来,对C语言程序设计课程的普遍看法是:这是一门无用的公共课,混混过去就算了。于是,很多同学上课不听讲、下课不预习、不复习,周而复始,形成恶性循环。

(3)进度过于缓慢。C语言程序设计每周4学时,其中,2学时多媒体教室的课堂教学,2学时计算中心机房的上机实践。计算中心机房为多个班级公用,且无屏幕转播设施,因此教师的教学仅限于2学时的课堂教学。课时太少,加上学生兴趣度低,往往一学期下来指针刚讲了基本概念就结束了。有些为参加全国计算机等级二级c语言考试而努力学习的同学也因为指针内容学习太少而难以过关。

针对上述C语言程序设计教学效果差的原因,我中心C语言课程组的各位教师认真研读了“研究式学习”、“CDio教学模式”、“计算思维”等理论及各种教学方法和实践方式,借鉴了哈工大全国精品课程“C语言程序设计”课程的先进教学经验,并结合各位教师多年的教学经验,制定了C语言程序设汁课程教学体系的改革方案。该教学体系改革方案从教材内容、教学方法、教学手段、上机实践和考核评价体系五个方面展开。

二、编写优质配套教材,实施教材改革

我们按照研究性学习的内涵编写了《研究式学习——C语言程序设计》教材,目前正在进行面向“计算思维”的新版教材的编写。该系列教材具备以下特点:

(1)编写理念科学性强

整套教材的编写以“研究式学习”理念为指导,研究性学习是一种建构性的、追求协商的、尊重个性的、以人为本的“体验式学习”。在2006年的《国家精品课程评估指标》中新增了一条指标:“重视研究性学习、探究性学习、协作学习等现代教育理念在教学中的应用;能够根据课程内容和学生特征,对教学方法和教学评价进行设计。”所以研究性学习是以人为本的高等教育价值观的体现,是社会变革和教育发展的要求,也是精品课程的要求。研究性学习的关键是要在学习的各个阶段提出适当的研究问题,以便在学习过程中为学生创造能亲临体验地进行研究学习的平台,问题的提出贯穿在课堂教学、实验教学、课后作业、综合性作业以及评价的整个教学过程中。我们自2004年开始就致力于打造C语言程序设计精品课程,所有的教学和改革都围绕该指导思想进行。2007年以C语言程序设计为主体的“程序设计与计算机语言”被评为省级精品课程,2010年由教材主编主持申报到了省级质量工程教改项目“inquiryLearning体系在程序设计课程中的运用”研究。这一系列的改革和研究都是以学生为主体,以培养和提高学生的计算机素养为最终目的而制定的。在教学过程中我们经常与学生座谈和交流,了解学生的需求,完善我们的教学,使我们的教材和教学模式能与时俱进,保持很好的前瞻性和科学性。

(2)内容组织创新性强

本教材用“提出问题—分析问题—给出相关知识—举一反三”的研究式学习方式来组织“C语言程序设计”这门课程,在注重语言知识培养的同时,更注重逻辑思维能力、程序设计能力及创新能力的培养。内容组织方式新颖,符合认识规律,富有启发性,便于学习,有利于激发学生学习兴趣及各种能力的培养。本教材每章都通过4个步骤来完成学习:

第1步,通过提出问题、分析问题来激发学生的兴趣,引起学生的思考。

第2步,通过问题的解决、相关知识点的跟进,使学生能逐步提升程序设计的能力,掌握C语言的知识,引导学生深入思考。

第3步,用一定数量的编程实例使学生深入理解和掌握所学知识,用具有趣味性的综合应用编程实例培养学生的逻辑思维能力和编程能力,挖掘学生的创新能力。

第4步,对每部分的知识进行小结,以便学生进一步巩固应掌握的知识。

每章后面都有“综合应用”部分,让学生对所学知识的具体运用有明确的认识,并能在此基础上进一步巩固和提升。

三、采取多样性方法,实施教学方法的改革

(1)任务驱动教学方法

大多数学生反映C语言概念众多,许多知识点抽象且难以理解,学生不能将理论和实际应用结合起米,任务驱动教学法是一种建立在建构主义学习理论基础上的教学法,它将以往以传授知识为主的传统教学理念,转变为以解决问题、完成任务为主的多维巨动式的教学理念;将再现式教学转变为探究式学习,使学生处于积极的学习状态,每一位学生都能根据自己对当前问题的理解,运用共有的知识和自己特有的经验提出方案、解决问题。在c语言程宁没计课中.体现“任务驱动”就是让学生在一个个典型的程序“任务”驱动下,教师引导帮助学生完成一系列程序“任务”,把知识的学习和知识的应用有机地融合在一起,让学生达到融会贯通、一点带面的效果。例如,在讲授C语言循环语句的教学时,按任务驱动教学模式不是孤立地介绍格式、作用和使用方法,而是将这一知识点设计为“计算1+2+3+……+100=?”这一具体的任务。首先,教师通过提出“任务”让学生把握教学内容,同学们会想象怎么完成这个任务,头脑里对前而的所学内容进行回顾,但前面学过的知识没法完成这种任务。接下来教师再讲解如何使用循环语句等具体操作方法,这样教学,学生学得快、学得牢。通过实践发现“任务驱动”法有利于激发学生的学习兴趣,培养学生的分析问题、解决问题的能力,提高学生自主学习及与他人协作的能力,缩短了学习周期。

(2)项目教学法

很多学生在学完C语言程序没汁课程后,其结果是听得懂、却编不出程序来。针对这一情况,我们在教学过程中采用项目教学法。项目教学法是通过实施一个完整的项目而进行的教学活动,其目的是在课堂教学中把理论与实践有机地结合起来,充分发掘学生的创造潜能,提高学生解决实际问题的综合能力。在课程初期.主要是进行单项的编程练习,重在掌握C语言的基本数据类型、语句与程序结构等。在进入函数、数组、指针、结构体和文件内容教学时,开始综合实训项日的编程设计,每一个实训项日都呵以用前一个实训项目为基础。通过一个项目的层层递进,引入课程内容,使得学生的学习循序渐进,螺旋式地上升,效果很好,开阔学生的思维,使得学生在课堂上真正地成为“主体”,教师则扮演“主导”角色。该教学方法使学生积极参与到教学过程中,变被动为主动,有效地调动了学生学习的积极性,深受学生好评。

(3)比较教学法

C语言中的概念比较复杂,规则繁多.而且内容前后联系紧密,教学过程中教师通过对比的方式对相关的概念或类似的程序代码进行比较,进而明确差异,然后进行归纳总结,方便学生理解,将会收到事半功倍的效果例如,C语言中的指针是教学中的一个难点.这一部分涉及的概念较多,如指向变量的指针、指向数组的指针、指向字符串的指针、指向函数的指针等。这些概念很容易混淆,但是将这些概念对比起来讲解,学生就很容易理解了。这些概念的共性都是指针,那么它们不同的地方在哪呢?关键在于指针变量的指向不同,指针所指向变量的数据类型决定了指针变量的用法。通过这样的讲解,概念的定义就很容易理解,概念的用法也就可以统一了。再如,数据的排序问题有多种算法,典型的有冒泡排序、选择排序、插入排序等,求解方程的根的算法也有多种,有迭代法、牛顿迭代法、二分法和弦截法等。这些算法之间既有联系又有区别,讲清楚了算法的联系和区别,也就解决了整个问题。

(4)启发式教学法

启发式教学法就是通过教师的启发教学充分调动学生的积极性、主动性和创造性,引导学生主动学习。例如,在学习printf()和scanf()函数时,通过比较式启发方法讲解两函数的功能、格式、使用特性等方面的异同,通过比较使学生更好地把握两函数的特征。在学习选择排序算法时,使用模拟式启发方法,让l0个学生随机坐在相邻的l0个位子上,然后现场模拟排序过程;在学习数据交换算法时,使用比喻式和问题式启发方法,将两个变量比喻成两个瓶子,将里面存放的数据比喻成醋和酱油,然后提问:如果将两个瓶子中的醋和酱油交换一下,应如何操作。

(5)“鱼渔兼授式”教学方法。C语言只是一种表述工具,如果只有扎实的语法知识,没有程序设计思想,根本就不可能写出程序;而如果有程序设计思想,但语法知识不扎实,势必在程序的编写、运行过程中遇到一系列的问题,从而影响学生的学习热情。而“鱼渔兼授式”教学方法可以在基础语法知识和程序设计方法之问找到一个平衡点,使之相辅相成。例如,在讲解数据类型时着重讲解为什么数据要分不同的数据类型,需要从哪几个角度学习不同数据类型的特性;讲解具体算法时着重讲解遇到类似问题时应从哪些角度分析问题,用什么方法进行程序设计从而解决问题;在课前精心设计一些错误,尤其是逻辑错误,然后讲解遇到错误可以采用什么手段去剖析、定位错误。

四、建立立体化教学体系,实施教学手段的改革

我们从2006年就开始了立体化教学体系的建设,我们建立了精品课程网站,实现了“在线教育”,现在我们课程的课件、课堂教学录像、软件、二级等考及相关阅读等教学资源都放在了网络上,作业也通过网络来实现布置、提交和批阅。师生之间可以通过教学邮箱和课程论坛进行交流,任课教师可以自己定制调查问卷,随时了解学生的动态和需求,还可以随时进行在线测试,课程考试已经完全实现了网络无纸化模式。学生可根据自身的情况进行课后自主学习、自测学习、互相学习或下载资料、上交作业,有助于学生的个性化发展和创新能力的培养。设计出包含验证型、引导型、扩充型和设计型等多种类型的实验,在实践中充分体现学生的自主性,有目的、分层次地培养学生的实践能力,使学生学会从实验过程中获取知识,积累经验。通过综合设计,为学生自己构建、发展并完善自己的知识体系创造机会,使学生具备获取知识和应用知识的能力,激发学生的创新精神,培养学生的团队精神和协作能力,全面提高学生的实践能力。

教学实践证明:学生在课程网站上作业及报告的提交率达到98%以上,问卷调查的访问量达到了85%以上,优秀设计作业的访问率达到90%以上,其他资料的访问率也高于60%。由此可见,立体化教学体系很好的实现了不受时间、地点限制的开放式教学。

五、上机环节的改革与实践

上机环节是教学活动的重要环节,是对学生进行基本技能训练、增强学生实践能力的关键环节,是培养学生创新精神的重要手段。本科实践教学的目的是优化学生的素质结构、能力结构和知识结构,让其具备获取知识、应用知识的能力和创新能力。对于《程序设计与计算机语言》课程,以往的实践教学内容和题目以验证型和设计型为主。验证型的题目只要求学生按照书本上的指示,输入程序,填写结果即可,学生处于被动接受的地位,学生觉得无趣,毫无创意;设计型的题目对于非计算机专业学生来说,难度太大,学生无从下手。为了全面提高学生的实践能力和应用能力,使实践教学能满足不同层次学生自主学习的需求,我们制定并实施了以下改革措施:

(1)改革上机实践的教学模式:将以理论教学为主的教学模式改为由理论教学和实践教学相互联系、相互交叉、彼此渗透、有机结合、同步发展的教学模式,确立了实践教学在《程序设计基础》课程中的重要地位。

(2)设计多种类型的实验题目:针对学生存在基础不同、接受能力不同、个性有差异等问题,设计出包含验证型、引导型、扩充型和设计型共四种类型的实验,题目尽可能做到覆盖知识点,切合实际、生动有趣。通过完成不同类型的实验,有目的、分层次地培养学生的实践能力,使学生学会从实验过程中获取知识,积累经验。

(3)在实践中充分体现学生的自主性:实验课的实验任务由规定实验内容和自主实验内容两部分组成。学生在完成规定的实验任务后,可根据自己的兴趣和爱好,自主设计一些实验任务,在教师的指导和帮助下加以完成和实现。通过自主学习和自主设计,能有效地培养学生应用知识的能力和探索精神,极大地激发学生的学习主动性。

(4)启发引导学生的创造性,培养学生的团队协作精神:本课程要求学生以小组(3~5人)为单位进行综合性程序设计,设计题目主要由学生自己按综合设计要求来确定,每个小组推选出一名小组长,负责协调程序的开发、与教师和组员的联系、提交总的设计报告和完整的源程序等工作。在综合设计过程中,学生处于主导地位,是核心。学习小组的组建,综合设计题目的选择或确定,各组员任务的分配与协调,任务完成后的总结与成绩的自评等,主要是按学生的意愿来进行。教师只负责宏观指导和一些条件支持。当学生的选题不符合要求或系统功能设计不合理时,教师会立即指出,并帮助他们修改和完善;当学生调不通程序或程序中有错误时,教师会向他们介绍调试方法和查错方法,教会他们调试程序。对学习好、能力强的优秀学生,教师会注重开扩他们的思路,启发他们的思维,引导他们去获取新知识、去探索新问题,激发他们的创新欲望,使他们能完成高水平的综合设计。通过综合设计,可充分体现以学生为中心的教学方法,为学生自己构建、发展并完善自己的知识体系创造机会,使学生具备获取知识和应用知识的能力,激发学生的创新精神,培养学生的团队精神和协作能力,全面提高学生的实践能力,从而有效地提高《程序设计与计算机语言》课程的教学质量。

六、考核评价体系的改革

我校C语言程序设计课程的成绩分为理论和实践两个分数,各2个学分,两项成绩都合格即可获得该课程的4个学分。其中:

理论课综合成绩(百分制)=平时(百分制)*(50%)+末考(百分制)*50%;

上机实践综合成绩(百分制)=平时(百分制)*(60%)+综合设计(百分制)*40%;

理论成绩由平时成绩和末考成绩组成。其中:平时成绩由上课考勤、作业提交、阶段性实验报告组成,占总成绩的50%;末考指的是期末闭卷无纸化考试,末考侧重于基础知识测试,考核学生对基本概念的掌握。题型包括:判断题、选择题、填空题和编程题,判断题题型重点考察学生对基本知识点的掌握程度,选择题和填空题重点考察学生对程序的阅读、理解和分析能力,编程题则重点考察学生编写程序的能力。

无纸化考试采用的是我们中心自己研发的考试系统,但该系统存在一点缺陷,就是编程题需要人工阅卷。因此,我们于2012年开设了一个试点班,本着提高学生编程能力的目的出发,从平时的教学和最后的考试都试用了哈工大研发的《C语言编程题自动评分系统》。该系统允许学生借助于C编译系统调试程序,学生将自己编写并调试过的程序由客户端提交给服务器端后,服务器端立即根据学生程序的结构和语义进行评分,并将评分返回给客户端,使学生在提交程序之后立即看到自己的分数。

上机实践成绩则由平时成绩和综合设计成绩构成。其中:平时成绩由上机考勤、在线单元测试组成,占总成绩的60%;课程最后提交的综合设计则占到了40%。

该考核评价体系涉及到教学实施过程中的每一个环节,有利于对学生进行科学、客观的评价,从而避免了一张考卷定乾坤带来的弊病。

该体系在实施过程中显现出了其科学性,但是目前存在的问题就是教师的负担太重。一个学生一学期一般要提交12份报告,每位教师一般带两个班,每个班约88位同学,这样每位教师一个学期只报告一项就要批阅约2000份,工作量太大。现在正在努力寻求更加合理的解决方法。

七、结束语

教学实践证明,以上改革措施能够有效解决我校C语言程序设计教学过程中存在的问题。此教学模式下,教学内容符合学生专业特点,能够满足理工科专业学生对计算机技术的需求;教学方法行之有效,教学效果有明显提高;教学实践方法与措施切实可行,能够有效促进学生分析问题解决问题能力、实践能力及团队合作能力等能力的培养与提高。当然,该模式仍然存在一些不尽如人意的地方,这就需要我们坚持不懈,继续努力去改进和完善。

项目来源:云南省高校质量工程教改项目“inquirylearning体系在程序设计中的运用”(云教高[2010]96号)。

[参考文献]

[1]王刚.CDio工程教育模式的解读与思考[J].中国高教研究,2009(5).

[2]谢延红.C语言程序设计公共课教学模式改革与实践[J].计算机时代,2010(12).

[3]马新.《C语言程序设计》课程教学方法与手段的改革与实践[J].科技信息,2010(33).

c语言课程篇5

[关键词]C程序语言分层教学任务驱动

[中图分类号]G423.07[文献标识码]a[文章编号]2095-3437(2013)22-0081-02

一、课程教学现状分析

C语言程序设计是高校计算机专业的核心基础课程,很多学校都开了C语言公选课,将其作为学生学习程序设计的一个入门。学习C语言需要掌握的抽象概念和语法规则较多,同时又需要通过实践培养编程实用技巧。由于计算机专业必修课程(例如C++,数据结构等)都需要具备一定的C语言基础,所以对C语言的掌握程度直接影响着后续课程的教学效果。[1,2]长期以来C语言程序设计课程的教学改革一直都在许多高校中探索和实践,提出了项目教学法、[3]案例教学法、[4]自主学习模式[5]的教学理念。但在实际的C语言课程教学中,诸多因素导致教学效果不理想,具体有以下几方面:

首先,学生程序设计基础参差不齐。一部分学生以前没有接触过程序,有些学生对学习程序不感兴趣,有些学生沿用看书加背诵学习方法,他们感到枯燥厌烦,跟不上教学进度;还有一部分学生上课时积极主动,对编程产生较大兴趣,不但能够完全掌握老师讲的课程内容,而且能够积极查阅课外程序资料,教师讲授的课堂内容不能够满足这部分学生。传统的教学方式造成教师在教学无法兼顾这两类学生。学期结束后,第一类学生普遍感到程序设计课程晦涩难懂,不会应用,无从下手,因此失去了学习热情。

其次,传统教学模式影响教学效果。在传统的教学中,教师往往以课程的理论知识点为主线组织教学,依照从讲解概念起,接着讲解语法语句,最后举例加以细化。部分教师缺乏对该门课程的整体性把握,在教学上过多注重语法结构的知识,没有把学生放在主体的位置上,师生间的互动很少。甚至有些教材内容的结构安排缺乏合理性,语法部分编写过于繁琐,学生接受的是枯燥无味的理论规则,导致学习没有积极性,难以调动学生学习的主动性。教学观念、教学手段和方法以及考核形式等都比较陈旧,不能适应新形势下的教学需求,学生学习效率非常低,无法将所学知识运用到实际中。

最后,实践环节薄弱。上机实践是学习编程语言的重要组成部分。实际授课中,重视课堂教学而轻视上机实践,理论课上既要讲基本的语法知识又要讲编程方法,占用了过多的课堂时间。实验课上进行基本的验证性实验,学生机械式的运行程序,无法真正学会如何编写和调试程序,使得理论教学和实践教学脱节。通常情况下,C语言程序设计目前的考核方式主要以笔试为主,主要考查语法和基本的逻辑推导能力,无法进行学生动手实践能力的考查,从而造成了大部分学生即使理论知识掌握较好,却不会上机编程。

二、C课程教学方法改革探索

(一)采用分层教学模式

首先,对象分层。新生入学后,系部首先通过问卷的形式对新生的计算机基础技能、学习计算机的兴趣以及课内外学习方式等情况进行了调查,并进行了计算机水平摸底测试。根据学生的实际测试水平,打破以班为集体的传统教学模式,将他们分为不同的层次分别授课。将程序设计兴趣较强、数学逻辑基础较好、有一定编程基础并且测试成绩较好的学生编入a层;将测试成绩较差并且没有编程基础的学生编入C层;其余多数学生编入B层。教师依据各层学生进行因材施教,即针对学习者不同的学习能力、态度等个体差异施行不同的教学模式,实际上是使三层学生各有侧重、共同提高的一种教学方法。

其次,教学分层。分层授课是分层教学成功实施的关键,学生是教学活动中学习的主体,教师需要对所教层次学生的编程水平有准确的认识,才能真正激发其学习激情,培养其学习能力,促进课堂教学质量的提高。a层学生一般理解力较强,学习具有主动性,教师可以引导他们除了掌握教材知识点外,推荐课外参考书,尽快参与软件开发项目或兴趣小组。B层的学生通常情况下能够掌握基本的语法规则及编程方法,但是对编程缺乏总体思路,就需要教师及时将学生学过的知识加以复结,在掌握教学大纲要求的知识点外可通过综合实训练习进行编程水平提升。对C层就要通过精心设计教学内容、耐心的作业辅导、适时的课后交流激发他们的学习兴趣和信心。分层教学从各层学生的实际出发,“因人制宜”,关注各层次学生在学习方法上的差异,给予学生不同级别的指导,刺激学生向高层次目标努力,从而大面积地提高教学质量。此外,在实施过程中也要注意保护学生的自尊心,以淡化各层间的人为界线,避免分层带来的负效应。

最后,分层评价。分层评价是针对各类学生的学习水平,建立一套完善科学的评价体系激发学生学习兴趣、优化学习方法、树立学生的自信心,促使各成其才。对a、B、C三层的学生不同的目标要求体现在评价体系中。对平时成绩的考核对应不同层次,a层同学分组考核,分工协作完成预设项目,根据小组中的表现进行组员互评和老师评价相结合的方式。B层和C层的同学则通过上机实操进行编程水平的测试。期终试卷可在同一份试卷上进行分层,分别对应于不同层次。试卷分成基础和提高两部分。基础部分主要考核学生是否达到基本教学大纲要求,这部分是三个层次学生共同的必答卷,对于三个层次的学生同分但不同值,成绩作为课程的考核分。例如编程题标注10分,则如果a层学生做对考核分加10,B层和C层学生做对加15。第二部分为提高卷,也是a层学生的必答卷,B、C层学生的选答卷,成绩作为课程的考核分。分层考核的目的是使各层次的学生经过努力都能获得较高的分数,获得成功的体验,激发学生的求知欲。

(二)基于实践导向的任务驱动教学

以实践为导向在教学活动中要求,以专业能力要求为依据,将“教、学、练”一体化的教学模式融入教学课程设计中。根据行业需要的知识、技能确定课程内容的选取与安排,课程设计是采用真实项目贯穿教学全程,项目按照内容分成若干模块,实现将化整为零进行学习。

任务驱动下分组学习讨论是一种非常有效的方式。让学生发挥主动性自由分组,依据编程能力水平给每组指派一名组长,上课时以组为单位,分析、讨论项目任务,具体包括需要收集资料、项目进度以及具体的工作任务。小组长主要负责小组内任务分配、协调组内成员等工作,老师轮流在每个小组旁听学生的讨论并接受学生的咨询。

教师所指定的任务主要包括两类内容:一类是课本课后习题,并对完成任务所必需的知识点进行必要的说明;另一类是具有实用性的项目任务实例,让学生更直观地理解所学知识应该如何与实践相联系。第二类任务需要教师进行设计,尽可能具有综合性、可分割性,适合小组讨论解决及协作完成。

制定合理的考核标准来综合衡量学生的学习状况是激发学生进行协作学习的动力。当学生完成任务后,先在小组成员之间进行任务完成情况评论。最后由老师对每组学生的任务完成情况进行总结讲评,对其中的不足进行点评,对比较好的做法给予鼓励,并据此对每个学生计算平时成绩,将小组整体得分与组内个人得分进行综合。课程采用综合测试考评方式,突破单一的闭卷考试方式,将平时作业、课堂讨论成绩、与期末考试相结合。

三、结束语

C语言是一门实践性很强、热门的高级编程语言。根据目前的教学现状,分析和总结教与学的不足,通过分层模式教学改革和以实践为导向的任务驱动教学探索,不断地提高课程的教学效率,使课程更具科学性,把学生的主动性充分地调动起来,让学生在学习中尝到乐趣。

[参考文献]

[1]杨理云.“C语言程序设计”教学方法探索[J].中国成人教育,2007,(5).

[2]丁群,文明瑶.项目教学法在C语言教学中的应用[J].电脑知识与技术:学术交流,2012,8(3).

[3]陈洪超.项目教学法在“C语言程序设计”课程中的应用[J].重庆电力高等专科学校学报,2012,17(3).

c语言课程篇6

《C语言程序设计》是计算机相关专业的一门基础课程,是培养学生计算思维能力、程序设计与实现能力的入门课程,同时也是《数据结构与算法分析》等课程的先导课程;C语言也是it企业中常用的编程语言。因此,该课程的教学对学生后续课程的学习和今后的工作都会产生重要的影响。对于初学者而言,因为逻辑思维能力较弱,所以在学习过程中积极性不高,学习效率低下,难以提高其编程语言解决实际问题的能力。经过多年的授课,笔者对《C语言程序设计》的课程教学进行了一些探讨和实践

二、教学中存在的问题

1.教学主体以教师为主

在传统的教学中,教学主体往往以教师为主,高等院校对教师的考核注重“科研”,因此很多教师容易忽视“教学”的重要性。在《C语言程序设计》的教学中教师方面的问题主要包括:①课程的知识点较多,存在教学内容与教学时数之间的矛盾;②教师的教学方法、方式陈旧,难以激发学生主动学习的兴趣;③教师在教学中大多重课堂教学,轻实验教学;④任课教师往往没有工程实践经历,其综合业务水平有待提高。

2.教学中没有充分调动学生学习的积极性

《C语言程序设计》的课程学习是在新生入学的第一学期,这对课程的教学也带来一定的消极影响,主要体现在:①学生学习目的不明,动力不足,很多学生以为进入了大学主要是锻炼社会交往能力;②学生的逻辑思维能力较弱,想象空间较窄,遇到挫折容易产生厌学情绪;③由于受传统应试教育的影响,学生大多重教轻学,重理论轻实践,考试能力强,编程能力弱,不能用计算思维解决实际问题。

三、教学改进的举措

针对上述问题,笔者摒弃以单向性知识传授为主的教学模式,主张讲课教师应以课程的内容和学生的知识积累为基础,积极引导学生创造性地运用知识和能力,自主地发现、分析和解决问题,学生在研讨中学习知识、培养能力和提高素质。具体的教学实施方案包括:

1.编制详细的教学设计方案

为帮助学生提高自主学习和创新的能力,需要制定详细的教学设计方案,该方案是课程教学具体实施的主线,它相当于一场晚会的节目演出单,讲课教师是导演和主持人,而学生是主角和演员。教学设计方案主要包括:教学日期和时数、教学内容和主题、实验内容、教学方法、教学手段和作业安排等。

2.优化教学内容

该课程存在教学内容较多而教学时数受限,全面而细致的讲解所有的内容已不合时宜。教学内容的优化应满足教学目标的要求,满足学生的学习需要,激发学生的学习兴趣[1]。因此,我们按照“少而精、宽而新,突出核心的知识点”的原则优化教学内容,体现教学内容的先进性、实用性。按照学习进度,给学生安排相应阶段的学习任务,有些内容要求学生自主完成。

3.改变传统的教学方式

传统的“填鸭式”教学方式效果并不好[2],因此,我们在教学引入并主要采用了“讨论式”教学,以充分调动学生学习的积极性,具体的做法包括:①每次授课结束前,布置预习思考题,要求学生在课下充分预习,课上围绕思考题展开讨论,每次课分组讨论1-3次,每次2-5分钟;学生课堂讨论、发言或回答问题的时间约占总学时的20%;②随机抽查回答问题与各组指派同学回答问题相结合,回答问题不以正确性为唯一依据,也注重表达过程的清晰度和逻辑性,尤其鼓励问题回答者阐述自己的观点或提出问题。统计表明,学生回答问题次数平均水平有6-8次;③将学生在课堂教学过程中的表现按评分标准将其分值记入到平时成绩档案中。

4.加强教学方法的改革

在教学中应以学生为中心,引导学生走向知识,通过合理施压,注重师生的互动交流,培养学生善于总结、发现问题和主动学习的能力[3-4]。在《C语言程序设计》的课程教学中,我们对教学方法做了如下改革:①“案例教学法”贯穿教学全过程,“学生信息管理系统”贯穿了该课程的全部章节,是学生在学习过程中的“长期任务”;②“任务驱动法”引导学生学习,“长期任务”可以分解为多个对应于知识点的“短期任务”,有助于学生逐步提高编程能力;③用“负反馈教学法”解决学生学习中问题,有效的提高学生的学习效率;④弱化语法,以“算法为先”实现实际问题的求解;⑤并用“多媒体”教案扩大课堂信息量,精心制作与教材配套的Cai课件和习题。

5.建立新型的实验教学模式

为了激发学生学习的积极性,我们通过建立新型的实验教学模式[5],包括:①为增强学生学习的体验感,减少了基础验证型实验比例,增加综合型实验和设计性实验的比例;②建立以小组为单位的实验完成机制,培养学生的团队合作能力;③加强实验报告的规范,增强学生的职业岗位意识;④建立定期的课外讨论机制,教师定期讨论主题,学生以小组为单位进行准备,然后通过专题讨论和点评,并将学生的表现记入平时成绩档案;⑤鼓励实验动手能力的较强的同学自己设计实验项目,并依据结果给予其一定的平时成绩奖励。

6.健全严格的学生考核机制

传统的考核以笔试为主,学生为了应对考试采取死记硬背的方式,为此我们建立严格全面的考核机制,包括:①建立学生学习小组,分组原则是小组内部异质化,小组之间同质化;②建立每个学生平时学习成绩档案,学生的平时表现与分值相对应;③制定公平合理的成绩评定方案:学期总评成绩=平时成绩×60%+期末考试成绩×40%,平时成绩=小组成绩*小组人数*组员在项目组的贡献百分比(组员的贡献百分比是在教师给出小组成绩之前,经过该小组的全体成员一致同意后提交给任课教师),这种考核方式可以促进学生的团队协作精神和竞争意识;而期末考试侧重于通过编程以解决实际问题,从而促使学生平时多思考、多上机实践,有助于提高他们的逻辑思维和编程能力。

7.积极开展第二课堂教学

积极引导学生参加课外实践活动,主要采取了如下措施:①开设了网络教学平台资源,为学生提供大量的经典实例程序、教学课件和习题,并通过电子邮箱、QQ群和微信群等手段,随时为学生答疑,了解学生的学习状况以调整教学内容和手段;②鼓励学生自主创立或参加各种创新社团和讲座,目前,本学院已成立“海盗社”等实践社团,面向全校学生举办多种创新活动,2014年共组织了11场关于程序设计相关的讲座和活动;③将各类程序设计竞赛和实践教学相结合,鼓励学生参加各类程序设计大赛,为此学院提供了稳定的经费和场地支持,并依据参赛结果给学生一定的表彰和物质奖励;④在大一第二学期末段,组织学生到印孚瑟斯技术中国有限公司等it企业实地参观学习,了解这些企业的文化、发展和对职业岗位能力的需求,进一步让学生明确个人今后的发展目标和计划,激发其学习热情和自身的发展潜能[6]。

四、结束语

c语言课程篇7

摘要:本文在分析了C语言程序设计课程的教学现状和教学困境的基础上,对比自然语言和程序设计语言的共性以及C语言的特殊性,提出了“从概念入手,侧重程序阅读和程序设计能力培养”而非“语法研究”的教学角度。

关键词:C语言;程序设计;教学内容;教学角度

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

1教学现状

在高等学校的本科教育中,“C语言程序设计”几乎成了所有专业的必开课程,从计算机科学与技术、软件工程、网络工程等相关专业,到电子信息类理工科各专业,乃至理工科院校的所有非计算机专业,有的是专业基础课,有的是公共必修基础课,有的是“非计算机专业的计算机基础课”。只是课程名稍有差异,常见的有“C语言程序设计”、“高级语言程序设计”、“C语言”、“C程序设计”、“结构化程序设计”等。无论叫什么样的课程名,也无论是哪类专业,其课程的教学要求和教材选用却无太大差别,只是课时分配差异较大。

从网络调查的16所不同类型高校的“C语言程序设计”教学大纲看,普遍都包含“通过本课程的学习,使学生了解有关程序设计的基本概念、术语及C语言的特点,掌握C语言基本数据类型、语法规则、程序控制结构、常用的标准库函数,培养学生的程序设计技能,初步积累编程经验”的教学基本要求;约百分之八十左右的“C语言程序设计”课程都选用由谭浩强主编、清华大学出版社出版的“C程序设计”作为主教材;课时分配从30~108课时不等,其中80课时以上的多为应用型本科院校的计算机相关专业以及综合性大学的非计算机专业,理论课时与实验课时的比例一般为1:1到1:1.2。与此同时,其他专业基础课(如计算机组成原理、操作系统、数据结构等)的课时一般为54课时,最多不超过72学时。相比之下,“C语言程序设计”所占课时是其他专业基础课的1.5倍至2倍。

从教学目的看,非计算机专业的“C语言程序设计”课程主要目的是“掌握语法规则和程序结构,具备一定的程序设计能力”,而计算机相关专业的“C语言程序设计”课的教学目的则要分为三个层次,一是使学生全面理解计算机程序设计语言的基本内容和结构;二是通过算法掌握程序设计的基本方法和步骤,并具备一定的程序设计能力;三是为后续课程的算法描述和其他程序设计语言的学习奠定基础。

2教学误区

从以上的教学现状(特别是课时分配)看,长期以来,“C语言程序设计”的课程教学存在“教学内容背离教学要求和教学目的”的误区,主要表现在教材误区、讲授误区和考核误区三个方面。

2.1教材误区

国内高校的“C语言程序设计”课大多选用谭浩强主编、清华大学出版社出版的“C程序设计”[1]为主教材,目前使用的是2005年7月修订出版的第三版,教材共363页,主体内容分为14章,其中,第3章的数据类型与表达式占用30页,第4章的格式输入输出占用12页,前9章共占用218页,后5章共占用145页。占用如此大篇幅的原因是教材中除了介绍相关语法格式外,还增加了相当多“特殊格式”和“特殊情况”的解释和说明,因此,该教材的最大优点就是“内容详尽、解释清晰”。然而,对于初学者来说,学习计算机程序设计语言就是为了“为计算机描述求解问题的过程”,过于详细但又远离现实问题的“特殊格式”和“特殊情况”的解释,使得学习内容复杂化,增加了程序设计语言学习的难度,误导了学习者的学习重点,由此也赋予了该教材无法掩饰的缺点,那就是教材编写的指导思想和教材内容的组织脱离了高校各专业“C语言程序设计”课程的教学目标,过分强调语法细节而忽略了程序设计语言的“正向表达能力”的应用,过分强调“语言的灵活性”而导致教材主体内容的“复杂化”,从而误导“C语言程序设计”课程的教学内容朝着“重语法学习、轻算法描述”的“语言研究”方向发展。

2.2讲授误区

由于教材内容的“复杂”,课堂讲授自然需要较多课时,教学重点当然也放在了“语法研究”上。从网上下载的“C程序设计(第三版)”的配套教学课件以及有关院校的“C语言程序设计”教学课件的内容组织上可以清楚的给出以上判断。“语法研究”型的课堂讲授,更加放大了教材对“C语言程序设计”课程内容的“扭曲”程度,给学生提供了错误的程序设计语言学习方法,把简单问题复杂化,更为严重的是,挫伤了学生学习计算机程序设计语言的兴趣和积极性,把本应“主动学习”的课程成引入了“被动学习”的歧途,直接导致“懂语法、会做题,但不会编程序”的教学后果。

2.3考核误区

多年来,“C语言程序设计”的主体考试内容就是“语法”,无论是选择题、填空题还是程序阅读题,大多都无法逃脱“语法”的束缚。考试方式以笔试为主。这在某种程度上肯定了“语言研究”的教学角度,促使“C语言程序设计”的教学重点更向“语法研究”的方向倾斜,最终误入“增加课时,强化语法,还是不会编程序”的怪圈。

3应有的教学角度

按照网上调查的各专业教学大纲中“培养具有一定程序设计能力”的教学目的,“C语言程序设计”课程的教学落脚点应该更确切的理解为培养“能用程序设计语言描述求解问题过程”的一般程序设计者,而不是造就“全面掌握程序设计语言语法、能设计高效、难懂程序”的程序设计语言方面的“作家”。因此,“C语言程序设计”课程教学相当于自然语言中的“基本语言能力”教学,而不是“语言研究”或“高级写作”能力培养。

3.1自然语言与计算机程序设计语言

计算机程序设计语言是用人和计算机都能识别的方式描述计算机求解问题过程的过程描述语言,它具有和人所使用的自然语言相同或相似的组成和结构特点,对于已经掌握了至少一门自然语言(比如汉语或英语)并具备一定文化程度的人来说,学习一种计算机程序设计语言并非难事。自然语言的基本组成包括符号集合、字、词、句、数据及其运算规则等基本要素,学习过程包括认识符号、发音、识字、组词、学语法并造句、学文法并写短文、练习写文章等基本阶段,在具备了基本的语言能力之后,扩充词汇量和提高写作能力将成为终身学习的基本内容。按照自然语言的基本组成和学习过程,也可将计算机程序设计语言的基本组成归纳为字符集、标识符(常量、变量、保留字等)、数据类型、运算符、表达式、语句、程序格式等基本要素,其中,字符集和数据类型是定义程序设计语言的基础,字符按一定规则组成标识符,用来充当常量名、变量名或其他标识,在自然语言中被人们公认的特殊标识符被赋予特定的语言含义,专门为语言系统所用(用户不得再次定义其意义),称为保留字;字符集中的特殊符号(如+、-、*、/)被赋予特定的运算意义(如加、减、乘、除)称为运算符;不同数据类型的常量、变量用运算符按一定规则连接起来组成的式子就构成表达式;将特定的保留字与表达式等语言要素按照语法规则组合起来就形成相应的语句;将语句按照要描述的求解问题的逻辑顺序排列起来,就构成了某种程序设计语言求解特定问题的一段程序。

3.2C语言的特殊性

一方面,C语言是程序设计语言的一种,具备一般程序设计语言的基本组成要素和结构特点。另一方面,C语言能成为面向过程的结构化程序设计语言的代表,也有其自身的特殊性。首先,C语言的数据类型极为丰富。除了基本数据类型外,还有构造类型、指针类型、空类型和用户自定义类型,其中,构造类型包括数组、结构体(struct)、共用体(union)和枚举类型(enum)等四种数据结构。其次,C语言具有位操作能力。除了能够对各类变量进行操作外,C语言还具备“按位”进行逻辑“与”、“或”、“非”、“异或”运算和“左”、“右”移位运算,这使得C语言具备了更强的系统开发能力。第三,C语言具有显著的结构化程序设计能力,并通过完整的函数定义来实现。第四,C语言的最大特点就是“语法限制不严,解释灵活”。第五,C语言允许直接访问物理地址,可直接对硬件端口进行操作。第六,C语言没有输入/输出语句,信息输入/输出功能由标准函数库中相应的i/o函数来完成。

C语言的这些特殊性,决定了C语言的教、学过程不同于其他程序设计语言的教学过程。

3.3C语言的教学角度

根据一般程序设计语言的基本组成与结构特点,结合C语言的特殊性,“C语言程序设计”课程的教学角度应该是:从介绍程序设计语言的基本概念入手,重点介绍语言的“正

向”设计功能而非“特殊格式”或“特殊语法”说明,侧重学生的程序阅读和程序设计能力培养,从教学内容的广度和深度两个方面,恰当把握教学角度。

“C语言程序设计”课程的内容可分为三个基本模块,教学过程从第一个模块切入,逐渐扩展到第二和第三个模块。第一个模块可称为“程序设计语言公共模块”,主要包括程序设计语言的基本概念、程序设计语言的基本要素(字符集、标识符、常量变量以及保留字、基本数据类型、运算符、表达式、语句与控制结构、程序结构以及程序书写规范等)以及输入/输出格式等内容;第二个模块是C语言的主体,主要包括函数、数组、指针、文件等;第三个模块是高级编程内容,主要包括结构体(struct)、共用体(union)、枚举类型(enum)以及用户自定义类型等。

在教学深度方面,各模块的教学重点应放在“规范的语法描述和直观易懂而且正确的语义表述上”,避免涉及各种过细的“不符合人类阅读习惯”的语义描述,暂时避开“特殊格式”或“特殊情况”的纠缠,摆脱“研究语法”的错误向导。在此基础上,第一模块的教学可与自然语言相比对,通过学生已有的自然语言学习经验和语言要素,使学生快速建立程序设计语言的基本概念,正确理解程序设计语言的基本要素及其关系,掌握基本语法和程序基本控制结构(顺序、选择、循环),并通过算法归纳求解问题的过程,正确理解算法不同描述方式(自然语言、传统流程图、n-S流程图、伪代码、程序设计语言)的作用和差异,特别是从“问题”到“程序”的渐进转化过程,从而培养学生的基本程序设计能力。通过第二模块的教学,使学生明确函数、数组、指针、文件等概念和作用,掌握它们的定义和引用方法,能进行相应数据类型的编程,进而掌握用函数定义的结构化模块程序设计的方法;通过第三个模块的教学,将程序的数据处理能力扩展到结构体、共用体、枚举类型以及用户自定义类型等复杂数据类型的处理上来,通过恰当的例子应用这些数据类型,向学生展示C语言强有力的数据表示和处理能力。

另外,可以将C语言中的“语法灵活性”和不同部分的各种“特殊情况”分类总结,归纳整理成“语言参考手册”等形式,以附录的形式提供给学生,以便需要时“备查”。这样既可节省教学课时,又可向学生提供学习语言的主动权。

3.4教学策略和方法

“C语言程序设计”属语言类课程,教学过程充满了逐步完善和熟练的基本特点,因此,从教学安排的策略上要分重点、分阶段逐步进行,每个阶段的教学方法应该采用建立在一定基础上的有重点的“部分教学法”,以核心内容为基础,向外逐渐延伸,部分学习,渐进掌握。尽可能避免不分主次、不论难易、不顾急缓,盲目一次性扫清各类知识点的“地毯式”教授方法或学习方法,同时强调自学和上机验证,强化在特定环境下(如turboC++3.0)的程序设计训练,做到“精讲多练[2]”,从小程序练起,逐渐过渡到求解较大或实际问题的程序设计上来。

4结束语

从目前的教学现状看,无论是计算机相关专业,还是理工科的电子信息类专业,乃至综合性大学的非计算机专业,“C语言程序设计”的课程教学均占有重要的教学地位,在全面提高教学质量和教学效率的今天,不同类型专业结合自身优势和程序设计语言类课程的特点,选择合适的角度组织和实施“C语言程序设计”课程的教学活动非常重要,而且很有必要。笔者的教学实践证明,避开“语法研究”的程序设计教学不仅可减少课时,更可提高学生利用程序设计语言“表述求解问题过程”的能力。

参考文献

c语言课程篇8

关键词:计算思维;C语言;教学改革

中图分类号:tp3-4;G712

C语言是我院针对非计算机专业开设的计算机类公共基础课程,也是计算机专业及相关专业的专业基础课。在该门课程的教学中一直存在一些问题:[1]

(1)我院非计算机专业学生约占全体学生的90%,大部分学生认为自己毕业又不从事计机软件开发,与后续课程结合又不紧密,所以学习的主动性和自觉性下降。人在课堂,心却不在听课状态,厌学情绪明显,学习效益低下。

(2)C语言的课程采取大班上课,学生的水平参差不齐,随着程序设计知识点增多,大量的难以理解和记忆的新概念、新术语、新规则出现以后,学生逐渐感觉课程难度大,更加无心学习。

(3)课堂内容与实际问题脱节C语言是一门理论和实践性都很强的课程。教学中重理论轻实践,实践课时不足,对程序设计能力的培养不够。

(4)重语法,轻算法。现有的C语言教材中首先要介绍编程涉及的语法格式,然后讲解语法要点和注意事项,对算法描述内容涉及甚少。再加上计算机等级考试的内容主要包括选择题、判断题、填空题、程序填空、程序改错、程序编程题等,都是侧重语法,无疑这种考查方法使得学生的程序设计能力降低。

(5)C语言的语法结构一般都是零散的,学生难于相互关联、总结,采用的案例也是比较零散、短小的、关联不大。学生经常是学会了全部的语法,但仍不知道这门课能做什么,能解决什么实际的问题,甚至不知道如何解决问题。

1计算机思维

近年来,随着“计算思维”概念的提出,各大高校相继把“计算思维”引入到计算机类课程教学中,围绕计算思维能力的培养开展课程教学。那么,究竟什么是“计算思维”?

计算机思维的概念和特征:周以真教授于2006年在CommunicationsoftheaCm期刊上首次提出了计算思维的基本概念:计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动为便于理解。计算思维作为一种思维活动,它不是僵化的一种具体问题的解决方法,而是具有很好普适性的思考方式,提供的是一种方法论。[2]

2如何在C语言课程中培养计算思维能力?以下针对这些问题谈一下笔者的认识和看法

(1)重视实验教学。C语言程序设计是一门实践性很强的课程,实验教学环节尤为重要。目前我院通过优化调整现有学时比例达到课程改革的目的。将C语言程序设计的学时重新分配:该课程总课时为72学时,其中学时调整为理论和实践学时各占一半。在教学内容符合省等级考纲要求的基础上,课程采用课堂讲授与实验操作相结合的方法,使学生动手能力得到了较大的提高。实验内容要具有一定的趣味性或实用性,比如银行存款利息和if结构结合、出生月份的计算和switch结构结合等,采用日常生活中的问题从而激发学生学习的兴趣。实验过程按照“验证―调试―设计”的顺序进行设计。1)验证:安排学生对学习过的内容利用现有的简单程序进行验证;2)调试示例:编写简单的程序作为调试示例,在其中设置学生经常遇到的各种小错误(包括语法错误、逻辑错误);3)编程练习:根据编程示例,让学生能用灵活运用所学知识,求解新的问题解决类似的问题,既巩固了所学知识,又提升了学生的分析问题和解决问题的能力。在实验教学过程中,授课教师还要注意引导、启发学生积极思考。让学生在亲手操作中学习知识、消化知识,运用知识,强化计算思维。培养他们积极思维,自己发现问题、解决问题的计算思维能力。[3]

(2)采用项目驱动的方式进行教学。针对于C语言的语法结构过于零散的情况,可以采用项目驱动的方式。本着一个项目贯穿整个课程教学的思想。可以选用涵盖所有知识点的“猜数游戏”经典程序,让学生围绕这个程序循序渐进地学习,便于思维训练的连贯性。[4]

(3)案例式教学。案例式教学通过先提出问题――分析问题――解决问题的过程中讲授所需知识点。在讲解案例时,我们先提出具体问题,后引导学生去体会为了解决问题而产生的大脑思考过程,将人的想法转写成计算机能够处理的表达式或操作步骤。在课堂上教师借助案例题把C语言的基本概念和方法传授给学生。这种案例式教学能更好地引导学生去分析问题、解决问题,特别是提高学生如何自主寻求解决方案的独立思考能力。

(4)重视算法的作用。将C语言中常用的算法进行归类,在教学过程的不同阶段,分别引入这些算法。好的算法不一定适用于每个问题和每个学生,通过算法的多样性使学生深入理解到计算机求解同一问题可用不同的方法。而掌握计算机求解问题的各类方法,也是培养学生计算思维的关键。例如“素数”求解问题:如果n能被2~(n-1)之中任何一个整数整除,则表示n肯定不是素数,不必再继续被后面的整数除;反之就是素数。按照这种方法求解的程序是:

for(i=2;i

if(n%i==0)break;

这样For循环要执行n-2次,经过分析我们发现并不需要使用这么多次判断。只要条件满足n能被2~之中任何一个整数整除,则n就不是素数,因此可以将程序更改为:

for(i=2;i

if(n%i==0)break;

这样n值越大改进后程序运行效率越高。对于求解某一区间内的素数如求100~200间的素数我们可以通过以下程序来判断:

for(n=101;n

for(i=2;i

if(n%i==0)break;

上面的例子充分说明利用算法的简化和优化,可以帮助学生举一反三地学好C语言课程。

(5)改革考核内容。一直以来,C语言课程的考核都是针对于期末考试和省二过级而设定的,内容主要是针对C语言语法知识的掌握、常用算法的识记和应用、初步的程序设计开发能力等方面来设置的,并没有有意识地针对计算思维能力的培养来设置考核内容。注重计算思维能力培养的C语言课程应在考核内容设置上更多更明确地体现出对学生运用计算思维求解问题的能力的考核。例如,考核常用算法的识记和应用时,应侧重对最初算法的改进或扩展用于实际问题求解的考核。加大算法的运用比例,增加程序设计题的占有率,从学生的考核中强化计算思维能力的培养。[5]

3结束语

通过C程序课程中的若干改革尝试,将计算思维培养融入到理论教学和实践教学的各个环节,培养学生用计算机自主解决问题的能力,从而提高学生的创新思维和创新能力都有积极的作用。

参考文献:

[1]于晓强,赵秀岩,闫丕涛.计算机程序设计课程中计算思维能力的培养[J].计算机教育,2013(13):18-21.

[2]张雪伍,常晋义.计算思维在C++程序设计教学中的应用[J].计算机教育,2013(13):52-56.

[3]董卫军,邢为民,索琦.贯穿计算思维的(C语言程序设计)课程改革[J].教改创新,2012(11):48-49.

[4]丁金凤,李英梅,徐建山.基于计算思维的程序设计类课程教学实践[J].学科建设与教学改革,2012(15):65-68.

[5]李倩.C语言程序设计课程中计算思维能力的培养[J].网络安全技术与应用,2013(12):111.

c语言课程篇9

【关键词】中职学校;C语言;课程教学

一、认识C语言

中职学生入学前基本没有学过编程语言,即使在中学学过了也只停留在印象当中。要让学生学好C语言就要学生充分认识C语言的性质、强大功能、用途。C语言是典型的结构化程序设计语言,具有强大的运算功能,较强的移植性,即有高级语言的特性,也有汇编语言的特点,而且有较好的通用性。在教学中解释这些特点时要用通俗的语言易理解的现象来说明。比如,讲解“什么是结构化程序设计”时,先不解释三种结构,只解释自顶向下概念,它的执行方向就像“用铅笔从上向下画一条直线,起点是上终点是下,画完线程序也结束”。再如,解释C语言的通用性时这样解释:即能编写象windows这样的系统程序也能编写影音播放器这样的应用程序,windows里近30%是用C语言编写的。用这样简单易懂身边看得到的情境解释能够让学生能够充分理解C语言的特点。

二、培养学习兴趣

兴趣是学好一门计算机语言的关键,所以培养学习兴趣非常重要。大部分中职学生入学前没有接触过编程语言,因此,在讲解理论知识点之前,先给学生展示实用性的程序,吸引学生,激发对这门课的学生兴趣。

三、合理设置教学目标,明确培养目标

根据中职学生的现实特点,应合理设置教学目标,明确培养的方向。无论计算机专业还是非计算机专业,C语言是以后学习其他编程语言的基础。通过C语言教学可以为使用C++、java等语言进行程序设计奠定良好的基础。除此之外学习掌握好C语言后也能较快地学会非C语言为母体的高级语言。但是多数情况下C语言并不是后续学习进程的显式影响因素,但通过C语言培养起来的逻辑思维和运算能力却是伴随其学习的整个过程的。学习C语言的目的,一方面是学习C语言知识,提高分析问题、解决问题的能力,另一方面是学习编程基本思想,培养编程逻辑思维能力。教学的目标不要定得太高,不要期望学生学习后成为C语言高手,随心所欲地编出程序。我们教授的知识目标只是给他们打下C语言的基础知识。知识的掌握应循序渐进。

四、树立“算法为核心,语言为工具”的理念

要进行程序设计,需要具备语言、算法、数据结构和程序设计等方面的知识。其中,算法尤为重要,可以称其为编程的核心。而计算机语言是完成程序设计的工具。算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。算法是解决问题的入口,只有有了算法才能编写程序,所以找到合适算法是编程关键。有了算法还需要工具按算法步骤一步步完成,这就是计算机语言。C语言程序设计教学中算法教学和程序语言教学有着非常密切的联系。如果没有算法,即便你掌握了计算机语言也无法编出程序。因此,在C语言的教学中,教师要积极培养学生分析问题、解决问题的能力,让学生充分发挥主观能动性,教师提示,尽量让学生自己找到适合的算法,不要每次都由教师给算法,然后让学生去编程。教师不应该只注重理论内容的讲授,不重视算法的开发。如果这样,学生们即便学会了C语言的理论知识,因为不会分析问题找不到解决问题的方法,所以无法编写出程序。

五、选择适合中职学生的教材和内容

中职学生多为初中毕业生,基础薄弱,尤其是数学和英语。而C语言涉及的概念、原理和规则繁多,语句使用灵活,语法限制不太严格给初学者造成了很大的困扰也给老师的教学带来了很大的障碍。所以,选择什么样的教材和教学内容非常重要。一定要选择适合中职学生特点,难度适合,注重基础性的教材,而在讲授时也不能对教材的全部内容讲授。教师要根据学生的情况可以删减一部分内容,因为我们要讲授的是基础内容,学生要编写的是简单的程序。比如,文件、编译预处理、结构体与联合体,这些内容可以删除不讲。这样的内容在以后对C语言有了一定的了解后可以自学,而且在短短的一学期内学完整个教材的内容也是不可能的。

六、灵活合理安排教学内容,运用多种教学方法

1.教学内容的安排

C语言的教学通常教师讲授的时间比重大一点,因为大多数学生们第一次接触编程,自学能力较差,学生对C语言的繁多的规则不能理解或理解得不充分,无法联系起前后知识点。因此,教师应灵活合理按排教学内容,不能一味地按教材的顺序和内容讲授。教师可以根据情况合理安排教学内容。教材中的例题不一定每个都适合中职学生,学生们自己阅读起来也不一定能看懂。所以,教师在讲授时可以不用书上的例题,可以自己找一些简单易懂,学生身边能看到的内容作为例题,至于书上的例题等学生们掌握了本章节的内容后,在本章节复习时再回来讲解或阅读,这样,学生们对书中的例题能更充分地理解,也能够自己能读懂程序,即达到了复习的目的,也能培养自学的能力。有时,教师可以把教材中的内容顺序按照自己合理讲授的顺序编排。比如,讲授“类型的自动转换”中有关“赋值号右边的类型转换为赋值号左边的类型”内容时,可以把这个内容放到讲授“赋值表达式”内容时一起讲,使学生在表达式中的运算和赋值过程中理解掌握自动转换。这样讲授本内容,学生即能掌握赋值表达式和自动类型转换的知识,也能非常直观地看到自动类型转换功能的效果,可谓一举两得。

2.运用多种教学法

学习C语言的过程是一个非常枯燥漫长需要耐心的过程。中等职业院校在进行C语言课程教学时,多数仍通过教师讲解、板书和各种媒体作为教学的手段和方法向学生传授C语言中的概念、语句、语法规则等内容,通过布置一些适当练习,让学生重温教学内容以巩固所学的知识,最后运用常规试卷考试手段来检查考核学生的掌握情况,即大多采用传统的语法讲授型教学方法。这种灌输模式能较好地保证所讲授知识的系统性,但因为知识枯燥,学生学习的积极性不高,教学效果较差。同时在培养学生的实际应用能力和创新思维方面也暴露出许多弊端。教师在教学中如果只注重灌输知识,不激发学生的能动性,学生们只学不会,慢慢丧失学习兴趣,自然也达不到教学目标。因此,灵活运用多样的教学法是非常重要和必要的。比如,采用项目教学法。教师精心准备与本次课有关的一个项目,先举出简单的与本次项目相似的例题讲解,然后部署任务。教师只对本次项目进行简单的提示,剩下的过程由学生独立思考独立解决。在学生完成的过程中,教师可以进行适当的辅导。这样,即掌握了知识,也做到了激发学生的主观能动性和学习兴趣。再如可以采用任务驱动法。在复习课中,给学生部署简单的一个编程任务,整个过程让学生自己找出算法编写程序完成。在完成过程中教师可以帮助也可以指导。完成任务后学生会拥有成就感和自信心,也提高了分析问题、解决问题的能力,自然达到了“学有所用”的教学目标。教师应在教学中根据每次课的特点采用多样的教学方法,一次课可以用一种教学方法,也可以用多种教学,因情况而定。

七、重视上机实验,提高解决问题的能力

C语言是一门实践性很强的课程。如果只学理论不上机实验只能是纸上谈兵,即便编出了程序也不知道对不对。所以,上机实验调试程序是一个非常重要的环节。目前,中职学校的C语言课时少,一般在70课时左右。在有限的时间内即要讲理论又要上机实验,想完成教学任务的确不太容易。这就需要教师动脑合理安排课时。本人在教学时理论教学44课时左右,上机实验安排26课时左右,有的内容直接在机房讲课,边听边做。上机实验时根据内容的难易程序和程序的模块化的需要,可以安排学生单独完成或者分组完成。本人认为简单的程序可以让学生独立完成,而较难的内容分组完成比较好。比如,数组、函数、指针等内容分组上机实验比较好。分组时教师可以选几个学习成绩比较好的学生为每组的组长,让组长带领其他学生共同完成。这样分组实验,保证了部署的上机任务,带动了基础较薄弱的学生,也培养了学生们的团队合作精神,让每个学生都成为主人,有了自信和成就感,更好地激发学生的学习积极性。上机前让学生画出流程图,实验后要填写实验报告,教师要及时总结实验效果。

八、考核方式的改变

考核是教学工作的重要内容,是考查教学工作效果学生学习效果的重要环节。学习C语言的目的是熟练运用C语言编制程序和调试程序。所以,我认为在考核形式中应加入上机考核形式。本人安排85%的卷面内容和15%的上机内容。上机考核内容为5:5:5比例。前两个5为简单题,后一个5为较难题。这样的比例能够让大部分学生做得出来能得分,提高了学习的积极性,也能拉开分数的层次。

参考文献:

[1]谭浩强.C程序设计[m].清华大学出版社.

c语言课程篇10

【关键词】C语言;计算机;教学方法;教学目标

C语言是一种实用性强的编程语言,它不仅可以编制系统程序,也可以编制软件程序,具备灵活、高效的数据处理能力,这种程序设计语言备受青睐,多年来一直被使用,很多计算机科研类项目都必须应用到C语言。

一、C语言的特点和功能

中职学校是重点培养学生掌握技能的学校,所以,一定要让学生们认识到学习C语言的重要性,特别是认识到C语言的特点和功能,这样才能学生们更爱学习这门课程。下面,我介绍一下C语言的特点和功能。其特点有三点:1.它是中级语言,可以把高级语言的基本结构和语句与低级语言的实用性结合起来。2.它还是汇编语言,可以操作计算机中的工作单元:字节、位和地址;3.它也是结构式语言,可以分隔代码和数据,也就是让程序中每个部分相对独立,这样保证了程序中各结构层次清晰、维修便捷。C语言的功能:做底层驱动、嵌入式?通信行业、银行系统、写操作系统、片机开发机的软件系统基本都是用C语言开发。尽管C语言的功能强大,但我们也不能认为学了C语言基本上可以解决一切问题。其实不然,学完了C语言只是学到了语法,如果想要进行开发还需要学习相关知识,就好象学会了英语语法并不代表会用英语写文章一样。

二、合理的制定教学目标

中职学校重在培养学生们的专业技能。但是也要认识到中职学生的学习特点,这些学生们普遍学习能力较差,学习热情较低,所以,要根据其实际情况合理的制定教学目标,这样才能保证所学知识能够被完全消化,从而不仅有利于调动学生们的学习热情,也为以后的拔高学习打下坚实的基础。我校的教学目标是培养学生们掌握C语言的基础知识和基本技能。基础知识的培养有利于提高学生们分析和解决问题的能力,更有利于培养学生们的逻辑思维能力,这样学生们有了编程的思路,为以后的后续学习打下了坚实的基础。

三、合理的利用教材进行灵活教学

C语言是一门复杂的计算机课程。这门课程的特点是:概念较多、规则复杂、语法应用难度较大等,这对于初学者来说很有挑战。所以,教师一定要认清教学形势,在教学中讲究方法和策略,这样才能保证教学的顺利开展,才能达到良好的教学效果。多年来经过分析和总结,我认为要做好以下两点内容:1.有选择的挑选教学内容进行教学。也就是说根据学生们的能力和特点,有选择的挑选适合他们理解和掌握的知识进行教学,这样才可能让学生们听懂、学会,如有教学要求中必须掌握的难点、重点知识,就需要教师多耗时间进行讲解,千万不可操之过急,以免影响学习效果;2.培养学习兴趣,灵活的进行教学。C语言教学内容很枯燥,这就需要教师采用灵活的教学方式,从培养学生们的兴趣入手进行教学,这样才能保证学生们有学习的热情,才能达到教学的目的。举个例子:教学中先教学生们一些简单的编程知识,从而激发学生们的学习兴趣。如自制一个自动关机的小程序,这个程序制作难度小,操作又简单,学生们可以从制作这一个小程序中就认识到编程的乐趣,从而开始喜欢上这门课程,进而提高了学习成绩。

四、教学中要改善教学方法

教学方法是提高学习成绩的有效手段,只有选择正确的教学方法才能达到更好的教学效果。对于C语言课程的教学,传统上还是采用首先讲解、然后练习、进而巩固、最后考试等步骤来完成教学任务,这种教学方法有其优势,但我们不得不承认,随着教学的发展,这种教学方式已经逐渐暴露其弊端。枯燥的教学方式已经不能激发学生们的学习热情,根本就不能达到教学发展的目标和要求。所以,教学方法急需改革,这样才能提高教学质量。下面,我列举一下C语言教学中使用的新方法:1.项目教学法。这种教学方法需要教师做好备课工作,首先教师要根据教学内容挑选一个项目,然后教师在课堂上正常讲解教科书内容,课程结束后布置这个项目让学生们自主完成,教师可以给与一定的指导,学生们在整个过程中是靠自己来完成任务,这样的学习过程不仅让学生们对这个知识的理解和掌握更加透彻,也培养了学生们独立思考、解决问题的能力;2.合作教学法。对于有难度的教学内容可以应用这种教学方法。它需要教师选择一个有难度的编程任务,最好编程内容可分几个部分,这样教师可以对学生们进行分组来完成这个任务,每个同学都可以参与到这个任务中,为了尽快完成任务,同学们需要分工合作、共同努力,在整个过程中,不仅让学生们有了合作的意识,更培养了学生们互相帮助的精神。还有很多教学方法就不一一列举了。总之,良好的教学方法可以在教学中发挥重要作用,它不仅提高了学生们的学习成绩,也提高了学生们的整体能力。在以后的教学中,教师要多多应用,积累经验,从而完善教学方法,提高学生们的学习成绩。

【参考文献】

[1]上官.高职院校C语言程序设计教学方法探索[J].闽西职业技术学院学报.2008(03)

[2]刘霞,郭晓利,赵志明.C语言教学改革探索与实践[J].吉林省经济管理干部学院学报.2003(05)

[3]宋春秀.高职《C语言程序设计》课程教学改革的探索[J].网络财富.2010(22)

【作者简介】