公务员期刊网 精选范文 c语言课程设计范文

c语言课程设计精选(九篇)

前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的c语言课程设计主题范文,仅供参考,欢迎阅读并收藏。

c语言课程设计

第1篇:c语言课程设计范文

为了激发学生的兴趣,可以采用Funcode平台进行课程设计。Funcode平台是一款基于游戏设计和动画界面的C\C++\Java综合实验教学平台,该平台以游戏设计为“噱头”,吸引学生的学习兴趣,虽然如此,该平台通过精选大量的游戏案例,还是很好地将程序设计知识点和游戏设计紧密地结合起来,始终紧扣C语言知识点,为C语言课程设计教学提供了一个很好的工具。

1.1图形方式的游戏界面编辑Funcode平台采用图形界面方式的游戏编辑环境,直观、美观、简洁易用。图1所示为正在设计中的游戏,左侧矩形框中为最终运行时可见的游戏界面,可以从右侧中的“鱼”(Funcode中称为“精灵”,任何类似的图片都是精灵,不同的精灵以精灵名区分)中任意拖拽一条“鱼”到左侧矩形框中,即可在游戏界面中增加一条鱼。

1.2提供功能函数,屏蔽对图形的复杂处理Funcode平台提供了大量功能函数,屏蔽对图形对象的复杂处理,使学生能够专注于程序设计和游戏逻辑功能的实现。例如:功能函数voiddSetSpriteLinearVelocityX(constchar*szName,constfloatfVelX)可以使精灵以某一速度水平运动。让图1左侧中的鱼(假设该鱼命名为fish0)游动起来,学生只需用一条函数调用语句dSetSpriteLinearVeloctyX(“fish0”,30)即可实现;亦可通过调用功能函数dSetSpriteLinearVelocity(“fish0”,30,30)使鱼水平方向和垂直方向分速度均为30,即在屏幕上“斜向”游动;功能函数dSetSpriteFlipX(“fish0”,true)调用可以使鱼水平翻转,即实现“掉头”功能。

1.3整体逻辑框架简洁,功能强大Funcode平台整体逻辑框架由7个主要函数模块组成,分别是主函数模块、鼠标移动事件模块、鼠标单击事件模块、按键事件模块、按键弹起事件模块、对象碰撞事件模块、对象与边界碰撞事件模块。其主函数模块如以下程序代码所示,通过主函数模块控制整个游戏的运行和界面刷新。其他的6个函数模块几乎包含了游戏设计中需要处理的所有事件,并且向学生屏蔽了事件激发所需要的复杂判断过程,所有的鼠标事件、键盘事件、碰撞事件均为自动激发,这很大程度上降低了设计难度,使学生可以专注于游戏逻辑功能的实现。例如:要实现图1中的“鱼”游到右侧边界时掉头向左游逻辑功能,在Funcode平台下,当图1中的“鱼”游到右侧边界时,“对象与边界碰撞”模块将会自动激发,该模块的初始程序代码如下所示。此时,学生无需判断和处理“鱼”是否游到边界(这对大学一年级学生而言比较困难),只需要知道“鱼”游到边界后会自动调用“对象与边界碰撞”模块对应的dOnSpriteColWorldLimit函数即可。因此,学生只要能够根据游戏功能在该函数中正确地编写相应的代码就可以了,具体实现“掉头向左游”逻辑功能的完整程序代码如下所示。显然,这样就极大地简化了对图形对象和事件的处理,学生就可以把更多的精力投入到游戏逻辑功能的实现和代码的编写和调试中。

1.4开放式环境,极大地激发学生创新能力Funcode提供了开放式的开发环境,除了完成Funcode提供的课程设计案例以外,学生也可以按照自己的思路,添加素材,大胆创新,设计和开发真正属于自己的游戏,这样能极大地激发学生的程序设计热情。例如:一组学生开发的“大鱼吃小鱼”游戏,当大鱼吃小鱼得分达到一定的分值时,可以生出“鱼宝宝”,尾随大鱼游动,生动有趣。

2教学内容和方法的改革

基于Funcode平台,在教学内容和方法的改革上,以激发学生兴趣,调动学生学习主动性为主要目标,在此基础上,贯穿整个课程设计的各个阶段,采用多种教学方式和方法培养学生各方面的综合素质。

2.1选题阶段在选题内容上,典型游戏设计和自主创新相结合。改变原有的设计内容变为基于Funcode平台游戏设计。设计内容分为两类:一类是典型的可在Funcode平台上实现的游戏,比如坦克大战、打地鼠等;另一类是学生自选题目,要学生根据Funcode平台功能,发挥自己的想象力,创造自己的游戏。教师要通过讨论、引导等方式,鼓励学生自己设计游戏,培养其创新意识和创新能力。题目选定之后,要求学生将游戏整体功能用功能模块和流程图的方式清楚地表示出来,并且要能够准确地描述各模块之间的关系,锻炼学生的抽象思维和逻辑思维能力。在选题方式上,要坚持组内讨论和师生互动相结合。组内讨论有利于游戏功能的完善,有利于发挥所有同学的创新潜力,有利于调动学生参与的积极性。通过教师和学生的讨论交流,教师要控制游戏功能的实现复杂度,既要保证设计的工作量,又要保证控制在可实现的范围内。

2.2设计阶段在课程设计过程中,要避免“学生问,教师答”的教学模式,教师要积极地参与到所有学生的设计中,主动和学生交流讨论,掌握他们的设计情况;善于通过引导启发,培养学生各方面的综合素质。在设计中,要及时发现并指出存在的问题;对于学生提出的问题,要善于引导他们积极独立思考,尽量让其自主分析,找到原因,进而找到解决问题的方法,这一方面可以培养学生独立思考,分析问题和解决问题的能力,另一方面可以增强学生的成就感和自信心,有利于调动学生参与实践的热情。对于游戏功能的实现,要让学生画出流程图或实现步骤,体会程序设计中的抽象思维和逻辑思维。比如对于“打飞虫”游戏,当“拍子”拍中“飞虫”时,对应Funcode抽象概念为“拍子”对象和“飞虫”对象发生碰撞事件,由于碰撞事件自动激发,所以拍中“飞虫”后对应的游戏功能实现逻辑应该在碰撞事件中表达。对于该碰撞事件的处理,要求学生首先画出拍中“飞虫”后的处理逻辑,体会程序设计中的逻辑思维。比如:使“飞虫”图像从界面消失在“飞虫”链表中删除该飞虫显示拍效根据拍中的“飞虫”类型计分刷新游戏界面上显示的实时得分值。课程设计要求按组进行,设计中要求分工合理,任务明确,紧密协作,严格按照日程安排,完成设计任务。要求每2天一次,将每人独立设计的模块进行整合并测试,同时要求学生定期开展讨论,鼓励他们对设计中存在的问题,积极和同组同学交流沟通,要善于发挥集体的力量,解决问题。在协作设计中,培养学生的团队合作意识。此外,在游戏的设计过程中,必然会存在一些较难实现或者知识点超出课本内容的功能,从经验来看,大多数学生都会无奈地选择放弃该功能。此时,教师一定要向学生强调自主学习的重要意义,让他们认识到课堂教学中讲的内容大多是最基础的核心知识点,而实际的应用中要涉及的知识却远非如此,并积极鼓励和指导学生学习和掌握相关知识点。

2.3考评阶段为了进一步培养学生兴趣,调动其积极性,考核采用每组分别进行讲解和演示,交流心得体会,其他组同学和教师进行打分的形式。打分项分为游戏功能、工作量、流畅性、创新性、美观性等5个方面。演示中鼓励其他组的同学提问和试玩游戏,尽量找出游戏设计的缺陷,通过多种方式培养学生的展示能力和竞争意识。最后,教师再进行总结性点评,指出设计的优缺点。

3教学效果

从调动学生学习积极性方面来看,在整个课程设计过程中,学生始终保持着极高的热情。教师为课程设计建立了QQ群,提供全天答疑服务,从QQ群讨论情况来看,学生提问很多,讨论热烈,而且绝大多数在课外时间。此外,课程设计结束后,很多学生指出,Funcode平台美中不足的是:自己创造出的游戏最终生成的可执行程序离开Funcode平台不能运行,非常令人遗憾。这也可以从一个侧面反映了学生的热情和对自己劳动成果的珍惜。从课程设计内容来看,学生大多是按照自己的想法设计的,游戏功能可谓五花八门,创新能力得到了很好的培养和锻炼。更重要的一点是达到了课程设计的教学目的,学生对程序设计的理解更加深刻,巩固了C语言学习成果,能够将游戏功能的实现逻辑用计算机语言准确地表达出来。在程序设计中遇到的具体问题,学生能够提出自己的解决思路,并通过编写程序表达自己的思路,很好地将课堂上学到的理论知识应用于实际问题的解决,抽象思维和逻辑思维能力、程序设计实践动手能力均得到了很好的锻炼。例如:图2所示为学生设计的游戏初始界面。该游戏实现的功能有:游戏实时倒计时;游戏实时显示得分;通过键盘控制游戏的开始、暂停和游戏场景的切换;用鼠标控制“拍子”进行移动和拍打;打到大蚊子、小蚊子积分不同,打到坚果则减分,且打中目标有图片特效产生;蚊子的产生地点、时间、数量和产生时的飞行速度都是随机的,且飞行速度随着积分级别越来越快;游戏结束时显示得分最高的三条历史记录等。此游戏中,学生自己编写代码(不包括自动生成的代码)行数在800行以上,使用的C语言知识点涵盖了数组、链表、函数、变量作用域、多分支结构、循环结构等。

4结语

第2篇:c语言课程设计范文

关键词: C语言课程设计; 项目驱动; 分组教学; 模块化思想; 协作

中图分类号:G642 文献标志码:A 文章编号:1006-8228(2013)08-65-03

0 引言

当今社会,随着信息技术的高速发展,各种程序设计语言蓬勃发展,如C、C++、JAVA、C#等。在这些语言中,C语言是各高等院校的计算机及相关专业的一门核心基础课程,它的学习效果会极大程度影响学生后续相关课程,如数据结构、操作系统、算法分析以及其他高级语言的学习。

作为一种实践性很强的程序设计语言,C语言课程的教学一般采用理论教学结合上机实践的模式,理论教学以讲授语法和基本算法为主,上机实践则主要练习简单程序的编写,通常以验证性实验为主,以掌握、巩固基础的语法为目的。从教学效果来看,学生虽然掌握了不少语法知识,但在面对实际问题时,往往不能灵活应用。为了进一步拓展学生的实践编程能力,我们学院继两个学期的C语言教学后开设了“C语言课程设计”课程,该课程以设计性和综合性实验为主,重点培养和锻炼学生独立分析问题,解决实际问题能力。根据这一教学目标,我们结合日常教学,针对实践教学中存在的不足,开展项目驱动的分组教学方法,使学生形成自主和协作型的学习模式。

1 教学现状

C语言是一种面向过程的结构化程序设计语言,具有数据类型较多、表达式丰富、语法结构复杂、语法规则繁多等特点,其授课对象往往又是第一次接触程序设计语言的低年级学生,这些都给学生学习和教师教学带来了难度。通过对学生进行教学效果调查,发现在“理论+实验”的教学模式中,由于课时限制等各种因素,实际教学常存在着如下问题。

⑴ 实验训练以知识点训练为主,与实际应用存在脱节。

在理论课后的上机练习,通常是针对特定语法设计,形式上采用练习书上的例子、验证某个语法或者实现一些简单的相关算法,验证性实验占了多数。这种训练模式虽然能够加深学生对各种语法细节的认识,但同时导致的问题是,学生容易孤立地去看待各章节的语法,割裂了各知识之间的联系,在编程时以模仿改写书上的程序为主,欠缺工程型知识,处于被动灌输的学习状态,常常会觉得语法知识点繁琐、内容枯燥,很难调动积极性,当面对实际工程问题时,程序规模一大,就束手无策,无法有机地综合应用所学知识去解决问题。

⑵ 没有形成系统化的分析过程。

由于教学和教材均侧重于对语法进行讲授和剖析,未强调分析及测试的重要性,也没有将软件工程的思想融合在实践教学中,因此,长久以来,学生养成一接触题目就马上开始编写代码的习惯,并且,运行时往往仅按照预先设定的正确的输入数据,去验证自己的所编的程序是否正确。

⑶ 忽略算法逻辑思维能力的培养。

从学习效果来看,学生常存在着两种误区,一种是将参与和获得计算机等级考试证书作为学习目的,这就导致他们习惯于程序填空题形式的编程方式,独立编程能力欠缺;一种是对C语言中的指针、递归问题存在畏难情绪,又认为就业时可以选择其他语言工具如Java来避免这些难点,没有认识到指针和递归的真正价值在于学习它们过程中得到的思维深度[1],忽略了推理能力、抽象思考能力方面的培养。

⑷ 实践操作能力不强。

学生的实验操作能力不强主要表现在对程序运行中一些常见编译问题无法很快做出反应,不会依据提示信息去判断发生错误的原因,对一些运行问题更是束手无策,通常一有问题产生,就转向寻找配套的实验指导书中所提供的正确答案,或者依赖教师指出问题所在,帮忙改正错误。

2 项目驱动的分组教学方法的具体实施

建构主义学习理论认为,个体的认知发展与学习过程密切相关,知识获取是以学习者为中心,利用“情境”、“协作”、“会话”等学习要素,通过意义建构的方式而获得。针对C语言课程设计这一门实践性非常强的课程,我们采用项目驱动的分组教学方法,在建构主义学习理论基础上进行教学设计,以学生为中心,融合软件工程思想,以培养学生的程序设计能力、创新能力、逻辑思维能力和协作精神为主线,通过项目任务引导他们主动学习,去深入理解软件设计思想,并加深对重要知识点的理解。为了将课内实践和课外自学有机结合起来,我们将15个学时的上机实践分为5次,集中安排在5天内,每次上机后留充足时间,要求学生去查阅资料,提升获取信息、解读信息的能力。整个教学过程中,需要在多个教学环节注意改革和创新。

2.1 项目设计

项目的提出是能否调动学生学习积极性的关键。目前随着信息化建设的深入,软件在各个行业都获得了广泛应用,其实际应用领域非常广泛。课程设计应该提供一个良好的学习“情境”,要结合教学目标,来模拟演练实际软件开发过程。项目的设计需要遵循以下几点:①选择学生比较熟悉的领域,贴近学生生活和学习方面的应用,避免选择需要较强专业背景、业务逻辑复杂的应用,例如可以选择学生选课、书籍管理、宿舍管理等,而尽量不要去选择企业人事管理之类的应用。这样可以方便学生理解或完整需求,激发他们用程序去解决现实生活问题的兴趣。②功能上要有层次性,可划分为一般性要求和可拓展性要求,一般性要求指出必须实现的功能,可拓展性要求则指出可以扩展的功能,引导学生去探索和想象,可以方便开展梯队型教学。③从项目的编码实现考虑,要能涵盖C语言中的结构体或联合体等复杂数据类型,体现函数和指针这条主线,以促进学生去综合运用和深入理解这些重要的知识点。

2.2 分组划分

一个软件的开发仅依靠个人力量往往是无法实现的。软件生命周期的各个阶段需要软件小组开发人员协作完成[2],因此,在课程设计教学中,我们采用分组教学模式来培养学生的团队合作意识和团队精神,来充分体现合作与竞争、分层教学与因材施教[3],并且还可以通过帮带方式和组内讨论消化掉一部分问题。分组是否合理、有效,直接影响协作模式能否取得良好的教学效果。在C语言课程设计实践中,我们按照任务量安排人数,学生分为以3-5人一组,按照组内搭配合理,组件平衡原则分配,在分组时充分考虑到学生的个体能力差异,使学生能在交流合作过程中取长补短。分组观点认为组内成员之间的合作关系可以有“头脑风暴”式、模拟课题式、同伴互助式、角色扮演式和组合式[4]。这里,我们可以结合软件开发的分工特点,将角色扮演应用到课程设计的分组中,由小组组长担当开发经理角色,其他人员针对其特长分别担当需求分析师、架构设计师、开发人员、测试人员等角色,根据开发阶段的不同,各成员可以扮演不同类型的角色。

2.3 培养学生用模块化思想对实际问题进行分析和设计

结构化方法强调以模块为中心,采用模块化、自顶向下、逐步求精设计过程。项目驱动的教学要培养学生用模块化思想思考复杂问题,即将程序划分成独立命名且可独立访问的模块,最后装配集成模块完成指定的功能。指导过程中,不仅需要纠正学生一接触题目马上编码的习惯,而且需要纠正学生在main方法中编写所有代码的习惯,这种方式会使得整个函数变得庞杂,代码冗余大,不利于分工协作,也给阅读和维护带来很大的困难。当学生在程序分解主函数和若干个其他函数时,发现常存在着随意分解、随心所欲定义函数的现象,针对这一情况,教师可以先以一个项目为例,如成绩管理系统,演示模块的分解过程,说明内聚性和耦合性要求[5]。在实际项目应用时,要求学生按功能分解,模块内的函数做到功能尽量单一,留出接口供其他模块调用,一个模块对应一个文件,便于分工协作。各小组在完成按模块划分的软件体系结构图后,才被允许进入下一个详细设计编码阶段。

2.4 强化编程思想的训练,加深对重要知识点的理解

算法是程序设计的灵魂,教学中需要成功训练好学生的头脑,使他们变得足够熟练、敏捷和灵活,需要训练学生在多个抽象层次上同时思考问题[1]。因此,实践过程中,要求学生熟练应用程序流程图或伪代码等工具设计算法,在组内展开讨论,比较不同算法实现方案的优劣,以及如何在完成程序的功能基础上,改善程序结构,优化算法,进一步提高运行效率和空间利用率。

对C语言而言,训练学生的编程思想,离不开指针、函数参数传递这些重要概念,是否真正理解这些概念也与能否成为一个优秀程序员直接相关。在学生编码时,可帮助他们建立内存模型,通过跟踪每条语句的执行情况,感受不同数据类型在内存中所占用的空间,直观地观察内存布局变化、变量的生命周期、变量状态的变化等,去深入理解这些概念尤其是指针的本质。

程序设计的另一目的是要培养学生的操作能力,其中很重要的一点就是提高调试能力。调试的方便与否与程序书写风格密切相关,学生通常不注意代码的规范化,出现没有层次缩进,标记符随意命名、词不达意,也没有必要的注释等现象,这些给查错和阅读带来了很大的不便,不利于分组模式下的协作开发和维护,因此,实践教学时应该培养学生注意良好程序风格。此外,教学时还需纠正部分学生写代码一写到底的习惯,让学生认识到程序的编写是一个调试-修改-调试的反复迭代过程,要在多次错误或失败中获取调试经验。在学生出现错误时,要引导学生根据错误和警告信息,分析辨别是语法错误还是逻辑错误,并鼓励学生使用调试工具,应用断点跟踪和对分查找等调试方法,去主动地发现和解决问题。

测试在软件开发中占重要地位,软件测试的工作量往往占软件开发总工作量的40%以上。从学生实践情况调查来看,测试往往是初学C语言的学生特别容易忽略的,普遍出现一些诸如不重视人机交互界面设计,没有输入提示或出错提示信息,仅使用在预定范围内、满足预定格式要求的正确数据进行测试等问题。项目驱动的教学尤其应该注重培养学生的测试意识,指导学生学会设计简单的有效测试用例和无效测试用例,并开展组内测试和组间测试,以提高测试效率和质量。

2.5 考核方式改革

对不容易理解的常量、变量和语句有注释\&5%\&函数、变量取名较规范易懂\&5%\&函数功能是否满足功能内聚\&15%\&调试手段\&会单步运行到任何一个语句,查看变量值\&5%\&会断点调试\&5%\&总结报告\&用流程图或伪代码描述一个函数的算法\&10%\&有小组分工情况说明和各自的经验总结\&5%\&语言简练,条理清楚,图表规范,附程序清单\&10%\&]

分组形式的课程设计需采用弹性考核机制,个人考核、组内考核和教师考核有机结合方式。课程设计考核成绩=个人自我评价(15%)+组内评价(35%)+教师评价(50%)。自我评价是促进学生反思的一种有效手段,组内评价可以观察学生组内交流协调时有没有突出表现,而为避免少数学生抄袭实验报告,教师评价采用答辩形式,考核学生的实际操作能力、对数据结构设计和算法的理解程度,以及功能和算法上的应用亮点。考核的具体内容和评分标准可以多元化,比如对一个用链表实现图书信息管理系统的项目,可以按表1来指定具体考核标准。

3 结束语

本学院的C语言课程设计教学实践表明,通过项目驱动的分组教学法的实施,能充分调动学生的学习积极性,学生的编程逻辑性和实践能力都得到了明显提高。在模仿实际开发环境过程中,学生对项目开展的整个流程和各环节的具体要求程有了切实了解,积累了一定的项目开发经验,培养起了团队协作能力。为了能更好地提高学生实践能力,为他们将来从事软件开发工作奠定扎实基础,我们还需要在今后的实践教学中继续开拓和探索,以期达到更好的实践效果。

参考文献:

[1] Spolsky J. More Joel on Software: Further Thoughts on Diverse and Occasionally Related Matters that Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune Or Ill Luck, Work with Them in Some Capacity[M].Apress,2008.

[2] Brooks, Jr. Frederick P., "The Mythical Man-Month", The: Essays on Software Engineering[M]. Anniversary Edition, 2/E, Addison Wesley,1995.

[3] 时贵英,刘华蓥,李瑞芳.分组协作教学模式在程序设计课程中的应用[J].长江大学学报自然科学版:理工卷,2010.3:704-705

第3篇:c语言课程设计范文

关键词:C++程序设计;课程建设;负反馈教学法;实践环节;特色教材

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

文章编号:1672-5913(2007)12-0018-03

C++不仅是一门程序设计课程,而且是这些专业后续专业课程(如数据结构、操作系统、微机原理、单片机及应用等)的重要基础,更是这些专业开展计算机研究和应用的重要表达工具和开发工具。因此,Visual C++程序设计课程的教学改革与建设具有十分重要的意义。本文下面从教学方法改革、教学内容研究、实践环节建设、特色教材编写等方面介绍我校VC++课程建设的一些做法。

1积极推进教学方法改革,形成颇具特色的负反馈教学法

负反馈教学法的原理是从教学过程中反馈(作业、实验、答疑、单元测验等)的问题入手,通过及时讲评,解决学生学习中存在的问题,以达到预期的教学目标。由于反馈的是教学过程中存在的问题故称此方法为负反馈教学法。负反馈教学法包括以下方面。

1.1用“范例”组织课堂教学,贯彻“发现式”教学思想

范例教学法由教育学家瓦根舍因提出,教师通过范例辅助学生理解、掌握知识和原理,其目的是让学生能够独立地获得判断能力、推理能力、认识能力和继续学习的能力。以往,程序设计课程教学通常以一门具体语言为主线,围绕语法知识展开。而实质上,设计程序是为了解决实际问题,是一种缜密思维方式、创新素质和综合能力的培养。要使学生对程序设计有兴趣,必须亲自感受并体验程序设计的无限魅力。为此,我们改用范例组织课堂教学。在多媒体教学设备和真实编程环境的支持下,课堂教学以程序(范例)为主线。所选范例程序具有典型性、综合性和可扩展性,涉及基本语法、基本算法和基本调试技术。范例程序的讲解首先符合“现象发现问题分析问题解决问题验证”的探索过程,使学生掌握基本语法、算法及应用。其次,通过对范例程序的启发式扩展,揭示程序由小到大、由简单到复杂直到实用的过程,激发学生的探索热情和兴趣,使学生掌握知识间的联系和编程的工程化思想,获得实际编程能力。

1.2采集教学负反馈信息,做好分类、分析和讲评

按负反馈教学法要求,任课教师做好作业和实验报告的抽样批改、单元测验的全样批改,重视实验指导和答疑,从中了解学生的学习情况。在获取足够的负反馈信息后,任课教师及时做好问题的分类、分析和讲评,及时发现和解决学生学习中存在的问题,确保学生对所学知识的真正掌握。

1.3根据大班教学特点,推进强同步教学策略

大班教学成功的关键在于保持师生教与学的同步状态。负反馈教学法的师生同步措施有授课、作业、实验、讲评和测验等。其中,作业与实验报告由于学生存在一定抄袭现象,同步效果欠佳,为弱同步措施。授课、讲评和测验同步效果较好,为强同步措施。为使大班教学取得较好效果,采用强同步措施是必要的。特别地,我们在每个单元安排一次测验,以实现师生的强同步,及时取得真实的负反馈信息。

1.4编写负反馈教学法配套教辅资料,培养学生自学、探索和自我完善能力

配套教辅资料主要有:①学习指导。注重概念理解、知识巩固,设单元测试,便于学生学习和自测自查;②实验指导。共有17个实验,每个实验包含调试技术介绍、程序调试题、程序设计题和选做题,注重培养学生的编程能力和调试能力,激发学生编程兴趣;③典型问题和综合问题编程。共8个专题,便于学生突破难点,融会贯通,体验综合编程的乐趣,培养分析和解决问题的能力;④二级考试模拟试卷;⑤VC++ 6.0程序调试技术,包括使用VC++ 6.0 IDE编写和调试程序的方法和技巧。

2强化实践教学,注重培养学生的实际编程能力

VC++课程是一门难点多、综合性较强的课程,实验是该课程至关重要的环节,只有通过实验才能检验自己是否真正掌握和运用该语言。通过上机调试程序,会发现很多想不到的问题,通过解决这些问题,可以加深对语言和算法的理解,提高程序调试和实际编程能力。为此,本课程设有课内实验(32学时)和课程设计(两周)实践教学环节。

2.1课内实验注重培养学生基本编程和调试能力

基本编程和调试能力是深入学习本课程并取得实际编程能力的前提。课程实验是至关重要的教学环节,与课堂教学同步进行。我们根据教学内容编写了一套以调试技术、基本语法、基本算法、综合编程为核心内容的同步实验指导,共拟定了17个实验,每个实验通常包括调试题、编程题和选做题,可供不同层次的学生选用。

2.2课程设计注重培养学生综合编程和实际应用能力

课程设计安排在课程结束以后,以综合性程序设计训练为主,选题具有典型性、综合性和示范性,突出难点与实用价值,使学生体会到难点不难,难点在实际编程中非常有用。通过课程设计,学生进一步巩固和掌握基本语法、基本算法和基本调试技术,养成良好程序设计风格(模块化、结构化)和严谨的科学作风,初步形成软件工程化思想,具有一定的程序组织能力。

课程设计的内容涉及基本算法和数据结构。基本算法包括穷举、迭代、递推、递归、排序和查找等。基本数据结构包括数组、结构、指针、动态内存分配、单向链表、对象、文件等。课程设计的实施,对非计算机专业采用小综合方案,计算机专业采用大综合方案。所谓小综合是指程序规模在几十到几百行的小题目,大综合则是程序的规模在数百行以上有一定实用价值的题目。

2.3实践教学认真实施,严格考核,确保效果

在课内实验和课程设计的实施过程中,配备富有经验的指导教师,现场实时进行辅导和答疑,指导学生解决编程中出现的问题。同时对学生严格要求,严格考核,确保实践教学质量。加强实践环节的考核是提高实践教学质量的重要保证。预习和考勤占总成绩的30%,上机检查并回答提问占总成绩的40%,课程实验报告和课程设计报告占总成绩的30%。

3积极开展教学内容研究,不断优化和更新教学内容

根据程序设计课程本身发展快、更新快、综合性强、存在问题多的特点,针对同类教材中存在的一些问题和不足,积极开展教学内容的研究,先后发表 “C++运算符重载教学和编程中易被忽视的问题”、“C++中二维数组与指针关系的深入剖析”、“C++语言引用型变量的实现机制浅析”、“C/C++语言可变参数函数的参数传递机制剖析” 等论文,并及时把这些教研成果和学科最新进展引入教学。

3.1课程内容分为三个知识模块

(1) 结构化程序设计基础:包括C++概述、数据类型、运算符、表达式、简单的输入输出、算法与流程控制语句等。

(2) 模块化程序设计:包括函数、编译预处理、程序的多文件组织、数组、结构体、共用体、枚举类型、指针和引用。

(3) 面向对象程序设计:包括类、对象、构造函数、析构函数、继承、派生、友元、虚函数、静态成员、运算符重载、I/O类库、命名空间、模板和异常处理等。

3.2课程的重点、难点及解决办法

(1) 算法表达、结构化语句:结构化编程的基础。注重讲授算法的结构化表示法,结构化语句,常用基本算法,断点+单步调试技术。

(2) 函数:模块化编程基础。注重讲授程序的模块化组织思想和方法,自顶向下逐步求精的程序设计思想,参数传递,变量作用域,程序的多文件组织。

(3) 数组、结构体、指针:数据的结构化和模块化组织基础。指针是重点和难点,应正确区分指针与地址,强调指针类型的作用,讲清各类指针的含义及作用。特别注重讲授指针在动态生成基本数据结构,解决实际问题方面的综合实例。

(4)类、对象、继承、运算符重载、虚函数:面向对象程序设计基础。运算符重载较易理解,但有些方面易忽视,应提请学生注意。虚函数是重点和难点,应注重讲授虚函数的必要性、重要性、实现机制和综合实例。

4改革考评方式,正确发挥考试的导向作用

根据VC++课程的特点,正确发挥考试的导向作用。改革考评方式,实行考教分离,并使其与江苏省大学生计算机等级(二级)考试方式接轨,采取笔试(50%)+机试(50%)的方式,理论与实践并重。

试卷的试题源自题库和现任教师的征卷,试卷由选题算法和软件系统产生,难度与二级考试相当,提高了考评的科学性。

5总结提炼教学经验和成果,积极开展特色教材建设

教材建设是课程建设的重要方面。几年来,课程组对国内外流行C++教材进行研究、分析和试用,总结、积累和提炼自己的教学经验和成果,从校内讲义开始,逐步开展具有自己特色的教材建设工作。2005年2月,自编教材《Visual C++程序设计习题、实验与编程实践》由华东理工大学出版社出版,同年12月又第二次印刷,得到了社会读者的认可。2005年10月,本课程获江苏省高等学校精品教材立项建设,课程组编著的体现“负反馈”教学特色的教材《C++程序设计实践教程》一书目前已与清华大学出版社签订出版合同,书稿已经交付,将于2007年上半年出版。

6运用现代化教学手段,加强网络教学资源建设

经过多年的教学、研究、建设和总结,本课程已积累了丰富的网上教学资源,经常更新,在教学中发挥重要作用。网上教学资源包括:课程教学大纲、课程设计大纲、教学日历、课程设计任务书、实验指导书、教学课件、习题集、典型问题及参考程序、相关教学论文、英文版课外辅导材料、模拟试卷等。课程组成员开发的“基于WEB的《C语言程序设计》教学系统”2006年11月获得第二届全国高等学校计算机课件评比二等奖。本课程网上教学资源的网址为:。

参考文献:

[1] 刘维富,陈建平,王春明. 浅谈“C++程序设计”课程的建设与实践[C]. 第二届全国计算机课程报告论坛,2006,11.

[2] 刘维富,丁卫平,沈学华. Visual C++程序设计习题、实验与编程实践[M]. 上海:华东理工大学出版社,2005,2.

[3] 顾晖,刘维富,管致锦. 负反馈教学法的原理与实践[J]. 电气电子教学学报,2004,(4): 102-104.

[4] 邱建林,刘维富,顾晖. C语言程序设计教学的研究与实践[J]. 电气电子教学学报, 2003,(4):96-98.

[5] 刘维富. C++运算符重载教学和编程中易被忽视的问题[J]. 南通工学院学报(自然科学版),2003,(3):56-59.

[6] 刘维富. C++语言引用型变量的实现机制浅析[J]. 南通工学院学报(自然科学版),2002,(1):64-66.

[7] 顾晖. C/C++语言可变参数函数的参数传递机制剖析[J]. 电脑与信息技术, 2004,(3): 37-38.

[8] 丁卫平,刘维富,沈天晴. C++中二维数组与指针关系的深入剖析[J]. 南通工学院学报(自然科学版),2004,(3):85-87.

投稿日期:2007-2-24

作者简介:陈建平(1960-),男,江苏南通人,硕士,教授,研究方向为快速算法设计与实现等。

刘维富(1961-),男,江苏南通人,硕士,副教授。研究方向为计算机语言与程序设计等。

通信地址:江苏省南通市啬园路9号南通大学计算机科学与技术学院陈建平邮编226019

E-mail:

电话:0513-85975405,13962955020

第4篇:c语言课程设计范文

程序设计 C语言教学 基本方案

一、引言

计算机科学与技术学科强调4个方面的专业能力:计算思维能力,算法设计与分析能力,程序设计与实现能力,以及计算机系统的认知、分析、设计和运用能力。程序设计与实现能力在程序设计C语言课程得到了具体的体现。其中设计到的程序设计的内容,为算法设计与分析能力奠定了良好的基础。

作为一种系统程序设计语言,C语言已广泛用于为各种不同的计算机系统编写系统软件,如操作系统、编译系统、汇编器及编辑器等;作为一种应用程序设计语言,C语言已广泛用于编写各种应用领域的应用软件。

关于C语言的教学探讨一直都是学者、教师和相关人员的主要探讨的课题之一。与国外相比,我国的教学往往缺少活力。在开设的理工类课程中,科学逻辑很强,通常采用演绎方式进行教材编写和教学活动,学生缺乏主动探索精神和自己设计课程内容环节。C语言的教学也大体如此。

1.没有充分调动学生的学习积极性。一般在大一开设C语言,对于刚进入大学的学生,C语言概念性强,理论内容较丰富;抽象性强;逻辑性要求高;一开始容易陷入C语言的繁琐的细节中。

2.没有突出C语言本身的特点。课堂教学没有突出C语言本身的特点,如灵活的指针、追求执行效率等,不容易掌握C语言的精华。

3.对实践环节重视不够。对实践环节重视不够,导致要求完成的实践内容脱离实际的、有趣的应用。

4.相关基本内容设计不足。对算法思想、数据结构的相关基本内容设计不足。

二、解决的主要问题

1.强调以学生为中心。要在学习过程中充分发挥学生的主动性,要能体现出学生的首创精神;要让学生有多种机会在不同的情境下去应用他们所学的知识(将知识“外化”);要让学生能根据自身行动的反馈信息来形成对客观事物的认识和解决实际问题的方法(实现自我反馈)。

2.强调“情境”教学。在教学过程中,实际情境下的学习,能使学生更加深刻地理解所学知识的意义,并容易看到自己的劳动成果,从而激发学习的动力和兴趣,提高学习的效率。

3.强调“协作学习”。学生们在教师的组织和引导下一起讨论和交流,共同建立起学习群体。在群体中,允许观点和方法的碰撞和交锋,但最终需要群体成员的配合和支持,才能完成一个具体的任务。这样的协作学习对培养学生的团队精神起着关键性的作用。

4.强调对学习环境(而非教学环境)的设计。学习环境是学生可以在其中进行自由探索和自主学习的场所。学生可以利用其中的各种工具和信息资源来达到自己学习的目标。

5.强调利用各种信息资源来支持“学”(而非支持“教”),建立教学资源库。在学习过程中为学习者提供各种信息资源(包括各种教学媒体和资料),以支持学习者主动探索和完成意义建构。

三、具体方案

1.教学目标分析。确定当前学生学习的主题(即确定与基本概念、语法以及程序设计有关的知识内容),是教学设计面临的首要任务。

2.学习任务设计。基于真实问题情景下的探索、学习的过程,就是解决实际问题的过程。拟采用“以培养能力为核心,以实践为主线,以项目为载体,用任务进行驱动”的教学方法。以某个实际项目为主线,贯穿顺序、选择、循环结构和数组、指针等所有章节中,课程教学具有连贯性。同时结合现场提供实际项目案例(子项目)组织教学。教学过程中,通过案例导入,任务驱动,引导学生由简到繁、由易到难、循序渐进地完成一系列“任务”。在完成“任务”的过程中,培养学生分析问题、解决问题以及用计算机处理信息的能力,完成课程设计和教学训练的全过程。使学生体会到知识的实用性,提高学习兴趣。

内容由浅入深,涉及的相关的专业基础知识较为全面,并以一个完整的典型的小型软件系统的设计与实现为主线,贯穿教学的各章内容。

借助于计算机相关课程(如软件工程、算法设计与分析、数据结构、编译原理等)的基本内容,对C语言加深理解和应用。

3.学习情境设计。学习情景指为学生提供一个完整、真实的问题背景,以此为支撑物启动教学,使学生产生学习的需要;同时促进学习共同体中成员间的互动、交流,即合作学习,驱动学习者进行自主学习。将实际开发项目引入课堂教学,作为教学和实验实训项目。根据课程内容和工作过程,结合学生特点,采用任务驱动、项目教学、讲练结合等教学手段,把工作项目开发过程的工作环节及任务穿插于各个知识点的学习中。

4.信息资源设计。确定与项目完成相关的信息资源。确定所需信息资源的种类和每种资源在完成本次任务的过程中所起的作用。需要确定从何处获取有关的信息资源,如何去获取以及如何有效地利用这些资源等问题。建立系统的信息资源库,提供引导学生正确使用搜索引擎的方法。

5.自主学习设计。自主学习是让学生进行自我学习、自我探究的学习方式。其核心是发挥学生学习的主动性、积极性,充分体现学生的认知主体作用,其重点是如何帮助学生“学”。自主学习策略的设计是整个以学为主教学设计的核心内容之一。

6.协作学习环境设计。在个人自主学习的基础上开展小组讨论、协商,以进一步完善和深化对主题的意义建构。整个协作学习过程均由教师组织引导,讨论的问题可由师生根据教学内容,联系生活实际提出,在教师的指导下通过个人、小组搜集材料、提取信息、处理信息、合作研究、探索解决问题的学习方式,为学生提供一个交流、合作、探索、发展的平台。

7.考试考核方法改革。在对学生进行能力评价时,要根据目标多元、方式多样、注重过程的评价原则,综合运用观察、测验、操作、作品展示、项目设计等多种评价方式。评价要体现:突出能力本位;重视对原有学习能力的认可;个性化评价;强调创新能力的评价。

四、总结

通过对程序设计C语言课程的教学改革,培养学生编程思想,使其具备基本程序结构代码的编写能力,熟悉基本程序设计方法,能更好地利用程序设计思想解决本专业领域中的问题,将程序设计方法用于后续计算机语言课程的学习中,为其他相关课程奠定基础。

参考文献:

[1]蒋宗礼,姜守旭.形式语言与自动机理论(第2版)[M].北京:清华大学出版社,2007.

[2]朱清新.计算机算法设计与分析导论[M],北京:人民邮电出版社,2008.

第5篇:c语言课程设计范文

关键词:C语言;程序设计;课程论;后现代;对话

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

文章编号:1672-5913(2007)07-0018-05

1 二十年教学之总结

笔者从事程序设计语言教学20余年,从早期讲授解释性BASIC,中间穿插讲授Pascal、汇编、HTML,直到近十年主讲C和C++。在多年的教学中,逐渐形成以现代教学论为指导的教学范式,现分三个方面予以总结。

1.1 突出程序设计语言的基本结构

教学首要的问题是如何处理教材、恰当选择教学内容。C语言的教学要突出的是:基本语法规则,C程序的基本结构及算法设计以及上机操作的基本方法。在教学中以阅读、编写、调试C程序为主线,对某些次要的语法细节和数学问题的算法则不必繁琐讲解。有些教材对数学问题有偏爱,常拿数学问题作为例程或习题,如“已知三角形的三条边求其面积”、“求两个数的最大公约数、最小公倍数”等等。这些问题求解涉及数学公式或数论知识,对于数学程度较弱的学生,增加了学习上的困难。考虑到学生的差异性,一开始上课时还是举些贴近实际的问题效果较好。

1.2 范例导向的教学方法

C语言教学有两种方法,一种是以语法体系为中心,首先介绍语法规则,然后举例说明。这是多数教材和教师采用的方法。另一种是以问题为中心,围绕精心选择的“范例”展开教学。笔者的具体作法是:(1)提出问题;(2)板书程序(或投影),要求学生做好笔记并思考;(3)分析程序,讲解其中的语法规则及算法;(4)上机实验,内容为例程、教师布置习题或自选题。例程的选择要“少而精”,选择和实际应用密切相关的问题才能引起学生的兴趣。每次课(2节)讲3~4个例程,一学期将积累40多个例程。如果学生能将这些例程融会贯通,C语言程序设计可以说已经入门。

1.3 操作―强化的教学策略

程序设计是实践性很强的学科,需要通过实验操作来培养动手能力、实践能力。有的教师说:“这个问题我已经讲过,学生怎么还不会呢?”问题是学习并非简单的刺激―反应式(桑代克的学习理论),并非教师告诉学生是什么、怎么做,学生就能学会。真正的学习要经过操作―强化过程(斯金纳的学习理论),通过操作结果的反馈――正确结果的强化与对错误结果的反思,学生才能真正理解掌握。比如初学者使用标准输入函数scanf()时常常搞不清它是在什么时候执行的,有些学生会写错它在程序中的位置。上机实验后才恍然大悟。“空讲无效,多讲无益”,认识到这一点很重要,教师要下决心精简讲课时间,增加实验课时间,两者比例1:1较合适。最好每讲2节课紧跟2节实验。

以上“三招”在教学中比较灵,教师自感得心应手,学生反映也好。为此,笔者于1998年、2002年两次获院优秀教学奖。

2 教育“大众化”后的教学困惑

随着计算机教育的发展,“C语言程序设计”从20年前仅由研究生、访问学者学习的高级课程,成为基础课程,很多非计算机专业(包括文科专业)也加入到学习C语言的行列。高校扩招以来,教学对象的变化使C语言教学遇到前所未有的问题,一部分学生跟不上教学进度,达不到规定的教学要求,考试不及格的比例之高难以想象。笔者也尝试降低某些较难章节的教学要求,但因为基础较好的同学有较高的要求,以及学位考试和部分学生考研的需要,也不能一味降低教学要求。教学面临两难的抉择。建立在现代教育观、现代课程观基础之上的教学受到教学现实的强烈冲击,不能不引起笔者深刻的反思。2006~2007年度笔者获得到华东师范大学访学的机会。通过广泛的学术交流及文献资料阅读,开阔了视野,对C语言教学有了新的认识。

3 现代课程观批判

现代课程论的奠基之作是拉尔夫・泰勒(Ralph Tyler)的《课程与教学的基本原理》(1949),简称为“泰勒原理”,其要点有4条:(1)确定教育目标;(2)选择能达到教育目标的经验;(3)有效组织教育经验;(4)通过教育评价检验教育目标是否实现。“泰勒原理”源于20世纪工业化时代工厂模式。学生犹如流水线的产品,按照相同的标准、用相同工艺塑造,最后检验产品质量。合格的出厂(毕业),不合格的返工(补考)。

现代课程模式的最大弊端是简单,既忽视了学生差异,也忽视了社会对人才的多元化要求。学生之间的天赋、特长、能力、基础、兴趣、就业意愿、理想与抱负各不相同。无视这种差别,以相同的标准、相同的方法教育学生,并期望都达到预设的人才目标,无异于希腊神话中的“普洛克路斯忒斯之床”,按床的长短(统一标准),把腿长的斩短,腿短的拉长。这是多么可笑的事情。教学困惑的根源也出于此。

4 后现代课程观的启示

随着科学技术的进步、“信息化”、“经济全球化”的到来,社会步入后工业时代。人们开始认识到世界是何等复杂而又丰富多彩,进而向“自然是自足而简单”(牛顿语)的现代主义思维范式发起挑战。于是,重视“差异”、崇尚“个性”与“多元”的后现代主义泛文化思潮开始兴起,并日益渗透到政治、经济、文化、教育等各个领域。在这样的文化背景下,后现代教育思想应运而生,并在对现代教育观弊端的批判以及对教育重大问题的重新诠释下发展。后现代课程观流派纷呈,William E. Doll的4R课程观有其代表性。4R指丰富性(rich)、回归性(recursive)、关联性(relational)和严密性(vigorous)。下面通过对4R的解读探索其对C语言程序设计课程改革与教学的启示。

丰富性:指课程的“复杂性”和“多元化”。多尔解释复杂性时说:“教师和课程设计者要接受复杂性,生活本身就是复杂的,我们要利用这一复杂性,而不是否定差异,变化和困难。”[1]

第6篇:c语言课程设计范文

Abstract: In this paper, on the basis of analyzing the characteristics of C programming language, and fully considering the poor ability to understand and weakness of basic knowledge of the students in the bilingual classes, the instance- driven teaching approach is introduced for improve the programming ability of the minority ethnic students and enhance the classroom teaching effects.

Keywords: C programming language, teaching method, reform, Bilingual Class, Minority ethnics

C语言程序设计是一门实践性很强的课程,必须通过大量的上机操作才能掌握所学的知识,所以要特别强调教学方法与实践教学相结合。但在实际教学安排和实施过程中我们遇到了由于课程改革使得总学时减少、课程内容的压缩以及课程内容提前等许多实际问题。所以,如何加强C语言程序设计这门综合性及实践性较强的学科的教学改革,对新的技术手段背景下的教学规律的探讨,更好地培养对社会有用之才已成为迫切需要研究的课题。进一步研究和改革C语言序设计语言课程的教学方法和手段、不断提高学生的创新思维和创新能力,已成为教学改革、提高教学质量的重要研究内容。

教学目标是通过一门程序设计语言的学习,使学生掌握程序设计的基本思想和编程方法,培养学生灵活运用所学知识来解决实际问题的能力。所以,如何提高教学效果,进一步提高教学质量是非常值得研究并加以解决的问题。根据多年的教学经验,本人认为对C语言程序设计课程的教学应该以语法为基础,侧重算法,重点是编程能力的培养;教学改革的目标是通过掌握先进的编程思想及编程能力的基础上不断提高学生的创新思维和创新能力。

1 C语言程序设计课程的特点和地位

C语言程序设计是计算机专业的学生接触比较早的专业课,课程中知识重点和难点内容较多,难教难学,具有理论性强、内容丰富且抽象、实践性要求高等特点。因此,对教学内容的安排,以及以什么为重点,讲授的内容要达到什么深度等都是每一位任课教师事先必须认真考虑的问题。C语言程序设计是我校计算机科学与技术专业学生必修的一门专业基础课程,同时该课程又是培养学生编程思想的直接工具,是把所学的专业知识转化为应用的重要基础和桥梁,所以该课程在整个教学体系中占据非常重要的地位。

2 C语言程序设计课程教学过程中存在的问题

2.1 基本概念讲解枯燥,教学内容比较陈旧,例题选择不恰当,缺乏实例分析

基本概念的讲解只是给出概念的定义,缺乏比较恰当的联系实际讲解,很多学生学完后对这门课程的收获仅停留在一些教条或死记硬背的术语上,不能学以致用,不会用程序设计方法开发应用软件。教师在授课时,所选的例题基本上都是书上的例题,把重心放在对每一个例题的语法和语句的讲解上,忽略了程序设计思想在解决实际问题的应用上,选题缺乏应用性和趣味性,没有完整的一个实例分析,导致很多学生觉得C语言很枯燥,影响了学生对C语言的学习的积极性及主动性。

2.2 教学方法与教学手段单一,缺乏良性互动,实践教学环节重视不够

传统的教学方法主要灌输式的教学方法,对实例式、讨论式的教学方法采用的比较少。教学内容理论性较强,内容抽象,不利于激发学生的学习兴趣,不容易调动课堂气氛,不利于培养社会需求的创新性软件人才。

教学手段上虽然采用了先进的多媒体教学方式,但还没有真正用到综合采用多媒体教学、电子教案、网上辅导答疑等现代化的教学手段和方法,即使采用了多媒体教学,其多媒体课件通常是教材的罗列。

在课堂教学中,缺乏师生之间的良性互动,不重视启发式、实例式、讨论式的教学方法,没有更好地把教材、教师和学生有机联系起来,最终影响了学生在实际课堂中的参与能力、创新能力的发挥。

在实践教学环境中,教师对实践教学的目的及其重要性不够重视,所以,即使安排了上机内容,但没有相应的实验要求和目标,只是要求学生把书上的例题或现成的案例分析输入计算机调试完成,并没有要求总结,根本没有真正理解程序设计的核心在于编程思想而不是抄现有的程序到计算机看结果,更谈不上掌握C语言基本编程思想了。

2.3 C语言编程能力的培养认识不够

教学的最终目的是让学生灵活应用所学的知识解决实际问题。所以,在整个教学和实践环境中必须注重让学生掌握C语言程序设计的基本思想及编程方法。C语言程序设计作为培养专门人才的一门课程,所以,如果教学不是站在如何运用C语言程序设计基本思想来解决实际问题的角度,则根本不可能培养学生的如何分析问题和解决问题的能力,结果导致学生程序设计的概念不清楚、综合编程能力差、不能学以致用,更谈不上引导学生进行课题研究和科研探索。因此在开始学习时就要努力培养学生掌握解决实际问题的程序设计思想、养成良好的程序设计习惯。这就要求教学的重点放在理论基础、解题思路、算法设计、编程构思及编程能力的培养上,使学生更好地掌握怎样用程序设计的方法开发应用软件的能力。

3 C语言程序设计课程教学改革

3.1 改进教学方法和教学内容,加强编程思想的培养

教学效果与教学方法有着直接的联系,教师在教学过程中应该注重教学方法,以激发学生学习的积极性和主动性。

C语言程序设计课程的教学改革涉及师资队伍建设、教学大纲、教学方法、教学内容、教学手段、实践教学、考核方式等方面。本文结合少数民族双语班学生汉语理解能力比较差、基础知识薄弱等特点对C语言程序设计教学方法、教学内容及教学手段等方面进行探讨研究,提出了实例驱动教学法。

由于过去一段时间对少数民族双语教学重要性的认识不足、师资队伍水平不高等因素导致了双语班学生基础知识薄弱、汉语理解能力较差,所以刚入学的双语班学生来说C语言教学过程就成了基本概念的讲解和语法分析,同学们在学习过程中普遍感到难学难懂,容易使学生深陷复杂的语法知识的泥潭而产生厌烦心理,丧失了学习的耐心和兴趣,以至于最终放弃C语言的学习。针对上述现象若不及时正确引导学生则难以调动学生学习的积极性、不利于培养同学们的编程能力和创新能力,综合素质能力的培养难以实现。

实例驱动教学法中将能够体现出课程知识点的几个典型实例贯穿于整个教学过程中,以实例为驱动,通过任务训练来培养学生分析问题解决问题的能力,从而达到提高学生主动学习、快速提高学生编程能力的目的。

结合多年的教学经验,针对双语班学生在学习过程中所遇到和存在的问题,本人首先以实际应用为背景、以提高学生学习兴趣为切入点,对教学内容重新进行了整合,采用了将难点分散化、由简单到复杂、采用模块化的实例教学方法;针对每一章的每一个知识点和难点都准备了典型实例,通过大量的实例教学使双语班学生从听不懂、看不懂、不会分析、不会编程逐步形成了学习热情高、积极学习的良好学习气氛,更可喜的是经过多年的教学改革使同学们逐步养成了通过网络获取所需知识的主动学习的习惯,这不仅可以使学生巩固前面所学到的知识,更重要的是进一步激发了学生的学习兴趣、增强了学生的学习主动性、创新性和自豪感,从而达到了培养学生理解能力、逻辑思维能力、解决实际问题的能力和创新能力的目的,保证了进一步提高教学质量的教学目标。

对双语班的C语言课程教学中除了先进的教学理念、使用现代化教学手段和多媒体辅助教学之外,最关键的是语言障碍、基础薄弱等困难所困扰的双语班学生来说,首先如何激发学生的学习兴趣、如何深入挖掘学生的学习潜能、这就成为急待解决的问题;如果处理不好上述关系,那么提高教学质量就无从谈起,所以本人首先让学生明确了学习C语言的目的,让学生知道学习该课程能够做什么,能解决什么问题;针对这些问题再用实例说明程序设计与信息技术的关系,以及在信息技术领域中的重要地位;经过上述措施及双方的努力,进一步激发了学生的学习兴趣和学习热情,从而保证了提高教学质量及培养学生运用所学知识解决实际问题的能力。

针对双语班这特殊群体,在教学过程中利用现代化教学手段的同时大胆采用了“实例引导、循环渐进、不断丰富和巩固知识”的实例教学法,积极探讨教学方法的创新,将网络课堂、网上答疑、定期考核和课外沟通等多种教学方式相结合,培养学生独立分析和解决问题的能力。在讲解每一章的重点和难点时,首先通过典型实例来证明知识点,采用了典型的案例分析来演示具体应用,使学生易于理解抽象概念,增加学生学习的兴趣,使学生能及时理解和掌握C语言的编程思想。

3.2 要重视教学内容和教学过程

改变教学观念,从讲解语法为主逐步过渡到提高编程能力为主,围绕程序设计的关键技术来强调编程思想的重要性,使学生在解决实际问题的过程中逐步学习如何编程,在编程过程中逐步理解和巩固C语言的语法。因此,在每一章的教学内容和教学过程中重视突出重点和难点,在各章的实例选择上,重视知识点的证明和知识点的扩展,所选实例要突出各章节的知识点、包括已学过的和即将要学习的知识点,将原来枯燥乏味的抽象知识点融入到有趣的实例中,同时保持各实例之间的连贯性,条件成熟时给出完整的实例分析,让学生尽早体验较大程序的编写过程,使学生知道如何编写大型程序的方法,让学生明白所学的知识点可以应用在什么场合。随着同学们的大量的编程及编程经验的积累,同学们逐步建立了自信心和成就感,这更加激发了学生的求知欲望,引导学生积极主动探索问题,从而达到了培养学生创新能力的目的。

3.3 强化实践教学和课程设计

在实践教学过程中始终重视平时上机实验的考核,这样就可以随时掌握学生的学习情况。定期的以大作业的形式提出一些应用题,让学生通过分析找出解决方法,训练学生掌握应用领域的知识并综合运用知识的能力。学生在解决问题时若有新的思路,就让学生演示自己的算法或程序并给予相应的鼓励成绩。这样做可以激发学生的学习积极性和求知欲望,给他们展示自己才能的机会,充分发挥学生的想象力和创造力,从而形成了良好的学习气氛。采用实例分析的方式连贯性的完成小型管理系统,使学生的编程能力进一步提高,同时能够培养学生的团队意识,为以后的毕业设计和研究方向打下坚实的基础,更重要的是能培养出学生的初步科研能力。与此同时,鼓励同学们参加自己的课题组和参加各类程序设计类大赛,给学生提供展示自己才能的平台。

经过几年的教学改革,学生的分析能力、编程能力、解决实际问题的能力、综合素质以及学习成绩等都有了显著的提高。

3.4 要提高自己的专业水平,加强科研能力

为了更好地完成教学任务、提高教学质量和教学效果,除了要不断学习最新前沿知识外还要进一步提高自己的科研水平,吸收新的教学理念,针对教学过程中所出现的问题加强与教学经验丰富的教师的交流,不断探索和开展针对性的教学研究,注重科研和教学的互相结合,以科研促进教学质量的提升。

第7篇:c语言课程设计范文

关键词:C语言程序设计;任务型教学;教学评价

学习任务单是任务驱动式教学的一种表现形式,是一种以“做中学”为主的教学方法[1],让学生在自主完成任务的过程中学习和获取知识及技能。这一教学方法的教学效果判定不能仅仅靠成绩决定,要利用教学评价进行更客观的判断。教学评价在教学过程中发挥着从整体上调节、控制着教学活动进行的作用。本次课程中,笔者利用教学评价来验证学习任务单对于C语言程序设计教学效果起到的作用。在本研究中,C语言程序设计是一门选修课程,这门课程的授课形式分为理论课和上机课。

一、基于学习任务单的C语言程序设计课程的教学评价及其必要性

(一)学习任务单与教学评价相结合

C语言程序设计是一门实践操作性比较高的课程,而传统的教学方法则是理论大于实践的“纸上谈兵”[2]。本研究利用学习任务单的教学形式使知识与技能并重,更注重学生的实际操作能力,改变了原有的由“教为主、学为辅”的上课模式。传统的教学评价方式往往是以一次期末考试成绩为决定性因素,成绩的高低不仅代表着教师的教学水平也是学生学习能力、学习效果的结果,这种片面的评价方式忽略了师生在教学过程以及学习过程中的表现。在本门课程中导入学习任务单,让学生独立自主学习,教师进行适当引导,是一种更加注重学生学习过程的体验、在“做”中学的教学方式[3]。因此,教学评价的方式应该与学习任务单相结合,期末成绩定性质的教学评价方式不适用于本次研究教学过程的评价[4]。

(二)教学评价的必要性

客观、公正、科学的教学评价会对课堂、学生及教师产生非常重要的影响。教学评价的结果可以对教学过程起一个诊断、总结的作用。教师通过获取反馈信息可以了解教学各方面的情况,判断教学质量和水平,并对教学成效和教学短板进行分析、反思,从而做出调整,不断改进和完善任务单的设计。而学生在完成任务单的过程中可以体验解决问题的成就感,建立兴趣,提高自信心,进一步激发内在的潜力。

二、基于学习任务单的C语言程序设计课程的教学评价方式

学习任务单贯穿了整个学期的教学活动,对本次课程的教学评价,从一定程度来说,就是评价基于学习任务单的教学效果。对于这一形式的教学方式,形成性评价则是最佳的教学评价方式。形成性评价是一种根据学生平时学习过程中的行为表现、最终的学习成果以及在学习过程中呈现出来的学习态度、学习习惯、学习方法等做出评价的一种教学评价方式[5],其最终目的是为了能够有效帮助学生学习,最大效能地管理学习过程,激发学生学习的动力以增强自信心,有效地培养学生自主学习的能力与合作能力,提高教学效果、改善教学过程。这与通过导入学习任务单的形式所要达到培养学生自主学习能力、科学高效的学习方法与习惯、提高课堂教学效果的目的相一致。本研究是基于任务型教学的教学方法展开的课程研究,采用形成性评价的教学评价方法既符合了对学生学习过程持续观察的基本要求,也符合了科学性、导向性原则。

(一)课堂情绪观察法

观察法是最直观、也最能从细节之处发现学生情绪以及行为上的变化的方法。在上机操作课中,总体观察学生在收到任务单时的表情、肢体行为,感受学生情绪的变化;再从学生个体入手,仔细观察其面部表情,比如略有惆怅、较为严肃的面部表情,可能代表任务单对该学生来说有一定的难度;如果打开任务单是无所谓、毫无思考的表现,可能该学生存在着对此学习任务单或者学习方式甚至是本门课丧失兴趣与动力的情况,这种情况需要特别关注。由于开设本门课程的班级的人数较少,完全可以做到观察每个学生。

(二)任务完成度与“QQ档案袋”相结合

学生在完成学习任务单时的表现以及完成学习任务单的结果都是教学评价的重要内容和依据。如果完成学习任务单较为轻松、不用查阅资料,可能就意味着任务的难度系数较低,并不能实现对知识技能的拔高。学习任务单的完成情况将从两个方面进行分析,一是数量,任务完成的多少反映了学习任务单任务量的制定是否合理;二是质量,质量的好坏很大程度上体现出任务的难易度、精准度以及是否适合学生。此评价都是以大多数学生为相对参考。如果个别或少数学生未能完成学习任务单,可能是学生的个体差异性导致这一现象。反之,大多数学生都未能达到完成任务单的标准,这反映出设计的学习任务单存在问题,需要进一步完善和改进。“QQ档案袋”是指将档案袋评价方式与现代信息技术相结合,利用大众使用的网络平台腾讯QQ所建立起来的一个集沟通、收纳、保存于一体的网络档案袋。QQ群,为学生讨论和解决问题提供了平台,也为教师提供了一个了解学生情况的途径。学生将完成的学习任务单通过QQ平台发送给教师,以此作为评价的依据和内容。学生在各自小组的QQ群里讨论小组作业(教师在每一个小组的群里),作业是以PPT的形式进行汇报展示,同样是QQ备份,教师可以以“QQ档案袋”的形式了解学生的情况。

(三)学生自评与教师评价相结合

现代教育注重引导学生在教学过程中发挥主体作用[6],让学生参与教学评价的过程之中是发挥学生主体作用的一个重要表现,在新形势下,学生的自我评价是整个教学评价中不可缺少的一部分。每一个学习任务单后都有自我评价环节,学生在完成本次任务单后需要对自身的学习情况进行评价。评价整体上包括两大模块的内容,一是学习内容方面的自评,包括知识方面如函数的基本概念等、技能方面以及能力方面。在能力方面的自评中,主要体现的是学生能否完成拔高型、提升型的任务。二是在小组作业中,学生对于自己做的工作及付出、参与度进行自评。让学生对自己的学习过程、学习方式、学习效果以及在学习过程中的感受、体验等进行反思和评价。教师对学生完成的学习任务单以及小组作业汇报展示情况进行评价,在此环节中,教师评价与学生自评相结合,实现了生生、师生之间的交流与互动。

三、结语

教学评价是教学活动中必不可少的一个环节,通过对学生完成任务情况的分析,不仅可以反映出学习者对知识点的了解和掌握情况,而且能够比较精准且客观地反映出学生的实际操作能力,有利于教学目标的实现和改进。基于学习任务单的教学评价,主要是根据学生在完成学习任务单时的实际表现来反映学生知识与技能的掌握水平,因此,教学评价要能有效地判断每个学生学习任务完成的真实情况以及学生的潜力所在,判断学习任务单是否有益于树立学生的自信心,是否能够培养学生的自主学习能力,增强学生继续向上的动力。

参考文献:

[1]杨维东,赵娟.基于建构主义理论的“任务型、互动式”教学模式研究:以非英语专业硕士研究生英语课堂教学为例[J].外语教学,2011(5):56-60.

[2]邓晓云.新课标背景下任务型教学模式初探[J].新课程研究(基础教育),2010(5):45-46.

[3]佟玉洁.任务驱动教学法在高职《Photoshop》教学中的应用研究[D].济南:山东师范大学,2013.

[4]张凌.基于多元智能评价观构建大学英语多元评价体系[J].辽宁公安司法管理干部学院学报,2010(2):91-93.

[5]王瑜.基于多元智能理论的学生评价研究[D].开封:河南大学,2005.

第8篇:c语言课程设计范文

关键词:C 语言;教学内容;教学方法与手段;教学改革

1.引言

我院开设的“C语言程序设计”课程不但是计算机专业的必修课,而且也是非计算机专业的公共计算机基础课。但在“C语言程序设计”课程教学中,许多学生都认为C语言涉及的概念比较复杂,规则繁多,使用灵活,容易出错,且程序设计课程逻辑性又很强,[1]学生不能很好地理解算法,编写程序也很困难,教师教学和学生学习都感到困难,并在不同程度上产生畏难心理。特别是我院将C 语言作为理工科学生进校后首先接触的第一门计算机基础课,这种现象尤为明显,而C语言基础打不牢会直接影响后续专业课程的学习。因此如何改革“C语言程序设计”课程,进一步提高教学效果成为一个紧迫任务。本文根据多年的程序设计课程的教学实践,对“C语言程序设计”课程从教学内容、教学手段、教学方法等方面提出几点建议。

2.教学内容的改革

2.1课堂教学内容的改革

传统的《C 语言程序设计》教学内容主要包括C语言语法基础、数据类型、程序控制结构、函数、指针、文件等。教材在内容组织上,在语法上讲解过细、过多。在各章节的编程例子中,多数难度较大,分析较少;不够形象,学生较难理解,且适用性不强。笔者本着“以任务为驱动”的指导思想,在课堂教学过程中,对教学内容重新进行了归纳,将难点再次分散,以缩小台阶,达到循序渐进。

2.2 实验教学内容的改革

“C语言程序设计”是一门实践性很强的课程,既要掌握概念,更要动手编写程序。其主要任务就是培养学生具有一定的阅读程序、设计编写程序的能力,分析问题、解决问题的能力和逻辑思维的能力。因此,上机实验是学习程序设计课程必不可少的实践环节,特别是C语言灵活、简洁,更需要通过编程的实践来真正掌握它。我院为非计算机系理工科学生开设的“C语言程序设计”课程的实验学时是32 学时,共8个实验。由于实验课时较少,在实验内容的安排上就显得十分重要。实验的总体要求,强调上机实验要经历三个步骤:

(1) 上机前的准备让学生写出实验预习报告。内容包括对实验题目的理解和分析,选择适当算法,画出流程图并编写程序。分析可能遇到的问题及解决的对策。准备几组测试程序的数据和预期的正确结果,以便发现程序中可能存在的错误。

(2) 上机输入和编辑程序,并调试运行程序。首先调用C语言集成开发环境,输入并编辑事先准备好的源程序;然后进行调式。在调试过程中,要充分利用C语言集成开发环境提供的调试手段和工具,例如单步跟踪、设置断点、监视变量值的变化等。整个过程应自己独立完成。

(3)每次上机结束时老师都逐一检查学生编写的程序并打分评定。

3.教学方法与手段

在教学方法上,从以教师为主体的的方式转向以学生为主体、教师为主导的教学方法。有效地培养学生的分析问题与解决问题的能力。以“递归函数”为例,笔者先给出问题:王小二自夸刀工不错,有人放一张大的煎饼在案板上,问他:“饼不许离开案板,切100刀最多能切多少块?”。[2]通过引导学生分析问题,建立数学模型q(n)=q(n-1)+n,q(0)=1(一刀都不切当然只有1块)。再通过与或节点图分析数学模型的含义。最后给出递归算法程序。整个讲解过中结合板书,逐步引导,层层深入,取得了很好的教学效果。

在教学手段上,积极采用现代化的教学手段,如多媒体教学这样有利于激发学生的学习兴趣,发展学生的主体能力;同时由于多媒体信息量大,也能够优化教学过程。但对于案例分析或程序的编写过程,就发挥传统教学的优势,进行课堂讨论、板书讲解、结合提问,将问题层层剖析、层层深入,达到师生互动的效果,学生的想象力也会得到充分的发挥,对问题的理解也变得更容易。

4.课程考核办法的改革

建立一个服务于课程目标的学生学习评价方法是一项非常重要的工作,考核不是目的,“以考促学”才是考核的本质。传统的期末“笔试”这种单一的、“一考定终身”式的考核方式,已远远不能满足课程的需要。为使考核真正发挥“以考促学”的作用,要重视对学生学习过程的考核,重视实际动手能力的考核,侧重考核学生对知识的融会贯通和灵活运用能力,而不仅仅是基本理论、基本知识的掌握。具体的改革措施如下:

(1) 变单一考核为复合考核,从多个方面对学生进行考核。课程总成绩由平时成绩、实验成绩、期中成绩、期末成绩四个部分构成。其中,平时成绩考核包括对出勤、随堂实训、课堂提问、作业等部分;实验成绩考核是针对课程的8 次实验成绩。

(2) 衡量这门课学习的好坏,不是看学生“知不知道”,而是“会不会干”。期末试题考核的方法不用是非题和选择题,把重点放在读程序、编制程序和调试程序。实践表明,这种考核方法不但能更客观地反映学生的学习情况,同时也能促进学生学习,起到良好的教学效果。

5.结束语

本文教学内容、教学方法与手段的改革,是根据实际教学过程中学生存在的问题提出的,并已经在“C语言程序设计”课程教学实践中加以运用,得到大部分学生的认可,取得了较好的教学效果。只要我们不断探索教学改革,我校的C语言程序设计课程的教学必会取得长足的进步。

参考文献:

第9篇:c语言课程设计范文

【关键词】授课设计;讲课比赛;C语言

0 引言

随着我国高等教育的发展,高校中的青年教师逐渐成为了讲台的中坚力量,站稳讲台是他们的首要任务。讲课比赛是学校对青年教师进行激励和教师自我激励[1]的常规而有效的方法,对促进本科教学设计、知识组织和课堂管理的交流起到了积极的作用[2-3]。西安科技大学两年一度的青年教师讲课比赛也成为全校非常重要的教学交流活动。C语言作为集汇编语言和高级语言的优点于一身的程序设计语言,既可用来开发底层的嵌入式、系统开发,也可用来开发上层的应用程序开发,是高等院校讲授程序设计课程的首选语言。作为理工科专业的公共基础课,其讲授效果会持续影响学生后续课程的学习和编程应用。C语言是一门结构化的程序设计语言,由顺序、选择分支、循环三种基本结构组成,任意复杂的程序都可分解为三种基本结构。其中,循环结构是最复杂的一种结构,所以该部分内容的授课设计至关重要。因此,这里选择C语言课程中的循环结构作为讲课比赛的内容,精心设计了紧凑而饱满的授课内容。

1 授课方法分析

目前,对C语言课程教学的研究越来越多,文献[4]针对学生的计算机基础知识不同和传统教学模式的不足,进行了分层教学模式的探讨,首先对学生水平进行摸底分层,然后有针对性的进行分层教学;文献[5,6]认为应加强课程设置、教材体系和实践教学建设,建立突出实践能力、创新能力、信息能力的考核机制。对于C语言循环结构部分的教学设计,也出现了很多有意义的研究,文献[7]针对计算机专业第一门程序语言的教学要求,采用循序渐进的方法,逐步启发学生,通过分解程序执行过程,逐步展示运行结果,使学生更清晰的认识循环结构;文献[8]针对C语言公共课授课对象,通过分析学生学习该部分内容的心理规律,探讨了一种适合公共课的“双主体教学模式”,较好地解决了程序设计本身抽象、枯燥、难懂等问题。

通过以上分析,本门课程的授课对象是非计算机专业的学生,作为他们学习的第一门计算机语言,要采用公共课的授课方法。循环结构部分的内容语法讲解太过抽象与枯燥,容易使学生产生抵触与畏惧的心里。因此,在授课过程中会采用理论与时间相结合的引导、启发式教学方法,以原理为主线、案例为引导,重点突出、难点分散。结合传统板书和多媒体教学的双重优势,语法讲解板书图文并茂,并结合程序案例进行多媒体演示,以加深学生对语法的理解和应用,提高他们的学习兴趣。针对讲课比赛时间有限的特点,讲解内容力求难度适中且信息量饱满。

2 循环结构授课设计

2.1 板书设计

板书不求面面俱到,要重点突出。具体板书设计如图1所示,板书文字只有授课的框架标题和关键字,中间四分之三的版面是三种循环结构的介绍,语法格式结合流程图和案例程序,这样可以对教学重点进行对比展示,达到直观的教学效果。

2.2 授课进程

授课进程主要分为四个递进步骤:

(1)首先,复习C语言三种基本程序结构中的顺序和选择分支结构的特点,由连续自然数求和、迭代求根等问题,引出反复执行同一段程序特点的循环结构;

(2)然后,结合程序流程图,对while/do-while两种当型循环结构语法和执行流程进行板书讲解,并结合同样一个程序案例对比二者应用语法的不同,然后进行上机VC程序演示;

(3)通过分析两种当型结构中循环控制变量i的作用,结合程序流程图,对for型循环结构语法和执行流程进行板书讲解,并结合同样一个程序案例对比应用,然后进行上机VC程序演示;

(4)最后,对三种循环结构进行总结比较,分析各自适用的情形,布置课后上机练习作业。

4 结语

本文以讲课比赛为目的,结合非计算机专业学生(下转第56页)(上接第41页)的特点,对C语言课程中循环结构内容的教学进行具体设计,包括授课方法分析、板书和授课进程设计,对该课程教学具有一定的指导意义。通过使用该授课设计参加西安科技大学青年教师讲课比赛,得到了评委教师的认可,取得了优异的成绩。

【参考文献】

[1]严芳,余仰涛.高校青年教师讲课比赛中的主要问题及对策研究[J].学校党建与思想教育,2013,444:76-79.

[2]熊志勇.讲课比赛对提升青年教师教学能力的作用[J].重庆科技学院学报:社会科学版,2011,3:170-172.

[3]范建玲.讲课比赛评价指标体系的研制与实施[J].广西教育,2014,1:21-28.

[4]景泉.C语言程序设计课程改革分析与探索[J].价值工程,2014,15:282-283.

[5]杨健,徐东,刘海见,祁薇.C语言课程教学改革[J].科教文汇,2014,6(上):79-83.

[6]刘淑英,张顺利.C语言课程的教学改革与实践[J].吉林教育,2014,11:3-3.

[7]孙华,于炯,田生伟,钱育蓉.《C语言程序设计》中循环结构的教学方法探讨[J]. 科技教育创新,2012,8:238-238.

[8]徐东,祁薇,刘海见.《C语言循环结构》课程教学设计研究[J].软件导刊,2014, 13(6):154-156.