c语言课程设计十篇

时间:2023-03-28 18:27:04

c语言课程设计

c语言课程设计篇1

计算机程序设计类课程具有实用性强,和应用广泛的特点。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语言课程设计篇2

关键词:C语言程序设计;重修课程;教学方法

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

近年随着高校招生规模的扩大,学生数量一直呈增长趋势。C语言程序设计作为理工科专业学生必修的基础课程,不及格的学生人数也在逐年增加。重修班的课程教学也是本科教学中重要的组成部分,在重修课程的教学工作中存在一些有别于普通课程教学的特点,需要任课教师采取针对性的措施,才能保证重修课程保时保质完成。

一、目前C语言重修课程存在的问题

1.教学方法与教学手段过于单调。从目前高校的教学情况看,一般现在大多以多媒体教学为主。当然,多媒体教学较以往黑板板书的讲授方式有了一定的进步,但这里边仍然存在一定的问题。第一,多媒体教学方法仍是以教师教授为主、学生听讲为辅的教学手段,启发式教学没有得到充分应用。而且许多教师过分注重PPT教学,强调体系的完整性而非学生的掌握情况。学生经常感到上课好像都听懂了,但是上机时对C语言语法不熟练,编写程序无从下手。第二,多媒体教学很难为学生建立编写程序的直观感受。教师PPT上的例子通常是可以正确运行并得到正确结果的例子程序。这就会使学生产生厌学心理,误认为只要将程序代码输入计算机,计算机就会正确地执行。当程序发生错误时,学生经常感到束手无策,挫伤了学生学习的积极性和热情。

2.学生的学习目的不明确。对于非计算机专业的学生,通常认为C语言程序设计与他们所学专业课相关性较小,而且在现实生活中很难应用,所以对C语言程序设计很难提起兴趣。另一部分同学认为学习C语言的目的只是为了通过计算机等级考试或重修考试,所以认为C语言学习的重点是语法知识而非上机实践,这部分同学学习非常认真,教材上做满了各种对知识点的解释和编程时应注意的误区,可就是不会编写程序,最多只能参照教材的例子编写,无法编写程序解决工程实际问题。还有部分同学认为C语言过时了,应当学习JAVA、C#等目前行业内普遍采用的高级程序设计语言。而且JAVA等高级语言相对来说简单易学,源代码可读性强,同时又有功能强大的编译器支持,利于迅速开发项目。

3.C语言本身的特点。C语言作为一门实用的编程语言,以其强大的编程功能,自由灵活的编程风格,获得了IT技术从业者的广泛青睐,但是这些有点恰恰成为了初学者的最大障碍。C语言程序语法复杂,调试苦难,尤其是对指针的使用,使初学者经常犯难以跟踪的编程错误。而且对于非计算机专业的学生,C语言程序设计往往在大一下学期或大二下学期开设。对于仅学习过大学计算机基础的非计算机专业学生来说,缺乏对计算机结构的全面了解,对于和计算机硬件尤其是和内存结合很紧密的概念,学生基本很难理解和掌握。

二、针对重修课程特点的教学措施

1.培养学生学习兴趣。对于选修C语言重修课的学生,应注意对其学习兴趣的培养。比如在课堂上可以给重修的学生讲一些计算机科学家的生平及小故事、计算机与数学等方面的内容,短则一两句话,长则三五分钟,既活跃课堂气氛,又能激发重修生对程序设计的兴趣。教师也可以在课堂中向学生讲述一些在生活中使用C语言编写的软件,如与学生生活密切相关的嵌入式系统软件,让非计算机专业的重修学生感到C语言程序设计与他们并不遥远。教师在重修课教学过程中,可以采取案例驱动、任务驱动、主题作业、课程设计等多种形式[1,2],增强学生的学习兴趣。

2.改进教学方法。在C语言程序设计重修课程的教学中,要充分利用多媒体课件,其内容应该有条理、重点突出、详略得当。多媒体课件应该注重演示与推理,而不是教材的翻版。同时,教师也可在课堂上现场使用编译软件编写程序,并对程序中的错误加以修改并讲解,也可以教师将程序的主体写好,邀请同学上讲台上编写关键代码段,一起完成程序的编写。如教师在讲解for循环体的知识点之后,可以编写如下图所示代码:

并请同学上讲台现场编写代码完成所需的功能。如果学生在编写过程出现了错误,教师应该在课堂上做出讲解并给出解决方法。这样既调动了重修生上课的积极性,活跃了课堂气氛,同时教师对学生编程时易发生的错误,现场给予了解答,减轻了学生学习程序设计的畏惧心理。

同时,应采用将多媒体教学工具(如Flash)c程序调试相结合的方法,将C语言程序设计中内容比较抽象、比较底层、不易理解的部分,如排序算法,用直观的形式展现给学生。

例如,在讲解选择排序算法时,可以将如下图所示的Flash与VC++6.0的调试窗口做对照:

教师可以通过Flas与程序代码的互动,逐步地将选择排序算法程序每一步操作,形象直观地演示给学生。

3.强调算法的重要性。算法设计是C语言程序设计的灵魂,编程成功的前提是要分析出正确的算法,因此在教学中必须将算法设计作为程序设计课程的先导和教学重点,以培养和提高学生分析和解决问题的能力。笔者曾以求取任意正整数平方根为例,分别讲解了泰勒展式法与牛顿迭代法,并编写程序为学生展示了选取不同时间复杂度的算法对求解问题造成的影响。对于非计算机专业的C语言的重修学生而言,能够分析与设计简单的算法是我对他们的基本要求。要时时向学生传输这样一个观点:程序设计语言无论多么强大,多么流行,都是一种工具,而程序设计的根本目的是为了解决生产生活实际中的问题,对于解决问题而言,算法才是最重要的。

总之,以上是本人在C语言程序设计重修课教学过程中的一些体会,不一定完全正确,还需要我们不断地去探索,取长补短,不断完善。

参考文献:

[1]常本勤.基于问题的学习模式在程序设计类课程教学中的应用[J].计算机教育,2010,(2).

[2]冯小强.C语言教学方法的探索[J].科技信息,2010,(28).

c语言课程设计篇3

摘要:本文从教学实践出发,分析了当前非计算机专业“C语言程序设计”教学中存在的问题。提出了在课程教学中如何采用案例教学法、基于认知主义的内容设计优化以及以行动导向学习为指导原则来设计和组织课堂和实验教学的改革措施,并应用于教学实践。实践证明改革措施是非常有效的。

关键词:教学改革;教学模式;案例教学;认知主义;行动导向学习

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

1前言

“C语言程序设计”作为全国大部分高校非计算机专业的一门公共基础课,在课程教学中,许多学生都认为该课程涉及的概念比较复杂、规则繁多、使用灵活、容易出错,学习起来普遍感到困难。特别是大多数高校将C语言作为非计算机专业学生进校后首先接触的第一门公共基础课,这种现象尤为明显。为此作者从自身多年教学实践出发,以培养学生用计算机解决问题的思维能力为基本点,对该课程的教学过程进行了大胆的改革尝试。

2传统教学中存在的问题

笔者从事了多年的“C语言程序设计”教学,发现传统教学中教学效果总是不理想,因此对此进行了深入分析,发现在传统的“C语言程序设计”教学中存在以下几个主要问题。

首先,教师将教学目标主要放在了让学生掌握语法规则上,而问题分析和算法思想等程序设计能力和素质的培养不够,导致学生学习积极性不高和缺乏对实际问题进行分析、编程和处理的能力。

其次,传统的教学过程与学生认知过程存在偏差。目前,国内的大多数C语言教材都考虑到知识结构的系统性和全面性,大致按“算法-数据类型-基本结构-数组-函数-指针-文件”的顺序来组织教材。教师按照教材编排的内容和顺序,按部就班地进行教学工作。这种组织方式虽然依逻辑思维方式进行了归类,但难点还是较为集中,跨度大,学生一下子很难接受。由于学生没有编程基础,讲授算法和数据类型时只能讲的多,分析的少,“填鸭”式的将概念灌输给学生,致使学生觉得C语言很难。随后章节的讲授也是先介绍C语言语法规则,然后再针对所学的语法规则讲授例子,例子以语法应用为重点,较少涉及具体的C语言编程应用。这种从理论到实践、理论和实践脱节的教学过程不仅难以激发学生的学习兴趣,导致课程知识很难被学生全面掌握和灵活运用。

最后,传统实验教学效果有待提高。C 语言的传统实验教学以语法为主线,实验课多数是强调语法语句练习,由于语法的单调枯燥容易使学生陷入到冗繁的语法规则之中而逐渐失去学习兴趣。我们应该认识到学习语法不是我们学习程序设计语言的真正目的。程序设计教学的目的是培养学生分析问题和解决问题的能力,是在掌握语法的基础上,通过上机实践,真正地学会使用计算机语言来解决实际问题,培养学生的程序设计思想。

3C语言教学改革的探索

3.1改革教学模式,推行案例教学法等启发式教学方法

针对传统课堂教学中存在的问题,我们决心跳出以语法教学为主线的教学模式,吸收国外计算机课程教学的优点,积极准备推行个案分析,将复杂枯燥的语法知识分解到一个个生动实用的程序实例中。在教学过程中以程序设计为主线进行教学,有意识地淡化计算机语言本身语法规则的介绍,而重点介绍程序设计方法,在分析程序和程序设计中熟悉语法、应用语句,并把软件工程学的思想贯穿于算法分析和程序设计的过程中。例如课程开始先提出温度转换和两个瓶中的油水交换等现实中的问题并以程序来解决,程序中涉及到的整形和字符型等数据类型和赋值和算术等表达式做一讲解,经过多个程序的示例,学生对C程序的基本结构和其中的语法知识有了一个了解,三种基本结构都介绍以后,再将语法知识做一个总结,学生很容易接受。

3.2基于认知主义的内容设计优化

认知主义强调人的认知不是由外界刺激直接给予的,而是由外界刺激和认知主体内部心理过程相互作用的结果(内部心理过程包括态度、需要、兴趣和爱好以及原有的认知结构即过去的知识经验)。学习过程是每个人根据自己的态度、需要和兴趣爱好并利用过去的知识经验对当前的外界刺激(如教学内容)主动做出的有选择的信息加工过程。学生不再是外界刺激的被动“接收器”,而是主动地对外界刺激所提供信息进行选择性加工的主体。认知主义强调教学设计首先要充分考虑学习者的认知特征,并把重点放在教学组织策略上。强调教学内容的组织和传递策略必须充分考虑学生原有的认知结构。

在课堂教学过程中,遵循学生认知过程,对教学内容重新进行归纳,将难点再次分散,以缩小台阶,达到循序渐进。例如,C语言数据类型、运算符、表达式种类繁多,放在一起讲授,学生学习起来难度较大,我们将改变以往教学内容讲授顺序,首先介绍程序结构,使学生对C语言程序结构有个大致了解,然后通过一个简单的求两个数的和的例子介绍常用的常量形式和算术运算符以及相关的表达式,通过求绝对值的例子介绍关系运算等,使学生学习起来没有想象中的那么难。紧接着再教学生编写简单的、实用的C程序设计,然后趁机引入基本输入、输出函数就顺理成章了。这样一来台阶小了,学生的信心也增加许多,学习积极性很快就被提高起来。对于生硬的语言叙述,课堂上改用生动的比喻,进行详尽引导。

程序设计方法的传授是C 语言程序设计课程的另一重点。在教学中,不仅要贯彻自顶向下逐步求精的面向过程的程序设计思想,还要尽可能采用程序框图等程序设计工具,来说明程序设计的过程和算法,来培养学生程序设计的能力和素质。

3.3教学手段改革

传统教学手段中,用粉笔书写板书的时候,教师可能会根据学生的随堂反应,有机而又灵活地掌握分寸,并且可能以恰如其分的比喻,幽默风趣的语言,以姿势助说话等多种形式把对课程的理解表达得淋漓尽致,抓住学生跟随自己一步一步领会教材。但是,程序设计课程中问题分析、算法设计及程序都要在黑板上书写,很难展现题目直接的衔接,并且课程进度受到很大影响。

使用多媒体教室,省去了粉笔在黑板上的书写时间,以计算机技术为核心的现代化教学手段至少比板书教学节省总学时的三分之一,但是现代化的CAI教学在很多情况下只能播放事先辑录好了的讲稿、教案或课件,在一个光线黑暗的教室里,教师无法看到学生的表情。CAI教学不足之处就是容易把板书教学可能实现的双向交流变成单向传递。

基于上述分析,我们在教学过程中充分发挥两种教学手段的优势,采用多媒体与黑板结合的教学方式,对理论知识利用幻灯片给出,例题讲解只要由教师利用黑板对问题进行分析,引导学生写出算法,在语言编译环境下直接进行编程调试,使学生能直观地看到编程的方法与效果,极大地提高了学生的学习兴趣。

3.4以行动导向学习为原则设计和组织实验课程教学活动

所谓行动导向学习就是有目的地、系统地组织学生在实际或模拟的专业情境中,让学生参与设计、实施、检查和评价职业活动的经历来发现、探讨和解决职业活动中的问题,在体验与反思学习行动的过程中,获得完成职业活动所必需的知识与能力。

上机实践是“C语言程序设计”教学中不可缺少的教学环节。充分有效的上机实践不仅能纠正学习中的理解偏差、加深知识要点的理解,还能增强学生的上机实践的积极性和问题处理能力,切实提高编程能力与编程水平。

在进行实验课程教学设计和组织时,我们以行动-学习-行动这条主线来组织教学。具体过程如下:

(1) 编写一些趣味性较高的程序,演示给学生看,通过例子告诉学生我们所需要学习的知识要点;

(2) 在介绍了C语言程序编辑器的使用方法后,带领学生走进实验室,依照例题,进行简单的程序设计,对出程序中的错误,教师现场辅导给予解决;

(3) 授课教师总结实验中的共性问题,课堂上讲解此类问题的解决方法,再讲解所涉及的语法点,这样学生由于一开始已经有了感性认识,就比较容易理解和记住语法规则;

(4) 在理解和记住语法规则的基础上,教师再设计一些简单的题目,让学生走入实验室,经过这样循环往复,对于简单的程序设计,学生很快就可以掌握了;

(5) 随着学习的深入,当接触到较复杂的程序设计时,可以由教师策划一些案例,具体行动由学生自己计划、实施、检查以及修正和评价。对于一个较为复杂的程序,过去教师往往是给学生提示设计思路,这就会局限学生的思维和行动。在教学中我们可以分小组进行讨论,让学生自己拿出程序设计思路和程序设计的算法,画出流程图,然后教师给予指导和点评。

4结论

上述教学内容、教学手段与教学方法的改革,是根据实际教学过程中学生存在的问题提出的,并在“C语言程序设计”课程教学实践中运用。实践证明,这些教学改革效果良好,提高学生的学习热情,让学生从枯燥无味的语言学习中解放出来,既让学生能深刻理解课程的理论知识,又培养学生的创新思维,提高了实验技能,培养了自学能力和创新能力,并锻炼了毅力,从而从被动学习走上主动学习。我们将继续努力探索,使“C语言程序设计”课程教学日趋完善,使C语言课程的教学效果再上一个台阶。

参考文献:

[1] 张锦祥. 高级程序设计语言课程教学改革与实践[J]. 浙江教育学院学报,2007(4):71-76.

[2] 赵山林,高媛.C语言程序设计[M]. 北京:人民邮电出版社,2004.

[3] 王冬. 高职C语言程序设计教学改革探索[J]. 计算机教育,2007(9):94-96.

[4] 万蓉. 基于行动导向《C语言程序设计》的教学实践[J]. 成都航空职业技术学院学报,2008(2):17-22.

The Reform and Practice of C Language Programming

LIU Hong-min, ZHAO Shan-lin

(School of Electronics and Computer Science and Technology,North University of China,Taiyuan 030051,China)

c语言课程设计篇4

[关键词]C语言程序设计 教学 改革

[中图分类号] G642 [文献标识码] A [文章编号] 2095-3437(2013)11-0122-02

随着科学的发展,计算机技术得到了日益广泛的应用,这对高校非计算机专业大学生的计算机水平也提出了更高的要求。他们除了要具有计算机操作能力,还要掌握一定的计算机编程技巧。因此,高等院校都把计算机语言的学习纳入了教学计划,程序设计课程也作为了非计算机专业学生的重要基础课程。

“C语言程序设计”课程是学生进入大学的第一门计算机程序设计课程。“C语言程序设计”课程不仅要讲解计算机高级语言的语法、语义和编程技巧等,更主要的是要向学生传授程序设计的基本思想、方法,培养学生逻辑思维、组织协作和创新开发的能力,以便将来更好地将这些知识应用于专业课程的学习,同时在未来的就业过程中能更快地融入社会,真正成为符合时展,适应社会需求的高科技人才。

一、“C语言程序设计”课程现状分析

“C语言程序设计”课程的理论性和实践性都很强。目前,通常的安排是总学时为64学时,理论与实验学时的比例为3:1。在理论课上既要讲基本的语法知识又要讲编程方法,在实验课上既要进行基本的验证性实验又要进行项目开发。由于学时的严重不足,教师往往顾此失彼,学生也疲于奔命。学期结束后,学生普遍感到程序设计课程晦涩难懂,不会应用,无从下手,许多学生因此失去了学习热情。专业课教师也反映学生的计算机编程能力很低,应用水平差,不能满足专业课的要求。

二、“C语言程序设计”课程的改进措施

(一)分段教学法

“C语言程序设计”课程在教学中可以采用“分段教学法”。将整个学期的教学活动分为两段,第一段教学专门用来介绍基本语法,夯实基础知识;第二段教学则集中讲编程,是对“C语言”知识的全面应用。

在第一段教学中,许多C语言教材在语法的讲解上过难、过细,偏离了实际应用,同时也影响了学生的学习积极性和自信心。

全国计算机等级考试(National Computer Rank Examination,简称NCRE)是经原国家教育委员会(现教育部)批准,由教育部考试中心主办,面向社会,用于考查应试人员计算机应用知识与技能的全国性计算机水平考试体系。考核内容是根据社会不同部门应用计算机的不同程度和需要、国内计算机技术的发展情况以及中国计算机教育、教学和普及的现状而确定的,是贴近实际的一种要求。学生在学完“C语言程序设计”课程后,应该能通过国家非计算机专业计算机等级考试的二级测试。因此,“C语言程序设计”课程第一段可以参照计算机等级考试(二级C语言)的大纲,调节教学内容,同时,实验及练习题均可以从历年的等级考试真题中选择。这样既节省了时间又有针对性,符合了社会的需求,也为学生顺利通过计算机等级考试打下了良好的基础。

第二段教学则全部用来培养学生的结构化程序设计思想和训练学生的编程能力。在这段时间里可以先向学生讲解经典例题的设计思想,剖析编程技巧,再向学生布置一些与实际相关联的题目,让学生通过自己的分析和思考来完成,并撰写报告。这样不仅帮助学生提高了编程能力,更培养了学生独立分析问题和解决问题的能力。

(二)项目驱动法

由于学时有限,往往不能在课堂上达到所有教学目的。可以在学期的开始,向学生布置一些较大的、综合性的项目,项目的实现将贯穿学期始终。

例如“学生成绩管理系统”,在讲第一章C语言概述时,在学生熟悉结构化程序设计方法的同时引出题目,通过自顶向下的设计方法设计出“学生成绩管理系统”的各个模块,如图1所示。

在讲数据类型时,介绍学生、教师、成绩等结构体数据类型所涉及的各个基本数据类型,使学生对数据类型的概念有一个清晰和整体的认识。

在选择结构程序设计这一章里,让学生设计一个显示界面,在选择不同的选项时显示不同的信息、实现不同的功能,同时,在这章可以实现依据输入的成绩评定学生成绩的等级,如“A”、“B”、“C”和“D”等。

在数组一章,学生知道了如何通过数组输入多个学生信息。

在函数一章,可以教学生将各个模块的功能通过子函数实现。

在结构体一章,学生学会如何建立学生、教师、成绩等构造数据类型。

在指针一章,让学生通过指针快速访问数据。

最后在文件一章实现对学生数据的存储和读取,最终完成这一项目,实现项目的全部功能。

在整个教学过程中,层层深入,环环相扣,在推进教学内容的同时逐步完善此项目。

教师可以根据学生人数为学生布置若干个项目,将学生分成多个小组,分工协作,共同完成。这样,既能让学生体验项目的开发、完成的全过程,又能培养学生团结协作、共同进取的精神,为学生毕业后走向社会、融入群体打下良好的基础。

(三)改革考试形式

c语言课程设计篇5

关键词: 《C语言程序设计》 教学方法 教学手段 实验教学

《C语言程序设计》是程序设计类课程的基础,是计算机专业和相关专业的核心课程,也是全校工科各专业的本、专科教学计划中占有重要地位和起着关键作用的一门课程。在计算机教育方面,C语言是为数不多的与国外保持内容同步的课程之一。因此,它在高校教学中的地位之重要不言而喻。我们的教学目标是让学生掌握程序基本编程思想和实用编程技能,训练学生严密的逻辑思维、严谨踏实的作风、精益求精的精神,通过全面、深入、系统地介绍程序设计方法和程序设计语言,使学生掌握C语言的基本语法、语句、控制结构,以及结构化程序设计的基本思想和方法,使学生认识到算法、良好的程序设计风格与实践在本课程学习中的重要性,培养学生熟练使用C语言编程分析和解决实际问题的能力。但在实际的教学过程中,经常有学生学不好、不愿学的情况。我根据自己多年的C语言教学经验,谈谈在C语言教学过程中的一些问题,希望对读者学习和使用C语言有所帮助。

1.存在的问题

很多学生在开始学习时热情高涨,但随着课程的深入,该课程里面需要记的规则和规则本身的灵活性特别是思维的转变使学生慢慢失去了学习的兴趣。主要原因有以下几点:第一,对知识理解不够透彻,没有深究里面的知识点。课本里面一般只介绍C语言的格式和规则,因为语言学习的一个渐进性,所以结合实例比较少,学生就比较难于掌握。例如if语句的用法:if(表达式)语句;当表达式为真时执行语句,否则执行if语句的后续语句,如果在“(表达式)”后面加一个分号虽然没有语法错误,但程序的逻辑结构发生了改变,很多初学者会犯此类错误。第二,学生的思维方式开始很难转变过来,经常会用数学里面的表达式来理解和表达C语言里面的表达式。如若要描述三个变量a、b、c的大小关系,很多学生就直接这么写了:a>b>c,虽然没有语法错误,但同样出现逻辑错误,实际上在C语言里应该这样描述:a>b&b>c。第三,学生对程序的理解不够。弄不明白程序的运行过程,实际上时对C语言的控制语句理解不够。第四,不会动手写程序。这是很多初学者出现的问题,很多程序能看懂,能理解,但是一叫他独立写一个程序,他就无从下手。这主要是平时动手不够,另外对算法的理解还没有深入。

2.解决方法

2.1教学方法。教学方法多种多样,不可采用单一的方式进行讲授,在教学过程中教师应该灵活地采用多种方法相结合,充分调动学生的积极性,使其从被动学习转变为主动学习具体方法如下。

2.1.1互动教学法。互动教学法的方式有多样,如课堂提问、课堂练习等。例如,在讲完一个知识点后,教师可拿出几分钟时间让学生自由提问,或者可以出一个相关习题让学生随堂练习,这样既不会让学生感到枯燥无味,又能加深学生对该知识点的理解。在课堂上还可让学生直接到黑板上编写程序,编写完毕后让其他同学上来进行点评、讲解,这样可及时发现学生的掌握情况和学生容易犯错的地方,从而对症下药,对学生还没有掌握的知识点再重新温习一遍,这样学生的印象深刻,比直接讲解效果更好。

2.1.2启发教学法。C语言教材中的例题和课后习题比较丰富,给出了一般问题的一般解法,应对其进行归纳、整理和分类,在讲解同一类问题时没有必要逐题讲解,而应该在讲解一、两个典型题目的基础上,拓展学生思路,启发学生归纳出求解这一类问题的基本算法,这样既节省了重复讲题的时间,又留出时间来给学生讨论和思考;或者在讲授新的内容时通过复习前面的知识引入新的内容,例如讲循环结构程序设计时,应首先让学生回忆顺序结构和分支结构的执行原理和过程,进而引出循环结构的思路和过程。

2.1.3类比教学法。如在讲解交换变量a和b的值时,很多学生会直接用a=b;b=a;来处理。这时教师可用交换两个杯子甲和乙里的饮料这样的例子来说明,要交换两个杯子甲和乙里的饮料,则应该要拿第三个杯子丙作为过渡,先将甲杯子里的饮料倒入丙,再将乙杯子的饮料倒入甲,最后将丙杯子里的饮料(亦即最开始甲杯子里的饮料)倒入乙杯子,这样就实现了甲乙两杯子的饮料的互换。同样要交换两变量的值,也应该要一个中间变量,假设为t,则程序段应这样写:t=a;a=b;b=t;如此,学生就很容易理解了。

2.1.4演示教学法。利用黑板或动画的形式生动地描述程序的运行过程,这样对一些比较复杂的结构块或程序段有很好的助理解作用。

2.2教学手段。教学手段也是多样,针对不同的教学内容和不同的学生个体采取不同的教学手段,这样才会有针对性。

2.2.1寓教于乐。兴趣是激发一个人学习的最大动力,所以教师在教学过程中尽可能地采取一切方法来激发学生学习的热情。在C语言课程中,也有很多趣味性的数学问题,如“水仙花数”,“完数”,“斐波那契数列”,“猴子吃桃问题”,“百钱买百鸡”,等等,这些有趣的问题可激发学生编程的兴趣。

2.2.2传统的板书和多媒体课件相结合。在教学过程中,教师一定不能单纯地使用多媒体教学或板书的方式。基于C语言这门课程的特殊性――特别注重动手和程序设计能力,所以在教学过程中,对概念或演示方面可以用多媒体,概念一定要讲详细,宁可少讲一个习题,也不能让学生对概念模糊;涉及程序(特别是学生刚接触到程序或比较复杂的程序)的时候,虽然多媒体课件上有,但讲解的时候最好将其板书出来边写边讲,哪个语句段实现什么功能,能否用其他程序段实现相同功能,等等,这样学生更容易接受这个程序、算法和思想,学习效果更佳。

3.加强实验教学的管理

《C语言程序设计》是一门实践性很强的课程,上机实验是学生消化、理解理论知识,熟悉算法,发现、验证错误,调试程序和提高编程能力的一个重要途径。学习C语言不能纸上谈兵,一定要通过上机来验证程序,而且学生独立上机编辑运行一个程序比单独看书效果强很多。所以教师一定要加强上机实验的管理,让学生重视实验。实验环节主要有以下几点。

3.1理论课结束后即要为学生布置实验课的内容,要有难有易以供不同层次的学生选择,让学生在课后先自己编写好程序或者写出问题的算法以提高实验课的上课效率。

3.2上机过程中督促和指导学生进行实验。上机调试程序的过程中,会出现各种问题,教师应耐心细致地为学生讲解并让其思考原因。另外基于C语言有不同的编译平台,常用的有TC2.0和VC++6.0,有个别程序(主要是数据类型里面的问题)在不同的编译平台上有不同的结果,一定要让学生弄清楚为什么。

3.3仔细批改实验报告。实验课结束后,要求学生写实验报告,上交之后,详细了解每个学生的实验情况,出现的问题,这样就相当于一个反馈了,以后就有针对性了。

C语言是高校计算机教育的一门非常重要的课程,因此C语言教学是一个非常值得探讨的问题。教师应尽一切努力让学生学好这门课程。

参考文献:

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

c语言课程设计篇6

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

4结束语

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

参 考 文 献

c语言课程设计篇7

【关键词】精品课程;Web;应用开发;B/S

0 前言

传统的课堂教学中,存在教学任务重,教学课时紧张的特点。作为公共基础课的《C语言程序设计》,是培养学生计算机编程能力的入门课,在课程教学中课时与教学任务之间的矛盾更加突出。精品课程网站的出现,为学生在课下学习和复习提供了一个有效的平台,可以弥补课堂教学的不足,同时,优质教学资源也可以通过精品课程得到更为广泛的共享,极大的提高了其教学价值。

如何设计一个功能稳定、内容丰富、界面美观、使用方便的精品课程网站,对于《C语言程序设计》的教学是一个极具探讨价值且亟待解决的问题。

1 《C语言程序设计》精品网站建设需求与功能分析

《C语言程序设计》精品课程网站要求能够方便用户在线资源共享及教师管理者资源的有效。网站平台要具有界面美观,操作方便,稳定性与安全性好的特点。在网站内容方面,要结合该课程较强的实践性的特点,实现学生与教师的有效互动。因此,在功能上应实现用户注册、课程资源,资源管理,资源浏览,留言及回复,公告管理,用户管理等功能。课程资源包括课件、习题、参考资料、教学大纲、教案、教学视频、演示动画等的。资源管理实现上述资源的修改与删除。用户管理实现用户账号信息的管理、密码修改与重置等。

2 《C语言程序设计》精品网站开发技术

本网站采用JSP作为网站网页开发技术,MYSQL作为存储数据信息的后台数据库。JSP是Sun公司推出的构建在Servlet规范提供的功能之上的动态网页技术。MYSQL是一个开放源码的关系数据库管理系统,目前已经被广泛地应用在中小型网站中。

网站平台的开发,采用目前最流行的SSH(Struts+Spring+Hibernate)框架及MVC(模型Model-视图View-控制器Controller)设计模式,充分考虑了平台的可扩充性和安全性及稳定性的要求。平台的实现包含了表示层、业务逻辑层、数据持久层和域模块层的设计与开发。该开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离,是的系统具有很好的可维护性。在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后Struts根据配置文件将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,由Spring IOC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供缓冲池、事务处理等容器组件以提升系统性能和保证数据的完整性。在持久层中,将依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,然后返回处理结果。同时,平台在网页刷新方面采用了Ajax (Asynchronous JavaScript and XML,异步JavaScript和XML)技术完成页面的局部刷新。在资源上传方面,采用SmanUpload组件实现了文件的上传。采用FlashPaper实现文档到FLASH动画的转换。在线编辑则使用了开源的在线HTML编辑器KindEditor。

3 精品网站主要功能模块设计与实现

结合《C语言程序设计》精品课程网站的建设需求,下面对该平台的一些主要功能模块的设计与实现进行介绍。

3.1 系统功能建模设计

系统用户主要包括学生用户、教师用户及管理员,可以依据三者各自的功能,采用用例图实现其功能的模型化概要设计,并且利用活动图、状态图及类图实现其细化,实现平台主要功能模块的详细设计。下面是教师用户角色的用例图。

图1 教师用户角色用例图

3.2 系统主要功能实现

根据详细设计阶段的成果,进行程序代码的编写,完成预期的功能模块。开发实现过程中注意了代码书写的规范化及可重用性,对于界面,采用了一些精美的图片与动画,使得实现的网站平台在可用性、界面友好性方面有好的体现。同时,按照预期的需求对其进行相应的黑盒测试与白盒测试,检验其是否满足实际的要求。

4 课程精品网站的

本精品网站在在WINDOWS平台或LINUX平台下,下面以在WINDOWS平台的过程来进行说明:

4.1 安装WINDOWS SERVER服务器版操作系统

由于《C语言程序设计》精品课程完整有着大量的用户,存在较大的并发访问情况和安全性需求,因此网站需要在性能稳定,安全性高的服务器平台。我们首先需要安装WINDOWS 2000 SERVER以上的服务器版本,本网站的服务器为WINDOWS 2008 SERVER。

4.2 安装JDK并进行配置

JDK是JAVA开发及运行的环境,网站的运行需要JDK的支持,下载JDK的WINDOWS版本安装包进行安装,然后配置相应的环境变量,包括java_home,path和classpath三个部分。

4.3 安装Tomcat WEB服务器

下载并安装Tomcat,Tomcat是Apache的一个JSP常用的WEB应用服务器,具有很好的稳定性。

4.4 安装MYSQL数据库管理系统

网站采用MYSQL作为数据库管理系统,下载并安装MYSQL,然后创建网站所需要的数据库和用户。

4.5 安装JDBC驱动

JDBC(Java Database Connectivity)是一种可以执行SQL语句的Java API,提供了程序访问数据库的接口。平台对数据库的访问需要安装JDBC驱动。

4.6 网站到TOMCAT(下转第13页)

(上接第15页)将精品网站的JSP程序放置在直接放到Webapps目录下或者自己建立的目录下,修改配置server.xml,实现网站的最终。可以通过修改server.xml文件,在Host标签内建一个Context实现,内容如下:

其中path是虚拟路径,docBase是JSP应用程序的物理路径,workDir是这个应用的工作目录,存放运行是生成的于这个应用相关的文件。

这些步骤完成后,就可以浏览器里直接访问该网站。

5 结束语

作为学生自学重要途径的精品课程资源建设,是对优质课程资源共享的一个重要途径,同时也弥补了课堂教学的不足。本文分析了《C语言程序设计》精品课程网站的需求,讨论了精品课程网站的开发技术和开发思想。设计和实现了精品课程网站的开发,并且给出了网站的方法。精品课程网站的建设和其合理应用,对于学生的学习有较好的效果,为进一步促进教学质量的提升打下坚实的基础。

【参考文献】

[1]郑伟平,范冰冰,胡遵华,田杰.多租户精品课程网站系统的研究与实现[J].东北师大学报:自然科学版,2013(02).

[2]周玉芬,柯和平,陈锐浩.基于绩效技术的精品课程网站建设研究[J].中国电化教育,2012(07).

c语言课程设计篇8

关键词:高职;程序设计;课程设置;教学内容组织

作者简介:章晴(1965-),女,江西南昌人,江西制造职业技术学院副教授,研究方向为软件设计、计算机应用;付江帆(1966-),男,江西南昌人,江西制造职业技术学院副教授,研究方向为软件设计、计算机控制。

中图分类号:G712 文献标识码:A 文章编号:1001-7518(2012)35-0035-02

C语言程序设计是一种应用非常广泛的计算机程序设计语言,教学目的是使学生掌握C语言的基本语法、程序设计的基本方法和技能;培养学生阅读程序、调试修改程序和编写程序的能力、提高分析问题和解决问题的能力;为后继课程的学习创造必备的条件,并为以后从事软件开发、维护及测试工作打下良好的基础。

一、课程设置的理念与思路

(一)根据职业岗位的要求构建课程教学体系

通过市场调查与调研与本课程相关的职业岗位主要有:软件设计、软件维护、软件测试,与之职业岗位相对应的职业能力是:程序设计能力、程序阅读能力、程序调试能力。根据职业能力的要求,进而确定课程教学目标,分知识目标、能力目标和素质目标。知识目标是使学生理解和掌握C语言的基本语法知识和面向过程的程序设计方法;能力目标是要培养学生使用集成开发环境进行软件开发、调试、阅读的综合能力;素质目标是使学生养成良好编程习惯,具有团结协作的团队精神,具备岗位需要的职业能力。根据课程教学目标对课程体系进行总体规划和设计,构建课程的理论教学体系和实践教学体系,制定课程教学大纲、确定课程教学内容,并根据行业的发展变化,实时对教学方案进行调整和修改。课程体系构建过程如下图:

1.根据课程教学目标,本课程理论教学体系可分为四大模块,见下图:

2.实践教学体系可分为:单元训练、认知实习、综合实训三大模块。通过单元训练环节,让学生理解和掌握所学知识点,熟练地掌握作为集成化开发环境的程序设计方法。认知实习主要是通过到校外实训基地参观、听讲座等形式,了解计算机新知识、新技术;了解C语言在实际领域中的应用;了解软件项目开发流程及开发工具;了解各种管理信息系统的开发和维护工作;了解企业所需人才必备的素质。综合实训环节主要是通过编写综合性程序,进一步掌握结构化程序设计方法,综合应用所学知识,提高动手能力和程序设计能力。综合实训分校内实训和校外实训两个环节:校内实训由校内指导老师布置课题;校外实训由实训基地指导老师布置实践工程项目。实践教学体系见下图:

(二)采用项目引导、任务驱动教学方法

以软件开发工作过程为背景,以实际工程项目为载体,来选取、组织教学内容。通过涵盖C语言主要内容的典型项目《学生成绩管理系统》,提出问题,通过对问题的分析将项目分解成若干任务模块,并依据课程教学目标,设置教学情境,引导出相关的知识点。

(三)走工学结合之路

由于计算机行业的特点,知识更新快,技术进步快,如果关起门来教学,理论与实际脱节,学生就业时就不能适应市场的需求。课程教学必须采取“走出去,请进来”的方法邀请企业的专家或技术骨干来校兼课、讲座,介绍计算机新知识、新技术;介绍软件开发过程和方法;介绍职业岗位所需要的素质和能力。学习过程中可安排学生到企业实习、实训,让学生接触真实的软件项目开发,做到学以致用,提高他们对知识的综合应用能力。

(四)通过课程实训的教学,模拟软件开发过程

重视实践环节的教学,精选实训课题,模拟真实场景,即按照软件公司的管理规定和软件开发规范,让学生参与软件开发过程,让学生通过团队合作,完成系统分析、代码设计、程序调试、文档资料编写等任务,提高学生的综合程序设计能力及团队协作精神,从而提高他们的职业能力及素质。

(五)开展职业技能鉴定,强化学生的职业技能

我们要求学生积极参加职业技能的考证及计算机等级考试,以此来强化学生的职业能力。同时,在教学内容的组织与安排上兼顾计算机等级考试及职业技能考试的要求。

二、教学内容的整合与组织

(一)教学内容的针对性与适应性

1.围绕职业岗位的要求选取教学内容。根据与本课程相关的职业岗位能力的要求本课程的教学目标重在培养学生的程序设计能力、阅读及调试程序的能力上,因此,在教学内容的选取上,重点放在程序设计的基本方法的介绍上,如顺序、选择、循环三种结构的程序设计方法、数组的使用、多模块程序设计方法(函数)、指针的使用、结构体类型的使用;在语法介绍上,根据高职学生的基础和特点,坚持以“必需、够用”为原则,注重基本概念的讲解,如数据类型、变量定义等,删减一些难以理解、又不实用的内容,如链表、条件编译、共用体等。这样一种教学内容的选取方法,突出了C语言的重点及教学目的,重视学生分析问题和解决问题能力的培养、注重编程逻辑思维的训练,为后继课程的学习做好准备,也为学生的可持续发展奠定良好的基础。

2.针对实际项目的需要选取教学内容。在教学内容的选取上,打破传统的学科及知识体系的局限,针对解决实际工作中的实际问题的要求进行选取,例如,本课程可针对真实项目“学生成绩管理系统”来选取和组织教学内容,通过对真实项目的解决,来引导知识点的学习,使学生在完成任务的过程中提高解决实际问题的能力。教学项目必须精心选取,必须适用于教学目标,我们选取的“学生成绩管理系统”,它一方面涵盖了C语言的主要教学内容,另一方面,学生对该系统涉及的功能非常熟悉,有利于他们专注于C语言的相关知识的学习。

3.实践教学要注重基本技能的培养。根据高职计算机类专业“技能型”人才的培养目标,实践教学在整个课程教学中占有十分重要的地位,实践教学要改变以往的主要是验证程序运行结果的方式,要注重学生基本技能和动手能力的培养。要建立一整套较完善的课程实践教学体系,做到每次实践课有目标、有任务,要求学生自己动手或通过小组协作在校内、或在校外完成真实项目程序的编制,通过综合实践提高学生的程序设计能力。

(二)教学内容的组织与安排

课程教学内容以项目设计过程顺序为主线来组织与安排,以项目为引导,将项目分解为若干任务模块,根据各模块所需的知识、能力及职业素质构建课程内容体系结构。

本课程以真实项目“学生成绩管理系统”为线索来组织教学内容,并将其分解成8个任务模块,引导出基本语法知识、基本数据结构、三种结构的程序设计、数组、函数、指针、结构体等相关内容;对项目中未涉及的知识采用“知识拓展”的方法来补充;为巩固相关知识,提高编程技能采用“举一反三”的方法,列举更多的经典案例;学生可在完成项目的过程中完成相关教学内容的学习。具体组织安排如下:

实践教学安排:实践教学分单元训练、认知实习和综合实训三个层次进行教学。具体安排如下:

课程教学方案的设计是一个综合工程,为了更好的实现本课程的教学要求,还要重视教材建设、规范教学行为,编写完备的教学资料,如课程教学大纲、实验大纲、实训大纲、实验指导书、实训指导书等。另外通过课程网站建设,为学生提供丰富的教学资料和信息,为学生课后自主学习提供方便。

参考文献:

[1]周雅静.C语言程序设计实用教程[M].北京:清华大学出版社,2009.

c语言课程设计篇9

关键词:微课;C语言程序设计;应用

DOI:10.16640/ki.37-1222/t.2016.11.229

0 引言

在互联网的大场所中,大数据、移动通讯等发展较快,“微”概念正逐渐改变及影响人们生产、生活和工作方式,教育资源开始朝向多元化、开方化的方向发展,日渐改变了学生获取知识的方式、教育方式及学习资源的种类等。微课是这些年来在教育领域兴起的一类事物,国家提倡此类新事物的发展,接连举办了两次部级高校微课教学比赛,微课是一种新教学形式,能够协助教师拓宽及优化教学过程,获得最终的教学目的[1]。

1 微课在C语言程序设计教学中的作用

微课演示程序编译过程具有直观、微小和精细的特征,不再是以往C语言程序设计的教学模式,因为微小,才可以巧妙地穿插在教学过程中每个环节;由于精细,才能在较短的时间内把精要算法讲解清晰;因为直观,才能对所有的程序结构进行分层讲解,形象地展示给学生。如,开展的全国青少年信息学奥赛复赛活动,参赛制定的规则是编译程序一定要采用文件。借助微课,能够清晰地讲解文件的使用步骤,通过屏幕录制软件将文件使用的方法录制下来,定义、打开、输入和输出文件等一一这些内容全部体现在微课中,这样制作出的微课形象且生动。即便一些同学不知道怎样编程,也可以借助微课,在较短的时间内掌握文件编译程序的技巧。

微课让分层教学变成可能,因为微课对知识点做了精分和细化,可重复播放和暂停播放,把学生分成不同的等级和层次进行教学,在C语言程序设计教学中,教师将不同年龄段的学生结合在一起,开展微课教学,让学生进行学习。如,对涉及顺序结构、选择结构等知识点的讲解,可将微课的内容应用其中,先将这些知识点制成微课,然后为小组学生提供学习资料,教师要求不同能力水平的学进行学习,尝试学习更高等级的知识,最后对小组完成的情况进行评分,这样小组不仅学习到了知识,也完成了任务,此外,小组间也提高了学习能力。为此,微课使分层教学变成现实,培养了学生的沟通和合作能力。

2 C语言程序设计中的微课教学设计案例

编写简单顺序结构程序是《C语言程序设计》中的一个知识点,学习知识点前,先熟悉C语言的数据类型、调试环境与输入输出函数。

微课使用了讲授法与演示法,以两个整数间的相加为例,先以现实生活中如何求解两个数的和为切入点。面对这样的问题,学生都能轻松地回答出来,就是两个加数相加,然后指导学生进行思考,当这个任务由计算机程序来做,便能自动生成结果,因为两个整数具体值不知道,也即参与运算的两个整数可变。

因此,定义m和n两个整型变量比存放参加运算的两个加数,因为加数是变动的,最终得到的结果是变化的,因此还要定义一个变量sum存放结果的和,借助赋值语句sum=m+n;如此,计算机便能自动求出和,为了显示最终的结果,还应输出结果。逐次分析,明确写此语句的原因,最终完成程序的编写。为使学生深刻了解程序,还要深入模拟程序执行的过程,让学生在其中感受各语句起的作用,从而理解这个程序。尽管各类问题,具有不同的编写程序,然而还要确保顺序结构编写程序的思想协调性,通过编写做完两个整数的加法,得出一般顺序结构程序的步骤:首先是定义需要的变量,以赋值的方法抑或通过输入的方法让部分变量有值。结合需求情况,由计算机做完对应的操作或者运算;其次是输出最终结果,提供解决问题的答案。这是个从简单到复杂的过程,遵循了学生的认知规律。

为了检测与评价学习的效果,同时让所学的内容更加牢固,课后布置了微课的练习作业,目的是让学习者掌握编写简单的顺序结构程序,实现触类旁通的目的。设计的微课任务单,布置的练习也是一个由简单到复杂的过程,有利于学生循序渐进地学习。和微课配套的学习资源包括微课学习任务单和微视频。

制作微课对教师专业水平的提升有益。首先要树立新的教学理念,在教学过程中,教师和学生真正成为了主导者和学习者,当前学习真实且有效。另外,选题时,细致考虑,选择合适的知识点作为微课的内容,结合教学难点,或者根据教学重点,教师在这个过成中对知识的理解更加深刻。微课受益最大的还是学生,因为微课选择的内容没有太高的门槛,从简单的例子出发,到最终的计算机程序,无形中帮助学生解决了困难,提升了他们战胜困难的信心。此外,课程内容含有实践性,学生在学习过程中动手操作,充分参与其中。借助微视频、课件等,学生可以对此使用,不受课堂内外的限制,慢慢地学习到了新知识;帮助学生温习课堂上学习的新知识。如果学生课前预习,教师可以将上课时间用在学生对知识的消化和吸收上,通过讨论、互动、答疑等多种方式开展教学,不再是单纯的知识讲解,相比传统的教学,更具有效性,无形中让学生养成了自主学习的习惯,课内外学习相互衔接,符合学生个性学习和共性学习的需要[2]。

3 结束语

在互联网的大环境中,信息技术高速发展,这为高校教育带来了新的教学手段,传统的教学模式滞后,迫切需要改革,为满足新形势下学生的多种需求,提升教学效果,就要不断完善及创新教学方法。微课是一种新的学习资源及方式,为教师和学生带来了新的机遇,C语言程序设计课程授课,要实现教学效果的强化,一定要充分运用这类教学资源,还要挖掘系列化的微课程,产生本课程的微课“资源库”,在实践中不断优化。微课教学当前还处在起步阶段,这也是教育改革的热点。智能设备在广泛推广使用的同时,以微课为平台的个性化和移动化等的学习将会得到广泛使用,微课定将成为新的教学形式,改变了学习方式,推动教学改革,更好地构建学习型社会。笔者结合自身对该课程的应用,谈一下个人的一点看法,其中存有诸多缺陷,仍需不断反思和完善。

参考文献:

[1]鲁庆.微课在程序设计课程中的应用[J].柳州职业技术学院学报,2014(06).

c语言课程设计篇10

关键词:问题驱动;案例教学;AHP算法

中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)28-0160-03

Application and Discussion about the Teaching Reform on the C Language Programming

XU Ping1, GONG Li-hua2

(1.Department of Information Science and Technology, Taishan University, Tai'an 271021, China; 2. Further Reeducation College, Taishan University, Tai'an 271021, China)

Abstract: Case teaching, as a new approach, is widely used in various teaching fields. The paper mainly introduces this kind of teaching approach, which is inspired by the programming and leads in the contents by specific cases in the course of C Language Programming and makes evaluation to the approach by teaching effect evaluation method on the basis of AHP algorithm.

Key words: question inspiration; Case Teaching; AHP algorithm

1 引言

《C语言程序设计》是一门实践性很强的课程,该课程的学习有其自身的特点。学习者必须通过大量的编程练习,在实践中掌握语言知识,培养程序设计的基本能力,并逐步理解和掌握程序设计的思想和方法。因此,《C语言程序设计》课程的教学重点是培养学生的实践编程能力。

在传统的教学方法中,采用“点―线―面”的教学模式,即先介绍变量定义,再介绍指令的语法规则,最后例子讲解。这种教学模式不利于将知识转化为能力。为此,笔者从理论和实践上探索了《C语言程序设计》这门课程新的教学方法,并收到了良好的教学效果。

2 问题驱动,案例教学

案例教学法最早于1870年在哈佛法学院创立。后来,案例教学法为哈佛商学院所采纳,被引用在工商管理教育中。经过近百年的积累和发展,案例教学法已成为西方国家工商管理教育的重要手段之一。所谓案例教学法是在教师的指导下,对案例提出的问题,运用所学的理论知识进行分析研究,提出自己的见解,做出判断和决策,达到提高学生分析问题、解决问题能力的一种理论联系实际的启发式教学方法。

案例教学法的教学过程包括案例引入、案例学习、案例总结三个阶段。在《C语言程序设计》课程的教学过程中,以编程应用为驱动,通过案例引入内容,重点讲解算法设计,并穿插介绍相关的语言知识。

2.1 案例引入

在讲C语言基本语法时,如果从数据类型、变量、常量、表达式开始,学生觉得特别抽象,不好理解。而我们用案例教学法,首先引入案例,并给出程序源代码,让学生进行编辑并调试。

案例:求摄氏温度40℃对应的华氏温度。计算公式如下:

f=9c/5+32

式中:f表示华氏温度,c表示摄氏温度。

源程序:

/* 将摄氏温度转换为华氏温度 */

# include

int main(void)

{

int c, f;

c=40;

printf("c=%d, f=%d \n", c,f);

Return 0;

}

运行结果:c=40, f=104

2.2 案例学习

通过案例提出问题:在案例中使用了哪些数据?它们的类型是什么?

讲解相关知识:在C语言中,数据有常量和变量之分。在程序运行过程中,其值不能改变的量称为常量,其值可以改变的量称为变量。在案例中,整数40是常量,c和f是变量。

常量和变量都有类型,常量的类型通常由书写格式决定。例如,40是整型常量,40.12是实型常量。而变量的类型在定义时指定。

变量定义的一般形式:类型名 变量表;

例如:

int c, f;/* 定义两个整型变量c和f,用于存放整数*/

char a;/* 定义一个字符型变量a,用于存放字符型数据*/

C语言中常用的数据类型包括int(整型)、char(字符型)、float(单精度浮点型)、double(双精度浮点型)。其中,float和double都是浮点型(实型),用于存放浮点数(实数),区别在于double型数据占用空间更大,精度更高,取值范围更大。

2.3 案例总结

通过案例学习,让学生很轻松的掌握了数据类型,以及常量、变量的使用方法。并且提出几点注意的问题:

1) C语言中变量的含义和数学中变量的含义不同。C语言中的变量代表保存数据的存储单元,而数学中的变量代表未知数;

2) C语言区分大小写字母,它认为Ca和ca是不一样的;

3) 算法是程序的灵魂,良好的算法设计,不仅可以提高程序的执行效率,起到事半功倍的效果,而且可以以算法设计为基础,通过寻求不同问题存在的相互联系,从计算机角度对不同问题的共性进行算法设计,实现程序编写的举一反三。

根据案例提出:

思考题1:求摄氏温度30℃对应的华氏温度。

思考题2:求华氏温度100℃对应的摄氏温度。

3 课程教学改革效果的评价

在课程改革实践中,如何评价课程教学改革的效果至关重要。同时,教学效果的评价结果在实践过程中可以指导课程改革。本文参考AHP算法,从学生评教、教师评学两个因素建立教学效果评价指标体系和多级模糊评判模型,实现课程教学效果的多指标评价。

3.1 基于AHP的教学效果评价算法

AHP算法是一种有效地处理那些难以抽象为解析形式数学模型的问题(即非结构化问题)或难以完全用定量方法来分析的复杂问题的手段,其主要思想是将一个复杂的多因素评价问题分解为具有递阶结构的评价指标和评价对象。二级模糊层次分析决策模型的步骤如下:

1) 根据实际需要建立评价指标因素集U={u1,u2,…un},将U分成若干组U={u1,u2,…,uk},使得■,称U={u1,u2,…,uk}为第一级因素集。■ (i=1,1,…k),其中nl+n2+…+nk=■称为第二级因素集。

2) 选择模糊评判集V={v1,v2,…,vm},其中vj(1

设■的权重为■,求得综合评判为■。

3) 再对第一级因素集U={u1,u2,…,uk}作综合评判,设U={u1,u2,…,uk}的权重为A=(al,a2,…,ak),总评判矩阵为:

得一级模型的综合评判为A・R=B∈Γ(v)。最后,根据评判结果B进行排序,确定该教学年度的教学效果,其值越大,教学效果越好。

3.2 教学效果评价指标体系的构建

由于评价对象的某些评价因素往往带有一定程度的模糊性,即具有非线性特征,所以进行教学效果评价时采用了模糊综合评判模型。调查问卷中除需要给出各评价项目的权重外,还需给出各评价项目的得分。结合教学改革的实际情况,我们给出如下的评价准则,包括学生评教、教师评学两个一级指标,并建立相应的二级评价指标(如图1)。我们在构建教学改革效果评价指标体系时,着重考虑的是通过《C语言程序设计》课程的教学改革,是否能达到改革的目标。

3.3 教学效果评价

我们从2006年开始对本学院计算机系C语言程序设计课程进行教学改革。在课程结束后采用问卷调查的方式随机抽取部分学生进行学生评教,并由任课教师完成教师评学(如表1)。

表1 教学改革效果评价表

利用本文提出的基于AHP的教学效果评价算法,得综合评判为:B=A×R=(82.375,86.625)。数据表明,在2006、2007级学生《C语言程序设计》课程的教学效果评价中,2007级学生的评价值最高。

4 结束语

由此可见,随着教学改革和课程建设的深入,《C语言程序设计》课程的教学效果得到了显著提高,也增加了学生学习《C语言程序设计》课程的兴趣。并且培养了学生可以用C语言很好的解决实际问题的能力,为以后进一步学习其它高难度的编程语言打下了良好的基础。

参考文献: