c程序设计语言范文
时间:2023-03-26 07:39:54
导语:如何才能写好一篇c程序设计语言,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。
篇1
关键词:关键词:C++ ;教学方法;系统化程序设计思想
中图分类号:G4 文献标识码:A 文章编号:
面向对象是当前计算机界关心的重点,面向对象的软件开发方法是吸收了软件工程领域有益的概念和有效的方法而发展起来的。它集抽象性、封装性、继承性和多态性于一体,可以帮助人们开发出模块化、数据抽象程度高的,体现信息隐蔽、可复用、易修改、易扩充等特性的程序。C++是面向对象的编程语言,是一门既有难度又有深度的课程。学生要学好它,自己的学习方法与学习态度固然重要,但教师好的教学方法尤为关键。好的教学方法,可以让学生学习起来达到事半功倍的效果。
在这里笔者结合自己的实际教学经验谈谈通过采用什么样的教学方法来激发学生的学习兴趣,使学生在教学过程中能主动的学习。
1.良好的开端
精心准备第一堂课、激发学生学习的积极性。C++程序设计语言是一门比较抽象的课程,很多内容只可体会,很难言传。在学习过程中感觉会比较枯燥、难懂,没有一定的毅力很难坚持下去。这需要将学生很好地引入门,要让学生认知该课程的重要性与实用性,要提高他们的学习兴趣,有信心去学好它。为此在第一堂课上教师可从不同专业角度为学生介绍学习本课程的意义。往届学生的C++课程设计、数学建模、程序竞赛等作品是教师第一节课的最好素材。
2.学生为主体
提倡“以学生为主体的教学模式”,教师使用多种教学媒体给出学习资源,讲解重点、解释难点、解惑疑点。充分利用多种媒体资源,发挥学生的主体作用,引导学生自主学习,培养学生的自学能力。
教师要随时了解学生是否掌握了教学目标中要求学会的知识和技能,有多少人掌握和掌握的程度等。从而针对学生的学习现状,确定应重点讲解和辅导的知识点,再根据学生的实际情况来设计教学环节,这样才能保持学生的学习兴趣,防止他们因难懂、不懂而产生畏惧情绪,中途退出。
3.利用多媒体、网络教学平台,增强教学效果
教师在备课过程中要精心制作课件,可通过示例类比(如:在讲解调用的不同执行方式时,举例:经理将“自己要到外地出差”的消息告诉他身边的人(妻子、下属、秘书)?妻子:准备行李;下属:准备出差的资料;秘书:安排车票和住宿)、动画演示等方法来简化学习难度,营造轻松活泼的学习氛围。
在上次授课过程中出现的难点问题、遗留问题要尽量在下次课的课件上能体现出来,避免不同授课老师,不同授课时段,不同授课班级课件一尘不变。同时在教学过程中,教师要充分利用广播平台演示操作过程,集中学生注意力,再通过角色转换,由学生演示自己或所在小组的作品并进行解说和点评,充分调动学生参与的积极性。
授课教师应开发课程网上教学平台和网上讨论和答疑系统为学生提供有效的网络环境,这不仅是一个有效的师生互动平台,同时也为学生提供电子教案、多媒体课件、网络教学、视频等丰富的网上教学资源,构建以学生为中心的自主学习环境。
4.学生系统化程序设计思想的培养
C++是一门面向对象的编程语言,而面向对象编程方法的出现,实际上是程序设计方法发展的一个返璞归真的过程。从本质上讲,软件开发就是对软件所要处理的问题域进行正确的认识,并把这种认识正确地描述出来。
C++程序设计课程教学一般是以程序设计语言自身的体系为脉络展开,存在注重语句、语法教学的特点。许多学生在学习C++程序设计语言课程时,觉得听得懂,但学过之后不能用其来解决实际问题。在这样的教学模式下,学生虽然学到了一定的程序设计知识,但编程能力较差,部分学生遇到实际问题无从下手。系统化程序设计思想培养模式从大学生的认知特点出发,使教师在教授学生程序设计课程、提高学生编程能力的同时,培养学生的系统化程序设计思想,这对学生整体素质的提高有很大的作用。
程序设计课程的学习不仅要教会学生如何进行计算机编程,而且要教学生如何去思考问题。系统化的程序设计思想,不仅可以解决学生在程序设计中遇到的问题,还可使学生的逻辑思维更加严密,这对一个学计算机的大学生来说是至关重要的。系统化的程序设计思想的培养过程就是让学生自己动手解决实际问题的过程,这个过程使学生自主去探索问题、并对它进行研究和创新,从而使学生觉得学有所用,一直保持学习的兴趣。
5.理论联系实际,加强实践操作
C++程序设计语言课程的特点决定了上机实践是教学过程中一个十分重要的组成部分。在学习C++程序设计语言的过程中要不断练习、不断实践。因此,如何加强上机实践,提高实际操作的能力,并以此进一步提高课堂教学的质量和学生学习的兴趣是值得广大教育工作者应该认真思考的问题。要使学生熟练使用C++程序设计语言解决问题,在教学过程中可采用“问题引导、问题说明,问题解决,项目驱动”的教学流程,把知识点融入到实际项目的开发过程中,通过项目的不断扩展引入新的知识点。做到引(教)、探(学)、做(实践)相结合,通过编写、编译、调试、运行、剖析和讨论一些实例程序去主动地探索、学习知识,掌握技能。本课程的内容是通过多媒体讲授、学生课后搜索相关资料,安排平时的作业训练等环节组成的,各环节应紧密配合。为使教学符合学生认知规律,并坚持理论知识和实践技能并重的原则,可以从以下几个方面考虑。第一,合理分配上机时数;第二,上机内容要有趣味性和针对性,教师应多花心思去精心准备上机操作的内容;第三,提高学生自主创新、自主学习的积极性,要学生多写程序,不能只听不练;最后,要检查学生的实训结果,保证上机操作达到预期效果。
6.换位思考
在教学过程中发现,很多学生不提问,不要认为学生没有问题,而是他们有问题不知道如何提出。这时教师需换位思考,站在学生的角度去思考学生可能会存在的问题,然后由教师提出,让学生自己来解答,如果学生答不上来,教师再为学生解答。教师备课时不仅仅只是准备自己要讲授的内容,还要思考学生会遇到什么难点,需要向学生提什么、解答什么问题,这种模式可 激发学生去积极思考、分析和解决问题。
7.综合评价体系
期末考核评价包括:理论成绩、实验结果、案例设计成果、项目进度、完成质量、协作能力、沟通能力和考勤情况等。各项指标采用加权评分和突出能力评价两种方式。案例设计采用“自我实现,自我管理”的理念进行开放式管理,学期最后一个月学生可自由分组选择某个案例。每组同学在老师的指引下,自发形成研发项目组,通过分工协作,共同完成整个项目设计。要求设计成果与案例库比较要具有新意,从而拓展学生的创新意识,激发学生的学习兴趣。
总之,课堂教学是师生的双向活动.现代课堂教学倡导学生主动参与,主动探索的主体意识。教师作为主导者,要科学地组织双边活动,尽管教无定法,但要教学有法,教学得法。作为教育工作者要不断地更新观念,更新知识,在保证学生学习积极性的前提下,按照他们的认知规律组织教学,并为适应新知识而进行教学改革,以培养出更多的符合社会需求的计算机人才,使教育更好地为社会服务。
参考文献:
[1].钱能.C++程序设计教程[M].北京:清华大学出版社,1999
篇2
1、不是;
2、C是面向过程的程序设计语言;
3、C++是面向对象的,C#和Java也都是面向对象的,而且面向对象的程度比c++高,但不是完全面向对象的;
4、Ruby是完全面向对象的编程语言,连int等基本类型也是对象。
(来源:文章屋网 )
篇3
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:
1.加深对课堂讲授内容的理解
课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。
通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去"掩盖"程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。
2.熟悉程序开发环境、学习计算机系统的操作方法
一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓"环境"就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。
3.学习上机调试程序
篇4
由于时间的关系,我们的这次实习课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实习环节,特别是c语言灵活、简洁,更需要通过编程的实习来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:
1.熟悉程序开发环境、学习计算机系统的操作方法
一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓 环境 就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。
2.学习上机调试程序
完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。
通过这次为数不多的几天计算机实习学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东西都不会太难。
3.加深对课堂讲授内容的理解
课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实习中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实习所致。C语言程序设计实习心得体会(3篇)C语言程序设计实习心得体会(3篇)。
篇5
关键词:C语言; 程序设计;教学方法; 教学效果;教学实践
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)07-1467-02
1 概述
C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,兼有高级语言和低级语言的特点,是高校程序设计语言课程中的典型代表,C语言课程的教学目的是通过理论教学和上机实践,使学生了解程序设计语言的基本概念,初步掌握解决简单问题的编程思路和C语言的程序设计方法,并通过上机实践锻炼学生的程序调试能力,为后续课程的学习和应用奠定程序设计基础。因为C语言是计算机专业大一学生最先接触的程序设计语言课程,所以一个好的开始对激发学生学习专业的兴趣是必须的。
2 C语言教学中存在的问题与现状
在多年教学实践中发现学生普遍认为课程难度较大,特别是到第二学期学到函数、指针、文件,有些学生感觉越来越困难,从预习作业不能完成到实验课三道题只能完成一题,越来越失去学习的信心。还有些学生对学习C语言很茫然,不知学了有什么用。现在的学生对上网、淘宝、微信、手游、网游等感兴趣,对学习C语言觉得和现实脱节,课本的例子和完成的作业实验基本是一些简单的数值计算,所以认为C语言学了没用,也缺乏了学习动力。再加上采取的教学方法比较陈旧、单一,往往采用传统的教师讲授的填鸭式教学,学生学习缺乏主动性。教学过程以章节为纲,先讲理论知识点,在课堂上花了很多时间讲述语法、格式和注意的问题。这些书上已经很详细地讲述了。所举的例题也都是小的数值计算题,结果学生到课程设计时总感觉无从下手,设计出来的程序有一些必须的需求都没考虑到。比如做的管理系统出现数据不保存,每次运行输入数据,或者没从文件中读出原来的数据。
3 改进C语言教学的方式方法
3.1 以小游戏激发学生的学习兴趣
以前课堂举例都以数值计算为主,如求5!,输出100~200之间所有的素数,学生觉得较为枯燥,没什么意义和乐趣,所以可以投其所好,举一些小游戏的例子让学生编写并尝试。如可以用猜数、简易贪吃蛇等让学生觉得C语言学习和实践很有乐趣和挑战,这样就激发了学生学习的兴趣。
3.2 以项目驱动法培养学生的软件开发的能力
项目驱动教学法鼓励学生通过项目中涉及到的课程内容主动地提出问题,然后再去探索、寻找答案,改变仅由教师上课的填鸭式教学模式。在实施项目的过程中,将学生分成项目小组,有项目组长组织小组活动,这样既培养了学生发现问题、解决问题的能力,同时锻炼了团队合作精神。用项目驱动法来进行教学,以一个具体的项目,贯通需要的知识点,并且按照软件工程的思想,经历从需求分析到设计再到编程和测试运行的几个阶段,逐步培养学生软件开发的思想和能力。
首先要设计一个合适的项目。比如在学习函数、结构体和文件内容的时候,可以设计一个管理系统软件项目,在项目中让学生体会到函数、结构体和文件的作用比教师单纯的强调效果要好。可以选取学生能切身体会的成绩管理系统。
然后在实施的时候,先将学生进行分组,选取项目组长负责项目的执行。第一步进行需求分析,确认新系统的功能需求。学生分析后得出结论,新系统需要具有学生信息输入、增加学生、删除学生、修改学生信息、统计成绩、查询成绩、显示信息、读取文件和保存的功能。第二步进行系统设计。为系统分解成以下几个模块:
l输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的各门课程成绩等相关信息。
l查询模块:根据学生的姓名或学号查找输出此学生全部信息包括学生的各门课程的成绩。
l插入模块:插入学生,其中通过学号的大小来比较的,并且以此来排序。
l统计学生成绩模块:统计各门课程的平均分数、最高和最低分数。
l初始化模块:若有文件则从文件中读入学生信息到内存中。
l退出系统模块:首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。
系统分解的功能模块将由相应的函数来实现。项目组长可以将任务进行分配给组员来详细设计和实现相应的模块。通过这个过程,让学生切身体会函数的作用,通过一定的自学和教师的精讲,掌握函数的使用的重点和难点。
这时在设计学生的信息数据结构的时候,学生会发现和思考以往学习和使用的简单的数据类型能否较好地组织和保存学生的信息,便于教师适时引入结构体类型来解决这个问题。
在保存学生数据的时候,学生自然会思考保存在哪里,如何保存。这时引入文件的读写操作帮助学生解决这个问题。
第三步是实现。在学习了相关知识点后,学生在项目组长的组织下编程实现系统。
第四步是测试。指导学生应用相应的测试方法,设计测试用例,分析测试结果、进行相应的调试和维护。
3.3 以动画演示帮助学生理解课程难点
一些算法、概念和步骤仅由教师口头讲授,太抽象,缺乏想象力的学生很难理解,所以用FLASH制作动画将步骤演示给学生看,提高课堂生动性及学生的学习兴趣。如通过动画演示冒泡排序、选择排序、插入、二分法、递归过程、汉诺塔问题、指针、数组、结构体和链表的创建、遍历、插入、删除等操作。
3.4 以网络教学增加师生互动
可以把教学内容做成课程网站。课前上课资料,方便学生预习。学生课后可以随时查看每次讲课的内容,遇到问题可以进入网站查看资料,也可以在公告栏或讨论板问题,寻求教师和同学的帮助。还可以在网站上布置作业和收取作业,参考资料和前沿动态。
3.5 以分层教学适应学生差异
学生刚入校时的编程水平有差异,有的是没接触过编程,有的却学过VB编程,或者有的参加过中小学信息技术培训和比赛,那么如果按照统一标准教学,则有的困难很大,有的却觉得太简单没意思。针对这种情况采取班内分层教学,根据是否有编程基础和能力将学生分成A、B、C三等,在教学、实验题和作业上有一定区别,为A等学生增加难度题,为C等学生减少题目数量要求质量。可以安排优秀学生担任实验辅导员,在熟练迅速完成自己的实验后,也不必无所事事,而是帮助教师辅导学生,帮助学生调程序,在期末成绩上给予一定的加分奖励。这样既增强了先进同学的自豪感和积极性,同时减轻了辅导教师的工作量。
3.6 改革课程考核办法,开发相应的考试系统
传统的考试只有期末考试,并且只有笔试。这种弊端是学生到课程快结束时,才会感到考试的紧迫而匆匆学习,俗称“零时抱佛脚”,这对课程内容的掌握的扎实度和对后续课程的深入都是欠缺的。所以有必要改变“一考定终身”式的和单一的笔试考核方式,发挥以考促学的效果,改革考核形式和方法。将考核分为平时+实践+考试三部分,考试有期中和期末两次成绩,并且包括理论和上机两部分的考试,开发相应的考试系统,能够自动组卷和阅卷,让学生考不同的卷子,减少作弊的可能性,减少教师阅卷的工作量。平时除了考勤、作业,在单个知识点或相联系的几个知识点结束后,安排相应的小测验。通过测验和考试,不断拉紧学生学习的弦,检查自己有哪些薄弱的地方,以促进提高。
4 结论
C语言是计算机专业和相关专业的一门重要基础课程,但是具有相当的难度和枯燥性,大多数学生难以掌握,所以在教学中要不断探索总结经验,充分利用现代教学手段,激发学生的学习兴趣,灵活应用各种教学方法,这才能达到较好的教学效果。
参考文献:
[1] 孟朝霞,王琴竹,李妮. C语言程序设计课程项目教学目标建设与实践[J]. 中国科技信息,2010(4).
[2] 陈湘骥,徐东风,杨秋妹. 在线评判在C语言课程设计教学中的应用[J]. 计算机教育, 2010(3).
[3] 蒋霞. 基于CDIO理论的C语言程序设计课程改革[J]. 电脑知识与技术, 2012(27).
篇6
程序设计 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.
篇7
关键词:C++程序设计;教学建议
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2012)29-7028-02
1 目前存在的问题
C++程序设计语言因为其语言简洁、紧凑,语法灵活,语言表达能力强,代码容易维护、可移植性强、执行效率高,支持数据抽象、支持面向对象程序设计和泛型程序设计等优点而被广泛应用,成为当今软件开发的主流语言之一,也逐渐成为许多高校计算机专业程序设计基础编程语言的首选。。但由于C++语言本身是从C过渡来的一个面向对象的程序设计语言,所以C++即支持c的面向过程的编程又支持面向对象的编程应用,因此C++教学内容非常多,知识点多,语法多,并且C++中有很多比较难的知识点,比如指针、多继承等,而教学课时一般都比较少,理论加实践72学时左右安排在一学期上完。总体导致的结果就是,本课程学完后,学生感觉学习内容多而且零乱,没有系统性,一旦遇到实际面向对象编程应用问题时感觉无从下手,无法编程。针对这些现象进行思考后,结合自己的教学经验提出了一些教学建议。
2 教学中的建议
2.1 教学内容的裁剪
总体思路是突出重点,适当降低难度;把面向对象关键性技术的知识点尽量前提,增加学习熟悉、使用和掌握的机会。
在面向过程内容学习中重点为:基础数据类型、常量变量、控制结构、数组、指针、函数、结构;在面向对象学习中重点:类、对象、封装、继承、多态和输入输出流。
数组虽然是重点,但教学中只以一维数组和字符数组为重点平时也应用最多,而对于二维数组及多维数组只需弄清楚其含义就可以了,到具体要应用时补充再自学。对于指针既是一个重点又是一个难点:虽然指针是C++一个最重要的特性,它的灵活性、方便性和快捷性令其他语言望尘莫及,但同时也带来了不安全性的隐患和学习的难度。但现在C++中又引入很多技术代替指针的很多功能。比如C++中的引用,其功能可以代替指针实现间接访问,但比指针安全也比指针的使用简单,另外成员函数可以取代函数指针等等。因此在讲解指针内容时,我们可以适当的降低难度,简化内容。重点是要弄清指针的含义,指针对一维数组的引用就可以了。
对于面向对象部分的内容我们可以适当弱化语法方面的问题,而重点强调面向对象程序设计方法,语法方面的问题主要在应用中进一步强化和巩固。
对于面向对象的关键性技术我们可以尽量让学生提早接触,比如多态,我们在讲解函数时,就可把函数重载和函数模板提前到这部分讲解,让学生无意中先接触和使用多态技术,到后面真正讲解面向对象的这部分内容时,学生实际上早已熟悉相关知识,只是加强理解和应用而已。
2.2 教学思路
C++的内容,从总体上而言由2部分构成:面向过程和面向对象;在这2个部分的教学及衔接中要各有侧重点,良好过渡;
在面向过程教学中主要强调算法、流程图和程序跟踪调试的学习;在从面向过程向面向对象的过渡过程中,把面向过程与面向对象之间的内在关系凸显出来(见图1和图2),让学生意思到面向对象程序设计包含面向过程程序设计,是面向过程程序设计的发展。可以这么理解,面向对象程序设计主要勾勒出了程序的整体框架,体现程序各部分及各层次之间的内在关系,而面向过程的程序设计方法可用在面向对象的底层开发中,即对象内部(或者说类内部)的算法实现中。不然学生会觉得2者之间很突兀,不能衔接起来,有一种抵触或觉得难以接受的思想。而在面向对象的教学中,重点突出面向对象程序设计的方法。如何针对具体的问题进行对象的划分和对象设计的过程。
由图2中的框出部分能很容易看出,对象内部的算法实现部分依然要用面向过程的方法设计。
2.3 教学手段
综合利用多种教学手段:多媒体+板书+网络;以多媒体为主,板书为辅,同时课外充分利用网络进行交流等多种教学手段;因为利用多媒体讲课可以图文并茂、形象生动、同时交互性好、信息量大等特点。对课程中难以理解的一些比较抽象的内容,可以给予直观展示和动态模拟,起到事半功倍的效果。比较在讲到指针变量概念时,说指针变量是指向同类型变量的变量,这个概念听起来很饶口,并且不好懂。通过多媒体讲解时,在给出一个指针变量赋值语句之后,紧接着用一个图形动态表明这个指针变量的内容和所赋值的那个变量之间内存地址的关系,然后用一个箭头动态表示出这种指向,学生很快就可以清楚明白的理解指针变量的含义了。传统的板书教学虽然速度有些慢,但是在讲解一些难点时,却可以作为必要的辅助手段。比如讲解算法的设计过程,由于放慢了讲解速度,正好可以方便学生理解和回味。另外由于课堂上时间总是有限的,当课余学生想和老师探讨问题时,就可以充分发挥网络的便利。学生可以利用电子邮件或QQ等给老师提问或留言,老师可以很方便及时的答疑解惑,这样也进一步促进和提高了学生学习的兴趣和积极性,加强了师生互动。
2.4 实验实训
现在一般学校都由于学时紧张,安排的实验课课时很有限,在这些规定的课时中只能针对所学的知识点进行相应复习、巩固和应用,而不能将相应知识点连贯起来,所以所有知识点都是孤立的,感觉很零碎。因此当他们遇到一个综合性应用或稍微复杂一点的问题时,就感觉无从下手。因此非常有必要在本课程学习完后,利用假期时间增加一个为期2周的小型综合应用项目的课程设计,比如图书管理系统或者成绩管理系统等。让学生把面向对象程序设计从分析、设计、实现到测试这个完整的流程走一遍,将所有的知识点综合起来形成一个系统性的知识结构。虽然是小型应用项目,但麻雀虽小五脏具全,使得学生有了一个整体设计的概念后,就不至于以后在工作中遇到一个实际应用的编程时毫无头绪。注意在实训过程中老师要给予必要的指导,但主要依靠学生自己完成。
2.5 学习习惯
凡是程序设计语言课,要想学好都无一例外的要求:多想、多写、多上机调试。因此从学生开始实习时多就要求他们养成这些好习惯。另外编程时,为了增加程序的可读性,为以后工作打下良好的基础,在书写程序时要求有良好的编程习惯。比如代码的缩进、必要的空格空格和空行;标识符的命名最好做到见名知义、简洁、易区分;变量名小写,宏和常量大写。对代码进行必要的注释等。这些看起来很简单的一些编程习惯,对增强程序的可读性有非常大的作用,但是平时学生为了图省事或方便都不愿意坚持这样做。因此在学习编程初期老师要坚持不懈的多强调这些问题。
3 结束语
针对目前学生学习C++程序设计教学中遇到的一些问题,进行思考和总结后提出了自己的建议。把这些建议的内容在近2届学生中贯彻和执行后,发现学生编程应用能力有较大的提高,学习积极性和主动性也比以前强。
参考文献:
[1] 温秀梅,丁学钧,李建华.C++语言程序设计教程与实验(第三版)[M].北京:清华大学出版社, 2012.
篇8
关键词 C语言 实验教学 任务驱动式
中图分类号:G424 文献标识码:A
C语言是通用的计算机程序设计语言。其数据类型丰富、表达能力强、使用灵活方便、生成目标程序设计代码质量比较高,对硬件也能直接进行操作,因此C语言将作为大部分高校的普遍程序设计的首选课程,也是其编程的基础性课程。学习程序设计必须具有语法规则、算法思想、数据结构和程序设计等方面的知识,C语言比较复杂,教学内容理论性较强,较难掌握,学生易产生厌烦情绪。以前C语言运行环境是以Turbo C2.0为主,现在虽然可以在VC++6.0运行环境下进行编程与调试,但是它的程序运行还不能完全可视化。就对我校高职计算机专业学生的具体调查发现:学完C语言后能熟练掌握、灵活运用的学生为10%左右,基本掌握的学生为45%左右,大部分学生还是不能掌握其编程技巧。为了提高和改善学生学习C语言的教学现状,根据C语言自身特点,探讨新的教学模式和教学方法。以促使提高该课程的教学效果。
1 根据人才培养方案,合理调整其教学内容
高职院校教育的目的是培养生产一线应用型和技能性人才,着重培养学生的学习能力、就业能力、工作转换能力和创业能力。高职学生的学习基础较差,逻辑思维能力较弱,想象空间较窄,因此,在学习C语言程序设计课程时,必须考虑学生的学习能力和基础能力,适当降低理论知识的难度和深度,力求教学内容浅显易懂。在本门课程的教学过程中一般要求学生掌握程序设计的三种程序设计的基本结构、数组、函数、指针等教学内容,对于其中过繁过深的知识,例如指针,结构体等,我们则可以进行取舍,使学生知道它们即可。对于重点、难点的教学内容必须进行详细讲解,使学生不仅掌握它们的理论知识,更能灵活编写类似程序以求解决生活中的实际问题。总之,教学目的是使学生真正掌握并力求能熟练灵活运用C语言进行编程。
2 重视培养模式,培养学生学习兴趣
传统模式下,C语言程序设计课程的教学内容一般则采用黑板式的教学方式来实现。大部分理论知识都要在教室来进行学习,很少在机房来进行程序的编写。C语言程序设计运行环境一般以Turbo C2.0为主,但Turbo C2.0的调试环境采用DOS模式,调试不是很直观,且操作采用命令和键盘来实现,界面不可视化操作使学生很不理解,因此会使学生失去学习的动力和学习的积极性。尽管C语言实用价值很高,但理论性很强的教学内容,很难引起学生的学习兴趣,如果我们再不讲究其教学方法,则难以达到本课程的培养目标。为了改变目前的教学现状,教师必须利用学院现有的教学资源对教学内容进行重新整合,改进以往单一、枯燥乏味的教学模式和教学方式,让知识变得有趣而生动化,从面提高学生的学习兴趣、学习的积极性、学习的动力和学以致用的能力。
3 合理利用多媒体技术,提高教学效果
传统的教学模式是利用黑板式教学手段在教室进行讲授C语言程序设计课程。特别是在讲解如何利用运行环境进行上机步骤、程序调试方法,程序运行过程和程序运行结果的查看等内容时,课堂教学则显得枯燥无味、不够清楚,也不直观,在这种教学方式下,大部分学生则会对C语言这门课程失去学习兴趣、学习的积极性、学习的动力和学习信念。高职院校多年来进教学改革和更新教学设施,基本上来讲,教学设备都比较齐全。先进的多媒体教学手段出现后,被广泛使用在许多课程的教学上,多媒体教学具有直观生动、图文并茂的优势,能够把枯燥无味的理论知识变得生动形象化。但先进的教学手段并不完全代表一定会收到良好的教学效果,教师则必需精心制作出适合自己课程的教学课件,把传统教学不能很好表达的教学重点和教学难点进行重新设计,并与传统教学有机结合,从而达到满意的教学效果。合理利用多媒体技术不仅可以加强学生的学习兴趣,也能激发学生的学习动力和求知欲,使学生真正体会到学习的快乐和满足。
4 加强实践环节,培养学生的编程能力
C语言程序设计是一门实践性很强的课程,学生不仅要掌握C语言的概念,语法规则,又要动手编写程序,并进行上机调试运行得出结果。所以培养学生的实际操作能力则显得尤为重要。在实践课的教学过程中教师必须做到:教师必须为每次上机习题做到精心挑选,认真对待,在实验内容上应做到有较容易的题目,也要有综合性较强的题目,题目要求不仅要顾全验证性、综合性和设计性实验的比例,也要做到使所学的知识内容进行整合,达到学习的系统化。学生在进行实验时,根据学生的学习能力和操作能力,将其分组来进行实验。实验过程中,要求学生根据实验内容再进行分解,教师正确引导学生学会运用正确的思维方法,由易到难,自顶向下,逐步求精,找出解题的关健,并且鼓励他们互相学习、大胆讨论,这样不仅能调动每一位学生的学习动力,也能加强团队精神的培养。
5 考试考核制度的改革
C语言程序设计课程的培养目标是学生的思维能力和实践能力,学生最终成绩评定也是体现学生在整个学习过程的主要评价,采用单一的试卷考试方式已经不能体现出学生的实际能力水平。我们对学生的要求不仅要考学生的知识水平,更注重考核学生的学习能力、知识应用能力、对问题的分析能力和解决实际问题的操作能力综合考评。即要更多地通过关注学生的学习过程,用可持续发展的方略去评价每一位学生,更好地体现评价的激励功能,使其做到促进学生学习的主动性和积极性。建议的考评标准为:理论占40%,实践技能占60%,或进行全国计算机等级二级C语言考试,凡通过者可获得一定奖励。
在目前信息社会中,计算机的应用越来越广,因此,高职院校的责任重大,学院在进行计算机教育中应依据培养目标提出不同的教学要求。使每一位学生在学习C语言时,都能由浅逐深、循序渐进地进行教学培养,教师在学生学习的过程中必须激发学生的兴趣,更新教学理念,充分利用、整合各种教学资源,注重教学模式和教学方法的探索,真正使C语言程序设计这门课程成为学生学习其他计算机编程知识的基石。
参考文献
[1] 张长海.以程序设计为主线为主线讲授“高级语言程序设计”课.计算机教育.2005(5).
[2] 谭浩强.C语言程序设计.清华大学出版社.2002(6).
篇9
关键词:C语言程序设计实践教学;课时统一化;小组竞赛;网络平台
中图分类号:G642.41 文献标志码:A 文章编号:1674-9324(2015)51-0224-02
在21世纪信息技术时代,大学生不能只满足于会用办公软件。为了迎接新世纪的挑战,无论计算机专业还是非计算机专业的学生,都应当学习C程序设计课程,并且把它当作进一步学习与应用计算机的基础。C语言作为一种程序设计语言,它功能强大、使用灵活方便、应用面广、目标程序效率高、可移植性好,既具有高低级语言的许多优点和特点,适用于编写系统软件,又能方便地用来编写应用软件[1,2]。因此,C语言程序设计作为第一门计算机语言教学显得尤为重要,且实际上它也日益受到各个高校的重视。然而,当今大学生在学习这门课程的过程中却出现了各种问题,如学不会、不想学、听不懂,这些问题逐渐地恶性循环,致使这门课程没有完全发挥出价值,形同虚设。所以,我们亟需大家探讨并发现问题,解决问题。
一、实践教学现状
C语言程序设计作为一门计算机基础教育课程,已经在各高等院校开设,现各高校普遍采用板书或多媒体讲解概念、语法、教材,然后让学生上机操作,这种方式存在弊端,致使大部分学生只能读懂程序而不会编写程序,甚至一部分学生变成程序代码的“搬运工”,与我们的教学目的背道而驰。根据目前的教学状况,C语言程序设计的教学存在以下一些问题。
1.学生的参与度不够。在传统的教学中,教师采用的是全板书形式,如今,多媒体普及,教师又改为全多媒体教学[3]。实际上,多媒体就是节省板书时间,但依然是教师照本宣科地讲,学生一头雾水地听这种陈旧的模式。一味地采取“填鸭式”教学,从头讲到尾这样被动的课堂,学生就是一名观众,没有参与到学习与思考中来,正因如此,学生注意力不集中成为一件高频率事件,等学生再集中注意力回归课堂,会发现对教师的话已经是不知所云,所以为了保证学生高效率听课,一定要让学生参与其中。
2.理论与实践脱节。现在,大多数高校普遍存在的一个问题是课时总量不够,时间安排也不适当,表现在师资力量匮乏,教学班级多,教学任务繁重。以笔者所在的学校为例,一个学期理论课共42个授课课时,26个上机实验课时,加上各种节假日,上课的时间少之更少。C语言程序设计是长期的、逐步深入的教学过程,依照现在的教学任务设置,教师要想按照考试大纲要求进行讲解,就只能加快教学进度,顾不上对实践内容进行详细讲解,结果导致学生的实际操作能力偏低,但若全部进行机房实践,又不利于学生掌握基本理论。而且,为了教学课程的安排,通常学生的上机实验课会比理论课晚两天左右,甚至周一理论课,周五才安排上机操作,不能将实验与课堂教学环节很好地进行连贯,导致理论与实践的严重脱节[4]。
3.实践与应用太少。学以致用是学生学习的最终要求,我们的教学目的是让学生可以运用所学的知识读懂程序、编写程序,然后去解决实际问题,而现在高校的大部分学生做不到这一点。目前,多数高校的学生学习C语言程序设计这门课程的学习方法非常不到位,即在课堂上,学生仅仅翻开教材,盯着讲台听课;在上机课上,学生也只是按照课本照搬程序。除此之外,在课余时间,学生们不巩固复习教材,也不看程序,更不会自己编写代码。如此下去,他们的实践能力不仅不会提高,反而极大地降低了他们对C语言程序设计的学习兴趣。
4.实践未得到及时反馈。由于课时紧张,教师不能将学生上交的实践报告或上机操作的实验结果及时地反馈给学生本人,以致于学生不能在第一时间对自己的错误或疑惑有进一步的了解与解决,造成学生盲目地学习,甚至不学习。但等到课堂上,教师也不能占用大部分时间去点评学生的实践结果而耽误课程的进展。另外,新的知识点讲完就会有新的练习内容,如此积累,工作量繁杂,学生对之前编程的细节也会慢慢忘记,更重要的是程度较落后的学生会出现知识的缺陷,长此下去,学习困难的打击会使学生的学习兴趣急剧下降。
二、教学方法
要解决上述问题,我们就要紧紧抓住学生的实践锻炼,重视实践教学,明确实践教学方法,才能使我们的教学目标达到事半功倍的效果。
1.课时统一化,采用多种方式考察。既然由于课时原因,全理论授课与全上机操作导致学生的参与度不够,理论与实践脱节,我们可以统一课时,即我们的C语言程序设计课程全部在机房授课。如今,机房设施完备,软硬件已足够完善,我们可以选择在机房授课,利用机房的多媒体与黑板,讲解理论知识,遇到需要学生动手的地方,可以让学生及时地动手操作。教师完全不用担心在授课时,学生玩电脑游戏影响听课,我们可以远程控制桌面,实时控制学生的电脑,进行各种操作,提高学生的听课效率。同时,系统还可以自动统计出勤率,比点名更加快捷,具有实时的监督作用。另外,教师再也不用担心学生由于近视问题而看不清多媒体屏幕。其次,这种机房授课以多种方式对学生学习状况进行考察,例如提出问题法、纠错奖励法、学生演示法、小测试法……提出问题法是指教师提出一些重点或难点问题,由学生来回答;纠错奖励法指教师给出某个算法或程序让学生去发现其中的错误并纠正,最快找出的学生给予小小的奖励,如一张精美的书签、一句鼓励的话语等;学生演示法指的是找一名学生到教师端编写一个小程序或某个算法中的易错点,以此找出学生的通病,引起大家的注意;小测试法是在课堂最后十分钟左右给学生发放一份提前写好的试题,两到三题即可,可以按照计算机二级等级考试模式编写,学生提交,系统直接核对,省时省力。这样多种方式进行考察,真实地反映学生对该节课的掌握程度,也让教师真正了解学生的学习情况,以便进一步开展教学工作。
2.小组竞赛法,模拟各种编程竞赛。为了激发学生的学习兴趣,增强学生的动手实践能力,可以采用小组竞赛的方法来加强学生对C语言课程的学习。整个班级可以自由分组,两到三个人一组,教师布置相应的编程题目,要求学生在规定的时间内上交,由教师来评分,选出程序最清晰、代码更简练的一组。在学期中后期,学生拥有一定的基础和能力的情况下,可使其参与评选过程,通过评选人员相互交流讨论,在提高被评学生编程能力的同时使参评学生也有所提高,即所谓的“教学相长”。除了进行班级内小组竞赛,还可以进行班级之间、专业之间集体赛。依然是先在班级中进行初选,再经过层层选拔与淘汰,指出各方的优缺点,最终评出优秀、良好等。奖项不是重点,关键在于让学生都参与到实践活动中来。通过以上各种形式的竞赛,可以提升学生对C语言的学习兴趣和编程能力。
3.网络交流法,建立多种网络平台。伴随网络化时代的到来,教师可以通过多种网络平台与学生交流、互动,及时指出并解决问题。如教师可以给每个班建立一个QQ讨论组、微信群,如果学生在课下时间有难题或者对课堂上的知识点有疑问,可以在第一时间通过网络交流平台和教师取得联系,以此使得“教学课堂”在时间和地域上得到无限制的延续。另外,通过网络平台,教师还可以给每个年级建立公共邮箱、论坛,用来分配任务、布置作业、共享教学资源等。更重要的是,教师可以把一些实践或实验发到网上,对学生的作品进行网上点评,把优秀的程序分享给大家,同时指出学生的不足之处,到网上,学生自行查收,及时地给学生反馈。另外,这些平台还可以作为学生们的“讨论网”,大家自由交流各自的学习经验与学习心得,成为学生在线学习交流、在线测试的途径。通过各种网络平台,使教师与学生、学生与学生的交流不受时间的限制、地点的约束,由学生自主地选择学习,从而解决教学时间不充足的问题,消除教师与学生之间在时间和空间上的距离感,进一步方便学生及时解决疑惑,及时得到反馈,取得更有效的学习效果。
本文探索的一些方法和改革创新是优缺点共存的。研究发现,采用以上多种方法相结合,一环扣一环的教学组织与管理,能保证学生学到一定的知识。没有最棒的方法,只有最适合自己的方法,我们做的就是尽可能给予学生指导,建立良好的学习氛围。但是,如果学生对自己不负责任,学生之间存在相互包庇、帮忙完成实验上机报告等问题,将影响整个教学效果。所以,教师要特别关注这些学生,经常鼓励、辅导他们,督察学习情况,特殊情况特殊处理,引导和帮助他们找到自己的学习目标和学习方法。C语言程序设计成为越来越多高校学生选择的课程,也是全国计算机等级考试的选择之一。我们要紧跟时代的步伐,不断更新教学内容,分析和探讨C语言程序设计教学过程中存在的问题,进行教学方法的改革,适应时代需要,做好十足的准备去迎接未来的挑战。
参考文献:
[1]谭浩强.C语言程序设计(第四版)[M].北京:清华大学出版社,2010.
[2]薛小锋.《C语言程序设计》教学方法探析[J].福建电脑,2004,(01):87-88.
篇10
关键词:C语言 教学内容 教学手段 教学方法 教学改革
学习计算机程序设计语言是提高人们计算机知识水平的重要步骤。C语言作为当今最为流行的程序设计语言之一,不但成为计算机专业的必修课,而且也越来越多地成为非计算机专业的学习课程[1]。但在《C语言程序设计》课程教学中,许多教师和学生都认为C语言涉及的概念比较复杂,规则繁多,使用灵活,容易出错,教师教学和学生学习都感到困难,并不同程度产生畏难心理[2]。特别是多数高校将C语言作为计算机专业学生进校后首先接触的第一门专业基础课,这种现象尤为明显。笔者根据多年的程序设计课程的教学实践,对《C语言程序设计》课程从教学内容、教学手段、教学方法等方面进行了大胆的改革,并取得较好的教学效果。
1 教学内容的改革[3]
1.1 课堂教学内容的改革
以福建省高校计算机系列教材《C语言程序设计与应用教程》为例,教学内容主要包括C语言语法基础、程序控制结构、数据类型、指针、函数、文件以其它们的应用等。教材在内容组织上,虽然依逻辑思维方式进行了归类,但难点还是较为集中,跨度大;概念讲得多,分析少;语言深硬,不够形象,较难理解。虽然教材在各章节也举了一些编程例子,但多数难度较大,适用性不强。笔者本着“深入浅出,突出实用”的指导思想,在课堂教学过程中,对教学内容重新进行了归纳,将难点再次分散,以缩小台阶,达到循序渐进。例如,C语言数据类型、运算符、表达式种类繁多,放在一块讲授,学生学习起来难度较大,于是笔者就刻意将算术型的数据类型、运算符以及相关的表达式先介绍,使学生学习起来没有想象中的那么难。紧接着又教学生编写简单的、实用的C程序设计,然后趁机引入基本输入、输出函数就顺理成章了。这样一来台阶小了,学生的信心也增加许多,学习积极性很快就被提高起来。对于深硬的语言叙述,笔者则改用生动的比喻,进行详尽引导。譬如,在开始学习指针的概念时,教材对“间接存取”叙述比较深硬,学生难以理解,笔者就借用比喻:将A房间的钥匙放在B房间里,若要取A房间里的物品,就需要先打开B房间,取出A钥匙,再打开A房间,取出A房间的物品,这就是“间接存取”。学生很快就能理解,也加深了指针的概念。在教学过程中,笔者还及时查阅英文版教材和有关报刊杂志,对较难理解的概念,用不同的方式给以解释,甚至直接引用英文原版教材内容。
1.2 实验教学内容的改革
计算机语言教学的主要任务是培养学生具有一定的阅读程序、设计程序的能力,分析问题、解决问题的能力和逻辑思维的能力。而C语言程序设计是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行[2]。因此,C语言的教学特别需要重视实践环节,包括编程和上机实验。为了突出实践教学,培养学生的知识应用能力,笔者对实验内容进行了较大的改革,一方面保留基础性实验,例如:三角形面积计算、求一元二次方程的根、各类三角图形的绘制、简单的排序算法等基础编程实验。使学生能够较顺利地通过实验,并及时理解和消化课堂教学内容,学生也会获得一定的成就感,学习热情会进一步得到提高。另一方面,增加一些实用性强的、难度略大的实验,并组织学生讨论,通过讨论得出算法流程,然后上机编程调试。例如:要求分别用数组与指针,将一个字符串中的所有英文字母取出,并转为大写,然后再将它们倒序存放。做这个实验之前,学生先通过讨论,分别得出使用数组与指针进行读取英文字母及倒序存放的算法流程图,然后上机实验。这样一来,一方面有利于培养学生对知识的应用能力与问题的分析能力,更主要的是也培养了他们协作能力。另一方面通过用数组与指针不同的解题方法,有利于学生加深对所学知识的理解,让学生真正体会到C语言的灵活性,激发学生的求知欲。
2 教学手段的改革
在教学过程中,运用多媒体技术辅助教学,有利于激发学生的学习兴趣,能发展学生的主体能力;同时由于多媒体信息量大,也能够优化教学过程[4]。但多媒体辅助教学也有不利之处,主要体现在不恰当的使用会分散学生注意力,影响主要问题的理解,也不利于发挥学生的想象力,影响师生之间的情感交流。在C语言程序设计课程教学过程中,笔者考虑到课程的特点,扬长避短,将传统教学与多媒体教学进行了有机的结合。例如:由于C语言的数据类型、变量类型、运算符、程序结构等,它们的定义、概念较多,又没有深奥的理论,也没有多少逻辑推理,所以笔者就采用多媒体教学。在教学过程中,事先将概念、大信息量的案例代码制作成课件,在课堂做展示供学生增加信息量用,也简化传统教学无法板书的缺点,课堂教学也不再显得枯燥无味。但对于案例分析或程序的编写过程,笔者就发挥传统教学的优势,进行课堂讨论、板书讲解、结合提问,将问题层层剖析、层层深入,达到师生互动的效果,学生的想象力就会得到充分的发挥,对问题的理解也变得更容易。另外,笔者也充分利用网络资源,将电子教案、大纲、课件、习题等放在网上,供学生自行调用,同时通过Email、QQ对学生的提问进行答疑、讨论,以弥补课堂教学的不足。
3 教学方法的改革
在C语言课程教学过程中,一方面要求教师能够准确把握授课内容,同时也要求教师注意应用相应的教学方法,以此提高教学质量。以下是笔者在几年的C语言课程教学中采用的一些教学方法。
3.1 问题探究教学法
问题探究教学法在C语言教学中是一种相当有用的教学方法。这种教学法能够充分发挥学生的思维,突出学生的主体作用,能有效地培养学生的分析问题与解决问题的能力。以“冒泡排序”为例,笔者没有平铺直叙地介绍算法与程序代码,而是先跟学生讲解什么叫“冒泡”,然后让学生思考冒泡排序的算法思路,进而让学生讨论并写出算法流程图,接下来讲解如何用for与if程序结构实现算法,最后才讲解为了减少交换次数而引入swap这一判定变量,直至整个程序编写完整。整个讲解过程结合板书,逐步引导,层层深入,取到很好的教学效果。
3.2 归纳教学法
C语言有很多的定义、概念、语法规则,它们使用灵活、难以记忆,也特别容易出错。如果能够引导学生进行归纳,将会起到事半功倍的效果。C语言的定义、概念、语法规则有许多相似的地方,例如:printf()与scanf()函数,有很多语法规则是一样的,对它们进行归纳之后,学生只要记住其中一个,另一个自然就会使用了。又如:数组与指针,由于它们使用灵活,许多学生与教师都认为它们很难,尤其是指针。但如果对它们进行归纳之后,就会发现无论是二维数组,还是指向指针的指针或其它类型的指针,它们都会变得与一维数组的使用一样容易。为了这些归纳便于记忆,笔者还将它们编成了顺口溜,例如二维数与各类有二重地址的指针归纳如下:数组名与指针名代表二重地址,即无“*”也无“[ ]”加减数值对行操作;仅有1个“*”或“[ ]”代表单重地址(即行地址),加减数值对列操作;“*”与“[ ]”加起来有2个就是元素值。
3.3 讨论教学法
在C语言教学过程中,充分发挥学生的积极性与主动性是非常重要的一环。笔者针对这门课程的特点与学生的兴趣,课前给学生布置了几个专题,让学生利用课余时间去思考、收集资料,并在课堂上组织学生发言和讨论。这种教学法不仅可以让学生获得许多课外知识,同时也促进教学内容的改革,而且也有利于充分挖掘学生的学习潜力。
3.4 因材施教法
由于学生学习的动机、兴趣、能力存在较大的个体差异,所以决定了C语言课程必须因材施教。对于学习能力较强的学生,笔者就鼓励他们自学,并给予方向性指导,让他们超前学习。在C语言教学中,培养学生的自学能力尤为重要,如果学生的学习完全依赖教师才能掌握,而没有一定的自学能力,其所学的知识很快就会被淘汰。对于多数学生,则把精力放在最基本、最常用的内容上,让他们学好基本功,掌握程序设计的方法,为后续课程的学习打下基础。另外,教学过程中,笔者还不时地从学生的角度来考虑问题,讲解内容,加强师生的互动效果,以降低学生学习的焦虑情绪。
3.5 实践教学法
学习程序设计课程的目的是掌握设计程序的思路,学会用计算机语言编写程序,以实现所需处理的任务[2]。因此教学重点要放在解题的思路上,通过大量的实践让学生学会怎样设计一个算法,构造一个程序。笔者一开始,让学生编写简单的程序,然后逐步深入。在实验题目设置上,根据课时安排以及要掌握基本知识,设置必做与选做题,以满足各个层次学生的需要。在本课程结束后,安排一次综合的大实验,培养学生综合应用能力。
3.6 综合考核法
衡量这门课学习的好坏,不是看学生“知不知道”,而是“会不会干”。考核的方法不能主要用是非题和选择题,而应当把重点放在编制程序和调试程序上[2]。所以笔者对学生学习成绩的评定,采用综合考核法,将平时的实践成绩与期末卷面成绩进行综合,得出本课程综合考评分。这种教学法,不但能更客观地反映学生的学习情况,同时也能促进学生学习,起到很好的教学效果。
4 结束语
上述教学内容、教学手段与教学方法的改革,是根据实际教学过程中学生存在的问题提出的,并已经在《C语言程序设计》课程教学实践中运用,取得了良好的教学效果。当然,同样的教学内容面对不同的学生,在使用与设计某种教学方法时,还要求学生的配合才行,也就是说教的方法与学的方法要有机统一。笔者将继续努力探索,使《C语言程序设计》课程教学日趋完善。希望本文能对大学计算机基础教学有一定的借鉴作用。
参考文献:
[1] 严桂兰.C语言程序设计与应用教程[M].福建:厦门大学出版社,2001
[2] 谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,2005