欢迎来到杂志之家!发表咨询:400-888-7501 订阅咨询:400-888-7502 股权代码 102064

程序教学法论文实用13篇

程序教学法论文
程序教学法论文篇1

科学性和可接受性相结合。教学内容应与学科发展相适应,反映本学科的新进展、新成果。要以人为本,遵循大学生的身心发展规律和兴趣爱好,既要考虑主动适应学生个性发展的需要,也要考虑主动适应社会发展的需要,为学生所用,便于学生课外自学、自练。

民族性与世界性相结合。弘扬我国民族传统体育,汲取世界优秀体育文化,体现时代性、发展性、民族性和中国特色。

2.教学方法要讲究个性化和多样化,提倡师生之间、学生与学生之间的多边互助活动,努力提高学生参与的积极性,最大限度地发挥学生的创造性。不仅要注重教法的研究,更要加强对学生学习方法和练习方法的指导,提高学生自学、自练的能力。

由以上规定可以看出,把现代新兴的教学方法运用到体育教学中来是非常必要的。所谓现代教学方法,国外认为,现代教学方法是与传统教学方法相对而言的。当今出现的现代教学法有程序教学法、发现教学法、掌握教学法、类比迁移法、情境诱导法、电化教学、问题教学法等等。现代教学方法一般都具有以下5个特点:(1)以发展学生的智能为出发点;(2)以调动学生学习的积极性和充分发挥教师主导作用相结合为基本特征;(3)注重对学生学习方法的研究;(4)重视学生的情绪生活;(5)对传统教学方法适当保留并加以改造。

现代教学法在排球教学中的应用可谓有很大的空间,例如,类比迁移法可用来进行扣球与跳发球的教学,两个动作具有很大的相似部分;情境诱导法可用来进行战术保护的教学,将排球比赛中可能出现的几种情况在教学过程中进行模拟训练,让学生明白应该如何进行保护;问题教学法可以作业的形式留给学生思考,不占用课堂时间。这些方法都具有其各自的优点,完全可以引入现代排球教学中来,本文仅以程序教学法为例进行相关阐述。

二、程序教学法的定义、具体形式和优点

程序教学法就是把教材按教学目的,根据学生的实际情况,将其内容划分成若干单元编成一定的程序,向学生传授,学生在每一个单元上作出应答,然后由教师、同学、自和进行评定,在掌握动作之后,再进行下一步学习。它的具体形式可表示为分支式、直线式和循环式三种。所谓分支式就是把教材的某个内容看成是一个主题干,然后把它分解为若干个题支,接着再将题支分解为若干个亚题支,依次分解,逐个解答。这种方法的优点是可以帮助学生直观的把握教材反映的理论观点,从而在思想上形成一个比较清晰的理论轮廓。直线式就是把材料的某个内容分成若干连续的步骤,后一步是对前一步的说明解释或提示。这种方法可以使问题简单化、明了化,若再配以简要的解释说明,学生易于理解和掌握。循环式就是从一个方向出发,经过一步步的分析、说明、最后又回到起始问题上来。

三、排球教学的一些特点

排球教学有其自身的特点就是能把某些技术分成小环节进行教学,根据排球比赛的规律性,我们可以进行适当的模拟特定情境,另外学生还要掌握基础的排球理论知识,等等。排球教学不同于一般理论知识的学习,它的教学任务就是要学习排球基本技术、战术,也要掌握排球的基础理论知识。这样就要求学生要从两个方向进行学习,一个是技能训练,另一个就是课本的知识框架。技术战术的训练主要是让学生掌握排球基本技术和战术,为学生将来工作打下扎实的基础,理论部分则可以让学生从掌握课本的知识框架来加深对所学技能所处的地位有所了解,另外也可以为学期末的考试进行有效的准备。这里我们引入一个学习方法,就是宏观概括法,即看课本时首先要看目录,把目录在头脑中形成一个框架,可以用大括号的形式,也可用其他的形式。把每一个分支的内容到课本中去学习好,以后复习时就可以只看目录就能掌握课本的所有知识结构,省时省力。这种方法与程序教学法中的分支式有同样的效果。

四、程序教学法在排球教学中的运用与分析

程序教学法的前两个分支可以分别运用于排球教学的技术战术教学与理论教学。这样就可以使两者相互支持,学好了理论知识,学生就能明白哪个技术比较重要,它的学习重点在哪里,自身缺少的东西是什么,使学生能够有针对性的进行学习。

首先,程序教学法中的分支式可以用于排球基本理论知识的学习,以现有排球教材为例。如果看着目录进行分支的话,我们最后可将一本教材做成一个树形图,哪个分支属于哪个部分一清二楚,对于学生全面掌握理论知识有很大的帮助。每个章节讲的是什么,哪些章节是重点章节,都能从这个树形图中看的出来,学生复习所用时间的比例就会相应增加。

其次,直线式可以用于技术的学习和掌握,因为排球有很多技术可以进行合理分解进行教学,这样就可以把这些动作进行小环节的学习,学生掌握了第一个环节之后,再进行第二个环节的学习,一步一步地前进。举例说明这个问题如下:在教授学生扣球动作时可以合理地将整个技术分成三步,第一步,助跑起跳;第二步,空中姿势和击球;第三步,落地缓冲;第四步,连贯动作。这样就可以使学生逐步掌握每个动作,最后在进行连贯动作的练习,能够起到很好的任用。

五、程序教学法运用时的注意事项

首先,在对某个动作分解时,要合理进行,一些不可分割的动作不能强行分割,使动作失去了连贯性后,学生却不易掌握。例如上手传球这个动作就不能进行分割。其次,要注意全班上课的整体,不能因为一个人的落后影响全班,那就要很好的发挥集体的力量,老师的课上帮助与同学们互帮互助同时进行,尽量让每一个同学都能够跟上步子,让全班同时进行每一个环节的学习。

六、结论与建议

1.把现代教学法引入排球教学是非常必要,而且势在必行。

2.程序教学法在排球课上的运用可以将其不同分支用于不同的学习,即:直线式用于技术战术的学习,分支式用于排球理论课的学习,二者互相依赖,不可分割。

3.学校排球教师可以尝试把不同的现代新兴教学方法引入排球教学,以促进现代排球教学的发展,改变因课时少内容多造成的学生学习难度太大的问题。

参考文献:

[1]教育部.教体艺[2002]13号.关于印发《全国普通高等学校体育课程教学指导纲要》的通知[C].2002.8.

[2]马英杰.普通高校体育课程改革的研究与实践[M].第十三届大学生运动会体育科学论文汇编,2004.7.

[3]王宗平,赵国梁.大学体育课程教学改革实践与走向[J].体育与科技,1999,20(2).

[4]中华人民共和国教育部.体育与健康课程标准[M].北京:北京师范大学出版社,2001.

[5]荆光辉.普通高校体育与健康教育课程体系的构建研究[J].北京体育大学学报,2002,(1):111-114.

程序教学法论文篇2

二、项目教学法的实施

1.项目教学法实施原则

项目教学法和传统教学法相比最大的区别在于把学生作为教学的中心,把项目作为教材中心,学生是认知的主体。项目教学法在实施中需要遵守以下原则,项目的选取要充分结合现实,教师在备选项目案例之前,必须先经过大量的市场调研,项目必须具有实用性、教学型和通用性,在项目的选取中必须选择学生感兴趣的,项目活动必须能够充分调动学生已学过的理论知识,能够渗透到教学中,项目的分解能够保证教学过程的连贯性。

项目教学法以学生作为主体,虽然教师是项目的设计和实施教学的负责人,但是在实践中需要教师和学生共同参与,教师有目的的引导学生进行知识的掌握。在项目教学的实施中,教师最主要的工作是创建学习的资源和协作学习的环境,在学生面对困难的时候,教师需要进行引导,并把学生分为合适的工作小组,实现分工和合作。在项目教学法应用的过程中,教师还必须确定一个多元性的评价方式,强调运行完成项目的方式。

2.项目教学法实施步骤

项目的选择。项目教学法的关键,是设计和制定一个项目的主体,项目化教学法成功首要部分就在于项目的选取。整个教学过程与内容基本来源于教师所布置的任务,因此项目的实施过程中,重要的并不是学习的结果,而是学习的过程。项目内容的选取以及情景的设置必须与所学知识和现实生活息息相关,明确目标,包括相关知识与技能的掌握。通过大量的专业实例考察,总结出网络程序设计所需的主要知识和专业素养,将所学的知识融合在一起,把典型的程序设计融入教学中,要求学生通过学习,掌握基础理论知识,能根据需求自行查找资料。在教师选取项目时为最大化的激发学生的学习兴趣,需要列出应用表单,使学生有目标地参与到项目的实施中。

选择的项目要有层次感以及典型性等,能够使学生联系自己所学知识进行发挥,教师在项目教学法实施之前需要先整理分析学生要完成的具体情况,为项目做好准备工作。从教学方法上来看,教师在项目教学法实施的过程中设置一些问题,引导学生自主性的学习。学生的个体特点以及接受能力存在很大差别,因此在布置项目的时候需要注意项目的难易程度以及学生的接受能力,不能打击到学生的自信心。项目的设计实施需要学生广泛的积极参与,最后在项目的选取中教师需要留出思考空间,启发学生不断尝试,培养学生的创新能力。

具体而言,类与对象以及输入输出流技术是项目的关键部分,在选取项目的过程中必须渗透到其中,项目必须具有实用性和可理解性,本文选取的项目为《学生档案管理系统》的程序设计。

项目的实施。把其分解为多个课内教学实验,本文的设计中共分为五个任务,每个任务都对应着学生的理论知识,前一阶段的学习是后一个任务的前提条件,具体而言五个任务分别为学生档案管理系统——对象和类的识别、学生档案管理的设计(类的封装)、学生档案管理的设计(模板技术应用)、学生档案管理的设计(继承的应用)、学生档案管理的设计(输出输入流的应用等)。使学生有一个整体的认识。在软件预览中教师需要先把制作好的《学生档案管理系统》进行展示,为学生说明学习的目的,激发学生的兴趣,在数据库的设计中,教师可以与学生共同参与到研究中,保证学生所创建的应用程序具有非常高的性能。程序设计一直是学习的重点和难点,在这部分的项目实施中,教师应重点强调课程设计方法,使学生能够熟练地掌握常用函数以及表达式的用法。

本文以第一个分解项目为例,目的是识别学生档案管理系统的类和对象,在情景设置中,先与学生回顾所学过程知识,以及要求用到识别方法,在项目的讲解中,教师需要先向学生讲解学习目的,以及常用构造函数等,通过对象用例分析,逐渐抽象出不同类,还可以采用UMI建模技术来识别类与其类的关系。学生在实践中独立思考理解知识点,在学生遇到问题时,教师可以先给予指导。学生完成项目后,教师可以当堂表扬学生,并通过批阅学生的项目代码,查找学生普遍存在的问题,在项目的回顾中,发现本设计的项目存在很多的全局函数,因此需要进行一些改进,在下阶段的类的封装中进行下一步的学习。

项目教学法的最后一个环节是项目评估,为了保证学生评估的公平公正性,教师需要先设计互评表以及自评表,表中包含具体的分数登记以及评定条目,为提高学生的责任感和自主学习性,在评估中还需要采取自评和互评,评价表需要便于学生的操作等。

三、项目教学法实施需要注意的问题

项目教学法虽然能够极大的提高学生整体规划能力以及交流能力等,但是在实践中还会出现很多问题,因此在项目教学法的应用中还需要注意以下几方面的问题。教学中教师虽然需要足够重视项目的完成,但是也不能忽略掉基本知识的掌握,必须为学生构建一个系统的全面的知识框架。

在学习小组的划分中,必须重视学生的能力,根据学生的特长和能力进行分工,每组的人数不需要太多,最好采取优势互补的方式进行学习,组员之间为避免产生依赖心理,最好先进行分工。在采取项目教学法的过程中,学生的个性能够得到极大的发挥,但是非常容易出现两极分化的情况,因此在分组中,教师一定要注意这个问题,及时对学生的不良情况进行纠正。在评估中教师需要创建一个合理的课程考核机制,把学生项目的完成过程和完成结果也添加在课程考核机制中。最后项目教学法对教师提出了一个很大的挑战,在教学中教师不仅需要指导学生本专业的知识,还需要了解相邻学科间的知识,因此教师在以后的教学中需要不断完善自己。

程序教学法论文篇3

OOP是一种计算机编程架构,它具备软件工程的灵活性、重用性和扩展性。OOP不仅具有丰富的理论知识,同时具有很强的实践性,坚持在真实的项目中锻炼编程能力,才能理解其精髓,进而活学活用。

(二)项目教学法

项目教学法以学生为教学中心,是学生在教师的指导下处理项目,提高自身能力的教学方法。其优势在实践性较强的OOP课程中体现得淋漓尽致。具体实施时,教师化身为顾问,主要的作用是引导学生把课堂所学用在实践过程中,理论联系实际,进而提高动手能力;学生是项目的具体操作者,知识水平和发现问题、解决问题能力均能得到提高。

二、改革的必要性

OOP是一门实践性很强的课程,如果不进行实践教学,学生不能全面掌握其核心思想。原因主要有以下两方面:

(一)难理解

由于面向对象概念较抽象,是基于现实世界的特点,对系统的复杂性进行概括、抽象和分类,对象是OOP的核心,是将代码和数据封装起来的具有某些特性的具体事物的抽象。从学生角度来看,以知识点为中心的讲解教学方式理论性太强,不好理解,甚至有部分学生自始至终也无法掌握OOP的重要概念,不能满足课程考核要求。

(二)理论教学多

教师上课采用多媒体教学,这种方式基本上是教师在课堂上唱独角戏,把理论和方法灌输给学生,学生被动地学习,只是把教师讲的内容在大脑中形成记忆,没有自己独立思考的过程,不利于培养学生的创造能力。

三、项目教学法的改革要点

项目教学法设计了完整的软件项目教学背景,克服了传统教学中注重理论知识忽视应用实践的缺点。学生在慢慢了解、逐渐熟悉软件项目开发的过程中,能够理解应用,学习和掌握各种知识并训练相关技能。

(一)项目题目的设定

教师在进行项目教学引导时需要策略,创设学习的资源,协调学习合作环境。教学项目题目的选取是其中的关键问题,选题最好能与软件公司进行交流或合作,应具备针对性和实用性,能体现出学生综合能力的运用,并且可以进行客观评价。首先,项目题目应尽可能覆盖教学大纲的多项知识点;其次,应该构建具有完整项目的项目案例库,项目题目应有不同的难易度和适当的工程工作量,适应所教班级的不同学生的实际水平;最后,项目题目应尽量贴近大学生的生活,并可以用一些标准,如软件是否易用、是否有良好的用户交互性等进行公平、准确的评价。

(二)互动增强

传统的教学环节中,老师和同学的交流仅限于课间十分钟或者课下较短时间的交流,交流时间少,沟通的问题也只是教学内容中个别的知识点。而在项目教学法中,沟通渠道是多向的,老师与学生之间沟通的宽度和广度都加大了。另外,即使在同一课堂上听讲,不同的学生在学习动机、学习心理、学习兴趣和学习能力等方面仍然会有一些差别。

(三)角色换位

程序教学法论文篇4

2.1项目的确立

将项目教学法应用于《程序设计》课程的教学中,教师依据教学内容设计合理的项目。例如选取学生成绩管理系统、学生选课管理系统、通讯录、订单管理系统等,以项目来贯穿整个教学过程和所教授的内容。再把此项目分解成几个子项目,每个子项目可分解为若干个任务,学生通过完成各个任务、子项目,直至最后完成整个项目,来达到对教学内容的掌握和应用。项目与任务的分解可以参照表1。这样设计教学环节,把传授知识为主的传统教学,转变为以解决问题、完成项目任务为主的多维互动式的教学方式,既使学生有兴趣动手编程,又能与理论教学内容相结合,把程序设计语言的学习过程由枯燥的单方向接受变成愉快的探索之旅。例如,在C#的教学中,可以将整个项目分解为几个子项目,每个子项目分解为若干任务[2]。

2.2项目的实施

学生以小组为单位,探究与协作学习相结合。由每个小组负责完成自己所选定的小项目或班级大项目中的一个任务模块,小组成员在学习过程中学会按照软件工程的思想,把每个项目分解为几个任务,探索或发现的信息和材料为全体组员所共享,甚至为全班所有成员所共享[3],小组内或各组间的同学相互学习和借鉴。项目的实施过程中,教师要进行随时点评,即通过随时观察学生编程进展情况,进行实时提示、指导,指出问题所在与解决方法,引导学生不断完善项目的开发,师生按照“学习-改进-总结-提高”的过程进行教学,提高了学生运用计算机语言编程解决实际问题的综合能力。与此同时教师也要指导学生在面对不同的观点时,学会理清和表达自己对编程问题的见解,学会聆听和理解他人的想法,注重团队合作的配合和沟通。由此,学生可以看到编程问题的不同算法和实现途径,从而对编程知识产生新的洞察。

2.3项目的总结与考核评价

项目成品的效果演示是一个组的成员分享劳动成果的时刻,可以激发学生的学习兴趣,探究的欲望,更明确学习的目标。考核方式也是采用以小组为单位的考核方法,每个小组的项目负责人陈述本项目的主要功能构成、设计流程、开发过程,重点介绍原理和方法,以及在完成任务过程中遇到了哪些问题,怎样解决,等等。小组其他人员进行现场演示和补充说明,并共同回答教师以及其他小组成员的提问。教师根据每个小组的任务完成、陈述情况结合在项目确立阶段制定的项目完成的评价指标和标准,给出学生项目成果的考核评价。教师要对项目完成步骤及如何提高项目的解题思路作总体性的概括,同时可对教学知识点的遗漏进行补充,也可进行相关知识点的扩展。编程语言的项目教学评价重在鼓励学生探究、创造、实践,激发学生探究编程问题的积极性、主动性。重视学生能否把学到的编程知识与技能用于解决实际问题,以及在探究和解决问题中所获得的编程体验。总之,其评价应充分体现项目教学中学习目标的达成。

3结语

3.1取得的效果分析

项目教学法在C#程序设计教学过程的应用,是教学模式的改革,是对教学内容和教学过程的重新描述;使教学过程从“以教师为中心”转变到“以学生为中心”;将理论教学与实践教学有机结合起来;为学生创造了充分的发展空间。项目教学法可以促使学生将软件工程的思想和项目管理的方法应用到具体的任务实践中;使学生在学习程序设计的同时能按照软件工程的思想,对任务进行系统的分析、设计、开发、集成和测试,养成良好的程序设计习惯,提升程序设计素养,为以后就业以及参加实际项目开发做好铺垫。通过进行一系列的教学评测,包括学生的问卷调查、教学督导的观摩、企业同行的参与等环节,均取得了良好的反映。

程序教学法论文篇5

一、引言

增强自主创新能力,建设创新型国家,关键在于人才,尤其是创新型人才的培养。研究生教育是培养创新型人才的一个主渠道,如何在新形势下进一步提高研究生的创新意识和创新能力,具有重要的战略意义。创新能力培养是研究生教育的核心内容,是提高研究生培养质量的重要任务。研究生培养质量的提高及创新型人才的培养关键要落实到具体课程的教学上。有限单元法作为一种相对成熟的数值计算方法,是很多工科专业研究生进行数值计算、解决工程实际问题必不可少的工具之一。它是一门理论与实践相结合的课程,不仅需要学生有系统的理论分析能力,还需要很强的工程实践能力。有限单元法是一门相对较难学的课程,学生在一定时间内掌握它比较困难。如何提高有限单元法教学效果是一个急需解决的问题。为了培养研究生的创新能力,通过有限单元法的教学,应使学生在理论学习、程序编制及软件使用上都有所收获,培养学生的工程建模、数值计算及结果分析的能力。因此,本文结合对我校地质工程专业研究生进行有限单元法课程的教学实践,探讨提高教学效果、培养研究生创新能力的一些方法。

二、传统教学方法存在的问题

有限单元法是力学、地质、土木、水利、机械等多数工科专业研究生学习中一门重要的学位课程,它综合运用了矩阵论、数值分析、弹塑性力学等知识,是将理论知识运用于解决工程问题的重要工具,是培养研究生创新能力的一门重要课程。但是,长期以来,这门课程的教学偏重于理论讲解及有限元软件包的介绍,而忽视了对有限元程序的教学。这导致学生在学完这门课程后,虽然对有限元理论有了一定的理解,也能使用商品化的通用或专业有限元软件,但他们无法将有限元理论的具体内容与商品化的有限元软件联系起来,不清楚有限元软件的理论基础。由此造成的后果是:学生学习了成堆的公式,但不知这些公式与大型软件有何内在联系,对理论学习没有热情;学生尽管能熟练使用商业有限元软件进行数值计算,但不清楚软件的计算原理,对有限元软件的模块结构及功能也理解不透彻,因此很难基于现有的软件进行二次开发,提高创新能力。

三、创新教学方式的探讨

为了克服传统教学方法中存在的问题,培养研究生的创新力,在教学过程中,以“理论讲解、程序验证、软件计算”相结合的方式来组织教学。通过“程序验证”这一中间环节,将纯理论的知识点程序化,建立起理论与软件间的联系桥梁,避免学生对理论与软件理解的脱节。

1.理论讲解。基础理论知识的学习是保证教学效果的前提。对于理论讲解部分,要进行教学内容的优化设计,提高授课质量。有限元法是一个庞大和复杂的理论体系,需要有较深厚的数学及力学基础知识,学生在一定时间内掌握有限元法比较困难,因此如何提高有限元法教学效果成为一个急需解决的问题。由于教学时数的限制,要结合授课对象的专业特点及培养目标,研究具体的授课内容,构建课程的知识结构,并在授课之初向学生讲清楚这一知识结构。有限单元法理论性强,所涉及到的基础知识较难,有些内容学生一时难以理解与掌握。但是,有些知识点与后续学习没有太多的必然联系。教师在课程讲授的过程中,应注重引导学生对课程知识结构的总体理解,不要因为局部难点而阻碍了对后续内容的学习热情。通过教师的理论讲解,学生应该能够理解基础的计算理论及各知识点的物理意义,理解有限单元法的本质、方法与思想,学会用有限单元法分析具体问题的思路、步骤及需要注意的问题。以地质工程的有限单元法课程为例,理论教学的主要内容有:有限单元法的基本理论;有限元法在地质及岩土工程中的应用。这些理论内容涉及大量公式及其推导。因此,在教学过程中,使用多媒体进行授课是必不可少的。在讲授公式推导时,应注重讲解公式推导的思路,而公式推导的细节则可留给学生自己分析。对于若干形式上相同但实质上又不同的公式,要注意引导学生分析公式间的差别。

2.程序验证。学习有限元的目的是为了应用。通过理论讲解,学生学习了大量的理论公式,也学习了使用有限单元法解决实际问题的思路。由于理论的复杂性,必须将这些公式转化为相应的计算程序,才可对实际问题进行分析计算。否则,必将导致理论学习与实际应用的脱节。将有限元理论用程序表示出来非常复杂。让学生编写完整的有限元程序难度太大;而且由于商用软件的普及,学生也不一定要编写完整的有限元程序。但是,有限元程序是从理论走向软件应用的必由之路,新理论、新算法等研究成果也都需要通过程序来实现。因此,程序的学习对于有限元课程是非常必要的。为了发挥学生的学习主动性,我们的做法是:将学生分成若干组,给每个组选择一个既具有代表性又相对简单的有限元程序供学生学习,让学生阅读程序,并绘出详细的程序流程图。多年的教学经验告诉我们,多数学生的编程基础相对较差,对太长的程序也有畏难情绪。因此,在选用程序时,尽可能选择内容简单、短小精练的程序。通过比较,我们选择了文献[8]的部分主程序作为教学程序。文献[8]采用结构化方法进行编程,而且对于很多具体功能采用子程序的形式予以表示,这大大减少了主程序的长度,非常有利于学生对程序的阅读理解。在引导学生阅读程序并绘制流程图时,首先只要求学生能看懂每一条语句;当该语句需要调用子程序时,只要求学生了解该子程序的功能及其对应的输入输出变量,而不必关注该子程序的具体内容。因此,这一任务对学生来说较为简单,学生都比较有兴趣,并绘出了质量较高的流程图。绘制程序流程图,可使学生了解整个有限元程序的结构及其组成部分,抓住学习的主干。但是,有限元的很多理论是通过子程序实现的,如各种形函数、弹性刚度矩阵、塑性刚度矩阵、屈服函数值的计算等。因此,在引导学习了有限元程序的总体结构之后,教师再列出一些重点子程序的清单,要求学生学习这些子程序的具体内容。由于每个子程序的功能相对单一,这些子程序一般都很短小,简单易懂。通过这些子程序的学习,学生能把理论学习中的公式与程序中主要语句一一对应,能深入了解理论公式是如何在有限元程序中起作用的。在让学生学习子程序具体内容的同时,也布置了一些简单的编程任务。如,学生学习了平面问题的应变矩阵求解程序之后,教师让其编写空间问题的对应程序;学生学习了Von-Mises屈服函数的求解程序之后,教师让其编写Mohr-Coulomb屈服函数的求解程序。通过这种学习,学生普遍感到理论公式活了起来,这反过来又促进了学生学习理论的热情,为掌握有限元理论打下了扎实的基础。

3.软件计算。通过程序验证环节,学生可以理解书本上的理论知识及公式在软件中的实现过程。但简单的有限元教学程序毕竟只是验证之用,它功能单一,计算能力有限,前后处理功能较差,无法和经过众多专业人士开发并经多年修改完善的商业化有限元软件相比。学习有限元编程的目的是使学生了解理论公式是如何在有限元程序中实现的,提高学生的创新能力。为了能对具体工程问题进行分析,熟练掌握至少一种有限元软件是非常必要的。因此,在程序教学之后,我们进行了软件教学。软件教学主要有两大内容:一是有限元软件的使用,这主要是让学生自学;二是案例教学,在案例教学的过程中,适当穿插讲解有限元软件的基本操作过程以及一些必要的操作技巧。案例教学,注重培养学生解决实际工程问题的能力。结合专业特点,我们选择了地基承载力分析、边坡稳定性分析、挡土墙土压力分析等工程案例进行教学。这些案例既包括了本专业主要的工程问题,又有对应的简单有限元程序,有利于程序与软件的对比学习。在每个案例的教学分析中,主要侧重模型的建立、单元网格的选择及划分、边界及初始条件的定义、载荷的施加等问题,使学生掌握用有限元软件解决各类工程问题的基本方法。课程讲授之后,让学生分别用简单的有限元程序及大型软件进行对比计算和分析。通过计算比较,引导学生发现简单程序与通用有限元软件间的差别,了解通用有限元软件的强大功能是由众多小程序有机地迭加成的。当有限元软件的某种功能不能满足用户的需求时,学生就能很好地利用软件的二次开发功能编写新的程序,这对提高研究生的创新能力有极大的促进作用。

四、结语

有限单元法是进行数值计算、解决工程实际问题的必不可少的工具之一。为了提高研究生的培养质量,培养研究生的数值计算及创新能力,以地质工程专业研究生课程“有限单元法”为例,以“理论讲解、程序验证、软件计算”相结合的多元化教学方法和手段来组织教学。在理论讲解部分,以教师授课为主,有利于快速构建整个课程的知识体系及学生对主要知识点的学习;在程序验证部分,以学生分组学习为主,教师引导为辅,调动学生学习的主动性;在软件计算部分,教师的主要任务是设计并精讲算例,学生的主要任务是学习有限元软件,并分别采用简单程序及大型软件对工程问题进行有限元计算。这种教学方式,能够将枯燥的理论知识学习与具体的软件使用结合起来,使学生理解程序在有限元计算中的作用,理解软件的强大功能是具体知识点的体现。这不仅有助于理论知识的学习及掌握,对培养研究生的数值计算与创新能力也是极为重要的。

参考文献:

[1]李世彬,苏继红.在研究生教育中培养创新精神的基本途径[J].黑龙江高教研究,2006,(11):68-69.

[2]刘尧.构建以研究与创新为主线的研究生培养方式[J].江苏高教,2010,(2):42-44.

[3]刘国福,李慧,张^,等.研究生课程研讨式教学初探[J].高等教育研究学报,2009,(3):37-38.

[4]吉逸,陈国庆,曹玖新.研究生创新型学习的教学研究与实践[J].计算机工程与科学,2011,33(A1):5-8.

[5]司海宝.计算结构力学与有限单元法课程教学的思考[J].安徽工业大学学报,2011,28(3):101,103.

[6]Zarza G,Lugones D,Franco D,Luque E.Innovative Teaching Strategy to Understand High-Performance Systems through Performance Evaluation[J].Procedia Computer Science,2012,(9):1733-1742.

程序教学法论文篇6

by Group Teaching in the Network Environment

ZHU Juan

(Information Science and Technology, Jiujiang UniversityJiujiang, Jiangxi 332005)

AbstractGroup teaching method is an important method that used widely in the practical classes. And it is important to reform the teaching model, and to improve the teaching quality. In this paper, the method of group teaching is introduced to the experiment of C programing class. By developing the group strategy, the students complete the experiment tasks by team working. The result proves that the method of group teaching is valuable in the C programing class.

Key wordsgroup teaching; teaching mode; teaching feedback

0 引言

C程序设计课程受众非常广泛,普通地方高等院校几乎都有开设,对计算机专业的学生而言,这是程序设计的入门课,也是专业核心课;对非计算机专业学生而言,这是通过计算机等级考试的核心科目,是必选通识课。

随着计算机理论教学的逐步深入,C程序设计课程的教学模式也几经改革,取得了很大的进步,但是,还存在着一些问题:C程序的教学往往过于强调语法的讲授,对如何分析和解决问题讲得不够透彻,没有把编程思路放在主体地位上;过于注重课堂讲授,对学生编程能力和程序调试能力的训练不够,忽视学生实际动手能力的培养。C程序作为一门程序设计类课程,实践能力是其重要的环节,虽然大多数高校都安排了实验上机环节,但是将近一百人的课堂,只有一个教师进行指导,这样的实际情况下,教师对学生实际操作的指导是远远不够的。因此,往往在一个学期结束之后,仍然有不少同学甚至不能进行简单的程序调试。

针对以上现状,本文试图构建分组实验的教学模式,提高C程序课程实验教学的质量,提高学生编程能力。

1 分组实验教学的概念

分组实验教学是根据实验课程及现有学生特点进行分组,使之以组为单位来完成实验任务,以提高实验教学效果,促进学生动手能力的提高。

2 分组教学的准备

2.1 分组实验设施的配置

C程序设计课程的实验教学一般都分配有专业的实验室,人均一台电脑,安装有专业的实验软件,一般为Turbo C2.0或Visual C++6.0,学生以自己的电脑为单位独立完成实验任务。本文拟提出的分组实验教学模式,在原有的实验设施的配置之上,还需要配置有网络连接,通过网络实现分组讨论。

2.2 小组的划分

在以往的类似分组实验教学活动中,对学生的分组一般是按学号顺序进行分组,这样的分组会导致学生学习能力在各小组分配不均匀,可能会出现有的小组实验能力特别强而另外小组实验能力非常弱的情形。因此,本文拟提出以学生上一学期的期末成绩作为分组的依据,每五人一组,使得成绩好和成绩较差的学生在各组基本平均分配。

2.3 小组组长的指定

每个小组指定一名组长,组长在小组里很大程度上起到教师的作用,不仅自己完成实验任务,还要负责组织小组成员的讨论安排以及,帮组解决小组成员程序调试中出现的问题。所以,一般指定小组内成绩最好的同学为小组组长。

3 分组教学的实施

3.1 实验任务的布置

利用QQ群功能,以班级为单位构建一个班级群,然后各小组成员构建自己的小组群,便于实验任务的布置以及群之间的讨论。教师在班级群将实验任务出去,实验任务包括指定实验名称、实验内容、调试计划等,各小组的实验任务可以相同也可以不同。

3.2 分组实验教学的实施

算法讨论。由于C程序设计是一门程序设计类课程,实验内容主要以编写程序代码为主,而编程的核心是算法的分析与设计。以往很多同学无论是计算机专业还是其他非计算机专业的学生拿到程序题目就开始编写代码,没有算法设计这一环节,因此对于程序调试过程中的逻辑问题无(下转第40页)(上接第38页)法解决。所以,算法设计纳入本实验环节,小组长组织本小组成员在QQ小组群里首先对算法的思路进行讨论,确定行之有效的算法,甚至为了强化大家对于算法概念的掌握,可以要求一个题目用多个算法来实现。

代码编写。通过算法讨论,并确定算法的正确性之后,各小组成员分别独立完成自己程序代码的编写。

程序调试。程序调试时C程序设计实验课程的重要环节。再有经验的程序设计者也不可能将所有程序一次性编写成功,调试――修改――调试,这是程序设计必经的环节。而限制学生C程序实验课程教学效果提高的重要因素就是学生程序调试能力太差。学生往往缺乏程序调试的意识,成绩好的同学遇到问题问老师,成绩不好的同学遇到问题干脆放弃,长此以往,很多同学上机的兴趣就遗失了。本文拟通过分组的形式,遇到问题,小组讨论,众人拾柴火焰高,在小组长领导之下,对于简单问题,成员之间共同解决。对于实在解决不了的,由小组长发给教师,在教师的指导下解决。这样的解决方式,一方面锻炼了学生调试程序的能力,另一方面自己的问题自己内部解决也激发了学生的成就感启发了其继续学习下去的兴趣。

实验报告的编写。以往的实验报告按人头上交,每个学生每次实验课均提交一次实验报告,大部分同学的实验报告均照抄程序代码,敷衍了事。实验报告是对一次实验过程的总结,包括算法的设计,程序的调试等,认真的总结也是一次学习的过程。在本论文中,拟每个小组只需以小组为单位提交一份实验报告。这种形式,一方面避免学生将大部分精力投入抄写实验报告中,另一方面,通过小组长督促本小组成员对本次实验认真总结,除了算法的设计之外,更重要的是调试程序的经验。

4 分组实验教学的反馈与调整

笔者在所授课班级通过实施分组实验教学,班级学生实验动手能力整体比较高,国家计算机等级考试过级率也高出同类班级。

同时,对班级不同小组成绩进行横向比较,发现实验内容难易程度、小组长的沟通和组织能力以及小组成员的学习积极性是影响教学效果的重要因素。因此,需要在教学实践中不断加以关注和调整,发挥有利因素,抑制不利因素,使得分组实验教学模式在C程序设计课程教学中发挥更加重要的作用。

5 小结

将分组式教学模式引入C程序设计课程教学,就课程改革而言具有重要意义,实践证明通过分组式教学,学生的C程序设计理论知识得到了很好的巩固,编程动手能力得到了很大的提高,同时对学生的学习积极性也起到了很好的激励作用。

程序教学法论文篇7

一、通过简单例子入门

很多程序设计教材,第一个入门程序都是“Hello World”程序,在VB程序中,类似的入门程序只需一个按钮和一行语句即可实现,但通过这样简单的演示程序却可以很好地介绍一个标准的图形界面程序中对话框、标题栏、按钮等基本要素,让学生知道学习程序设计也并不是一件很困难的事情。

在了解第一个入门程序后,紧接着给学生介绍的是一个简单计算器的设计,并以该程序和Windows系统自带的计算器程序作对比。让学生加深印象。简单计算器程序界面如下图所示。

该程序包括三个标签控件,三个文本框控件和四个命令按钮控件。在演示界面设计后,即可介绍个命令按钮的代码设计,加法按钮所添加的代码也只有一行:Text3,Text=Val(Textl,Text)+val(Text2,Text),其他三个运算按钮的代码只需将上述代码行中的“+”号分别修改为“-”“*”和“/”即可。最后给学生演示一个除数为O的特例,然后程序出现异常提示,在结合数学知识分析出错的原因后,告诉学生针对“÷”按钮的特殊情况增加条件判断语句即可,代码如下:

If Val(Text2.Text)OThen

Text3.Text=Val(Textl,Text)/VM(Text2.Text)

Else

MsgBox“除数不能为零!”

End if

通过上例很好地让学生了解了程序设计的基本过程,让他们知道程序设计好像也并不难,从而一方面激发了学生兴趣,另一方面也建立了进一步深入学习的信心。

二、以生动例子激发学生兴趣

针对现在很多学生喜欢动漫、游戏的情况,在授课过程中教师特意演示动画程序的设计过程(该程序是通过图片交替运动、叠加实现的。不是播放视频文件),并告诉学生实际的电脑动漫、游戏的设计原理也是类似的。

三、理论知识与实例教学相结合

《算法与程序设计》教材的章节基本是按照“先理论后实践,先语句再程序”的顺序安排的,因此很多教师上课时为了让学一生便于结合课本学习,也是先结合教材讲解基础理论部分,如算法与程序的概念、流程图画法等,然后再介绍具体的Ⅶ程序设计。由于大多数学生在本门课程之前没有学习过相关知识,使得他们学习有些茫然,不知道怎么去学,也不知道学习这些理论后有什么意义,从而失去了学习兴趣。基于上述原因,教师授课时可以不按课本的章节顺序来开展教学,而是从简单程序实例开始让学生了解本课程到底是学习什么内容,学会之后能够做什么,从而提起学生的学习兴趣;同时在后续学习过程中也完全可以将算法相关的理论知识融合在一些学生容易理解的生动实例中进行讲解。

四、结束语

程序设计教学可以培养学生逻辑思维能力、描述问题能力、解决问题能力以及创造能力。在开展教学时,通过实例引导学生学习兴趣仅是第一步,另外教师还需加强程序设计思想的培养,有意识地向学生渗透解决问题的思想方法。中学《算法与程序设计》教学方法是灵活多样的,以上仅是笔者在教学过程中的探索与体会,总结出来希望能够互相交流,把中学《算法与程序设计》课程的教学工作开展得更好。

参考文献:

程序教学法论文篇8

《C#程序设计》是计算机科学与技术和网络工程专业的一门重要的专业课,也是整个专业的教学体系中实践性较强的程序设计类课程。《C#程序设计》课程以C#语言和Visual Studio开发环境来介绍程序设计的思想和方法,重在培养学生良好的程序设计思想,并通过课程实践环节来提高学生的动手实践能力。但是在传统的教学方法指导下,程序设计类课程的实践教学过程中注重语言的语法、语句的教学,忽视程序编程思想和动手实践能力的培养。其次,讲授知识老化,与实际应用脱节。最后,课程实验和课程设计等实践环节相互孤立,对学生程序设计思想和能力的培养锻炼没有连续性。针对以上问题,需要对程序设计类课程的教学进行研究。

目前,有关程序设计类课程的教学研究方法中,多侧重于教学体系和模式的改革[1,2]、课程建设的研究[3]、实践教学内容和方法[4]等方面。对于如何提高学生的实践能力的研究不多,本文在分析现有实践教学中存在的问题的基础上,从理论教学、实践教学和课程设计三个层次(渐进式教学)介绍如何指导教学过程,以及采用案例教学作为辅助教学手段来尽可能地提高学生的实践能力。

1 渐进式教学方法

1.1 理论课程教学

理论课程,即课堂教学是学生直接学到课程知识的途径。程序设计类课程的理论教学不能像其他理论课程那样只为了讲解理论,而是要为实践教学服务。理论课程教学过程中,应重点关注以下几个方面。

(1)知识的类比。例如JAVA程序运行需要安装JAVA虚拟机(JVM),而C#程序运行则需要安装.NET框架(.NET Framework);JAVA程序编译时首先编译成字节码,然后再变成.exe文件,而C#程序的编译过程则是先编译成中间语言(MSIL),而后再编译成.exe文件。通过这样的对比学习,学生不仅熟悉了C#的编译过程,而且还清楚了C#与JAVA编译过程的区别。

(2)启发编程思想。为了更好地培养学生的编程思想,课堂讲解一个问题时要注意其编程的思想和解决问题的方法,通过选择多种实现方法,灌输算法设计的思想;这样既可以激发学生的学习兴趣,又可以培养学生思考和分析问题解决问题的能力。

(3)理论与实践教学的结合。针对实践教学过程中经常要用到的知识,借助课堂教学的方式予以讲解,让学生知道哪些知识必须要掌握,使学生学习更加有目的性。

除此之外,还可以借助网络技术搭建课程教学网站。通过网络可以学习辅助资料(包括:课件、教学大纲、实验大纲、实验指导手册和教学案例等)。这样可以极大地方便学生的学习,为进一步提高教学效果提供了支持。

1.2 实验教学

C#的实践教学是C#教学中的重要一个环节。通过学生上机实验,使学生掌握使用C#开发Windows窗体应用程序、数据库程序的相关方法。

《C#程序设计》实验包括:基础型实验和综合型实验两种类型。基础型实验按照章节介绍的知识点进行设置,重点加强学生对基础知识的掌握。具体内容包括:Visual Studio开发环境熟悉,C#基本语法练习、Windows窗体界面设计、数据库操作等,这些实验不完全是验证性实验,在验证的基础上增加了设计的内容。综合型实验综合考查基础型实验中用到的知识,以开发一个简易银行业务管理系统为例,熟悉C#开发Windows窗体应用程序和数据库操作的基本方法。

除此之外,在实验教学过程中加强了实验监督和实验考核等环节。实验监督环节主要由教师完成,由教师检查学生的上机实验,一方面给学生打分计入最后实验课程成绩;另一方面可以发现学生的在某些方面知识的欠缺,便于及时解决问题。实验考核方式中增加上机考试环节,进一步督促学生重视实验课程,加强自身的动手实践能力的锻炼。

1.3 课程设计

C#课程设计是《C#程序设计》课程实践教学的重要组成部分,也是培养学生实践能力和创新能力的重要环节。C#课程设计以分组的形式进行组织。每组由4~5人组成,每组选择一个负责人。小组负责人给同组内的同学安排具体的开发任务。C#课程设计采用任务驱动模式进行设计,由教师给出一些课程设计任务,供每个小组进行选择,然后由小组内的学生分工合作完成。课程设计任务的设置不仅需要综合运用课程所学的知识,同时也贴近实际项目开发。为了便于监督管理,具体实施过程中还要进行中期检查,由学生汇报课程设计任务进展情况,同时为学生当前的进度进行评估和打分。最后,做好期末项目答辩工作。学期末,由每个小组在课堂上演示其设计和完成的成果,由各组组长和教师统一打分。

2 案例辅助教学

为了进一步提高实践教学效果,在实践教学的过程中还充分利用程序设计案例作为辅助教学手段。任课教师准备内容丰富的案例,然后分发给学生,由学生进行参考和学习。专门设计了一些和游戏相关的教学案例,例如:打地鼠、打飞鸟、黑白棋、找茬等案例,教师及时引导学生在此基础上进行功能完善或者鼓励学生开发类似的游戏。与此同时,还准备了一些和实际项目相关的教学案例。比如:任务管理器、文件监控等案例,学生通过研究这些案例学会了如何开发系统类程序的技术。通过实施案例教学,不少的学生自己开发自己的小程序,并在上课前在班级进行演示,不仅给全班学生做了榜样,而且还带动了班级的学习风气。

3 结语

本文提出的渐进式教学方法,从理论教学、实践教学和课程设计三个环节来强化学生实践的能力的培养。近几年来,在我院的C#程序设计课程中实践此方法,发觉学生的动手实践能力有显著的提高。不少学生因为动手实践能力强,毕业后就找到了好工作。下一步要强化实践教学平台的建设,开发上机考试系统,为实践教学提供良好支撑,保证实践教学质量。

参考文献

[1] 罗宪,王家伟,周建丽.高级语言程序设计、面向对象程序设计精品课程教学改革与实践[J].重庆交通大学学报:社科版,2009,9(1):142-143.

程序教学法论文篇9

目前,高职教学中的考试还是延续了采用试卷化来考察学生的成绩,将成绩的好坏作为衡量学生学习结果的标准。为了更好的进行教学评价方式的改革,适应在新时期教育发展趋势对考试评价提出的要求,就需要引入一些科学化,系统化的评价方式来进行有关课程的评定。S-P表是一种采用形成性评价理念为基础,使用图形化的数据表现形式和强大的数据处理能力的评价法,被广泛地应用在各种类型的测验评价中。本文主要以《C语言程序设计》课程为研究对象,运用S-P表分析法的相关参数计算结果的同时结合理论研究方法,将试卷的测验作为切入点,对《C语言程序设计课程》相应教学内容的教学情况进行分析研究。

1 《C语言程序设计课程》中存在的问题

近年来,高职院校对于C语言程序设计的课程实践教学非常重视,加大了对基础学科的投入,从教材的编写,师资的培养到参加各种类型的竞赛相比有很大的改善,但仍然存在很多的不足,主要表现在以下几个方面

(1)课程学习目标不明确。

在高职的《C语言程序设计课程》教学过程中,发现学生对于课程的认识非常浅,仅仅认为该课程是其他程序设计类课程的基础,具体会对高职的计算机专业的学习有多大的帮助完全不理解,因此导致学生在学习的过程中不够重视。

(2)理论教学过程忽略培养学生的综合能力

在传统的理论教学过程中,都是采用章节式的教学形式,引导学生从循序渐进按照章节来进行学习,在每一章学习的过程中,采用判断题,程序填空题,编程题的方式来进行对理论过程的消化,因此这种效果看上去可以起到对知识点有益的补充,但是缺乏从整体结构上进行把握,忽视了对综合应用能力的考察。

(3)实践教学开展的效果不佳。

目前,高职院校的程序设计主要是教学理论的讲解和上机的实践过程,实践环节的地位始终都是摆在理论教学环节之后,主要是用来对理论教学加强实践过程中的一种表现,因此课程的安排初期,无论是从实践学时的分配、以及实践课程的开展次序来看都明显的弱于理论教学。因此在教学过程中学生对实践过程的教学不够充分重视,造成了在考核过程中有些学生的理论很强,但实践上机调试偏弱,在一定程度上严重违背了程序设计课程的学习宗旨。

(4)课程评价机制落后,严重束缚学生的创新能力。

课程评价一般分为理论评价和实践评价两种方式,理论评价多以选择题,判断题,程序填空题等方式出现,考察学生对于程序的理论知识点的掌握情况,这种方式无法从根本上考察C程序设计的运用,在上机过程中的考核方式由于学生的人数和时间的关系,无法做到对每一个学生进行考察,即使在考查过程中,也往往是依靠程序的正确结果来进行给分,而对于一些错误答案的程序往往不够重视,在这其中可能会导致有些错误的程序往往包含了一些学生的新的思想和想法,这样会严重打击学生的积极性,使得学生放弃自己的想法复制一份结果正确的标准格式代码进行提交,不利于提高对学生创新能力的培养,降低了他们对于学习的热情。

2运用S-P方法分析《C语言程序设计》课程

2.1 S-P分析法简述

S-P 分析法是一种非常好的试卷评价方法,它主要考察学生的学习情况、辅导内容和考试方式为主旨,将考察学生的方式采用图形化的方式进行表达,是一种理论结合实践的验认知诊断评量技术。

2.2课程数据导入

本文将各试卷的知识点对应的成绩作为研究的对象,对原始的成绩进行合并转换,画出相应的 S 曲线和 P 曲线,并采用 S-P 方法进行评价分析。本步骤中所做的工作主要分为两个阶段:

(1)学生成绩的准备。首先,对三份试卷的原始成绩进行收集和整理,将收集好的试卷中的原始题目和成绩进行合并,得到全新的考试成绩表。表中的每个成绩数值对应题目的知识点都不尽相同,为后续的转换组好准备。

(2)将新的学生成绩考试表转换成学生原始得分布尔矩阵。为了更好的进行研究,本文采用的问题平均的得分值作为赋值的标准,所以试卷中题目都需要进行布尔转换,在新学生成绩考核表中分数的转换均需严格按照赋值标准进行判断和转换。

2.3 S-P分析课程课程因素

(1)试卷信任度

本文选取了近三年的三次《C语言程序设计》的期末测试,本次测验根据经典测量理论,即采用分半法来计算相关系数的方法来计算信任度系数值。

计算过程如下:

步骤1:计算出整个测验中每个学生在试卷中的奇数题目的总得分()和偶数题目的总得分()。

步骤2:用下列公式求出奇数题和偶数题这两组分数的相关系数:

步骤3:用如下斯皮而曼-布朗公式进行校正:

依据经典测试理论,本文对三份《C 语言程序设计》课程试卷计算各自的信任度系数值,来进行客观的分析这些试卷的测试结果是否具备真实性。计算的过程是首先对所有参加测试学生的试卷按照题目的奇偶编号进行统计,累计统计每份考卷中的奇数题目的得分,以及偶数题目的得分 ,将这些值导入到 Excel 的环境中对所有的奇数题目总分和及偶数题目总分和以及的值、的值和的值,并分别求得这些值各自的总和,最后将这些结果都代入公式(1) 和公式(2)中即可求得最后的信度系数值。

(2)试卷效度

根据经典测试理论有关效度的分析方法。本研究结合近三年来的三次《C语言程序设计》课程考试答题情况和标准答案的分析得到了三次考试本身的效度情况,其次,对三份试卷的所考察的知识点进行计算和统计,并根据考试教学大纲中的要求进行对比,发现试卷考察的知识基本覆盖所规定的教学知识点。

(3)差异系数

将三份试卷的数据导入S-P表中,按照差异系数公式(3)来计算差异值。

式中:表示差异量,表示正确回答率。

一般来说,考试类型的不同导致的差异系数的值也会不同,一般对应检测学生成果的考试取值在0.5左右,而本次使用的试卷符合这个测试类型。 三次试卷的测试差异系数值为表1所示:

3使用S-P分析《C语言程序设计课程》反馈

(1)学生学习状况方面

统计计算三个班级中参加期末考试的学生的原始分、平均分、差异量三个考试班级中学生的得分率和学生成绩差异情况,对三个班级的学生学习状况按照这些指标进行分类。这种分类是动态的,由多种统计数据划分,将学生的个体与全班的表现对比,可以多角度的了解学生状态,以便他们在考试中发挥出现异常都能帮助授课教师继续分析和追踪。

(2)试卷整体质量方面

本课题中使用的《C语言程序设计》的试卷质量不尽相同,每份试卷的信度和效度都不同,特别是在效度方面,三份试卷的效度都比较高,其次,三份试卷的难度情况和分值情况不同,特别是在2013年的试卷中,P曲线存在明显的断层,这说明该年的试卷在出题方面存在一定的问题。

(3)教学环节和因素分析方面

通过S-P分析得到,任课教师仅仅关注教学知识点是不够的,分析中发现学生和教师对于存在的知识点的学习感受和教学效果是反应到一些具体的教学环节和因素上的,例如学生对于课程的学习兴趣,分析程序的思维能力,教学过程中的多媒体的手段以及课程内容的安排等等,这就要求教师在课程的日常教学实践中能够从教学环节和饮食上进行分析和改进,提示教学知识点的教学效果,这样不仅可以帮助教室解决教学过程中的问题,还可以根据学生的具体情况设计更适合学生的教学方法。

(4)学生能力方面的挖掘分析

使用S-P分析方法对课程的诸多因素进行了分析,课程的评价也是学生的学习能力和学习兴趣的反应,因此使得授课教师加强学生对《C语言程序设计》中语法细节掌握情况的反馈,以及学生具备的基础能力情况,进一步挖掘和培养学生的学习能力。

4贡献及总结

本文以 2012,2013和2014三个年度的《C 语言程序设计》课程作为研究对象,通过使用S-P参数公式得到相关的反馈信息,针对参与考试的学生的学习情况、试卷质量和相应的教学知识点的相关情况进行了分析和研究,得到了如下的内容:

(1)对《C 语言程序设计》课程大纲下的三个年度的学生考试成绩进行汇总,并对学生的考试情况、试卷质量和教学知识点覆盖等情况进行了统计分析;

(2)通过S-P分析法得到试卷中的部分的异常试题和需要重视的知识点多注意的教学知识点,分析和总结出这些引起共性的知识点的教学效果教学环节和因素,并反馈给了任课教师,以便能够更好的提醒和帮助老师进行课程上的改革,以便取得更好的教学效果;

(3)将S-P分析过的部分班级的学生学习《C 语言程序设计》课程中的状况及时反馈给教师,并能够在今后的教学过程中能够注意学生的学习状况并加以指导;

(4)不断完善S-P表的评价分析理论,并需要结合教育学中经典教育测量理论中的有关信度、效度值的指标计算分析内容,可以弥补自身的不足,并能够与课程的其他方法进行补充,不断完善提高。

5综述所述

需要不断在《C语言程序设计》课程中进行改革,本文的S-P评价方法还存在一定的不足,需要在今后的教学过程中不断改进S-P评价方法,使之能够为计算机课程的改革教学提供有利的支持。

参考文献:

[1] 冯丽娜.S-P表分析法的教学应用研究-以《C语言程序设计》课程测试为例[D].内蒙古师范大学硕士论文,2013.

程序教学法论文篇10

我国高等教育已经把培养具有创新能力的人才作为一项迫切的任务。创新问题解决理论是前苏联发明和创造学家G.S.Altshuller 在1946年创立的,“TRIZ”是其俄文单词(Teoriya Resheniya Izobretatelskikh Zadatch)的首字母。目前TRIZ在创新设计、创新教学、创新科研等方面得到应用,取得了可喜的成果,其中阮汝祥 [1]和高常青 [2]在TRIZ的理论和发展、应用等方面做了详细的研究;江敏[3]和卢惠林 [4]在计算机课程中具体如何应用做了深入的研究。但是,这些研究一般都是针对TRIZ理论本身的研究,或是对程序设计类专业课研究,很少对计算机程序设计公共课程的研究,对于非计算机专业学生,程序设计类课程作为一个学生必修课,它不像计算机专业学生要求那么高,设计的程序也不是特别深,只是与自己所学专业有效结合,通过该课程,培养学生的计算机思维、计算机素养,所以更体现出需要创新思维的深入挖掘。本文将TRIZ理论与学生创新能力培养相结合,将其应用到计算机公共课程素养教育中,为培养具有计算机素养软件的创新性人才培养提供一条辅助途径。

1 TRIZ理论的创新思想

TRIZ的含义是 “发明问题解决理论”。经过50多年总结出解决技术矛盾所遵循的创新原则,建立起了一整套实用的解决发明问题的理论和方法体系――TRIZ理论体系。TRIZ理论体系[1]主要包括以下几个方面:问题分析与建模方法;技术系统进化法则;冲突解决原理。

TRIZ理论的创新方法指的是解决冲突的原理,最终建立了包括发明原理、发明问题解决算法和标准解在内基于知识的逻辑方法。在利用TRIZ理论解决实际问题的过程中,首先可以将问题建模成TRIZ模型,然后利用TRIZ理论提供的方法和工具,找出该问题的普适解,再根据实际的情况和环境,最终将普适解转化为领域解或特解。

2 程序设计教学传统模式

程序设计课程长期沿袭传统教学模式:以一种高级语言(如Visual Basic或Visual C++)的语句体系为脉络展开教学,详细地讲解其语句、语法。教学通常采用整堂灌输书本知识,比较抽象,枯燥无味,使学生产生畏惧心理。学生每学习一个语句只需要做一些与该语句有关的习题,学生很少动手实践。教师在实践教学过程中, 对一些问题的解决,方法模式化、绝对化,有没有其他途径或思路,存在哪些不确定因素和各种选择的可能性等。

3 TRIZ理论在计算机程序设计教学中的应用

教学中采用TRIZ理论中发明式教学,将本课程与专业特色相结合,鼓励学生自己思考,并对他们的思考结果给予鼓励,培养他们思考的成就感,进而激发他们的创新思维,使得课堂教学在动态思维变化中,不断提高学生创新能力。

3.1 基于TRIZ 理论进行发明式教学,启迪学生的创新思维和发散思维

针对非计算机专业的学生,在教学中采用TRIZ理论,将本课程分为几个关键点,对关键点鼓励学生自己思考。对学生的创新思维训练的主要方法有:

3.1.1 采用基于专业特色的案例教学法

1/4时间教师传授该知识点,使学生在理论上产生认知。

1/2时间教师与学生互动式解决问题,本专业实际应用在哪些方面,如何应用,有没有更好的方法等等。

3/4时间学生在教师引导下,练习完成问题分析和求解过程,并有效地举一反三。

最后学生自己梳理、总结、提炼知识,并归纳分析问题和解决问题方法,教师进行适当调整。

3.1.2 采用综合作业(项目)引导学生的创新思维

TRIZ理论认为,对问题中存在的矛盾和冲突的解决,作为程序设计类课程,其最终目标在于培养学生的程序开发能力,所以在程序设计课程中,所谓的“冲突”,就是如何培养学生根据实际专业特点,学以致用中的项目开发能力,提高实战能力,即项目教学法[5]。在教学进行到一定阶段时,可以让学生完成一个完整系统的开发,完成整个的开发流程,包括需求分析、设计、开发、测试等等,同时,在实践的过程中,给学生足够的创新空间,在实际项目中培养和鼓励学生发散性的、创造性的设计。

3.1.3 进行创新思维技法和思维方法的训练

每讲完一个知识点,可以让学生相互启发,激发他们的联想思维、想象思维、灵感思维, 进而得到创新的成果,然后再进行拓展,使学生在视觉、感性认识得到充分利用,激发他们的创新激情。

3.2 TRIZ理论ARIZ算法的实践教学,强化实训教学

在课程教学中穿插TRIZ理论的ARIZ算法实践教学,主要从下面几个方面改革:

3.2.1 课程设计和实验内容的改革

将实验课程加强综合性和设计性实训的开设,加入自己的创新思维,才能完成实训内容。这个实践环节对培养学生的创新能力有着重要作用。这些实践课程采用兴趣组合、团队合作、相互帮助和启发的方式,对现有的问题提出创新性解决方案。

3.2.2 实验考核方案改革

采用上机自主学习系统,对每个实验项目按知识要点分配分值,为每个实验项目配置评分程序和测试数据,在实验课结束前10分钟对所有学生的提交的程序进行快速评测,生成评测结果报告,报告中详细记录每位学生的得分情况以及每题完成情况。这种实验考核方案不仅将教师从低层次的批改实验报告等繁杂的工作中解脱出来同时增强了批改的准确性,降低教师重复性、简单性工作量;而且在分数驱动下,大大提高了学生的实验积极性和主动性,实验出勤率达到 95%以上,提高学生了动手编程能力。

3.2.3 积极开设第二课堂, 鼓励学生参与创新活动

基于TRIZ理论的问题解决过程, 是发散思维和收敛思维相互作用的过程, 是运用逻辑思维和非逻辑思维的过程,具体环节的思考又充分利用各种创新思维方法。结合各个学院专业特点和教学优势, 程序设计创新实训联盟,具有实践经验的双师型教师构建第二课堂, 供学生在课余进行创新活动。

4 总结

经过对非计算机专业计算机程序设计类课程的教学研究和实践,我们认为要破除旧的教学体系,需要用新的理念、新的内容、新的方法组织教学,针对非计算机专业学生对程序设计类课程的认知特点、认知心理、学习模式。提出基于TRIZ理论培养创新能力,TRIZ理论不能直接提供问题的创新解决方案, 将通用解转化为特殊解是有效运用TRIZ理论的关键。用先进的程序设计理论指导程序设计教学,在教学中加强编程算法、逻辑思维和编程方法的学习。

【参考文献】

[1]阮汝祥.TRIZ理论与创新方法[K].北京:中华人民共和国工业和信息化部,2009.

[2]高常青,黄克正.由TRIZ理论的通用解求问题的特殊解[J].中国机械工程,2006(1):84-88.

程序教学法论文篇11

中图分类号:G642

1 课程教学现状及存在问题

“C/C++语言程序设计”是理工科非计算机专业本科学生的第二门计算机课程,也是大学计算机基础系列课程的核心课程。“C/C++语言程序设计”课程的内容抽象,概念和语法规则较多,特别讲究适用技巧。长期以来,高校都在不断地探索和实践关于“C/C++语言程序设计”课程的教学改革,但仍然存在很多问题。例如,教学依然以传统教学方式为主,不能将实验环节与课堂教学环节很好地相互连贯,相互印证,使得理论教学和实践教学脱节;某些教师忽视学生的实践能力和创新能力的培养,使学生在分析问题和解决问题时无从下手,缺乏编程和调试的能力;实验教学中的多数实验内容是验证性的,学生机械式的运行程序,对知识的理解只停留在表面上;理论和实验课时数较少,上课信息量大,学生接受知识的进度不一样,这就导致教师和学生的学习步调不一致。

针对上述问题,许多高校对“C/C++语言程序设计”课程的教学作出了有益的探索,如文献[1]提出“通、实、新、联”的教学理念;文献[2]提出教学设计原理;文献[3]提出项目教学法;文献[4]提出案例教学法;文献[5]提出“机房授课+自主学习”的授课模式;文献[6]提出将“以应用为背景,以知识为主线,以提高能力和兴趣为目的,变应试为应用”的教学理念应用于该课程的教学中。这些方法均在一定程度上激发了学生的学习兴趣,增强了学生的动手能力,取得了较为明显的教学效果。

为了探究出适合成都理工大学人才培养的课程特点,“C/C++语言程序设计”课程组经过多年的课程建设和对教学环节的研究与探索,提出了“以应用为前提,学生为主体,知识为主线,培养学生的实践动手能力为着力点”的教学理念,构建了一套教材体系完善、教学资源丰富、教学手段先进、教学评价合理、考核方式差异化、精品课程网站新颖的教学体系。下面分别从教学设计、教学方法、教学手段、考核方式以及教学资源等方面进行阐述。

2 教学设计及课程内容组织

2.1教学设计

成都理工大学每年有4000名以上的学生参加“C/C++语言程序设计”课程学习。为实施因材施教,我们重视研究性学习、探究性学习、协作学习等现代教育理念在教学中的应用,根据课程内容和学生特征,对教学方法和教学评价进行设计,并在教学理念与教学设计上实施了多种改革举措。

1)以学生为中心的教学模式。

以学生为中心的教学模式让教师从传统的教学方式中解脱出来,变“教学”为“导学”。教师充分利用多种教学媒体和提示学习资源,讲重点、解难点、释疑点,讲评作业,指导学习方法,辅助小组学习,发挥学生的主体作用,引导学生自主学习,帮助学生培养自学能力。

教师要在理论课前了解学生是否掌握了与课程有关的基础知识和基本技能,根据学生在实验课的表现来了解学生是否掌握了教学目标中要求学会的知识和技能,以及掌握的程度等信息,从而确定后续教学中应重点讲解和辅导的知识,根据学生的实际情况设计教学环节。对于部分优秀学生和已经学习了程序设计的学生,我们要加快他们的学习进度,增加学习难度和深度,使他们可以很快在自己的专业中使用程序设计来解决相关问题。

2)精心准备每一节课,激发学生学习积极性。

激发学生对程序设计课程的学习兴趣,是本课程任务执行的重要目标。学生是主动学习还是被动学习会让教学效果产生明显的差别,因此每位教师都应精心准备每一节课。引领学生跨入程序设计大门的第一节课是极其重要的。学生所关心的是所学课程对自己的专业和今后的工作有什么作用,教师可从不同的专业角度,结合当前最热门的IT话题和实际应用为学生介绍学习本课程的意义和作用,同时介绍一些往届学生将所学程序设计知识用于数学建模、程序设计竞赛、专业课程学习等方面的生动实例,这些都是教师第一节课的良好素材。

3)培养学生系统化的程序设计思维。

程序设计课程长期存在着注重语句、语法和细节的特点,基本上是以程序设计语言自身的体系为脉络展开的。许多学生在学习程序设计语言课程时会觉得枯燥难学,学过后又不能用来解决实际问题。所以学生虽然学了一定的程序设计知识,但编程能力较差。‘部分学生在遇到实际问题依旧无从下手。而系统化程序设计思维培养模式是从本科生的认知特点出发,让教师在教授学生程序设计课程、提高学生编程能力的同时,培养学生的系统化程序设计思维。

程序设计课程不仅教学生如何进行计算机编程,而且教学生如何像程序员一样思考问题。系统化的程序设计思维的培养过程就是让学生自己动手解决实际问题的过程。这个过程充满了学生对未知问题的探索、研究与创新,不仅可以教会学生解决在程序设计中遇到的问题,而且可以锻炼思维,使学生的逻辑思维更加严密,这对一个理工科的大学生来说是至关重要的,对学生整体素质的提高、程序设计课程整体教学水平的提高都有现实意义。

4)互换角色思考与提问。

在教学过程中我们发现,很多学生不提问,有时是学生提不出问题,有时是不知该如何提问。这时,教师需要站在学生位置上,思考学生可能会有什么问题,然后由教师提出问题,让学生来回答。如果学生不能回答,教师再为学生解答。教师备课时不再只是准备我要讲什么,而是思考学生会遇到什么难点,需要向学生提什么问题、解答什么问题。基于此目的,教师需准备大量经典案例,提出问题,分析问题,并在问题中设置一些错误,让学生思考原因,并进一步思考如何修改错误,在这样的学习过程中潜移默化地掌握基本的语法知识和解决问题的方法。这种模式转变了学生的学习方式,激励学生积极思考问题、分析和解决问题。

2.2理论课程设计

由于科学技术的快速发展,计算机科学与其他学科间的交叉、融合日益增强。大多数非计算机专业的培养目标已将学生的计算机程序设计能力作为了一项重要内容。

本课程主要是针对非计算机专业的理工科一年级大学生开设的。与计算机专业不同的是,非计算机专业学生一般只学一门语言课程。因此,该课程的教学就担负起培养学生编程能力的重要责任,成为了学习其他程序设计语言的基础。

根据非计算机专业各学科的培养目标,“C/C++语言程序设计”课程在理论课程内容设计上注意知识结构的合理,强调基本能力的培养,注重基础理论与实际应用的融合。课程内容体系结构重点突出学以致用。课程内容知识结构由C语言简单程序的编写和调试、C语言程序设计基础、控制结构、数组、指针、函数、编译预处理与变量的存储类型、文件、结构体与共用体、图形程序设计基础、C++程序设计基础、查找和排序12部分组成。

根据学以致用的原则,在实际应用中,函数是程序设计的重要内容之一,也是学生学习的难点之一,因此在理论课程设计中,我们将函数的使用提前讲解,让学生尽早接触函数,理解模块化的设计方法,掌握函数的基本设计和操作。在讲授第2章有关输入/输出库函数时,可同时结合第8章文件的知识,使学生掌握实际问题中涉及不同数据的不同输入/输出方式,较好地解决了学生学习C语言后不能熟练掌握文件操作的问题。

教材在内容编排上注重易用性。每章的开头设置本章学习目标,之后设置本章学习指导,包含“课前思考”“本章难点”和“本章编程中容易出现的错误”。每章后的练习题涵盖了程序设计中的常见算法,涉及简单程序设计、较复杂程序设计、易于举一反三的程序设计问题等内容,使学生能够通过练习,大大地提高编程能力。

2.3实验课程设计

“C/C++语言程序设计”是一门实践性很强的课程。在近几年的课程建设与教学改革中,实验课程注重理论课程内容与实验内容的有机结合,强调学生创新能力和实际动手能力的培养。C/C++程序设计实验教学内容改变了以往验证性实验为主的现象,使设计性实验内容占了70%以上。通过实验,培养学生分析问题和解决问题的能力,以及动手能力和程序设计能力,从而加深对理论课程内容的理解。

实验课程配有实验指导书,共设计了11个实验项目和一个综合程序设计,其基本出发点是帮助学生理解和消化课堂教学的内容,培养学生自主学习能力,加强其实践能力和团队协作精神,让学生掌握程序设计的基本思想和方法。具体实验内容包括:C/C++简单程序的编写和调试、C语言程序设计基础、控制结构、数组、指针、函数、编译预处理、文件、结构体与共用体、图形程序设计、C++程序设计基础。

3 教学方法和手段

3.1教学方法

为了实现程序设计课程的教学目标,使学生不但掌握高级编程语言的知识、编程技术和基本算法,更要掌握程序设计的思想和方法,培养学生进行问题求解和编程的能力,以及探索和创新能力,我们采用了多种教学方法,主要做了以下改革。

1)课内与课外训练相结合,注重学生综合能力的培养。

课内教师根据教材进行引导学习,加强典型例题的启发式讲解。在分析常见错误案例的过程中,教师讲解程序设计的基本方法、程序测试方法以及程序调试和排错方法,帮助学生理解错误发生的原因和实质,掌握纠错的方法和解决的对策。在实验教学中,我们为每堂实验课设计相应的实验项目。实验项目的设计注重实用性和综合性。实践教学强调大量程序设计的训练。教师在网上为学生一些经典、实用、有一定挑战性的作业,鼓励学生课外多训练,倡导学生课后以寝室为单位,组成学习小组,进行讨论、分析和解决问题。

为了激励学生参与程序设计的实践,进一步提高学生程序设计的兴趣,提升他们的软件技术水平,成都理工大学每年举行一次全校范围的程序设计大赛。大赛采用初赛和决赛制,要求学生在2~4小时内完成一个综合性较强的程序设计题目,或在一段时间内完成一个综合程序设计题目,然后进行答辩。

2)重视实践教学环节、注重学生创新意识与应用能力的培养。

为了培养学生的实践动手能力,我们加强了实践教学环节的管理。教师要积极使用多媒体实验室的教学设备,进行启发、引导式的实验指导,将平时测试与期末测试结合,测试学生在1个小时内调试和正确编写程序的能力,引导和督促学生重视实践教学。开放性实验注重培养学生的创新意识与应用能力。

3)网站互动学习。

课程组建立的教学网站、精品课程网站、课程资源平台等为学生提供了网络课程、网上答疑、作业提交、理论试题及答案、上机试题及答案、教学录像、视频节目、精品课程网站链接、相关学习网站链接等资源,扩充了课堂教学区域。学生可以在任何时候、任何地点进行互动学习。这种方法及时地解决了学生在学习中遇到的疑难问题。

4)改革考核方式,采用多元评价方式考核实验成绩。

为了提高学生的学习兴趣,培养学生问题求解和编程能力,以及探索和创新能力,我们采用了开卷和闭卷相结合的考试方式,鼓励基础好的学生开卷考试,完成一个综合编程题目。经过实践,参加开卷考试的学生在独立分析问题、解决问题和编程能力上得到了很大提高。

3.2教学手段

多年以来,成都理工大学“C/C++语言程序设计”课程最大限度地、多方位地应用了以下现代教育技术手段。

1)课堂多媒体理论教学。

本课程的理论教学将传统教学手段和现代教育技术手段相结合,在应用现代教育技术手段的同时,继续发挥传统教学的优势。课堂上多媒体课件的播放效果直接影响到学生的听课效果,因此我们不仅制作了幻灯片,还利用Autherware、Flash等工具,制作了具有较强动画效果的多媒体课件,将程序的执行过程利用动画演示,生动、形象地模拟了计算机执行程序的真实情况。

2)建立计算机基础教学网站。

我们开发课程网上教学平台,为学生提供电子教案、多媒体课件、视频等丰富的网上教学资源,同时提供讨论和在线答疑,构建以学生为中心的自主学习环境。

3)网上考试系统。

网上考试系统为学生提供了模拟和考试环境,实现了系统自动组卷和评分功能,为学生课后自学和自测、提高教学效果搭建了一个有效的平台。

4 考核方式

课程考核可以采用开卷和闭卷2种形式。

1)闭卷考试由笔试和机试组成。

(1)笔试(占总成绩的50%)主要考核语言基础、基本的阅读和编写程序的能力。题型包括选择题、填空题、程序阅读题和程序填空题。

(2)机试(占总成绩50%)主要考核程序设计能力,包括上机考试(占总成绩的30%)和平时出勤及作业完成情况(占总成绩的20%)。

2)开卷考试主要考核学生综合程序设计的能力,独立分析问题和解决问题的能力,难度较大。通常只有学习优秀的学生可以参加开卷考试。这些学生必须是按时完成了每一次的实验项目,且中期考试合格。开卷考试要求学生提供源程序、开卷考试报告并参加面试。

5 结语

通过对各种教学方法和教学手段的研究和探索,我们改变了传统的知识传授理念,从而更加注重学生解决实际问题的能力,并提出“以学生为主体,教师为引导,网络教学为辅助”的全新理念,极大地激发了学生的学习兴趣,挖掘了学生的创造潜能,又培养了他们自主研究、协作学习的能力。实践证明,通过上述教学改革措施,教学效果取得了显著提高。在计算机二级c语言考试中,学生通过率较往年大大提升。当然,实际教学过程是一个相当复杂的系统,也还存在着一些需要解决的问题,还需要我们在今后的实践中继续开拓,不断探索。

参考文献:

[1]赵珊,贾宗璞,“C语言程序设计”课程教学模式改革方案探讨[J],科技资讯,2011(35):185-187。

[2]黄群,C语言程序设计课程教学设计探讨[J],计算机教育,2010(5):78-81。

[3]陈洪超,项目教学法在“C语言程序设计”课程中的应用[J],重庆电力高等专科学校学报,2012,17(3):29-30,36。

程序教学法论文篇12

中图分类号:G642

文献标识码:B

1“编译原理”课程教学现状

编译原理作为计算机专业的一门核心课程,在教学中占据十分重要的地位。但由于其内容具有较强的理论性和实践性,学生在学习过程中感到内容抽象、算法复杂、难于理解,因此“编译原理”被普遍看作是计算机本科教学中最难讲解、最难学习的课程。总结起来理由如下。

(1) 本课程涉及不少理论知识,如形式语言和自动机理论、语法制导的理论等。这些理论的学习有一定的难度,特别是语法制导定义(或翻译方案)的设计,因为它本质上是一种事件驱动的程序设计,这对于三、四年级的本科生来说还是较难掌握的。

(2) 本课程包含了很多算法,大的有LL(1)分析算法和各种LR(1)分析算法等,小的有DFA化简算法、计算开始符号集合和后继符号集合的算法、各种数据流方程的迭代求解算法。这些算法要比数据结构中接触的算法复杂得多,学生在学习数据结构的时候,接触过很多算法,对于不理解的算法可以跟踪算法的执行过程,而跟踪编译程序中的算法则要麻烦得多,想深刻理解算法的思想很困难。

(3) 编译程序规模大,不可能在一门课的时间内把所有的细节都讲清楚,这使学生对编译程序各逻辑部分之间的接口和一些算法的实现是模糊的。

针对这种情况,如何提高这门课程的教学效果,是一个值得探讨的问题。笔者多年来一直从事“编译原理”课程的教学,对如何改进教学方法和提高教学效果做了一些研究和探索,并取得了良好的效果。

2明确教学目标,提高学生学习兴趣

很多学生认为“编译原理”只能应用在写程序语言的编译器上,而他们以后可能不会在编译器及其相关领域方面钻研,所以学习兴趣不高,其实这是一种误解。编译技术是计算机语言发展的支柱,也是计算机科学中发展最迅速、最成熟的一个分支。通过学习编译程序的构造原理和技术,将有助于深刻理解和正确使用程序设计语言。编译内容涉及到计算机的组织结构、指令系统以及操作系统,掌握编译技术有助于加深对整个计算机系统的理解。另外,由于编译程序作为系统软件在性能上具有严格的要求,这使得它所使用的算法经典、高效,而这些算法、思想和实现技术也可广泛地应用于一般软件的设计实现。如正规式和有穷自动机在文本编辑器中的广泛应用,有穷自动机在字符串查找中的运用,必经节点算法在网络中的运用,由文法来定义网络协议等。在教学中,可以鼓励学生尝试将编译程序中的各种算法和技术应用到各个应用领域,从而激发学生的创造性思维,培养学生的创新能力,为今后的学习打下坚实的基础。

3优化教学内容,搞好课堂教学

由于这门课程理论性强,内容丰富且抽象,具有严密的逻辑性,应用其他课程知识比较多,要在有限课时内很好地完成本课程的教学。教师首先必须吃透教学内容、把握课堂教学环节。这就要求教师对教材非常熟悉,掌握编译原理的主要内容及基本框架,对教材及教学内容作一定的优化。

3.1选取合适的教材

某些“编译原理”教材并不是完全面向学生的,可能是作为这门学科的大全来编写的。例如由美国著名计算机科学家编著的“龙书”《Compilers Principles, Techniques and Tools》,中文译名为《编译原理》,由机械工业出版社出版,这本书是最经典权威的编译教材,应该是教师教学的必备参考用书,但如果将其作为授课的教材,对大部分学生来说都不太适合,因为内容过多,难度过大。

笔者总结了多年的教学经验,编写了一本《编译原理》教材,已由人民邮电出版社出版,我们在教学中采用这本教材。结合教材的特点,我们在教学中力求做到以下几点。

(1) 考虑到学生对C语言较为熟悉,所讲授的主要算法、例题和习题均以C语言为背景。

(2) 把编译原理和编译技术两方面有机地结合起来。将“PL/0语言编译程序”模型的实现过程贯穿于各个章节,这样使学生在掌握相关的编译原理之后,通过阅读理解和扩充此编译程序,加深对所学内容的理解,使所学内容融会贯通,能够建立一个较为完整的编译系统模型。

(3) 对常用分析器的自动生成工具(LEX和YACC)的功能和使用方法做了详细的介绍,并给出了使用LEX和YACC实现的PL/0语言编译器的源程序,从而使学生真正掌握如何借助LEX和YACC实现一个编译器。

3.2抽象内容形象化

编译系统中的一些概念很抽象,学生无法理解,就只会死记硬背,当然更无兴趣可言。在讲解的过程中,可以选用学生最熟悉的一些实例,通过类比使抽象的概念更容易被理解。例如,从理论上来说,编译过程一般包括词法分析、语法分析、语义分析和中间代码生成、代码优化、目标代码生成这五个阶段。学生记住这五个阶段并不难,但理解阶段划分的依据有一定的难度。编译程序的功能是将用高级语言编写的源程序翻译成等价的用机器语言或汇编语言表示的目标程序。既然编译过程是一种语言的翻译过程,那么它的工作过程就类似于外文的翻译过程,不同之处仅在于由哪种语言翻译成另外哪种语言,但其原理是类似的。两者的翻译过程对比如表1所示。

例如,我们要将英文句子“I wish you success”翻译成中文,首先进行词法分析,根据英语的词法规则,识别出四个英语单词,并检查是否有单词的拼写错误。其次是语法分析,根据英语的语法规则,对词法分析后的单词串进行分析、识别,并做出语法正确性检查,看其是否能组成一个符合英语语法的句子。再次进行语义分析,即对语法正确的英文句子分析其含义,并用汉语表示出来。然后对译文进行修饰,根据上下文的关系及汉语语法的相关规则进行综合考虑,对初步翻译后的句子进行必要的修饰。最后翻译成中文,“祝你成功”。学生经常做这种翻译,对翻译过程非常熟悉。将它与编译过程进行类比,既加深了学生的印象,又有助于理解为什么将编译过程划分成这几个阶段。

3.3运用实例教学

程序教学法论文篇13

在教学工作中,我们坚持理论联系实践,帮助学生建立科学、有效的编程思想。并结合教学工作进行开发应用,提高了学生编写程序的动手能力,取得了较好的教学成果。

1教学中存在的主要问题

通过对我院计算机专业“C++高级编程”课程教学现状分析,发现主要存在以下问题:

(1) 重“理论教学”轻“实践教学”。我校计算机专业该课程教学总课时为70学时,要求学生在较短的学习时间内既要掌握理论知识,同时又具备较强的动手实践能力。因此,教师在授课过程中,要么过分强调理论教学,要么过分侧重于流行数据库开发工具的教学,致使理论教学与应用实践比例失衡,使学生存在理论高分实践低能现象。

(2) 教学方法和手段缺乏多样性。目前,多媒体教学日趋流行,我校教师在“C++高级编程”理论授课中大多采用CAI课件进行教学。此教学方法虽然减轻了教师的板书负担,增加了信息量。但学生反映在学习过程中,教学内容重视语法细节而轻视实践环节,理论结合实际解决问题的能力较低,始终处于被动学习状态。

(3) 实验内容过于简单,覆盖理论知识范围有限。在实验课教学过程中,每章节课后题可供学生选择范围较小,各章节实验内容联系不紧密,存在脱节现象。学生无法将所学知识应用到项目的分析、设计、实施、验收各环节中去。既不利于学生理论联系实际,也不利于学生适应工作后的企业项目开发环境。

(4)“教”与“学”考核方法过于单一。我校在“教”与“学”考核方式上以传统的理论笔试为主。该考核方式在“教与学”环节上存在重理论学习轻实践应用,使得绝大多数学生学习目的就是为了顺利通过考试,而忽略了实践能力的培养,致使“高分低能”现象的出现。

2教改思路

“C++高级编程”包括理论讲授、实验和课程设计三个环节,只有各环节紧密衔接、密切配合,才能保证该课程的教学效果。

2.1理论联系实际,采用案例教学法吸引学生兴趣

“C++高级编程”课程涉及知识面较广,理论性和实践性要求较强。在教学过程中,我通过设置具体案例,将学生学习内容溶入到分析、讨论、表达等教学过程中,让学生在具体的问题环境中积极思考、主动探索,培养学生认识问题、分析问题和解决问题的能力。

(1) 以典型案例为例证,引入核心知识。结合教学过程中每个关键知识点设置一些典型程序,以典型程序为例,详细讲解相关的知识点。在此过程中,以教师讲授为主,学生通过对典型程序代码的研讨学习,加深对知识的理解和掌握[1]。

例如,在讲解“网络程序设计”这一章时,首先向学生展示目前网络中最常见的即时聊天软件,如腾讯QQ;其次演示具体的程序实例,并讲解文字、语音或视频聊天程序的核心代码,遇到核心知识点时,再深入讲解相关的理论知识。

采用这种方法授课,可将复杂的问题简单化、枯燥的知识趣味化、抽象的道理具体化,可以使学生产生浓厚的兴趣,极大调动了学生研究学习代码的积极性。

(2) 围绕实际案例,展开讨论。当课程进行到中期时,学生已具备了一定的编程经验,这时可以借助一个实际案例,组织学生开展辩论和研讨。教师提出该案例,但不对案例作具体的解释说明,让学生在课堂上各自阐述自己的观点、论据,并相互提问和回答[2]。

例如,在“数据库程序设计”一章的学习中,总结该章节的内容后,就可以用一个学生做过的数据库程序为实际案例,让学生们讨论该程序有何优点、不足及如何改进。这种方法不仅可以锻炼学生独立发现问题、思考问题的能力,还有利于培养学生敏锐的应变能力、思维能力和语言表达能力。

2.2加强实验教学,锻炼学生动手能力

“C++高级编程”课程的实验教学是整个教学过程中一个非常重要的环节。上机实践不仅能提高学生灵活运用理论知识的能力,而且使学生在编程、上机操作、程序调试等方面受到严格的训练,有效地提高学生程序设计能力。

在开始学习“C++高级编程”课程之前,学生通过“C++程序设计”和“面向对象编程方法”的学习,已具备一定的编程基础。很多学生对程序设计的认识还只是停留在借助程序熟悉语法的程度上,对如何使程序高效、稳定、可移植性强等方面没有很理性的认识。如何培养学生养成良好的编程习惯,真正从专业角度进行软件设计,是“C++高级编程”实验教学需要认真思索和努力解决的问题。

首先,向学生介绍自己多年来的编程经验体会,推荐一些好的书籍和文献资料供学生使用。其次,让学生大量阅读和仿写优秀的程序,通过学习和借鉴快速掌握这些优秀程序员的经验和方法,少走弯路,养成良好的编程习惯。第三步,也是最关键的一步。在实验过程中,始终严格检查学生设计的程序,及时指出其在编程习惯上的错误。很多学生认为只要编写的代码能调试运行出结果就万事大吉,这是错误的思想。作为教师要具有极大的耐心和持之以恒的耐力,及时指出并纠正学生编程中出现的问题,使学生养成良好、高效的编程习惯。

另外,为取得实验教学的最佳效果,在实验项目的设计上采取由浅入深,逐渐增加难度的办法,引导学生逐步提升编程能力。开始时,多设计一些验证性强的实验,让学生结合事例步骤仿写程序。在中后期设计一些具有较强综合性的实验项目,锻炼学生综合运用知识的能力。教师开始时要详细讲解,分阶段布置一些难度较大的作业由学生独立完成,培养学生动手能力。

2.3通过综合性实验,培养学生独立研究的能力

课程设计环节安排在整个教学过程的后期,目的是着重提高学生软件分析、设计和开发的综合能力,是培养学生综合运用知识独立研究的关键环节。

所谓综合性实验是指实验内容涉及本课程的综合知识或相关课程知识的实验。开设综合性实验的目的在于培养学生的综合分析能力、实验动手能力、数据处理能力及查阅中外文资料的能力[3]。为此,我布置了4个综合性设计实验项目。

(1) 多媒体软件设计项目:设计开发一个多媒体播放器,能够播放某种格式的音频文件、视频文件或动画。要求该软件具有选择播放文件,播放、暂停、继续播放、停止、音量控制等基本功能。

(2) 图形图像软件设计项目:设计开发一个图形图像软件,要求该软件能够画出点、直线、圆等基本图形,具有设定颜色、大小、位置等基本功能。

(3) 数据库系统程序设计项目:设计开发一个后台数据库与一个前台信息管理系统,可以对数据库中的记录进行管理。要求该软件具有浏览、修改、增加、删除和查询等基本功能。

(4) 网络程序设计项目:设计开发一个客户机/服务器模式的网络软件,要求能够根据选择建立客户机端程序或服务器端程序,客户机端和服务器端之间能够相互交换数据。

实验中教师采取个别讲解、个别辅导、就普遍存在的问题演示相结合方法进行讲授,有针对性地发现和解决每个学生存在的问题。在课程设计过程中始终坚持以下要求:①按照软件工程思想使用面向对象技术进行程序设计。②注意养成良好的编程习惯和程序设计风格。③不断提高程序调试技能。

要求学生提交的课程设计报告包含的内容有:设计项目涉及的核心知识介绍、设计开发的步骤、程序功能介绍、核心源代码、设计总结。

经过4周共20学时的实践课程学习,学生按时提交了设计结果。其中40%的学生选择了多媒体软件设计项目,45%的学生选择了数据库系统程序设计项目,10%的学生选择了网络程序设计项目,5%的学生选择了图形图像软件设计项目。从设计过程、设计结果和课程设计报告综合分析来看,10%的学生非常优秀地完成了设计,30%的学生完成得较好,50%的学生基本达到了设计目标,而有10%的学生未完成或部分完成了设计。学生普遍反映通过实践学习开阔了视野,提高了编程综合能力,增长了信心,达到了预期的课程设计实践目标。

3结语

2008年5月教育部对我校的本科教学评估中,“C++高级编程课程设计”作为综合性、设计性实验项目获得专家的好评,该科目评审结果为优秀,教学经验在全校教师中进行了推广。

“C++高级编程”这门课程在教材、教学内容、教学方法的选择及实验内容的设计等方面都对任课教师提出了新要求。坚信通过不断实践改革“C++高级编程”教学内容,改进教学方法,我们会培养出更多具有创新型、研究型、综合素质高的人才。

参考文献:

[1] 黄英琼. 谈“计算机图像处理”课程实例教学法[J]. 计算机教育,2007(3):24-26.

[2] 马晓敏,姜远明,胡光. 试论计算机案例教学的新思路[J]. 教学与管理,2007(4):133-134.

[3] 江静.“数据结构”课程综合性实验的实践[J]. 实验科学与技术,2006(6):64-66.

Exploration and Practice on the Teaching Method in C++ Advanced Programming

MA Xiao-ting

在线咨询
了解我们
获奖信息
挂牌上市
版权说明
在线咨询
杂志之家服务支持
发表咨询:400-888-7501
订阅咨询:400-888-7502
期刊咨询服务
服务流程
网站特色
常见问题
工作日 8:00-24:00
7x16小时支持
经营许可
出版物经营许可证
企业营业执照
银行开户许可证
增值电信业务经营许可证
其它
公文范文
期刊知识
期刊咨询
杂志订阅
支付方式
手机阅读