c语言程序设计实例范文【优秀9篇】

2023-12-24 09:45:02 范文 1次阅读 投稿:佚名

小编为同学们整理了c语言程序设计实例范文【优秀9篇】,希望能够给您提供一些帮助。

c语言程序设计实例 篇一

目前,计算机专业其他课程(如数据结构、算法设计)中,也经常用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制作一个若干个人按大小个子顺序排序的动画演示程序,这样就起到了将抽象问题形象化、枯燥问题生动化的效果。

四、结束语

c语言程序设计实例范文 篇二

[关键词]中职计算机教学《C语言程序设计》改革

一、注重课程改革的探索,提高“C语言程序设计”的教学效率

中职计算机专业的学生,今后将从事计算机应用和软件开发的实际工作。基于这点,我们就要制定详细的教学计划和改革方案,逐步提高每个学生对于研究工作的初步能力。《C语言程序设计》是现今计算机科学与技术相关专业的核心课程和主干课程。《C语言程序设计》涉及到诸多的理论基础和教学内容,教师要制定详细的课堂教学规则,从C语言的教学理念出发并明确课程项目的改革目标。目前,C语言教学分为两部分的内容,即理论课堂和上机实验。两个都是非常重要的过程,教师要给予高度重视。首先,在理论课堂上,我们主要讲解一些C语言的基础知识,比如“#in-cludemath.”表示在程序中会引入数学函数;当运行错误时在软件页面的下方会出现“error”的标识;“#includestring.h”会在主函数中引入字符类型等这些都是C语言的基础编程知识,一定要学生掌握透彻并合理运用。其次就是上机实验过程。实验前要让学生对预习内容做简单总结性的回顾,同时也可以让学生之间相互探讨交流,以问答的形式复习C语言的相关知识。教师自己也可以进行编程练习,把作品的灵魂和特点充分展示给学生,带领他们走向更高级的编程世界。

二、加强计算机课程的教学力度,培养学生的“C语言程序设计”能力

《C语言程序设计》主要通过让学生系统学习C语言的基本知识和编程过程中的基本语法,激发学生的灵动性思维,较好地训练学生解决计算机问题的思维逻辑。计算机课程是当前中职教育中的直供电课程,对学生的思维能力以及编程思路和技巧都有较高的要求。所以我们在设置实验题时还可以故意在程序中再设置一些BUG,让学生自主编译,从编译错误中发现程序语句的问题,和学生共同探讨交流,找到有效的解决方案。只要加强计算机课程的教学力度,学生就能自主培养“C语言程序设计”能力,在日常的学习中学会探索求知、学以致用。接下来,教师就可以把教学重点转向“项目为导向”的组织课堂。在案例分析时,学生的动手编译过程非常重要。我们要给学生重点讲解编写程序的思想和方法,让他们确定整体性的编写程序方案,给学生提供一个轻松、自由的C语言学习环境,然后再引导学生讨论学习。只有这样才能吸引学生的注意力,在每个教学环节都做到错落有致,提高学生程序调试能力。

c语言程序设计实例 篇三

关键词:C语言;程序设计;能力培养;教学探索

中图分类号:G642 文献标识码:B

1引言

掌握一门高级程序设计语言是高等院校学生利用计算机解决实际问题的必要条件之一,而C语言是当前国内外广泛使用的高级程序设计语言之一,因此“C程序设计”成为计算机科学与技术、软件工程、网络工程等专业的基础课程。该课程的教学水平不仅影响本课程的学习效果,而且影响后续课程的学习效果,所以提高该课程的教学质量具有十分重要的意义。

“C程序设计”课程传统的教学模式是“理论+实验”。理论教学一般采用“计算机+投影+黑板”的教学设施,教学课件是PPT文档,教学方法是教师控制PPT播放的进度,边播边讲,学生边听边记笔记。实验教学包括验证实验、设计实验和综合实验三种类型。一般采用“实验指导书”的教学材料,学生根据“实验指导书”的安排进行实验。该教学模式比较适合教师对教学进度进行控制,教师处于“主动”地位,而学生处于“被动”地位。

2问题的提出及相关研究

2.1问题的提出

通过对学过该课程的学生和后续专业课程的教师进行教学效果调查,发现传统教学模式中存在如下不足:

(1) 学生的反馈。课程的语法知识太多,理解和记忆都不太容易,即使记住了语法知识也不一定能灵活应用,程序调试不容易通过,独立地编写程序更难等。

(2) 后续专业课教师的反馈。语言基础不牢固,学过的知识如何应用到新的课程还有些困难;适应新的开发环境能力差,动手编写程序的能力弱,缺乏克服困难的主动性等。

在传统的“理论+实验”教学模式下,加强学习能力、应用能力和知识迁移能力的培养成为提高教学质量的关键问题。

2.2相关研究

针对“C程序设计”课程传统教学模式存在的不足,探索诸如“建构主义教学方法”、“案例教学法”和“项目教学法”等教学方法在该课程的应用成为研究热点。

建构主义认为,知识不是通过教师的传授得到的,而是学习者在一定的情境,即社会文化背景下,借助其他人的帮助,利用必要的学习资料,通过意义建构的方式来获得,学习的质量是学习者建构意义能力的函数,而不是学习者重现教师思维过程能力的函数。建构主义教学方法已经在”C程序设计”教学中得到了一定的应用并且取得了较好的效果,但这些方法对教师的组织能力和学生的参与水平有比较高的要求。

“案例教学法”是目前国内外比较流行的一种教学方法,被普遍应用于医学、法学和管理学等学科的教学,也被广泛应用于计算机教学中。“案例教学”有助于提高学生的学习兴趣和分析与解决问题的能力,但设计和编写教学案例会给教师增加额外的负担,而且选择能够激发学生学习兴趣的教学案例也不太容易。

“项目教学法”是通过实施一个完整的项目来实施教学活动,通过理论与实践教学的有机结合,充分发掘学生的创造潜能,提高学生解决实际问题的综合能力。该方法有助于提高学生应用知识的能力,但对学生的克服困难、认真钻研的主动性要求比较高,如果过程监控不到位,则可能出现严重的抄袭问题。

本文研究在“理论+实验”的教学模式下综合应用各种教学方法的长处,既不过多增加教师的工作量,又提高学生三种能力的培养水平。

3注重三种能力培养的教学探索

“C程序设计”课程专业基础课程一般在第一或第二学期开设,面向大学新生,中学应试教育的学习方法已经不能完全适应大学的学习内容,因此教师在课程中应注重对学生学习能力、应用能力和知识迁移能力的培养。

3.1注重学习能力的培养

“C程序设计”课程包括C语言知识、结构化程序设计思想等内容,学生开始学时候比较认真,对所学内容掌握较好,但大部分同学过于注重细节,习惯机械记忆,随着知识点的增多,机械记忆容易出错,逐渐失去学习兴趣。因此笔者从课前预习、课中听讲和课后复习三个阶段引导学生把握学习的主线。

(1) 课前预习。课前对将要学习的内容作一个概要性的预习,让学生对学习内容有个初步了解,分清重点和难点,提高学生的听课效率。为了取得较好的预习效果,要提前布置预习内容,然后对预习内容进行检查,譬如将单选题测验、概念提问等检验的情况记入平时成绩。

(2) 课中听讲。引导学生认真听讲,首先要有充分准备的教案,其次要进行适时的课堂提问,再次对学生课堂笔记进行检查,譬如课后用2~3分钟随机抽查部分学生的笔记,检查的情况也记入平时成绩。

(3) 课后复习。为了督促学生及时地复习,要布置一定的作业题,下一课要对复习的效果进行考查,考查情况也记入平时成绩。

经过一段时间的督促,大部分学生能够适应三阶段学习方法,逐渐提高自己的学习能力。

3.2注重应用能力的培养

程序设计课程重在应用,在应用中掌握语言的语法知识、编程思想,将抽象的概念和知识形象化,有利于知识的理解与记忆。本文应用“案例设计”的教学方法、“项目开发”的教学方法探索对学生应用能力的培养。

3.2.1 “案例设计”的教学方法

案例设计是“案例教学”应用于“C程序设计”课程获得成功的关键,一般由教师完成。由于教师与学生的知识背景和阅历不同,兴趣点不可能完全一致,所以教师辛苦设计的案例并不一定能引起学生的兴趣。为此,笔者引导学生进行案例设计,即“案例设计”的教学方法。

“案例设计”的要点包括:(1)经典教学案例的讲解。通过讲解使得学生掌握案例设计的步骤、方法。(2)案例征集。用“头脑风暴”法激发学生的灵感,促进优秀案例的产生。(3)案例评价。案例展示、学生评价、教师评价、优秀案例答辩等形式的案例评价,有助于提高学生的参与意识。(4)案例库完善。案例库存放所有学生的案例设计及评价,有助于学生进行意义建构或学习探究等。

3.2.2“项目开发”的教学方法

“案例设计”形成的案例其实就是项目的需求分析,对案例进行编程实现有助于学生获得真实的项目开发经历,进一步明确注释、编程风格和开发记录等对项目成功实施的意义。

“项目开发”的要点包括:(1)数据模型。要区分数据或结果的存储方式是内存还是外存,内存方式可以是变量、数组或链表,外存方式是文件。(2)功能规划。包括功能安排和菜单设计。(3)函数规划。根据功能要求明确函数调用关系。(4)函数设计。包括函数的原型、数据传递方式和功能实现。(5)系统调试。应用项目管理的思想,对系统进行整体调试和完善使用说明的编写。(6)项目评价。项目实施情况按指标进行等级评价,争优的项目需要参加答辩。

3.3注重知识迁移能力培养

不少同学认为,C语言太灵活,容易出错,直接应用C语言开发系统的机会很少,这影响了他们学习“C程序设计”课程的积极性和主动性。其实,每一种高级程序设计语言虽然各有特点,但它们之间存在许多共性的东西,学好了C语言,对学习其他高级语言有较大的帮助,这就是知识迁移能力。因此,在教学过程中,除了要注重学习C语言本身,更要注重学习高级语言的共性。

(1)IPO思想。一般程序都包括输入(Input)、处理(Process)和输出(Output)三部分,编写或分析程序分成三个部分有助于简化问题。

(2) 结构化思想。三种基本结构、复合语句和结构嵌套。任何复杂的结构都可以细分为这三种结构,结构化读写和分析程序有助于提高学习效率。

(3) 模块化思想。宏、函数、方法或过程就是程序模块,C语言是一种函数式语言,函数是C程序的模块。模块化可以将一个复杂的问题简化,有助于问题的控制与解决。

在程序分析或设计中,注重上述高级语言程序设计的共性,有助于培养学生的知识迁移能力。

4结束语

根据对2003级、2004级计算机科学与技术专业学生学习效果和教学反馈的数据分析,发现在现有的教学模式下,通过在“C程序设计”专业基础课程中培养学生的学习能力、应用能力和知识迁移能力,大部分学生不仅提高了学习C语言、应用C语言解决问题的能力,而且在语言学习方法、程序设计思想和编程实践积累的经验等方面都取得了较好的学习效果。

参考文献:

[1] 祝智庭。 现代教育技术――走向信息化教育[M].北京:教育科学出版社,2002.

[2] 蔡红。 建构主义教学方法在“C程序设计”教学中的应用[J]. 理工高教研究,2007,26(4):98-99.

[3] 邱力,郭小平。“C语言程序设计”案例教学探讨[J]. 江西教育学院学报:综合版,2006,27(6):50-52.

c语言程序设计实例 篇四

关键词: C语言 典型案例分析 教学方法

一、引言

C语言具有功能强大、表达力强、应用面广、目标程序效率高、可移植性好等良好的特性,它既具有高级语言的优点,又具有低级语言的许多特点[1]。目前,很多新型的语言都衍生自C语言。因此,C语言也就成为所有计算机程序设计人员必须掌握的一种通用高级程序设计语言。但是,C语言繁多的数据类型和复杂的语法结构使得C语言成为了一门既难以学习又不易教授的课程。

二、经典案例分析教学法与传统教学方法的比较

C语言的教学任务,主要有以下三点:熟练掌握基本的语法知识,能够轻松的阅读程序,灵活的编写程序。

传统的教学模式通常是“三步曲”,即:提出概念解释概念举例说明。应用这种模式教学,过于注重语句、语法等细节的讲解,对学生分析问题、解决问题的能力训练不够,这样学生只能学到一些枯燥的、容易忘记的、支离破碎的语法规则,不能具体灵活的应用这个概念。

案例是对一个具体情景的记录。经典案例分析教学法就是通过选择一个具有代表性的案例,对其分析研究来得出所要教授专业知识、技能或内在原理。适当地选择案例能将复杂枯燥的语法知识分解到每个生动、有趣、实用的程序实例中。这样能大大地提高学生学习的积极性,而且能够掌握一些相应的编程思想。

三、案例分析教学法在实际教学中的应用

1.针对具体要求,适当选择案例。

在C语言教学中,依据课程的具体要求,教师应该选择难度适中、大小合适、贴近学生兴趣的案例,当然所选择的案例要能贯穿本课程所授课的内容[3],使我们将要学习的新知识都隐藏在这些案例中。

2.分析案例,提出问题,引入教学内容。

每个案例中隐含着已学过的知识和新的知识,在分析任务时,我们应以教师为主导,学生为主体进行研究、讨论引导学生分析案例,提出问题,根据提出的问题及时讲授新的知识。例如,在讲解“自定义函数”时,教师可引入如下案例:计算数学式P=Mi/K!(M-Ki)的值,其中M=8,K=3[2](P163)。先要让学生思考如何完成该任务和在完成任务的过程中将会遇到的问题。在分析这个案例时,我们可以将该案例先分解成:求M!、K!和(M-K)!三个子任务,然后做乘除法即可。这时候我们就发现利用我们之前学过的知识就要针对这三个子任务重复的写三次求X!的语句组。这样就太繁冗了,有更简洁的方法吗?这时教师就可以及时地提出自定义函数这一概念了,以及函数的定义与调用相关的语法。学生带着问题去听,理解起来更容易。当我们以一种更简单的方式解决了问题后,学生就会有发现新大陆的感觉,这样就激发了学生的求知欲,调动了学生学习的主动性。

3.经典案例分析法在教学过程中的侧重点。

在教学过程中,案例分析教学法以程序设计为主线进行教学,这就要求教师有意识地淡化C语言中语句、语法的介绍,并尽量避免过多讲授C语言一些容易引起错误的细节,而重点介绍程序设计方法和思路,在分析程序和程序设计中让学生逐步熟悉语法和应用语句,并把各种编程思想贯穿于算法分析和程序设计的过程中。其中语句、语法等细节问题需要在实验中不断的调试、修改来加强熟练度,很多算法也要通过实验来验证。因此,实验在C语言教学中也占有举足轻重的地位。

4.通过经典案例分析熟练掌握典型算法。

在实际的教学过程中,我们发现一些学生平时学得很认真,对语法、语句等细节也很熟悉,但碰到稍微复杂一点的编程就束手无策。一般来讲,一个较复杂的软件可以按功能分割为若干个典型的小模块,每个小模块最终都成为功能单一,结构清晰,接口简单,容易理解和编写的小程序。只要学生掌握了典型案例的算法,就可以将这些算法像搭积木一样组装成相应的软件算法了。因此,在教学过程中,教师应要求学生对一些典型案例的算法熟练掌握,如累加、累乘、排序、查找等,为以后编写程序,软件设计奠定基础,同时对典型案例的算法的熟练掌握,也会增加学生学习计算机语言的信心,从而提高学习兴趣。

四、结语

编程人员熟练掌握一门程序设计语言固然重要,但更为重要的是具有编程思维能力和开发能力。通过教学实践证明,教师选择合适的案例教学,可以让学生掌握所学的内容,对培养他们的编程思维能力和提高他们的软件开发能力都有很大帮助。

参考文献:

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

c语言程序设计实例 篇五

关键词:教学方法;教学模式;思维训练;自学能力

中图分类号:G642文献标识码:A文章编号:1009-3044(2008)21-30486-03

The Research of Teaching Methods in "C Programming Language"

LIU Jian-you

(Zhaoqing Science and Technology Polytechnic,Zhaoqing 526020,China)

Abstract: C is a typical structural programming language, many colleges and universities use it as basic programming language. Students often complain about C language difficult to learn, to use, to build the application software, lack of programming and debugging capabilities. How to better carry out the C language courses teaching?Author on the problems that exist in teaching, with his personal experience in teaching and experience, talk about their own views, to promote the C language teaching.

Key words: teaching methods; teaching mode; thinking training; self-learning ability

1 引言

程序设计语言的种类多得难以计算,为什么要以C语言作为编程入门语言呢?还有人说为什么一定要学习C语言,干嘛不直接从C++学起?而且学C++不一定要有C语言基础,有了反而会有些内容混淆。还有人说C语言都已经过时了,怎么还要浪费时间去学?C语言在教学过程中,抱怨C语言难学,难懂,难用,在解决实际问题编制应用软件时往往无以下手,缺乏编程和调试的能力。。久而久之,学生对学习此门课程就会产生厌倦的心理,不但影响本课程的学习,还会影响以后相关课程的学习。本文针对以上问题,指出了如下措施:

2 学习《C语言程序设计》的意义

我认为在学习C语言之前有必要弄清学习的意义所在,这样才能让学生对其产生兴趣。兴趣是人类最好的老师,只有对其产生了兴趣,我们才能学好这门语言。

将C语言作为入门语言具有重要的意义。C语言是一门典型的结构化程序设计语言,它具有语言简洁、严谨,用途广泛等特点,能够体现结构化程序设计的优良控制结构,非常适合初学者。通过这门课程的学习,能够使学生掌握一门结构化程序设计语言,更为最重要的是能让学生树立用程序解决现实问题的思路和方法。为今后的学习打良好的基础。再学其他程序设计语言,就能够在短时间内迅速的掌握。

3 改革课程教学内容,重视算法的编程思想,培养创造性思维

精选课程内容是一项非常重要的工作,它是教学内容的核心部分,《C语言程序设计》的核心内容包括C语言基本语法、程序设计思想和程序调试方法。语法是任何一门语言的基础,同时,各种程序设计语言在基本知识点上是相同的,学生对基础知识的正确理解和准确运用,其意义是深远的。

C语言程序是由函数组成的,无论问题多么复杂,我们都可以将其看成是一个大任务,这个大任务又可化分成若干个小任务,将这些小任务解决了,那么大任务也就完成了。也就是说其任务只有一个,就是编写函数(一个main()主函数和其他函数)。执行程序时,从mian()的第一个“{”,开始直到最后一个“}”结束,其他函数只有在执行的过程中被调用才执行。

学习C语言程序设计不仅是为了掌握一种开发工具,更重要的是用计算机解决问题。而算法是解题的方法和步骤,算法就是对操作的具体描述,是计算机的解题过程。编制程序,就是根据算法,用具体的语言依据某种规则编写计算机执行的命令序列。因此学习语言的重点是锻炼分析、分解,最终归纳整理出算法的能力。在教学过程中,学生能否理解算法,并掌握算法,成为教学的关键。

在C语言的教学过程中,改革传统的语法学习内容,将算法教学融入到语言教学中。由于C语言语法的逻辑性较强、结构性要求较高,初学者刚接触的时候容易考虑不全。因此算法教学可以通过实例进行, 从最简单的例子入手,使学生在解决具体问题的过程中学习C语言的基本逻辑结构和语句。生活中到处都存在着算法。而对于同一个问题可以有不同的解题方法和步骤,可以让学生根据同一个问题提出不同的算法,并比较这些算法之间的优劣,并让学生根据分析对算法进行优化。通过对算法的优化练习,可以在无形中提高学生写算法的水平。

4 改革课堂教学模式,培养学生自学能力

在教学中可以使用下面的一些方法,提高教学效果,培养学生的逻辑思维能力和动手能力。

4.1 改变传统的教学方式

虽然这个话题是老生常谈了,但是现在部分老师还没有认识到这个问题的重要性,仍然是“教师单向灌输”的教学模式。教师首先要在教学过程中树立以学生为主体,老师为主导的教学思想,正确处理传授知识与培养能力、提高素质之间的关系;其次改变教学模式,偿试采用以下教学方式。

4.1.1 任务驱动教学方式

在教学过程中避免照本宣科、枯燥乏味,“任务驱动”是建构主义理论中的一种教学模式,是将所要学习的新知识隐含在一个或几个任务之中,学生通过对所提的任务进行分析、讨论,明确它大体涉及哪些知识,在老师的指导、帮助下找出解决问题的方法,最后通过任务的完成对学生知识的传授。事实上它并不是简单的给出任务就了事,重要的是要让学生学会学习,使他们学会从多方位、多层次、多角度去考虑问题。使学生认识到学有所用、学以致用,自然地产生学习的愿望和动力。

可以先给出一个比较典型的C语言编写的例子。给学生具体的演示,通过这个效果激发学生的积极性。要求学生在期末的时候编写出相应的程序。有了这个任务,在讲课的时候逐步的告诉学生每一章可以具体的实现例子的那个部分,让学生逐步的去实现相应的功能。他们实现了相应的效果,就会极大地增强学习的兴趣和热情。这样可以让学生在愉悦的过程中学好这门课程。

4.1.2 启发式教学

为培养学生逻辑思维和创新能力,在教学过程中,教师遵循启发式教学原则,通过各种教学方式和手段激发学生的学习欲望,积极投入到学习活动中,积极思维,发现问题,提出问题,并逐步解决问题。例如,在讲解程序设计举例时,不是简单地给出程序清单,而是从分析问题入手,继而找出解决问题的方法,再给出算法,最后编写出完整的程序,而在这一全过程,最关键的是每一步都采用与学生一起探讨的方式,让学生在启发下思考,在思考中解决问题,从而掌握独立分析问题、解决问题的方法。

4.1.3 互动式教学

互动式教学是教师驾驭讲台能力的具体体现。一个教师站在讲台上,要不断地扫视下面的学生,观察学生的表情,了解学生的接受程度,并能及时地调整教学的进度和步骤,必要时到达到学生与教师在课堂上互相之间的交流。允许学生在不明白的时候随时提出问题,教师根据实际情况决定是当场解答,还是课后解答。真正实现课堂上的互动,其教学的效果就会显著地提高。教师在教学过程中,还应当注意设置疑难问题,引导学生思考和探索,让他们的思想活跃起来。

4.1.4 项目分析式教学

为培养学生综合应用知识的能力,通过对完整的项目的系统分析,培养学生良好的编程习惯,善于获取他人经验的能力以及掌握综合运用所学知识的能力,从而真正提高编程水平。

4.2 激励个性化学习

在微观课堂上采用项目递进驱动教学法,改变满堂灌的做法,将学生的眼手脑全部调动起来。精心设计实例,给学生一个比较实际的切入点,通过老师的演示使学生感觉能够入手,然后再通过将此实例不断修改、扩充,引导学生参与到程序的编制过程中,在这个过程中,再将学生所作的程序展示,让学生来评判优劣,吸收优点,修改错误,引导学生进行优化。在这样的实例教学中,因为有提出问题、解决问题、扩展问题、再解决问题、对解决问题的方法评价、优化设计等几个环节,实际上是一个螺旋式滚动向前的过程,在这个螺旋式不断向前的过程中,能够非常自然地调动学生的参与,而且通过问题的不断扩展,通过一个问题的多种解决方法,有效开阔学生的思维,使得学生在课堂上真正地成为 “ 主体 ” ,教师扮演 “ 主导 ” 角色。 这种通过一个程序的层层推进,引入课程内容,使得学生的每一步学习都有基础,是循序渐进,螺旋式上升的过程,使学生的学习是在“走台阶”,而不是“三级跳”,效果很好。

4.3 加强对学生程序设计思维训练

《C语言程序设计》课程不仅仅是一般意义上的知识传授,要让学生掌握程序设计的基本方法,对学生进行逻辑思维能力的培养。在实际的教学过程中,我们发现有些学生平时学得很认真,对语法、语句等细节也很熟悉,但碰到稍微复杂一点的编程则无从下手,教师在教学过程中要树立正确的教学思想,即注重算法设计,加强学生的程序设计思维训练,帮助学生顺利地实现思维方式的转变,而不能只单纯地讲授语言的语法、语义、语用,应该将复杂枯燥的语法知识分解到一个个生动实用的程序实例中,也就是在教学过程中以程序设计为主线,有意识淡化计算机语言本身语句的介绍,而重点介绍程序设计,在分析程序和程序设计中熟悉语法、应用语句,掌握程序设计和解决问题的思路(算法),并把软件工程学的思想贯穿于算法分析和程序设计的过程中。一定要避免陷入这样的误区:教师一味地给学生讲解语句的功能和语法规则,使学生陷入冗繁的语法规则之中,形成以语言为中心的思维模式。这样教出来的学生语法背得滚瓜烂熟,只会生搬硬套,缺乏实际编程能力,所以教师应注重培养学生形成以算法为中心的思维模式。对于从未受过算法设计训练的初学者来说,可能会感到无从下手,对此,教师应该有意识地加强这种思维方式的训练,通过讲授一些常用算法、典型算法,如记数、累加、连乘、两数交换、求最大(小)值、迭代、排序、分类等为以后编写程序、软件设计奠定基础,同时典型算法熟练的掌握,也可增加学生学习的信心并提高学习的兴趣,同时培养学生的思维能力。

5 强化实践教学,培养学生动手能力

实行实践教学形式多样化,上机操作,老师通常让照着书本的例子进行验证,这样无法增加学生的成就感,使学生觉得很无聊,在《C语言程序设计》上机实验教学中,除传统的课堂实验外,还开展课程设计、典型程序分析与设计等实践环节,还可以教师组织C程序设计兴趣小组,组织C程序设计大赛,组织学生参与科研开发等,将每一阶段的学习进行小结性的贯穿与能力提高。将 C 的知识点都溶化到一个个实训项目的程序编写中。整个过程以学生独立完成为主,教师只提供必要的辅导。经过实践训练,尤其经过综合训练中模拟实际软件开发的演练,使学生得到了锻炼,进一步激发了学习兴趣,培养了问题求解和编程能力,还有利于培养探索和创新能力。

6 改革考核方式,全面实行考教分离

C语言课程所有考试均实行考教分离,这不仅促进了任课教师对教学的精益求精,而且也给了教师充分发挥、施展个人教学才能的空间。在考核方法上,考虑到高职院校是培养应用性的实用人才的这一特点,该课程除采用传统的笔试外,大胆采用更能反映学生知识应用能力的上机考试,这一考试形式非常受学生的欢迎。可以采用多种形式考核学生,重点考核学生的实践动手能力。

7 结束语

以上是作者近几年关于C语言教学经验的总结,在实际的教学过程中取得了良好的教学效果。笔者认为在教学过程中除了要使学生掌握C语言程序设计这门语言外,最重要的是要让学生树立用程序解决现实问题的思路和方法(算法)。学生能否理解算法,并掌握算法,成为教学的关键,这是也学习C语言程序设计的重中之重。

参考文献:

[1] 谭浩强。C程序设计[M].2版。北京:清华出版社,2001.

[2] 卢继勇。“启发式”教学方法与C语言教学[J].重庆邮电学院学报,2004.

c语言程序设计实例 篇六

C语言是最基本的计算机编程,是计算机、电子信息类等相关专业学生的专业入门课,在其学习过程中,要求必须掌握编程的技能。但是C语言的学习有其特点,规则比较多、知识点多,涉及到的编程程序等也比较难懂,在运行上代码的要求较高,程序执行效率高,因此更讲究教学和学习的方式方法,但是在我们的教学中,目前教学方法比较单一,随着信息化的发展,传统的教学模式已经无法适应,亟需改革。

1、传统型

这种教学模式,也是最常用的,课堂上以老师为主,学生只能被动的接受知识的传授。通过最直接“填鸭”式照本宣科,不管学生接受与否,最后的考核也是以知识点的记住与否,造成学生死记硬背,不能真正掌握知识。其基本模式为:学习——回答——纠错——总结。这种模式下,使得教师在教材以外的发挥余地极小,基本是“照本宣科”,强行灌输C语言的概念、特点、编程程序、基本的方法等,整个教学过程缺乏灵活机动、具有启发性的内容,学生被动的接受知识、被动的记忆、被检查、被考试、被批评等,日复一日的教条式训练,不能有效地激发学生的主观能动性与创造热情。

2、任务型

C语言教学区别于其他学科,在理论知识的传授之外,还需要培养学生的实际动手能力,因此,很多学校也采用“任务型”教学模式,基本模式为:根据具体要求提出任务—鼓励学生设计方案—实际操作—解决任务。在日常的教学中,学校大多会利用电脑等锻炼学生的实际动手能力,利用实际操作,锻炼编程、逻辑等能力,从而掌握C语言的基本知识。例如翻转课堂模式,教师将知识传授环节制作成教学微课,课前提供给学生预习,通过预习使课堂的实践性练习目的性更明确,教师随堂对学生遇到问题进行指导分析,从而培养学生独立思考能力和实际操作能力。这种模式的采用,相对于传统模式,有其进步性,这也是C语言等专业性、操作性学科区别于其他学科的特点决定的,在这种模式下更取决于教师自身的素质、知识、能力等,是整个课程的掌控者、引导者,他们的能力直接关系着教学成果。

二、信息化背景下面临的挑战

随着科技的发展,信息化在教学领域的应用越来越普遍,信息技术的日新月异,也使得其在课堂上,已经不仅仅是局限于简单地计算机和多媒体运用,移动技术、智能化与虚拟技术等为我们的教学提供了新的思路和方法,如何能使我们的教学与高速发展的信息化相结合,是教育领域不断探索的课题。C语言程序设计等课程具有很强的专业性要求,主要是建立在计算机信息技术的基础上,对于信息化的反应更为灵敏,传统的课堂上,以教师为中心的“面对面”的教育模式面临着挑战和冲击,用技术手段的灵活性与便利性来增强课程学习的兴趣和接受能力。随着新技术的广泛应用,会促使传统的教学模式发生变革,以教师为中心的教学模式逐渐转化为互动式教学模式,达到更好的教育效果。在C语言课程设计教学领域,进行信息化教学改革的尝试,充分利用信息技术,变革教学手段和模式,是信息化发展的必然要求。只有实现C语言课程的信息化教学改革,使得教育信息化能够普遍运用,才能展现出信息技术在推动C语言教学中的强大威力和广阔前景。

三、教学模式改革的基本对策

教学模式直接反映出一定的教学理念,也直接决定着教学成果。随着信息化的发展,教育信息化逐渐打破传统的教学模式,在这样的背景下,C语言教学模式的改革任务艰巨,如何构建新型的信息化教学模式也是我们在实践中不断摸索的问题。

1、充分利用信息化的科技手段

信息化的科技手段,给我们的教育领域带来变革,尤其是计算机领域的学习,其主要是建立在信息化发展的基础上,因此在教学中,更要与时俱进,与信息化的发展程度相互依存,相互辅助,C语言课程设计教学中,可以充分利用信息化的科技手段,如计算机技术、云计算技术、多媒体技术、网络技术、虚拟现实技术、通信技术、移动学习技术、人工智能、传感器技术等,这些技术的发展,带来C语言教育领域的变革。为提高C语言教学质量,激发学生学习C语言的积极性,我们可以在课程建设过程中充分利用现代技术带来的便利与多样性,以及趣味性。如在教学课件设计上,利用多媒体技术,图、文、动画并茂,减少其枯燥的理论传授,增加趣味性;利用网络技术,实现在线教育,建立“C语言程序设计”网站,分组进行网站维护,运用编程能力进行更新;应用现代的通信技术,建立微信学习群,让学生分享自己的学习经验,共享学习资源。

2、案例引导式教学模式

改革C语言教学模式,另一探索的模式为案例引导式教学模式,C语言的教学,是为了培养学生读程序、调试程序、写(仿照)程序的能力以及规范性编程的能力,学习最主要的目的是为了应用,对于编程的应用,只有具体的应用场景,即案例,才能更容易被接受,更易懂。案例引导式教学模式,在别的专业课教授中,常被使用,主要特点就是用案例去引导知识点的掌握,对案例进行分析,通过分析启发学生的思路,将学生带入到具体的案例中,让学生有一种“身临其境”的代入感,从而掌握具体的知识,学会在这种场景下解决问题的方法,这种模式的教学更有针对性、系统性。案例引导式教学模式在C语言课程设计教学中的运用是指针对C语言课程的每一个核心知识点,建立配套的案例,通过这些案例的学习和掌握,使得学生在例子的佐证下,更加了解C语言的应用,这种案例的设计,和我们的书本知识相结合,把理论知识融入到具体的案例中,进行综合性的阐述,如具体的计算机程序的编写,设计游戏环节,运用所学的C语言知识设计网站,并使之运行,可以在班吉内分组进行维护等,并加以各种领域成功案例或者失败经验的案例,让学生能够更进一步了解其应用范围、能力、领域等。

3、实践教学模式

C语言课程设计的学习,所需的能力不再是死记硬背,而是更注重实践和应用,因此我们在教学过程中,不能只传授书本知识,还要锻炼学生的动手能力和编程能力,实践教学模式应运而生,依靠大量的实践,将所学的知识转化为实际操作,得到进一步的应用。信息化技术为这种教学模式提供支撑服务,我们可以在课堂上设计各种实践环节,也可以在课堂后与各种软件公司、游戏公司、网络公司等合作,增加实践机会,让学生在具体的实践环节中,真正了解C语言的知识,并主动内化这些知识,变为实际操作能力。在这种教学模式改革中,如何能够更好的提高实践能力需要通过各个环节的相互配合,如课程设计上,增强实验、实训环节,让学生在熟练掌握C语言语法、程序结构的基本理论的同时,通过大量的实践操作,进一步掌握C语言的知识,学会编码;同是,积极与各软件、互联网、网络公司签订实践基地,让学生可以在实际应用中,边做边学,提高学生逻辑思维、实际操作能力,真正实现教学目的,熟练掌握计算机编程能力。

作者:王桂华 单位:营口职业技术学院

参考文献:

[1]徐新海,林宇斐。注重计算思维的启发式C语言语法教学[J].计算机教育,2014(17).

c语言程序设计实例 篇七

>> 微课在高职《C语言程序设计》翻转课堂中的应用研究 翻转课堂教学模式在C程序设计课程教学中的应用研究 翻转课堂在高级语言程序设计课程中的应用 浅谈基于微视频的翻转课堂模式在“高级语言程序设计”实验教学中的应用 基于Android的C语言程序设计“翻转课堂”的应用研究 基于MOODLE的高职院校“C语言程序设计”翻转课堂教学改革 基于翻转课堂的C语言程序设计课程教学改革初探 基于翻转课堂模式的C语言程序设计教学改革 传统教学和案例教学在C语言程序设计教学中的应用 行为导向教学法在《C语言程序设计》课程教学中的应用 启发式教学法在C语言程序设计教学中的应用 项目教学法在高职《C语言程序设计》课程教学中的应用 案例教学和竞赛在《C语言程序设计》教学中的应用 任务驱动式教学在高职《C语言程序设计》课程教学中的应用 论项目教学法在高职《C语言程序设计》教学中的应用 “项目驱动”教学在《C语言程序设计》教学中的研究和应用 “任务驱动教学法”在《C语言程序设计》课程教学中的应用 案例教学法在“C语言程序设计”教学中的应用 案例教学法在“C++语言程序设计”教学中的应用 基于任务的教学模式在《C语言程序设计》课程中的应用 常见问题解答 当前所在位置:.

[3]何克抗。 从翻转课堂的本质看翻转课堂在我国的未来发展[J].电化教育研究,2014,(7):5-16.

[4]Fulton, Kathleen. Upside Down and Inside Out: Flip Your Classroom to Improve Student Learning [J]. Learning & Leading with Technology,2012(6):12-17.

[5]张渝江。 翻转课堂变革[J].中国信息技术教育,2012,(10):118-121.

[6]秦建华,何高大。 翻转课堂:理据、优势和挑战[J]. 现代中小学教育,2014,(5):17-20.

[7]汪琼。 MOOCs改变传统教学[J].中国教育信息化,2013,(19):26-28.

[8]Jonathan Bergmann & Aaron Sam. How to make videos your students will love[DB/OL]. http:///2012/05/21/how-to-make-videos-your-students-will-love/,2012-05-21.

[9]金陵。 用“学习任务单”翻转课堂教学[J]. 中国信息技术教育,2013,(3):20-20.

[10]Baker,W.The Classroom Flip: Using Web Course Management Tools to Become the Guide by the Side [A]. The 11th International Conference on College Teaching and Learning [C]. Jackson Ville: Florida, 2000.

[10]金陵。 设计自主学习任务单[DB/OL]. http:///learn/ pku-21016#/ learn / content? type = detail & id=200062&cid=216351, 2014-10-25.

c语言程序设计实例 篇八

关键词:C语言;专业相结合;计算思维

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2017)02-0168-03

一、引言

目前很多高校都在推行为非计算机专业开设的程序设计类课程改革,研究如何全面提高教学效果。将计算思维融入程序设计是当前课程教学的研究热点[1];很多教育专家和一线教师都提出了以培养计算思维为目标的程序设计类课程教学改革方案[2,3]。C语言程序设计属于此类课程,在注重培养计算思维的同时,更重要的是将教学内容与学生本专业相结合。因此,提出一种融入计算思维、与专业相结合(以下简称S&C)的C语言程序设计教学模式。

二、计算思维的专业化培养

计算思维是信息时代中的每个人都应当具备的一种思维方式,培养计算思维能力已成为计算机基础教学的核心任务[4]。程序设计类课程属于计算机基础课程体系,但是学习的内容和要求是相对的,对不同的人群应该有不同的要求[5]。对非计算机专业学生而言,程序设计语言更像是一个工具,是其在从事本专业工作中可以使用的一个工具。因此,任课教师应考虑到专业需求,将计算思维与专业应用进行融合,让学生感受到利用计算思维求解问题过程中的魅力[4]。计算思维教育的目的是培养一种思维习惯,一种像计算机科学家思考问题那样的习惯[6],虽然计算本身也是一门学科,但是其具有促进其他学科发展的作用,不应该将计算思维局限于此,而是应用于各专业领域。

三、C语言程序设计与专业相结合

为非计算机专业开设的C语言程序设计课程,授课深度和广度有别于计算机专业,很多高校将它作为一门通识课程,使用同一个教学大纲,难以与专业课程紧密衔接。实际上,随着计算机的普及,程序设计语言的使用不再是IT人的专利,很多行业都会涉及到软件开发、编写应用程序。如单片机等智能芯片的开发语言就是以C语言为主[7],学生程序设计水平高低可能直接影响他们的就业和职业发展[8]。因此,有高校教师提出自动化专业的C语言程序设计课程改由自动化教研室承担[9]。但这种做法是否有违开设C语言程序设计课程的初衷?C语言是程序设计的入门语言,最重要的是建立C语言与专业的关联,培养一种独特的处理问题的思维方式,更适合由计算机专业教师授课,在后续专业课程中再由专业课教师进一步引导学生的应用实践。但教学内容要向专业靠拢,能够认识到专业课程和C语言之间的联系点在哪里,并由此制定出相对独立的教学大纲和专业化教学方案。

四、S&C式C语言教学模式

(一)课程设置

虽然学习C语言不需要什么必须的先修课程,但经过授课教师分析[8],与计算机专业学生不同,非计算机专业学生只是孤立地学习C语言,建议将C语言与相关课程配套开设,以自动化专业为例,在同一学期内,先开设C语言程序设计,在课程中后期再开设单片机课程,这样既可以加强学生理论联系实际的能力,又使学生对C语言的学习目的和从业方向更加明确。

(二)教学目标和教学内容

C语言程序设计的教学目标应体现基础性与专业性。基础性是针对后续课程来讲的,学生通过该门课程的学习掌握一定的算法和常用子程序,学会用C语言编写程序,为后续课程打下坚实的基础;专业性是指学生在掌握C语言的各种语法与程序结构的基础上,不仅能够根据实际问题设计算法、编写出解决问题的程序,还可以运用计算思维解决生活中或专业领域的问题。计算思维主要不是靠讲课得来的,而是在学习和应用计算机过程中培养的[5],但理论依然是实践的基础。因此,应将思维训练融入到教学内容中,并将计算思维具体化为对以下几项能力的培养。

1.抽象。从本质上讲,程序设计语言是对人类问题求解过程的抽象,例如,数据与数据类型、表达式、流程控制、函数等都是数据抽象、计算、逻辑推理以及问题约简等人类问题求解思维方法的物化[10]。使用C语言进行程序设计的过程就是利用计算的手段求解问题的过程,这一过程中对问题定义和形式化,以及建立问题的逻辑模型就是对问题的抽象过程,而抽象是计算思维的基本方法。

2.多样性思维。C语言中变量的使用是编程的基础,也是最基本的概念。C语言提供了多种数据类型,如整型、浮点型、字符型、数组、指针、结构体及枚举型等。在求解实际问题时,会涉及到各种各样的数据,如整数、小数、字符,还有一些复杂的对象,如学生个人信息、考试成绩等,为处理这些不同类型的数据,除了要分析数据的对象特征,还要了解各种数据类型之间的差异及其使用方法,通过大量练习掌握并灵活应用这些数据类型,这对于训练学生多样性思维有极大帮助。

3.问题分解。C语言是一门模块化程序设计语言,在求解一个复杂问题时,一般采用逐步分解、分而治之的方法,即将一个大问题分解成若干相对较易求解的小问题,再分别进行求解。C语言的函数就是程序的基本组成单位,在编写一个复杂程序时,将整个程序的功能划分为若干功能较为单一的程序模块,即用函数实现每个单一功能,然后再将所有函数像搭积木一般,组合起来。函数有其独立性,即要保证高内聚,低耦合;但却不是孤立的,使学生理解调用函数和被调用函数的相关知识和二者之间的相关性。

4.算法。算法是解决问题的方法和求解问题的步骤。解决同一问题会有不同算法,算法设计是C语言程序设计的核心。引导学生学会利用已有知识,学会从多个角度分析问题,采用不同的类型、结构都能解决问题;同时,引导学生进一步分析各算法的差异,不仅可以巩固知识点,还能加深学生对不同数据类型、程序结构化的认识。在教学内容中设置一些与专业应用相关的案例,增加趣味性的同时,激发学生的学习兴趣,增强与本专业的联系。

5.递归。递归就是用自身定义自身的方法。C语言允许使用递归,以应用递归求解的问题为例,使学生理解递归的工作原理。例如,利用公式n!=n×(n-1)!求一个自然数的阶乘,可以用以下函数进行计算。

int fact(int n)

{

if(n

return 1;

else

return n*fact(n-1);

}

跟踪i=fact(3)这条语句的执行过程,从中了解递归函数逐层调用和展开的过程。

6.程序。程序是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合,在系统的IPO模型中,程序是算法的实现。C语言以顺序结构、选择结构和循环结构作为基本的程序结构。学生在求解问题时选取合适的程序结构,练习使用相应结构的语句,训练其结构化思维;编程过程中,为了实现程序的整体,要考虑如何协调各类函数,从而强化一体性思维;任何程序,无论是简单的还是复杂的,都按照一定秩序有序执行,为解决不同问题要采用不同要素、结构组成程序,这可以强化学生的有序性思维。

7.动态性思维。C语言中很多知识点的运用都体现了动态思维。例如,根据计算对象的类型使用不同类型的变量,在多种类型数值进行混合运算时,其结果又能根据精度要求动态地向高精度类型转换;循环结构中,循环变量值的变化是程序动态性的最佳体现,在单步调试时,能够清楚地观察到循环变量及相关变量值的每一步变化;在函数定义中形参的设定也是训练动态性思维的重要知识点,每次调用函数时,函数所接收到的实参都是不同的,只有具有动态性思维,才能真正理解函数实参和形参的概念。

(三)教学方法

在课程教学中,教师应具有不同的角色,课程前期,教师是讲授者、主导者,以讲授法为主,通过对比记忆等方法帮助学生接受C语言各种定义的方式和语法结构;课程中后期,教师是协助者、引导者,采用翻转课堂教学法,让学生成为课堂主体。教师应设计好课前任务,及时获得反馈以调整课上活动;课上进行分组讨论和以专业性案例为主的任务拓展,引导学生举一反三,研究规律,掌握方法,让学生认识到C语言程序设计与专业学科的密切关系。翻转课堂的有效实施需要一个过程,既是学生接受、适应和主动参与的过程,也是教师根据不同课程班逐步调整实施方案的过程。

教学方法的有效性以学生的学习自主性为前提,而激发学生的学习动机似乎一直是教师与学生之间的较力。C语言与专业相结合可以在一定程度上提高学生学习兴趣,因为大多数学生是依据自身兴趣选择专业的,但这还不够。依据ARCS模型,增强学习者动机的四个要素:Attention、Relevance、Confidence和Satisfaction。在教学开始阶段,引入一个C语言开发的专业案例吸引学生注意,激发学生想进一步探究的好奇心;进而建立C语言与专业学科的关联,使学生清楚教学目标和学习内容的价值;在课前任务中布置一些较简单的任务,以此增强学生的学习信心,课堂上进行任务拓展时提供一些有些难度而学生又能解决的问题,★WWW.PAOMIAN.NET★让他们感觉到自己的能力“非凡”,最后让学生明确自己取得的成果是自己具有能力并付出努力的成果;在实践环节布置的项目任务为学生提供了在一种真实或模拟的情境中运用知识的机会,感受到学习的价值、学习的快乐,从中获得满足;对学生的学习结果提供反馈,如对课堂表现好的学生给予口头表扬,维持后续的学习动机,面对全班公布考核方式的评分标准,让学生感受到教师评价的公平性。

(四)实践环节

为了鼓励学生积极进行实践,应该不断加强C语言实验平台建设,在校内使用OJ(Online Judge)系统[11]。但要使OJ系统更好地发挥效用,教师必须对题目进行正确描述和引导,以及对测试用例考虑充分,增加与专业联系密切的实验内容,减少验证性实验内容;布置合作式项目任务,并以此作为大学生研究性学习和创新性项目,训练学生在实际工作中协调、合作和创造能力。学生还可以利用OJ系统进行阶段性测试,促进自主性学习。

(五)考核方式

课程的考核方式决定着教师如何教这门课,也决定着学生如何学习。目前C语言程序设计课程的考核方式为“平时表现+期末考试”的形式,期末考试采用无纸化上机考试,是评定学生成绩的主要方面,排除了考试各环节中人为因素的影响。试题库涵盖教学大纲规定的所有知识点,难度适宜、重点突出。

但全面考核学生的程序设计能力不能仅依赖于期末考试,应重视平时课堂和实践环节的考核,采用作业自评和同伴互评的评分机制。自评是学生比对评分标准自查;同伴互评是学生通过相互批改作业相互学习,是形成性评价的有效手段,能够帮助学生更积极主动地参与课程学习,增加了再次回顾知识、温习知识和总结自身所得的机会,促进更深层次的思考。为了使这一评分机制能有效开展,教师要制定一个好的评分标准,不同的“评委”依据这个评分标准对同一个作业进行评判应得出同样的判断;考虑到同伴互评中可能出现的问题,如学生不遵照评分标准打分等,做出相应的对策,使学生能够自觉以评分标准为指导,高质量地完成作业,然后根据评语对照评分标准修改完善自己的作业。

五、结语

应用型大学非计算机专业的计算机应用教育,应以能力为导向,使学生具备在各个领域应用计算机的能力。作为应用性较强的专业基础课,C语言程序设计能否学好关乎到后期专业课程学习的效果。根据专业特点,采取与专业相结合的C语言教学模式,培养学生将计算机处理问题的思维方式运用于本专业领域的能力,为各学科问题求解带来一种思想、策略、方法和手段上的变化,促进各学科的突破性发展。

参考文献:

[1]刘军。面向计算思维的程序设计教学实践[J].计算机教育,2015,(14):116-118.

[2]乔淑云,黄刚。程序设计类教学改革与计算思维之培养[J].计算机教育,2012,(19):17-19,23.

[3]聂兰顺,战德臣,宋巧红。计算思维的教学内容与方法研究――以“算法”和“系统”两种问题求解的计算思维为例[J].工业和信息化教育,2013,(6):21-27.

[4]冯博琴。对于计算思维能力培养“落地”问题的探讨[J].中国大学教学,2012,(9):6-9.

[5]谭浩强。研究计算思维,坚持面向应用[J].计算机教育,2012,(21):45-49,56.

[6]陈国良。计算思维的表述体系[J].中国大学教学,2013,(12):22-26.

[7]卢振利。应用型本科院校自动化相关专业中51单片机项目C语言六步编程法教学研究[J].电工技术・理论与实践,2015,(5):228-229.

[8]俞敏。对自动化专业C语言教学的思考[J].高校教育研究,2009,(3):135,137.

[9]陈丽敏,邵长友。基于自动化专业C语言课程教学改革的研究[J].中国电力教育,2013,(31):76,90.

[10]郝兴伟。大学计算机――计算思维的视角[M].第3版。北京:高等教育出版社,2014.

[11]廖雪花,厉兰洁,唐思娩。基于OnlineJudge的C语言程序设计实验课教学改革研究[J].计算机教育,2016,(6):130-133.

Research on Teaching Mode of C Programming for Students of Non-Computer Science

LUAN Ruo-xing

(Computer Center,Liaoning University of Technology,Jinzhou,Liaoning 121001,China)

c语言程序设计实例 篇九

关键词: C语言; 编程思维; 程序设计; 教学改革

中图分类号:G642 文献标志码:A 文章编号:1006-8228(2016)11-67-03

Research on the teaching reform of C language for training

of the programming thinking ability

Yin Bo, Meng Aiguo, Zhu Qianfei, Zuo Lifang

(School of Computer and Communication Engineering, Changsha University of Science and Technology, Changsha, Hunan 410014, China)

Abstract: In the information age, with the basic programming ability has become the basic requirement of a qualified science and engineering student. In view of the C language is the enlightenment course of the programming language, combined with the problems existing in the C language teaching in universities, the teaching mode reform for the training of the thinking ability of programming is explored. From the angle of teaching content, teaching method, examination method and practical teaching management, the related ideas of teaching reform are discussed, in order to improve students' abilities of programming, of solving practical problems and to innovate.

Key words: C languagem; programming thinking; programming; teaching reform

0 引言

随着信息科学技术的迅速发展与广泛应用,具备基本的编程能力成为一个合格的理工科大学生的基本要求。C语言被国内大多数高校列为计算机程序设计的基础课程,成为理工科大一学生的必修课程,也是编程语言的启蒙课程[1-3]。

C语言是一门实践性比较强的课程。传统的C语言教学将语法作为讲解重点,使得学生容易陷入语法知识的细枝末节而忽略了程序设计的本质。一方面,记忆大量的语法规则、语句格式,降低了学生对编程的兴趣,甚至从此畏惧编程;另一方面,造成了“高分低能”的现象,许多考试成绩优异的学生,编程动手能力不足,甚至编写程序时无从下手[1]。

实际上,程序设计教学的目的,不是简单地要使学生掌握语言的基本规则,而是要培养其解决实际问题的能力和编程实现的能力。学习语法的目的在于形成下意识的习惯,并不能引导写出有效的程序。程序设计最重要的思维过程是如何把目标域问题建模成计算(即如何从已知信息机械推导出待求信息),这个过程是独立于编程系统的,然后再根据选用的编程语言将计算过程形式化出来。

因此,C语言作为编程语言的启蒙课程,最重要的是培养学生的编程思维能力,以启发和训练学生的编程思维为主导,着眼于解决问题的思路和方法,从而增强学生解决实际问题的编程能力,激发学生的编程兴趣,培养学生的创新能力。也为学生在后续学习过程中更容易接受其他编程语言。

本文对面向编程思维能力培养的C语言教学改革进行了探索。通过C语言课程的学习,使得学生具有以下基本编程素质:①基本的编程思维;②调试代码的能力,良好的编程习惯;③撰写可读性强、扩充性好、易于复用的优质代码的能力;④查找技术资源与阅读技术文档的能力。

本文论述主要分为三个部分:第一部分分析目前C语言教学存在的问题,提出面向编程思维能力的C语言模式改革;第二部分陈述了编程思维的具体内涵;第三部分提出了面向编程思维能力的C语言教学改革的具体措施。最后,对C语言课程教学进行了总结与展望。

1 编程思维核心内容

C语言抽象程度不高,主要的特点包括“面向过程”(以事件为中心进行编程)、结构化的程序(函数),以及较强的硬件控制能力。编程思维包括分析问题、归类(建模)和实现。核心在于,把问题域涉及到的数据映射到合适的数据结构,把通过程序解决问题的过程映射为具体的算法逻辑。

根据程序设计的要求和C语言的特点,C语言教学中的编程思维能力主要包括以下内容。

⑴ 框架思维:培养编程的全局思维能力和算法的整体设计能力,理清编程思路,搭好程序的大体框架,再实现具体的代码。

⑵ 组件化与模块化:将复杂的问题拆解成小问题,使用模块化的方式(函数)构建程序。

⑶ 函数思维:重复使用到的运算过程储存为标准化的函数。学习C语言自带的库函数,库函数是将C语言应用于实际的基础。

⑷ 算法思想:程序运行效率最终取决于算法。分治与递归等基本的算法思想,算法的评价。

2 具体改革措施

2.1 教学内容改革:主题式教学,精讲语法知识,结合编程案例

按照循序渐进的知识学习原则,将C语言教学分为四个阶段:由基本的语法和简单的编程思维入门,到C语言库函数,再到程序效率的追求,最后到特定领域的专业应用。前面两个阶段是基础,目标是掌握C语言程序设计的基本方法和编程思维,具有一定的C程序编程的能力。后面两个阶段是提升,将C语言和计算机相关知识紧密结合,目标是写出可运行程序,进而写出运行效率高的程序,并结合特定领域进行应用。

在各阶段根据知识点的衔接性和相关性,设置若干主题。精讲语法内容,不纠缠于过多的语法细节;由于C语言是除了汇编最接近硬件的程序设计语言,紧密联系底层知识讲解语法内容,有助于对C语言语法和特点的理解。使用案例法,重点讲解分析问题和解决问题的思路,培养编程思维能力。

基础阶段各主题以及主要内容如下。

⑴ 编程准备。主要内容包括:C语言程序设计的基本思想(面向过程、结构化编程);基本的编程思维;程序运行效率最终取决于算法。案例包括拼图小游、查找电话簿等。

⑵ 变量与内存布局。主要内容包括:基本数据类型在内存中的表示形式;不同数据类型之间的转换;运算符;数组、结构体在内存中的表示形式。

⑶ 控制结构与算法(算法思维)。主要内容包括:顺序结构、选择结构、循环结构;数据查找与排序问题;算法的时间复杂度。案例包括线性查找、折半查找等。

⑷ 函数(模块化、函数思维)。主要内容包括:函数参数的传递方式;函数的嵌套调用与递归调用;常用的C语言库函数。案例包括信息管理系统的程序框架设计等。

⑸ 数组与字符串(批量处理) 。主要内容包括:数组的本质(批量处理);递推与递归;栈、堆、C语言中的越界检查。案例包括冒泡排序、递归排序等。

⑹ 指针与内存管理。主要内容包括:指针与函数、指针与数组;指针与内存管理;文件。案例包括链表、信息管理系统部分功能的实现等。

⑺ C语言的函数库(函数思维)。主要内容包括:字符串、输入输出、动态分配函数和随机函数;进程函数、网络交互;阅读技术文档。案例包括图形时钟、小游戏等。

与C语言基本阶段的精讲不同,提升阶段围绕数据结构与算法、图像处理、网络、操作系统几个方面展开,讲授核心知识和典型案例,开阔学生视野。提升阶段包括以下主题:①数据结构与算法;②图形图像处理;③网络处理;④操作系统管理;⑤游戏制作。

尽管主题内容不同,编程思维的侧重点不同,但基本的编程思维自始至终都贯穿其中。例如框架思维,具体体现在:分析问题解决问题的过程中,先理清楚大体思路;程序的编写过程中,先写好程序的大致框架,再细化具体的代码。

2.2 教学方法改革:采用现场编程讲授C语言基础内容,采用微课等网络教学方式讲授C语言提升阶段知识

C语言基础阶段以课堂教学为主,一般是现场编程。原有教学方法主要使用多媒体课件,对于案例的讲解,一般也是通过PPT讲解后,粘贴到开发环境下运行一遍。由于幻灯片的演示过程相对较快,没有给学生思考和消化的时间,思路也不是学生自己想出来的,使得知识吸收率较低。

现场编程教学是一边讲解一边编写代码,具有“且想且编程”、开发环境下现场调试代码的特点,能够较好地展现分析问题和解决问题的编程思维方法。同时,将基本的语法知识贯穿于程序的编写和调试过程。现场编程过程,积极与学生互动,训练学生检查错误的能力,鼓励学生独立思考。使得学生能够跟着老师的思路一步步用代码解决问题,最后还能总结出学习过程中的问题所在,从而提高学生的动手能力,形成正确的程序设计理念。

针对C语言提升阶段的知识内容,采用微课等网络教学方式讲授[4-5],学生课外自主学习不列入考试内容。目的在于将C语言和计算机相关知识紧密结合,使学生进一步了解C语言的特点和用途, 也是编程思维的综合训练, 使得学生写出效率高的实用的代码。

2.3 考核方式改革:对学习过程进行监督和考核,采用编程题型进行机考

考核是针对基础阶段的学习。提升阶段不计入总成绩。C语言学习的目的是提高学生编写程序的能力,这需要学生多动手编程。传统的考核以期末考试为主,并且考试题型包括选择题等大量的主观题。这种考核方式的问题在于:①主观题不能真实反映学生的编程能力;②对学生学习程序设计课程产生误导,把实践课程变成了“做题”课程,造成学生忽视编程实践能力的锻炼;③一考定成绩,缺乏对学习过程的有效监管,不能督促学生重视平时的学习和积累。

因此,改革考核方式,原则和措施具体如下。

⑴ 对学习过程进行考核:采用“平时作业+小考+实验+期末考试”的方式,学生成绩按以下方法记分:平时成绩占40%,实验占10%,期末考试占50%;其中平时成绩包括平时作业和小考的成绩。通过对整个学习过程考核,既可以督促学生学习,授课教师又可以及时获知学生的学习情况,能够针对难点和问题,及时进行反馈和辅导。

⑵ 考试题型统一为编程题目:不管是作业、实验、还是考试,均使用编程题目作为考试题型,反映学生真实的编程能力,也促使学生多动手多实践。

⑶ 及时出成绩,增加成绩的透明度:作业、实验和考试,均使用机考考试系统,学生提交后,及时出成绩。平时作业允许学生刷题,鼓励学生多做多练,实验和考试不允许刷题。

2.4 重视实践环节,鼓励学生参赛

要提高学生解决问题和实际编程的能力,必须要求其多动手写代码,因此实践环节至关重要[6]。实践环节采用“预习+编程+点评”的方式。为了保证上机效果,要求学生上机前预习。同时加强实践环节的考察,要求学生必须在课堂内完成实验,由机考系统当场给分。教师根据实验情况进行现场点评。

鼓励优秀学生参加计算机类的作品比赛、大学生创新性实验项目、大学生课外科技立项等项目,培养学生的实践能力、解决问题的综合能力,鼓励学生创造性思维。更重要的是,以上述比赛和项目为契机,激发学生的编程兴趣。

3 结束语

编程思维是提高学生编程实践能力的关键。本文探讨了面向编程思维能力培养的C语言教学模式改革,提出了具体的改革措施。改革现行的C语言课程教学模式,在教学过程以启发和训练学生的程思维能力为主导,精心设计教学和实践环节,这样才能真正激发学生的编程兴趣。编写程序应选择学生所学专业领域中的问题,培养和强化学生的“看家本领”。

参考文献(References):

[1] 杨阳,沈黎,杨明。电类大平台下C语言教学与实践探索[J].西

南师范大学学报(自然科学版),2014.39(5):209-212

[2] 吴永芬,陈卫卫,李志刚,李清。面向创新实践能力培养的C语

言程序设计实践教学改革[J].计算机教育,2014.3:88-91

[3] 于延,周国辉,李红宇,李志聪,范雪琴。CDIO模式下C语言程

序设计实践教学改革[J].计算机教育,2016.2:122-126

[4] 张蕾。基于项目化教学的“C语言程序设计”课程改革[J].教改

纵横,2013.2:17-20

[5] 叶慧婷,油晔。从C语言微课入手研究微课评价体系[J].机械

职业教育,2016.2:38-40

[6] 肖捷。C语言程序设计实践教学方案研究与设计[J].东莞理工

声明:文学大全所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。