您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 项目教学法在“C程序设计”课程教学中的实践
51ComputerEducation教育与教学研究项目教学法在“C++程序设计”课程教学中的实践孙庚(番禺职业技术学院,广州511400)摘要:本文探讨了项目教学法在“C++程序设计”课程中的应用,并且介绍了我校的具体实践及教学效果。关键词:建构主义;项目教学法;项目;C++程序设计中图分类号:G642文献标识码:B文章编号:1672-5913(2008)02-0051-04随着现代科学技术及生产组织形式对职业教育要求的不断提高,社会赋予教师的责任不仅仅是“传道、授业、解惑”,更要注重培养学生实践能力、职业能力和其他关键能力。为了在职业教育中更好地扮演教师的角色,许多教师已经在不断地探索各种有效的教学方法,在此本人就应用项目教学法进行“C++程序设计”课程教学模式改革谈谈自已的体会。1著名的心理学家皮亚杰提出的建构主义学习理论认为,知识不是通过教师传授得到的,而是学生在一定的情景下,借助他人(包括教师和同学)的帮助,利用必要的学习资料,通过意义建构的方式而获得。项目教学法是在建构主义的指导下,以实际的工程项目为对象,先由教师对项目进行分解,并作适当的示范,然后让学生分组围绕各自的工程项目进行讨论、协作学习,昀后以共同完成项目的情况来评价学生是否达到教学目的的一种教和学的模式。项目教学法糅合了当前三大教学法(探究教学法、任务驱动教学法与案例教学法)的特点,集中关注于某一学科的中心概念和原则,旨在把学生融入有意义的任务完成的过程中,让学生积极地学习、自主地进行知识的建构,以现实的学生生成的知识和培养起来的能力为昀高成就目标。项目教学法要求课程单元与任务设计必须达到的前提指标是:①实践的同时,注重理论的渗透;②项目有激发学习兴趣和创造力的因子;③项目完成过程突出独立完成与合作完成的能力;④有明确的评分标准,可以对完成的项目是否达到教学目进行评价。2基于建构主义的项目教学法与传统的教学法相比,有很大的区别,主要表现在改变了传统的三个中心,由以教师为中心转变为以学生为中心,由以教材为中心转变为以“项目”为中心,由以课堂为中心转变为以实际经验为中心。所以,在运用项目教学法进行教学设计的时候,学生是认知的主体,是知识意义的主动建构者。2.1项目教学法需遵守的原则1.项目的选取要与现实世界相联系成功实施“项目教学”的一个首要前提是要有合适的项目案例。教师在准备项目案例时必须事先经过大量市场调研,以具有相同或相似技能要求的“岗位群”为调查对象,提炼出实用性、通用性、教学性均较强的项目。在项目选取过程中必须考虑以下几个问题:52ComputerEducation教育与教学研究(1)项目能否让学生感兴趣?是否激发学生的学习自觉性?(2)项目活动怎样调用学生的已有知识。(3)项目内容能否渗透或涉及课程所需的关键技术?(4)项目经分解后,能否保证学习过程有序,连贯。(5)项目内容是否有助于树立学生的自信心。2.以学生为主体,以教师为主导,以训练为主线,知识落实为关键尽管教师是项目设计和实施教学的负责人,但整个过程我们更强调以学生实践为主。在项目实施中,学习过程成为一个人人参与的带有创造性的实践活动,它注重的不是昀终的结果,而是完成项目的过程。学生在项目实践过程中,理解和把握课程要求的知识和技能,体验创新的艰辛与乐趣,培养分析问题和解决问题的思想和方法;教师是意义建构的帮助者、促进者,负责整个教学的设计和组织,直接参与学生的讨论,指导学生项目实施的全过程。3.创设学习的资源和协作学习的环境是教师最主要的工作。教师要着力营造学习氛围、组织和引导教学过程;当然也要传授知识,但更多的是在学生中间,当学生碰到困难力不胜任时,教师要给予具体帮助。“小组工作”是实施阶段的基本组织形式、活动方式,教师要根据学生的特长与能力,把学生合理划分为“工作小组”,指导学生明确目标和职责,实现有效的分工与合作。4.确立多元性的评价方式、评价标准和评价主体评价方式:不仅用笔试、口试考核学生掌握知识的程度,更强调运用完成项目的方式,考核综合运用知识与技能、解决实际问题的能力。评价标准:灵活运用绝对评价,是否达到教学的目标要求、进步程度,以利于学生职业能力、实践能力、创新能力的培养。评价解决问题的学习成果标准并不是对与错。评价主体:鼓励学生对自己的学习成果、独立探究的自学与探索能力、小组合作的社交与管理能力、合作精神和积极参与的行为表现,进行主动、客观地自我评价,总结自己的体验;鼓励学生之间的相互评价,促进对自身学习成果的反思;与此同时,教师给与恰当指导;着重帮助学生对教学目标、过程和效果进行反思;对学生的评价更注重对学习的指导。在此基础上,教师进行指导性评价,既关注学生已达到的程度与水平,更要关注学生职业行为能力的生成与变化。2.2项目教学法实施的具体步骤根据项目教学的教法思路和教学遵循的原则,本人认为项目教学法教学的具体步骤有如下:1.情景设置:创设学生当前所学习的内容与现实情况基本相接近的情景环境,也就是说,把学生引入到需要通过某知识点来解决现实问题的情景。2.教师示范:教师对预期的项目模块进行分析,分解为必需的知识点。并选择合适的案例进行讲解与示范。3.学生实践:让学生独立思考,对知识点进行理解,消化示范案例的解决要点;学生以小组为单位,项目经理组织讨论并根据不同的情况对小组人员进行分工,如果是一个小的阶段项目,每个小组成员都要完成所有内容,完成后选出昀好的作品上交。如果是一个大的项目,要对小组成员进行合理分工并设法完成。该阶段可以锻炼学生分析问题解决问题的能力,虽然老师已经给出了解决方案,讲解了知识点,但学生还面临很多细节要解决,他们得到了开发新的解决方案的权利,只要是能完成项目,使用何种方法取决于学生。他们可以在互相协作的同时巩固新知识,由于是在做中学到的,记忆十分深刻。在这个过程中,老师的任务是设计难易适当的项目,全程进行辅导。4.项目回顾:教师要及时对完成的一个个阶段性小项目进行总结与回顾,对学生的表现进行当堂认可,并对主要问题进行集中解决。这样有利于学生对新知识的理解和消化,同时也是下一阶段项目完成的前提条件。5.学习评价:学生学习的效果直接由完成工程项目的情况来衡量,包括教师评价、学习小组评价和自评三部分。6.项目改良:学生根据老师的要求对已经完成的项目进行改良,该阶段已经完成了一个教与学的循环。紧接着进行下一轮的项目再学习,这样通过一个或几个项目的实践,学生能够顺利53ComputerEducation教育与教学研究地完成学习任务,专业技能在实践中得到提高和巩固。33.1课程特点和教学分析C++语言是在C语言基础上扩充了面向对象机制而形成的一种面向对象程序设计语言,它除了继承了C语言的全部优点和功能外,还支持面向对象程序设计。因此C++语言的机制非常丰富,应用广泛而灵活;但同时也给学习和教学带来了一定的难度。纵观目前的教材,大多是以传授语言机制为中心,辅以相关的案例,这样的教学设计虽然具有知识系统化的优点,但是因各环节的案例设计主要是为了说明语言本身的机制,而没有结合具体的项目任务,从而使得各案例之间没有连贯性,造成学生虽然学习了语言机制,却不知道如何应用到具体的项目中,使得学习有些盲目性,进而造成一些学生的厌学状态。我们的教学对象是高职软件技术专业的学生。软件设计与软件编程能力是该专业的主要职业技能之一。因此C++程序设计课程是该专业的重要课程。以往采用传统的教学方法授课时,出现了以下现象:昀初上课时,学生们的积极性和求知欲都很高,但随着课程的深入,部分学生会感到理论知识太枯燥,太抽象,从而对课程的学习产生恐惧和迷惑,逐渐地丧失了学习兴趣。如何使学生在课程的整个学习过程中一直保持强烈的求知欲和高昂的学习兴趣是教学改革的关键所在。为此,我们尝试并探索了将项目教学法应用到本课程的整个教学过程中,以完成项目任务为中心,辅以案例教学的教学模式,取得了满意的教学效果。3.2项目教学设计1.项目的选取:类与对象、继承与多态、输入输出流及异常处理技术是C++语言的关键技术,而指针与动态内存分配又是C/C++语言的精华。这就要求我们选取的项目必须能够渗透这些语言机制,达到传统教学的知识系统化的目的。同时,项目要具有可理解性和实用性,即项目的需求和实现过程能够让学生花费少量时间就能理解,并且项目的分析、设计、实现过程与真实的软件开发过程接近,学生应用本项目中的方法和技术能够完成目前企业中的类似应用。考虑到UML技术已经是当前企业应用比较广泛的面向对象软件工程技术,很多企业分析、设计的结果是采用UML图的方式表达,为实现与企业真实项目的接轨,我们将部分UML技术(如类图、对象图等)引入了课程教学,一方面要求学生能够看懂用UML表达的分析设计结果,另一方面要求学生能够根据UML图写出对应的C++实现代码,并能够将自己设计的类用UML图表示。我校的C++课程的前修课程是“C程序设计”和“C程序课程设计”,通过这两门课程的学习,学生已具有一定的面向过程软件设计能力,在C程序课程设计中,很多学生选择的设计题目是“简易图书管理系统”。综上所述,我们选择了“图书馆流通管理系统”作为C++课程教学的项目。2.项目的实施:教师根据课程的教学内容和目的要求将项目分解为五个任务,每个任务针对一项关键技术,前一阶段的任务结果是后一阶段任务的基础,后一阶段任务是前一阶段任务的改进。五个任务分别为:图书管理系统的设计——对象与类的识别、图书管理系统的设计——改进类的封装、图书管理系统的设计——链表类的应用(模板与动态内存技术应用)、图书管理系统的设计——继承与多态的应用、图书管理系统的设计——输入输出流的应用、图书管理系统的设计——异常处理技术的应用。下面以任务1为例说明项目的实施过程。任务1:图书管理系统类与对象的识别情景设置:回顾前修课程——C程序课程设计中完成的简易图书管理系统,要求采用面向对象的分析与设计方法识别该系统运行中涉及到的对象,并抽象出相关的类,并改写程序。教师示范:完成本阶段的任务需要掌握面向对象中类与对象的分析与识别方法、类的标识与定义、对象的创建与使用等面向对象的相关技术,因此,首先讲解完成项目必须的知识点——类与对象的基本概念,构造函数与析构函数的定义与使用等等;然后师生共同剖析需求明确的银行系统业务,从中识别出业务的参与者(职员、客户、银行)和用例(登录、存款、取款、管理账户、转账),通过对用例分析,初步抽象出Clerk类、Account类、Customer类等。为了标识类及其类之间的关系,需要讲解UML基本的建模技术,如用例图、类图等。并将分析过程的阶段成果用UML图表示。昀后应用C++语言描述识别出的类与对象。54ComputerEducation教育与教学研究学生实践:请同学们独立思考,对知识点进行理解,消化示范案例的解决要点;然后将学生每4人分为一组,以小组为单位进行项目的分析,识别出相关的类与对象。每个小组成员都要完成UML类图及用例图的绘制,并用C++语言实现分析结果。在此期间,教师参与学生讨论,当学生碰到困难力不胜任时,教师要给予具体帮助。项目回顾:教师对完成的本阶段任务的过程与结果进行总结与回顾,对学生的表现进行当堂认可,并对主要问题进行集中解决。比如,教师通过批阅学生的项目代码,发现学生们出现一个共性的问题,即:类的定义和实现都混在一个文件中,这样的代码不便于软件的复用与维护。教师针对此问题,通过列举与启发的方式使学生认识到这种编码的弊端,引出C++编程技巧——接口与实现分离技术。项目改良:回顾本任务的设计结果(此时昀好使用直观的UML类图和用例图),我们会发现在我们的设计中,存在着较多的全局函数,这是与面向对象的思想相违背的。如何改进项目,使其更符合面向对象的程序设计思想,是我们在任务2要解决的问题,即改进类的封装。由此进入下一轮的项目再学习。这样通过一个项目的几个任务的实践,学生能够顺利地完成学习任务,专业技能在实践中得到提高和巩固。3.3项目教学实践的体会通过教学实践,我认为在开展项目教学法时需要注意和解决一些问题,具体表现在下面几个方
本文标题:项目教学法在“C程序设计”课程教学中的实践
链接地址:https://www.777doc.com/doc-809421 .html