计算机程序设计语言范例6篇

计算机程序设计语言

计算机程序设计语言范文1

关键词: 程序设计语言; 建构主义教学模式; 支架式教学; 知识建构

中图分类号:G424 文献标志码:A 文章编号:1006-8228(2012)12-56-02

Computer programming language and scaffolding instruction

Pang Erli1, Wang Xin2

(1. College of life science, Beijing Normal University, Beijing 100875, China; 2. Beijing Capital international Airport., Ltd. IT Department)

Abstract: Programming language is an absolutely necessary sector, and a suitable teaching method is a key to grasp it fleetly and exactly. Scaffolding Instruction in the teaching mode of constructivism is a suitable teaching method, which decomposes a complex task and gradually guides students to understand deeply and completes construction of information actively. Constructing scaffolding, creating situations, independent exploring, evaluating effects, and so on are used in the teaching process. The results prove to be good and show good prospects for development.

Key words: programming language; the teaching mode of constructivism; scaffolding instruction; knowledge instruction

0 引言

在大学生计算机教学实践中,计算机程序设计语言经常被学生看作是一门难以掌握的课程,师生在教学实践中往往付出很大努力,却不能达到预期的效果。在从事这门课程的教学实践中,我们认识到寻求合适的教学方法是取得良好教学效果的关键。例如,建构主义模式下的支架式教学符合程序设计语言的特点与学生的认知规律,是讲授这门课程的恰当方法,我们在教学实践中应用支架式教学方法,取得了很好的效果。本文将相关的理论研究与实践教学相结合,探讨了计算机程序设计语言课程的教学方法。

1 支架式教学与计算机程序设计语言

建构主义教学模式是指教师利用情境、协作、会话等手段,以学生为中心,充分调动学生的主动性与探索性,最终达到学生对所学知识的建构。这种教学模式改变了传统教学模式中学生被动接受的状态,以学生为中心,教师也由传统的知识传授者变为学习的组织者、指导者、帮助者和促进者。

支架式教学是建构主义教学模式下比较成熟的一种教学方法,它要求教师改变向学生笼统灌输知识的方式,而以引导者的身份,为学生在理解所要掌握的知识之前,设计一种概念框架,这种概念框架就像建筑中的脚手架,它为学习者进入所学知识提供了一个基本的视角与工作平台,可以有效地帮助学生进入到对知识的理解,即把复杂的学习任务加以分解,将其类型化、结构化、规约化,从而把学习者的理解逐步引向深入。在这种教学方法下,教师的作用是引导、组织开展教学,使学生在所建构的支架模式上掌握和内化所学的知识技能,进而使学习者进行更高水平的认知活动。

计算机程序设计语言作为一种面向计算机用户的语言,同我们的自然语言有其一定的相似性,即具有一定的语法规则和语意规定。我们教学的目标主要是使学习者掌握这些基本的语法规则和语意规定,从而驾驭纷繁复杂的计算机语言工具,最终获得能够独立编写程序和解决实际问题的能力。对于这些复杂的语法结构,教师在教学中可以效仿自然语言的结构,对计算机程序设计语言加以分解从而建立框架,逐步引导学生完成对知识的自我建构。

2 支架式教学方法下的计算机程序设计语言教学过程

支架式教学强调,知识是在一定的情境下,借助教师等他者所提供的基本支架的帮助,学习者发挥自己的学习主动性,以基本支架为知识掌握的内在脉络,逐步完成学习任务,达到预期目标。这种教学方法体现在计算机程序设计语言的教学过程中由以下环节组成。

2.1 搭脚手架

搭脚手架是支架式教学展开的基础,合适的脚手架是学生建构知识的有效工具。脚手架的设计必须具有层次性、逻辑性,所谓层次性是指其具有不同等级的结构,所谓逻辑性是指不同等级的结构具有内在的必然联系。

在教学实践中,我们所搭建的脚手架是以学生的已有知识为依据,即与学生已有的母语——汉语的知识联系起来,按照汉语划分为字、词、句、章的语法结构,把计算机语言也归结为字、词、句、章的结构,这样,“字、词、句、章”的逻辑结构就成为计算机程序设计语言教学中的脚手架。这样一种“字、词、句、章”式的分解方法是本人多年从事计算机程序设计语言教学实践的心得,由于它来自于学生的母语——汉语自身的语法结构,因而很容易为学生所接受并运用到对计算机程序设计语言的学习中去,而良好的实际教学效果也充分地证明了这一点。

2.2 创造情境

情境是支架式教学展开的环境,是学生对知识建构的基础。但情境的创建是为学生的知识建构服务的,所以,教师创建情境时必须紧紧围绕主题,根据脚手架上的不同点,创建不同的情境。

在教学中情境的设计,我们是根据脚手架上的每个点展开的,对于“字”这个点可以展开基本数据类型的教学,“词”这个点可以展开复合数据类型的教学,对于“句”则可进行基本控制结构的教学,“章”是建立在以上基础上的综合应用。在每个点中都有意识地设计了一些相应的问题、任务,提供相应的资料、数据支持,形成有助于学习的特定情境。

2.3 独立探索

在支架式教学模式中,作为引导者、组织者的教师提供的概念框架是学习的前提,平台一旦确立,学生在其上展开的独立探索就成为中心内容,调动、发挥学生的学习主体性进而完成对知识的建构,这才是支架式教学模式的根本目的。

在教学中对于脚手架上的每个点,都要给学生一些程序资料,让学生独立去阅读、分析,指明程序的优点与不足以及对其优化的方法,同时还需布置一些编写程序的任务,要求学生自己编写程序,并对自己的程序进行评价。总之,我们通过任务驱动的方法促进学生进行独立探索。

2.4 协作学习

协作学习是支架式教学展开的重要方法,是学生知识建构的重要保证。由于不同人看到的是事物的不同侧面,进而对事物的理解也不同,学习者以自己的方式建构对于事物的认识时,不存在惟一标准的理解,通过学习者的协作学习可以使其对事物的理解更加全面。

在教学中注重通过布置协作学习任务,强迫学生进行协作学习。如其中一个协作任务是这样设计的:编写一个学生成绩管理管理系统,其中需要完成四项目标:①输入学生的基本信息与各科成绩并保存到一个文本文件中;②从文件中提取学生成绩,统计平均分;③对所有学生按平均分进行排序;④任务完成后要求以Word文档上交。这四项目标分别由不同学生或不同小组学生完成。这个学习任务中的四项目标是相互衔接的,后续项目必须以之前项目的结果为基础,所以,不同学生或不同小组之间的协作学习就是必须的。正是通过这样一些协作学习任务的布置,做到了以强迫的方式帮助学生建立协作学习的意识,进而使协作学习成为自觉的学习方式。

2.5 效果评价

效果评价是支架式教学展开的动力,是对学生知识建构程度的评价。对学习效果的评价,包括学生个人的自我评价和学习小组对个人的评价,评价内容包括:①自主学习能力;②对小组协作学习所做出的贡献;③是否完成对知识的建构。

在教学实践中采用的评分规则是:个体所得分值=小组得分*(个体在组内得分/小组内所有个体得分的平均值)。小组得分是任务评比所得的结果,是小组间竞争和小组内合作的结果。任务评比时,每个小组对自己的任务进行汇报时,其他小组和教师对其打分,其所有分值的算术平均数作为该小组最后的得分;成员的组内得分则是在组长的组织下,由所有的成员对其打分,取算术平均数。

通过上述环节在教学过程中的实施,基本实现了教材、学生、教师、媒体教学四要素之间的良性循环,如图1所示。

3 反思

在教学实践中使用了支架式教学方法,虽然取得了一定的效果,但也遇到很多问题,其中既涉及到如何完善这种教学方法本身,又涉及到其与教学内容、教学大环境等的关系,这里提出自己的几点体会:

3.1 强调以学生为中心

学生的主动探索性是知识建构的关键。在支架式教学方法中,学生是知识的主动建构者,而不是被动接受者,教师也不再是传统的知识传授者。在整个教学过程中教师起组织者、指导者、帮助者和促进者的作用,教师必须注意这种角色的转变与指导尺度的把握,要因势利导而不要越俎代庖。

3.2 注重情境设计的具体性

情境是影响知识建构的外在氛围,形成主题集中、形式活跃的总体情境对于教学任务的完成是非常重要的,但情境最终是为特定的教学任务服务,是在支架下教学的总体模式下展开的。因此,教师对情境的设计必须围绕学生所要建构知识的主题,要和支架式教学模式的具体要求结合起来。

3.3 注重人际互动

人际互动是影响知识建构的社会环境,通过教师的指导实现师生互动,通过学生的协作学习实现学生之间的互动。但人际互动的完善仅有具体课程、具体教学模式是难以完成的,它有待于总体社会环境、教育环境的完善,也有待于学生自身素质的总体提高。

3.4 广泛地利用学习资源

学习资源是影响知识建构的文化环境。多媒体计算机和Internet网络教育是建构主义发展的沃土,是理想的认知工具。在这个环境下,学习资料非常丰富,我们必须充分利用这些资源,即要充分利用e_learning。但资源丰富的同时,必然会存在良莠不齐,教师必须帮助学生对这些资料加以甄别。

4 结束语

我们在计算机程序设计语言教学中应用建构主义模式下的支架式教学,已经取得了很好的教学效果。我们通过实践检验了这一教学理论,希望我们的经验对同行有参考价值。在未来的教学实践中,我们将进一步细化这种教学模式,提高计算机程序设计语言这门课程的教学质量。

参考文献:

[1] 何克抗.建构主义的教学模式、教学方法与教学设计[J].北京师范大

学学报(社会科学版),1997.5:74-81

[2] 陈琦.教育心理学的基本问题(二)—关于建构主义理论[J].中国远程

教育,1999.2:40-43

[3] 袁维新.影响知识建构的环境因素探析[J].教育科学,2003.2:41-44

[4] 张屹,祝智庭.建构主义指导下的信息化教育[J].电化教育研究,

2002.1:19-23

计算机程序设计语言范文2

非计算机专业 学习潜能 学习兴趣 创新

众所周知,全国计算机等级考试二级考试中之一就是C语言,而且随着时代的发展,在许多高校中除了计算机专业开设C语言课程外,对于非计算机专业也开设了这门课,C语言的教学是计算机教学中的重点和难点,能够体现学生的逻辑思维能力和推导能力,提高学生的分析问题和解决问题的能力。那么对于计算机专业的学生都感到学习有难度的课程,对于非计算机专业的学生应该如何讲课才能让学生爱学并去轻松掌握知识呢,以下是笔者的一些见解。

一、激发学生学习兴趣

很多学生认为C语言这门课难学,对于非计算机专业没有什么用处,学习没有动力,这些问题不容回避。所以在讲课开始时应该让学生明确学习C语言的重要性和实用性:C语言在高级语言中有着举足轻重的作用,与C++、C#、VC关系极为密切,可以开发学生的逻辑思维并提高其推导能力为学习其专业课程打下良好的基础。通过学习程序设计,学会进一步了解计算机的工作原理,更好地理解和应用计算机;掌握用计算机处理问题的方法;培养分析问题和解决问题的能力;具有编制程序的初步能力。即使将来不是计算机专业人员,由于学过程序设计,理解软件生产的特点和生产过程,就能与程序开发人员更好地沟通与合作,开展本领域中的计算机应用,开发与本领域有关的应用程序。另外在讲课的时候可以用学生比较熟悉,比较感兴趣的问题去讲解内容。比如说,讲课的时候把函数的首部比作人的“头”,把函数的函数体比作人的“身体”,学生就比较容易接受。再有讲解经典实例——Fibonacci数列时,引用“兔子的繁殖问题”,学生就比较感兴趣,从而喜欢学了。还可以在学一个新的知识体系前,用这些新知识设计一些可以吸引学生的实际例子。比如,在讲授选择和循环结构时,可以让学生做一个“猜数”游戏,学生觉得有趣,听课的兴趣明显提高。学生对C 语言课感兴趣了,学起来就有了动力,教起来才能事半功倍。实践表明,在学习C语言的过程中有的学生反映学习C语言比学习计算机基础要简单,可见激发学生的学习兴趣是多么的重要。

二、激发学生学习的潜能

在教学过程中,通过各种教学方式和手段激发学生的学习欲望,使其积极投入到学习活动中,发现问题,提出问题,并逐步解决问题。例如,在讲解实例时,不是简单地给出程序清单,而是从分析问题入手,找出解决问题的方法,再给出算法,最后编写出完整的程序,经过编译、链接、运行从而得出最后的结果。而在这一过程中,较关键的是每一步都采用与学生一起探讨的方式,让学生在启发下思考,在思考中解决问题,也让其在解题过程中体验到自己的成功感受,从而掌握独立分析问题、解决问题的方法。为培养学生综合应用知识的能力,通过对完整的项目的系统分析,培养学生良好的编程习惯,善于获取他人经验的能力以及掌握综合运用所学知识的能力,从而真正提高编程水平。

三、培养学生的算法思想

C语言教学的目的,不仅要使学生掌握语言的基本规则,更要切实提高其编程解决实际问题的能力和实现算法的能力。在学习C语言这门课的过程中,算法的培养尤为重要,算法即为了解决某一个特定的问题而采取的方法或步骤。算法是灵魂,不掌握算法就是无米之炊。因为程序代码的编写过程实际上就是将事先的求解思路用C语言的语句来加以实现的过程。没有求解思路,那么得到的肯定是一个错综混乱的程序代码。所以正确的求解思路就是必要的,如果求解思路不正确,那么必将得到一个错误的程序,所有的一切必将付之东流。所以在讲C程序语言课时一定要强调算法思想,并且贯穿整个讲课的始终。

四、培养学生的创新意识

C语言是一门理论加实践的课,只有满腹经纶,不能解决实际问题,必须上机实践,只有通过上机操作让学生将书写的程序代码上机运行调试并得到预期的结果才算真正解决问题,才算是真正掌握了一门技巧,也才能使学生真正理解、真正消化课堂上的理论知识,因此要以应用、实践为目的,注重培养应用能力,大力加强实践环节,激励学生创新意识。教学中坚持上机实验课与理论教学课相结合,使上机实验与理论教学协调同步,特别是时间、内容上要衔接好,讲完课要及时上机并保证上机效果,需要特别强调的是,要先讲课后实践,而且两者相隔时间不能太长,时间长学生早已把课上听到的内容忘记,所以要及时上机实践,多实践是学习掌握C语言的必经之路。对于同一个问题,可以让学生分组进行思考,让其考虑不同的方法来解决,最后通过讲解评比,让学生互补所长,互补所学,从而提高了学生的学习动力,培养了学生的创新意识。

五、运用丰富的教学方法

为了让学生更好地学习好C语言,培养学生逻辑思维和创新能力,在教学过程中,要通过各种教学方式和手段激发学生的学习欲望,使其积极投入到学习活动中。例如,在讲解程序设计举例时,不是简单地给出程序清单,而是从分析问题入手,继而找出解决问题的方法,再给出算法,最后编写出完整的程序,编译、链接、运行到测试的整个过程,特别是调试中增加输出,变难为易,环环紧扣。而在这一过程中,较关键的是每一步都采用与学生一起探讨的方式,让学生在启发下思考,在思考中解决问题,从而掌握独立分析问题、解决问题的方法。而对于比较简单的问题,我们可以提出问题,以学生独立完成为主,教师只提供必要的辅导,培养学生探索问题和解决问题的能力,更有利于创新能力的培养,也充分调动了学生学习的主动性和积极性。

再有,充分合理地利用多媒体课件,也可以达到事半功倍的效果:课件上要合理选择教学内容,制作要突出中心,避免从书本上摘抄大量文字或图片。课件中可适当加入Flas等,吸引学生注意力,让学生对课件上的内容产生兴趣,有利于知识的掌握。

总之,我们在非计算机专业不仅要开C语言课,而且还要把它上好,通过讲解这门课让学生掌握求解问题的方法,锻炼学生的各种思维,不仅让他们在学习上有收获,而且在处理问题、解决问题上也是受益匪浅。

参考文献:

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

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

[3]张海玉.C 语言程序设计教学方法探析[J].太原:财政税务专科学校学报,2006,(8):72- 74.

计算机程序设计语言范文3

关键词:C语言 教学方法 考核

《高级语言程序设计》是高校非计算机专业的一门计算机类必修课程,由于程序设计教学自身的特点,学生在学习的过程中难免感到枯燥、难懂。因此在教学过程中,如何使学生感受到程序设计的魅力,找到一条新颖有趣的教学方式,选择恰当的教学方法,一直是广大计算机教师不断思考的课题。我校以C语言作为《高级语言程序设计》的目标语言进行教学设计,本人在多年的教学实践中,努力探索新的教学方式,认真研究不同的教学方法,大大提高了学生的学习积极性,取得了一定的教学效果。下面探讨一些心得体会。

一、精心进行教学设计,做到理论与实践并重

对于非计算机专业的学生来说,很多学生在开始接触《高级语言程序设计》课程时,由于对C语言认识不深刻,认为C语言过时了,不值得学,学习积极性不高。因此在进行教学设计时对教学内容与教学方法要进行精心设计,不能只是单纯的讲授C语言的语法,而应将理论教学与实践教学并重,并将之紧密结合、互相促进,提高学生的积极性,以求达到最佳教学效果。在实际教学中应充分发挥C语言解决实用问题的导向作用,将枯燥的理论生动演绎为解决问题的利器,通过设计巧妙的教学内容,充分调动学生的积极性,让学生的思维围绕教师的思维活动。通过一些有趣实用的题目去诱导学生学习,给学生的思维中留下一定的期望与神秘感,促使学生驱动自己的好奇心,从而充分调动学生主动学习的欲望。

二、不断改进教学方法,多种手段并用

要取得良好的教学效果,仅仅进行教学设计是远远不够的,还要结合灵活多变的教学手段进行教学,让学生真正参与教学过程,真正做到“学为主体,教为主导”。

1. 讲授演示教学法

讲授演示教学法是在传统教学方法的基础上,进行适度的改良,以学生对具体知识和技能的掌握作为主要目标进行教学的方法,它主要由以下四个步骤。

首先由教师导入问题。教师在了解学生已有的知识结构、专业水平的基础上,由简单问题导入新的教学内容,让学生感受到新知识在解决实际问题中的作用,从而激发学生对新知识的学习兴趣。

第二步,教师进行讲解演示。教师通过自己深入浅出的讲解,要让学生理解新知识的应用原理,做到“知其然,并知其所以然”;然后演示操作步骤,详细说明操作的实现过程。

第三步,学生自主实践。按照教师的演示讲解,学生自己动手实践新知识的应用,教师从旁指导答疑,让学生真正理解掌握新知识。

最后进行总结练习。教师对整个教学活动进行归纳总结,突出教学重点、难点,同时了解学生对新知识的掌握程度。在此基础上,由学生自己通过练习,逐步对新学知识达到完全掌握和熟练运用。

2. 范例对比教学法

范例对比教学法是指根据典型的例子采用不同的解决方式进行教与学,使学生能通过实例来掌握新知识。例如:编程求1+2+3+……+100之和,这是循环语句典型的求累加的问题。针对这一问题,即可以采用while、do-while语句来实现,也可以采用for语句来实现。通过同一问题的三种实现方法,让学生掌握三种循环语句的原理、特点和用法,了解它们之间的相同点与不同点,以及三种语句的使用范围等知识点。

范例对比教学法以精选出的程序实例为中心,把学习的重点放在实例的讲解上,把要学习的语法结构和概念融入到具体实例中,整个教学过程中强调学以致用,避免了枯燥、繁杂的理论说明,不仅增进了学生的学习积极性,同时对提高学生综合分析能力和解决实际问题的能力有很大帮助。

3. 探讨式教学法

探讨式教学法是教师在教学中根据教学要求和重难点设计问题,学生在教师引导下参与课堂研讨,分析问题、解决问题,从而启发学生思维并培养学生能力的一种教学方法。在C语言程序设计教学中,探讨式教学法能够突出学生的主体地位,充分发挥学生的主观能动性,有效地培养学生分析问题与解决问题的能力。

当然,在实际教学过程中可采用的方法还有很多,如案例教学法、研讨式教学法等,正所谓“教学有法,教无定法”,端看你怎么使用。只要能取得良好的教学效果,完全不必拘泥于任何一种教学方法,多种手段并用。

三、提高学生操作能力,充分利用实践课

《高级语言程序设计》是一门实践性非常强的课程,对于非计算机专业的学生来讲,实践课的课时安排普遍不足,因此在教学过程中要充分利用有限的实践课时间,尽可能地提高学生的操作能力。而教材上的例题、习题基本以算法设计为主,内容枯燥不易编写,学生上机积极性不高,程序设计过程的成就感不强,因此在实践内容的安排上不能简单的让学生照抄或直接编写程序。在实验过程中,可以让学生先做基本的实验,通过实验理解课堂上所学习的理论知识;再通过验证书上的例题,理解并掌握程序设计的步骤,进而能自己进行课后习题的程序设计;最后通过一些算法设计与过程设计相结合的提高性实验,一步一步的提高学生的实践应用能力。

对每一个知识点,可以设计一些紧扣知识点的相对简单而趣味性强的问题,学生在实验时由浅入深,循序渐进,每次实践都能有收获,这样将极大地提高学生编写程序的积极性。在此基础上,再布置相对复杂一些的算法设计问题,学生就能够有信心有能力综合应用所学知识进行设计,解决问题。当然趣味性的题目只是培养学生兴趣的手段,要真正让学生学好C语言,关键还是让学生充分掌握运用C语言解决实际问题的能力。因此无论在课堂上讲的例题,还是课后布置的作业,都可以设计一些与专业相关的实用性较强的题目,来培养学生的创新能力和自主学习能力。

当然,一门课程的教学效果如何,除了教师的精心组织和讲解之外,学生的学习积极性也是一个关键。只有教师和学生共同努力,充分互动,才能切实提高教学效果,才能真正让学生学有所获,才能避免理论与实践脱钩,也才能充分调动学生的积极性。

参考文献:

[1]牛继来.C语言程序设计初学者入门方法探讨[J].电脑知识与技术,2011(31)

计算机程序设计语言范文4

>> 非计算机专业VFP程序设计语言教学实践与探索 计算机专业程序设计语言类课程教学改革的思考 计算机专业学生C++程序设计语言教学模式研究 高职非计算机专业《C语言程序设计》课程的教学研究 “计算机程序设计语言”教学刍议 计算机专业程序设计语言课程浅析 大学计算机专业C与C++程序设计语言开设探讨 非计算机专业程序设计语言教学方法探讨 高校非计算机专业VFP程序设计语言教学探讨 计算机程序设计语言类课程的教学要点分析 中职计算机程序设计课程教学探讨――以Visual Basic程序设计语言为例 支架式教学与计算机程序设计语言 在程序设计语言中使用双语教学研究初探 浅谈计算机程序设计语言的课程改革 “C语言程序设计”与计算机相关课程的融合教学与实践 高校计算机类专业C语言程序设计教学改革尝试 大学计算机程序设计语言教学的几点思考 探讨计算机程序设计语言教学 有关高职计算机程序设计语言教学的探索与思考 成人教育计算机专业程序设计课程实践教学思考与探索 常见问题解答 当前所在位置:l.

[2]教育部.关于加强高等学校本科教学工作提高教学质量的若干意见(教高[2001]4号)[EB/OL].[2001-08-28]..

[3]高洁,张德升.教育国际化背景下高校双语教学有效性的反思与重建[J].教育探索,2016(10):61-64.

计算机程序设计语言范文5

关键词:C语言;课程体系;融合教学;融合实践;卓越工程师计划;ACM/ICPC

C语言程序设计既是高等学校一门重要的公共基础课程,也是计算机专业的一门专业基础课。由于逻辑性和实践性强,使该课程的教学和实践存在一些误区,主要表现如下。

1) 学生不清楚本专业的特点。多数高校将本课程安排在大一的第一学期,由于对于本专业的课程体系了解不够,导致新生对各专业特点混淆不清,有的学生去报考计算机等级考试,结果有的还不如非计算机专业的学生,致使一些学生学习消沉。我们通过和学生谈心,得知不只是大一有这种现象,大二的学生甚至也存在这种心理[1]。

2) 学生学习本课程目的不明确,兴趣不高。在教学中,有不少学生问,既然C#和Java是现在的主流编程语言,为什么还要让我们学习C语言?所以我们在第一堂课介绍计算机语言发展时,将C语言和其他语言作比较,强调C语言是当前程序员共同的语言,它使程序员互相沟通,比流行语言都更接近机器。C语言更适合解决某些小型程序的编程,在编写底层的设备驱动程序和内嵌应用程序时,往往是更好的选择。有了C的基础,在需要时进一步学习其他语言,也是很容易过渡的。当然,第一堂课上,我们把重点放在培养学生的兴趣上,所以会用1个学时去展示历年实训的优秀作品,这些作品都是完整的系统,除了包涵基础知识,还有高级技术。我们向学生灌输学习这门课程的境界:Beginner―Advanced―Professional。

3) 任课教师对课程的定位、理解和把握不够。老师只有有一桶水,才能教给学生一碗水,教得了学生不等于教得好学生,学生的评教正说明了此问题。

通过实践,我们对计算机专业本课程教师的要求是:“复合型”的教师――既要精通这门课程,还要有3年以上实际项目开发经验,并且非常熟悉计算机其他学科的知识,而“教师的成功在于培养出值得自己崇拜的人[2]”。

因此,我们对本课程的定位是,以程序设计为中心,掌握语法,了解算法,重在算法的实现――编程。算法是灵魂,语法是基础,编程是中心。处理好三者的关系,直接决定了教学的成败。

算法尽管重要,但本课程不是算法设计课程,不可能过多地介绍算法,更不是在研究算法。我们要在学生学习编程的过程中,介绍相关的典型算法,引导学生面对问题去思考如何构造算法,编写程序的过程本身就是设计算法的过程。

为此,我们对本课程体系进行了改革,并将本课程与计算机其他学科进行了融合教学与实践,取得了非常好的效果。

1课程体系的改革

1) 修改教学环节。

我们把原计划一学期的教学时间调整为一学年。第一学期进行C语言程序设计基础的教学,第二学期进行C语言程序设计的进阶教学,在学年末进行该门课的实训,接着的暑假进行校外实习。根据不同专业,我们还开了小学期,在小学期里有连续12周的实验环节。

2) 修订培养计划和大纲,改革考核方式。

我们把本课程的教学改革与本学院的“卓越工程师计划”相结合,组织教师外出考察、研讨,然后重新修订了培养计划、教学大纲、实验大纲、实训大纲、实纲。相应地,考核方式也作了调整:基础教学由笔试转向机试,试题难度高于非计算机专业的等级考试,每次考试的题库都将重新命题和审阅。进阶教学由考试转向完成3 000行以上大作业形式的考查,实训由过去的全班一个模拟题目转向提供多个实际验收签定过的项目,进行C版本的再次开发,实习由过去的只是到实习基地参观调整为直接进企业拜师跟班学习。

3) 丰富配套的教学资源。

我校组织编写了《C语言程序设计基础及进阶教程》,被评为“十一五”部级规划教材,已于2010年由清华大学出版社出版发行。我们还配套编印了上机实验的实践教程(将在今年教材的第二版时一并出版),以及实训时的实训教材和实习的实习教程,并建设了精品课程在线学习平台,供师生讨论和交流。制作了与教材配套的课件与教案,供教学参考。

我们专门搭建了学校ACM/ICPC在线测评平台,并组建了容纳120人的竞赛专用机房,成立了ACM/ICPC竞赛班。2008年起,河南省计算机学会主办一年一次的河南省大学生程序设计竞赛,我们每年都组队参加,在过去的三届竞赛上,共获得4枚金奖、2枚银奖、1枚铜奖。2009年参加亚洲区赛现场赛获得优秀奖。2010年参加第35届亚洲区赛,通过预赛,获得天津赛区、杭州赛区和成都赛区的决赛资格,并在成都赛区获得1枚铜牌,排名第59名,是河南省该项赛事最好成绩,为学校争得了荣誉。在学校内部,我们从2009年开始每年组织两次全校程序设计竞赛,至今已经主办了四次校级竞赛。

4) 转变教学理念。

我们提出了C语言与计算机相关课程的融合教学与实践的教学理念。

5) 采用新的教学方法。

在课堂教学中,我们使用任务驱动、课堂讨论、3W1H教学法、现场编程教学法、课堂陷阱教学法、任务分解教学法、任务贯穿教学法、分散集中教学法、两段教学法、实训优秀作品展示激励法、融合教学法等多种教学法,在课外使用网上在线讨论与答疑、竞赛辅导拨高法、课题组观摩讨论法。我们打破大学考试试卷不评讲的一贯做法,在第二学期的进阶课程第一堂课评讲上学期期末试卷[3]。

(1)3W1H教学法。即:What――解决什么问题,Why――通过实际生活例子引入为什么要解决这个问题,Where――在什么条件下能够解决,How――如何运用学到的方法、技术来解决问题。

(2) 现场编程教学法。在讲授有代码编写的理论课时,当一个理论知识介绍完后,教师出一个难易程度适当且有代表性的题目,让学生随堂写代码,并抽学生到黑板上写,或者抽几份学生作业当场点评。

(3) 课堂陷阱教学法。在期中检查座谈会上,有的老教师说学生很难发现自己程序的错误,而课堂上即使是老师手下的一个笔误,学生也能发现并喊错了。我们正是可以利用学生这种“容许自己范错,不许老师失误”的习惯,对于学生书写代码时容易出错,或者上机碰到的共性问题,我们在课堂上演示时设下陷阱,故意把代码写错,有的学生当时就能发现,而有的学生在编译时才发现有错,我们用自己的错误来吸引学生注意力,加深学生的印象。

(4) 课题组观摩讨论法。我们组织本课题组教师每两周进行一次教学观摩讨论,取长补短,相互学习,推广好的教学方法。

(5) 实训优秀作品展示激励法。我们在第一学期基础课程的第一堂课上展示往届的优秀实训作品,让学生觉得既好奇又深奥,极大地激励了学生的兴趣。临到毕业,大部分学生还能对这堂课记忆犹新。

2与计算机相关课程的融合教学

通过近5年的实践与总结,我们认为如果把C语言程序设计与计算机相关课程进行融合教学,必将促进学生对该门课程的理解,同时凝聚专业特色,促进其他课程的学习,对于学生的自学与综合能力的培养都有积极的作用。

1) 与数据结构融合。

在讲到C语言中的基本数据类型与构造类型时,围绕数据结构的一条主线――四种结构两种存储,联系数据结构中的数据类型,在抽象数据类型ADT中只定义了基本操作,复杂的操作是通过基本操作实现的。在抽象数据类型中定义的操作与C语言中的各种类型的运算,比如取余运算符“%”,在C语言中仅限整数。在讲到查找与排序时,对照数据结构中的查找与排序,介绍一些经典和效率高的算法。在讲到递归函数调用时,用数据结构中的递归调用时栈的进栈出栈变化过程讲解。在讲到scanf函数和其他读取字符函数时,将内存与键盘输入缓冲区结合,使学生更容易理解数据的输入格式。

2) 与操作系统融合。

在讲到变量的数据类型及变量的存储类型时,结合操作系统的内存结构,讲解内存区域分为6个不同的部分来存储不同的数据,使学生了解内存组织的有序性。特殊地,寄存器变量不占内存,而字符串常量存放在符号常量区,通过讲解内存结构,学生就明白静态变量为什么第一次使用时会初始化,以后再使用时用的是上一次的值。在讲解数组的连续存储、链表的动态存储时,结合内存就会理解得更透彻些,甚至可补充内存中堆与栈使用的知识[4]。

3) 与计算机组成原理融合。

入学时,教师介绍计算机发展,一般都会讲到冯•诺依曼原理,那么为什么要学习语言呢?还得从计算机组成原理来讲,从电脑城装配电脑介绍起,首先运用BIOS程序,然后再启动操作系统,最后再运行用户的应用程序。而BIOS程序、操作系统和应用软件都是用语言开发出来的软件,之前都曾经有过C语言版本,BIOS现在还是C语言编写的,而操作系统的一些内核也还有C语言的许多代码。因为大一第一学期的计算机科学导论与本课程是同步开设,学生对计算机的了解还是有限的。同样地,在讲到C语言的三种进制数、位运算、指针时,与计算机的字长、补码运算、指令加以对照,就容易理解些。

4) 与面向对象语言融合。

掌握好一门语言,可以自学其他语言。做到这点不容易,因为大学专业课的特点是学一门结一门,没有哪所大学或哪个专业开设了所有语言,所以在语言课之间融合对照学习,会收到非常好的效果。比如讲到结构体时,与面向对象中的类对照,将结构体变量与对象对照,就比较好理解数据类型和类不占内存,对象与变量占内存了。讲到函数时,与方法对照,讲到函数参数时,补充面向对象中引用的使用,对将来学习面向对象语言和数据结构非常有益。

5) 与数据库原理融合。

程序所需数据从哪儿来?运行结果保存到哪儿去?在讲到文件操作时,将C语言中用到的文件与数据库中数据文件作比较,再联系结构体成员与数据库中的字段、记录,使学生对程序的理解更完整一些。

6) 与编译原理融合。

在演示程序开发过程、多文件的操作、编译预处理时,均可以联系编译原理中编译器的词法/语法分析,教师可以演示单步编译,鼓励学生思考编译的过程。

7) 与高等数学、线性代数、概率论、离散数学、数值分析、运筹学等融合。

如果能将学习C语言与离散数学中的集合论、代数系统、图论结合,再解决高等数学、线性代数、概率统计、几何、数值分析和运筹学中的数学问题,能够极大提高学生的兴趣,也巩固了所学的知识。

8) 与网络融合。

使用C语言可以开发C/S结构的客户端与服务器端程序,在实训和实习时可以分层次进行一些高级的练习,比如C/S结构的网络编程。再提出一些问题,比如如何实现抓图和打印等,培养学生的自学习惯。

9) 与软件工程融合。

结合专业特点,讲解软件开发不仅仅是写代码,还是一个模型的开发过程,对于学生将来毕业做好毕业设计与写好毕业论文有指导意义。特别是软件工程和软件测试专业更是需要了解。

其实,我们在讲授C语言程序设计时,几乎可以和所有计算机专业课程联系起来,比如选修课算法分析与设计,还可以和ACM/ICPC结合,通过ACM/ICPC竞赛的题目寻找合适的教学切入点,有时也可以引入离散数学中的逻辑推理知识,或者构造一种教学情境,让大家感兴趣,能被吸引住,使学生一步步跟着往前走,比如抽几名学生排队讲排序算法。

也可以和非计算机专业课程联系起来,比如计算机英语。同样地,在教学过程中,融合一些新的技术,比如物联网、CPS计划等,学生会更感兴趣。如何融合比较教学,既能深入浅出地完成教学任务又不拖延学时,需要把握好这个度。

3与计算机其他课程的融合实践环节

除了做到融合教学外,在实践环节上如何融合也至关重要。

1) 搭建ACM/ICPC校内在线测评平台。

我们采取竞赛辅导拔高法,成立竞赛班,采取“讲-帮-带”的方式,建立了郑州轻工业学院在线测评平台,如图1所示。丰富了题库,组织校内选拔赛,教师带队参加竞赛。

自2009年开始,我们每年举办两次全校性质的大学生程序设计竞赛:12月举办新生程序设计竞赛(个人赛)、5月举办一次全校程序设计竞赛(组队赛)。均有IT公司赞助,并有开幕式和颁奖仪式,极大地提高了学生的编程热情。

参加ACM/ICPC竞赛,有助于培养学生的抽象思维、逻辑思维、心理素质、团队合作和协同能力[5]。

2) 与考研结合。

我们从大一第一学期就让学生思考自己将来的出路:工作或考研。如果工作就必须学好知识,重视实践,提高动手能力。

3) 与操作系统、C++融合实训。

在后续的操作系统和C++的实训时,安排我们C语言程序设计课题组的教师参与实训,使得C语言程序设计课程的学习更加长期有效。

4) 把等级考试当做门槛。

我们把全国和河南省历年计算机等级考试的题目穿插到平时的教学中,让学生把握每个知识点。

5) 介绍学生参加教师的项目。

我们在授课的同时,也有心培养一些勤于思考用心的学生,介绍他们参与到教师的应急系统、嵌入式、GIS、网络等实际项目开发中,引导学生自学C++和Java、JSP等工具,让他们从实践中得到锻炼,积累经验。

6) 跨学科实训并总结。

在第二学期期末的实训环节,我们让学生分组去做一些稍微大一点的题目。比如C语言语法分析模拟器、BIOS模拟器、科学型计算器、TC模拟器、Windows小游戏、信息系统等。在实训结束后,我们安排优秀实训作品展示总结会,也是对一学年课程学习的总结。有很多外专业的学生自愿来参加。通过展示交流,学生看到了别人的成绩,也看到了自己的差距。

4结语

通过对C语言程序设计存在问题进行思考和分析,我们结合学校实际,提出了C语言程序设计与计算机相关课程的融合教学与实践。经过4年的教学与实践检验,取得了较好的教学效果,对C语言程序设计,以及其他程序设计语言的教学都有一定的指导意义。

参考文献:

[1] 李玉梅.“C语言程序设计”课程的“教、学、做”一体化的探索与实践[J]. 科技创新导报,2010(28):164.

[2] 朱立华,俞琼. C语言教材建设的研究与实践[J]. 计算机教育,2009(13):150-153.

[3] 徐小青,李晓东.“高级语言程序设计”课程教学改革与实践[J]. 计算机教育,2009(13):46-48.

[4] 王祥瑞. C语言中的内存泄漏分析[J]. 长春大学学报,2009(6):27-29.

[5] 武建华. 基于ACM模式的数据结构实践教学改革与探索[J]. 计算机教育,2009(13):114-116.

Integrated Teaching and Practice of C Language Program Design and Other Subjects of Computer

YAN Hongyan1, JIN Baohua1, ZHANG Xiaojuan2, XU Hongxia3

(1. School of Computer and Communication Engineering, Zhengzhou University of Light Industry, Zhengzhou 450002, China; 2. Department of Foreign Language, Zhengzhou Tourism College, Zhengzhou 450009, China; 3. Art Design Department, Jiyuan Vocational and Technical College, Jiyuan 454650, China)

计算机程序设计语言范文6

关键词:C语言;教学改革;创新实践

中图分类号:G424 文献标识码:A 文章编号:1009-3044(2016)01-0130-01

随着计算机科学技术的迅速发展与广泛应用,程序语言变得尤为重要。目前,C语言程序设计课程被大多数高校列入教学计划,主要为理工科大一学生的必修课。C语言作为程序设计的入门课,旨在锻炼学生的逻辑思维模式以及深入了解计算机在各种领域进行应用的方式,培养学生利用计算机处理多项问题的能力,并启发学生主动将计算机与其他学科结合。通过此项课程的学习,学生能够比较为全面系统地理解和掌握程序设计的基本概念和方法,并具备运用C语言、数据结构和算法等知识开展基本的结构化程序设计的能力。对于初学者而言,C语言概念复杂,语法众多,数据类型丰富,因此,很多内容不容易被接受、理解和记忆。由于程序语言的学习有一个较长的入门过程,很多学生反映经过一个学期的学习还没有理解其精髓,对很多概念还是一知半解。鉴于上述问题,本文从该课程的教学内容和教学方法等方面进行了多项创新和改革,以获很好的教学效果。

1 多元化教学方式

对于计算机类课程,传统的板书教学已不能够完全满足,采用多媒体教学,可最大化的展示课程信息,图片,文字及其动态化的演示,通过该方式,向学生展示算法设计过程与实现思路。同时,教师在讲解具体程序设计案例时,可展示程序文本的编辑,编译和运行测试,以及调试的全过程,在详细的演示过程中,可增强学生对程序设计的感性认知,但是,多媒体教学的缺陷在于每一张幻灯片的内容都是比较有限的,不利于学生进行前后的比较,而且,幻灯片的演示过程相对较快,有些学生会跟不上老师的思路,此时,若能配合板书教学,形成补充,那么两种形式的结合则能最大化其应用价值,大大提高学生对课程的理解力,且形成良好的师生互动模式,充分调动学生的学习积极性和热情度,真正体现了教学“以学生为主体,通过教师的启发式指导,理论结合实践”的原则。

2 编程思维训练

作为高校非计算机专业学生的一门必修课,C语言程序设计内容多,逻辑思维严密。大一学生对该类课程尚不熟悉,还未形成编程的思维模式,对C语言的语法,程序编译和调试等都不熟悉,导致很多学生学习困难。因此,在这种情况下,教师的讲解应着眼于解决问题的思路,方法与步骤,这样才可以提高学生的学习兴趣,增强解决在实际问题的编程能力,形成正确的程序设计理念。此外,老师在演示程序的过程中也可训练学生检查错误的能力,鼓励学生独立思考,提高程序调试的能力。

3 结合实践应用和案例式教学

由于C语言程序设计是一门实践性比较强的课程,要提高学生实际编程能力和解决问题的能力,需要教师进行切实有效的实践应用教学与案例式教学。根据教学目标和学生学习实际情况,在实验教学中采取任务驱动模式。任务布置应注重整体性,机动性,适应性和开放性。在分配任务时要充分考虑到学生所学到的知识结构和操作的能力,发挥他们内在潜力构建新的知识体系。在解决任务的过程中,引导学生对具体任务进行探索分析和研究,加深对算法和编程的理解,进而提高动手能力。此外,教师可适当采取案例教学法来丰富课堂多样性,提高学生对程序语言的学习兴趣,同时训练他们的编程思维和解决实际问题的方法。一堂课的案例不必很多,要做到精选精讲,在上课过程中突出解题思路和方法还有步骤,让学生充分掌握分析和解决问题的方法。案例介绍完后,让学生们编写相似的程序,在通过举一反三,使得学生有所启发后在自我训练过程中获得编程的成就感,在不知不觉中提高学习水平。案例式教学不仅能让学生参与其中,提高学习积极性,好能在自然地学习环境中理解掌握新知识,以及加深印象。当实验课任务完成后,老师应抽查学生完成任务的情况,要求学生完成程序的编译,链接,调试和运行。通过一个学期的学习,基本上学生都能够独立的完成课后作业和实验内容,具有一定的创新理念,形成自己的程序设计的风格和思路。

4 考核形式的更新

传统的课程考核形式是笔试,然而C语言程序的特殊性可以让考核方式适当修改,例如增加程序操作的测试,上机考试等是用来考核学生在学习当中是否是拥有了编程能力和形成了属于自己的编程思想,适当增加实践考试在成绩中的比例有利于对学生的掌握情况进行客观反映。如若有专门的考试系 (下转第133页)

(上接第130页)

统则是更有选择,实现了出题,组卷,考试,阅卷等过程的全自动化管理模式,这样可以避免在考试的过程中有抄袭作弊的现象,也提高了考试的标准化、公正性和工作效率,同时还能把教师从繁重的阅卷工作中解放出来,把教学重点放在对学生的操作能力和实践动手能力上来,在教学过程中,突出编程能力的培养,让学生多花时间在机房上机,提高学生的计算机实际应用能力。这样的考核方式对学生的学习主动性也是一种促进,不再依赖考试前的临时突击,更能反映学习水平和平时的练习情况。

5 结语

随着社会经济的发展和科学技术的进步,计算机在各个行业已得到相当程度的广泛应用,对人才综合素质和实践能力的培养是高校必不可少的义务和责任。C语言程序设计课程在教学中教学质量对学生的学习、技能培养和专业的发展都起着至关重要的作者,通过课程的建设和教学的改革,可以从多个方面提高学生的应用能力和思维。改革现行的计算机教学模式,就得打破旧的课程框架,形成更高效的教学模式,取得更好的教学成绩一直都是教师们追求的目标。希望学生有更强的独立性和自我意识,始终保持对知识的进取心和强烈的渴求,并且拥有健康和积极的心理素质和良好的知识结构,以应对以后走出校门走上社会后来自各个方面的挑战,抓住任何可把握的机遇。

参考文献:

[1] 谭浩强.C语言程序设计[M].清华大学出版社,2000.

[2] 李红军.C语言教学改革的探讨[J].中国新技术新产品,2009(12).

[3] 李丽萍.C语言教学改革的探索和实践[J].辽宁工业大学学报,2009(4).