项目驱动在程序设计教学中的应用

2013-04-29 19:12赵怡
计算机教育 2013年8期
关键词:项目驱动程序设计建构主义

赵怡

摘要:针对“面向对象程序设计”课程在教学中存在的问题,分析基于建构主义的项目驱动教学认知理论,结合课程的培养目标,将归纳式的基于项目的教学方法应用于课程的教学改革与实践,提出在教学内容、教学方法等方面的具体改革措施。关键词:项目驱动;建构主义;程序设计;教学改革

0、引言

“面向对象程序设计”是软件工程专业和计算机科学与技术专业的一门专业核心课程。该课程是软件工程等课程的先修课程,同时又是进行软件开发的直接工具,是把所学的专业知识转化为应用的桥梁,是学生就业专业知识的关键技术,所以该课程在整个教学体系中占据非常重要的地位。目前该课程在教学中仍普遍采用传统的以语法讲授为主线的课堂教学模式,从而导致学生学习该课程的主动性和积极性不高,缺乏知识运用和解决实际问题的能力,教学效果也不理想。针对目前“面向对象程序设计”课程教学中存在的问题,课程组将基于项目的教学方法应用于该课程的教学实践,并取得了初步成效。笔者从教学目标、教学内容、教学方法和手段、教学组织和教学评价等几个方面介绍项目驱动在“面向对象程序设计”课程教学改革中的应用,并希望可以与工作在教学改革第一线的教学同行进行交流和探讨。

1、项目驱动教学的理论基础与认知研究

1.1 目前课程教学中存在的问题

面向对象程序设计(OOP)是一种全新的程序设计思想。但目前该课程大都以演绎的方式来教授,教学中存在重语言介绍、轻对象思想和方法传授的情况,即在教学内容的组织上是以特定的面向对象程序设计语言结构组织的,从基本语言要素、语法和语句结构组织,然后再举一些例子说明这些语句的应用,而这些例子都是一些语言语法层面上的简单应用,很少涉及实际问题的解决。这种教学方式不仅不利于学生领会和理解面向对象的思想和方法,更不利于培养学生使用面向对象方法解决实际问题能力。

1.2 建构主义

工程与科学教学中主要采用的演绎式教学法将课程或知识点作为学科内一个自成系统的知识体系来处理。教师按照从一般原理到数学模型再到模型应用这样的方式进行教学,很少会提到为什么要这样做,以及这样的模型可以用来解决什么实际问题,学生为什么要学习这些东西等,而学生的任务就是被动地吸收这些知识。

在教育心理学中有一个公认的准则,就是只有当人们清楚地意识到有必要去了解某个事物时,他才会最为强烈地去主动学习。如果只是告诉学生某项知识或技能在日后会用得到,并不能起到有效的激励作用。

与传统教育模式不同的建构主义认为学生的学习是将新的信息纳入到自己已有的认知框架中。因此,教育应该从学生可能熟悉的内容与经历出发,与学生已有的知识结构联系起来。教学内容应该与实际应用有关,并与其他知识领域相关联,而不应是抽象的或独立的。教育者要创造条件引导学生自行建构知识,并从实践经历中获得证据来修正自己的知识建构。

建构主义支持归纳式的教学,即教学不是从一般原理到应用,而是首先从具体事物出发,提出一个有待解决的实际问题;然后教师在学生解决问题的过程中向学生提供所需的信息,帮助学生把握事实、了解规则、知道程序、明白原理。项目驱动的教学也是归纳式教学的一种。

1.3 认知研究

心理学与神经学方面的研究对归纳式的项目驱动教学提供了强有力的支持。

布兰斯福德(Bmnsf-ord)等人在文献中指出:“凡是新的学习都涉及先前学习所得信息的转移”,即学生对新知识的接受程度受已有知识的影响是很强的。如果新知识与学生已有知识或认知有联系或一致的话,学生学习起来较容易。项目驱动教学是在学生能联系起来的情景、问题或应用的背景下提出新的知识。因此,这样的教学内容能够与学生已有的认知结构结合起来,是有易于学生接受的。

学生的学习动机会影响到学生愿意投入学习的时间的多少。如果学生发现学习的东西有用,而且能够用来做一些对别人有影响的事情的话,学习就会更有积极性。项目驱动的教学通过与实际应用相关的项目来提供一门课程的教学内容与技能。学生在学习的过程中能够亲身体会到所学知识的实用性。因此,这样的教学方法能够大大增进学生学习的积极性。

此外,如果教学环境与实际工作环境相似,学生在日后就能够很容易地将课程所学得的知识与技能移用到实际工作场景中。项目驱动的教学围绕真实的项目来组织教学,因此有助于弥补学生的学习环境与实际工作环境两者之间的不一致,从而有利于学生将所学的东西应用到实际工作中去。

综上所述,把项目驱动教学应用于“面向对象程序设计”课程的教学中,能够激发学生的学习兴趣,有效地提高学生学习的积极性和主动性,改善教学效果,并有利于学生的职业素质和能力的培养。

2、项目驱动教学的应用

课程组将项目驱动的教学模式应用于“面向对象程序设计”课程的教学过程中,教学以项目为核心,学生为主体。教师在教学中起主导作用,将软件工程化思想融入到教学内容中,以软件产品的生产周期作为课程内容的主框架,教学内容包括若干个不同层次的软件项目,通过项目引出知识点。项目驱动教学模式在课程教学中的应用激发学生动手实践和分析思考,提高了学生的综合应用能力。

下面从教学内容、教学方法和手段、教学组织和教学评价等方面介绍将项目驱动教学应用于“面向对象程序设计”课程改革的具体做法。

2.1 基于项目驱动的教学内容改革

课程组通过选用国外原版经典教材,引进国外的先进教学理念,依据课程教学大纲,以职业活动为导向,以学生为教学主体,以项目为中心,对课程教学内容进行整合、序化,构建了模块化课程结构,如图1所示。该结构将课程内容划分为4个模块:语言基础、面向对象程序设计基础、面向对象程序设计的方法理论和开发应用,并细化每个模块的知识点和职业素质、技能和能力培养的要求,突出面向对象程序设计的方法理论和开发应用,着重培养学生的职业素养、主动学习和创新的能力。

在上述4个教学模块中,教学内容是按项目驱动的。在讲授课程内容时直接从面向对象程序设计入手,将语言基础的知识分散到其他模块中进行讲解。在2、3、4级模块中,通过项目来详细展示每个单元的重要理论和概念,所涉及的语法知识会随着解决问题的需要而引入。基于项目驱动教学的2、3、4级模块所包含的项目如图2所示。

项目驱动教学实施的关键在于项目的设计与选取。教学项目的设计与选取遵循有的放矢、与实际应用相关联的原则。同时项目的难易程度要以不将学生逼到其“最近发展区(Zone ofProximal development)”之外为原则,即选择的项目要比学生可以独立完成的项目难一些,但是在教师指导下或与其他学生合作能够完成。

2.2 基于项目驱动的教学方法改革

根据软件设计开发的工程性特点,“面向对象程序设计”课程的教学灵活地运用了“基于项目的教学方法”,突出了“理论教学构筑学生的知识结构,实践教学构筑学生的职业技能结构”的教学原则,并将面向对象程序设计的基本原理、软件编程的基本规范和软件设计建模的教学完全地融合在一起。

项目驱动教学法与传统的教学法相比,有很大的区别,主要表现在改变了传统的3个中心,将以“教师”为中心转变为以“学生”为中心,以“知识体系”为中心转变为以“项目”为中心,以“理论讲解”为中心转变为以“项目实践”为中心。在教学过程中,学生可以参与软件产品的构思、设计、实施和运行,这给学生创造了感知软件、动手实践、分析思考的机会。通过解决问题,学生的学习兴趣被激发,基本的工程素质和能力得到了培养。“基于项目的教学方法”目的在于创造条件引导学生通过亲自参与,自行构建知识,而不是简单地接受教师的诠释。

2.3 教学评价和考核方法改革

项目驱动教学重在知识的应用与集成,因此教学的考核与评价要强调对概念的理解,重视对知识、技能学习过程的评价,关注实践环节及工程应用能力,应对学生进行多视角、多方位的综合测评,力求知识与能力的协调统一和考核评价的客观与公正。课程组将考试形式由笔试改为机试,并增加课程设计考核环节。学生最终成绩的评定方法是:机试占20%,日常表现(出勤率、作业与实验成绩)占20%,自我评价与同学生评价占10%,项目设计和参与程度占20%,答辩情况占20%,撰写论文或报告占10%。考核形式的改革会引导学生在课程学习中注重编程能力和解决问题能力的培养。

3、项目驱动在教学中的应用效果与评价

从2009~2010学年的第一学期开始,课程组将项目驱动应用于“面向对象程序设计”的课程教学中。通过与传统教学进行对比,我们得出以下两方面的结论。

3.1 项目驱动对教学产生的正面效果

项目驱动教学增进了学生在概念理解方面的思维能力,增强了学生分析问题、解决问题的能力,能够有效地调动学生学习的积极性,提高学习的责任心,改善了学生与学生、教师与学生之间的互动关系,在学生的团队合作与沟通能力培养方面起到积极的作用,特别是对于那些学习风格不适于传统课堂授课的学生的教学效果特别好。

3.2 项目驱动教学在应用中存在的问题

项目驱动教学并不是一种很容易开展的教学。从教师方面而言,该方法要求教师对课程知识的把握程度要深,要有丰富的教学经验,能够根据教学情况随机应变。就学生方面而言,基于项目的教学方法要求学生对自身的学习负有更多的责任。在项目实施过程中,各种项目管理与人际冲突等问题还会出现,这些都是学生所不习惯的,同时也对教师的教学组织能力提出了更高的要求。因此,有些教师和学生在一开始会对它感到不适应,在学习过程中也会出现两极分化现象。此外,如文献中所描述的,基于项目的教学容易产生内容知识方面的空白,忽视和遗漏一些关键知识点,从而影响学生今后对一些重要内容的进一步学习。

4、结语

通过对项目驱动教学在“面向对象程序设计”课程教学中的研究与应用,我们发现该方法与课程的培养目标相适应,能够改善该课程的教学效果,有利于学生的职业素质与技能的培养;因此该方法是值得采用和推广的。对于该方法在。教学中遇到的问题和负面效果,教师应该清楚其潜在的误区,并有意识地在教学中采用适当的方法解决存在的问题或弥补教学中的空白,这样才能使项目驱动教学发挥更大的作用。

猜你喜欢
项目驱动程序设计建构主义
基于Visual Studio Code的C语言程序设计实践教学探索
旁批:建构主义视域下的语文助读抓手——以统编初中教材为例
从细节入手,谈PLC程序设计技巧
借鉴建构主义思想培养财会专业人才
高职高专院校C语言程序设计教学改革探索
依托工作室的软件工程实践教学研究
基于物联网项目驱动的嵌入式系统教学改革的研究与实践
基于“红色之旅”项目驱动的《调酒与咖啡》工作室制人才培养机制探讨
试论基于项目驱动的机械制图教学改革
PLC梯形图程序设计技巧及应用