李文芳
(太原城市职业技术学院,山西 太原 030027)
随着现代社会及科学技术的发展,对人才的要求越来越高,从过去的对相对单一型人才的需求转变为现在的对多元化、复合型人才的需求,促使教育体系也要进行不断的变化,这对传统教育管理和教学模式提出了更高的要求。现阶段毕业的学生,无论从知识结构还是个人能力均难以满足用人单位的需求。高等职业院校是开展高级技能教育的院校,是培养应用型高级技能人才的基地,肩负着向特定的行业和岗位培养合格的操作技能型人才的使命。因此,应在培养学生的综合能力上下工夫。高职院校本着“以能力为本位,以就业为导向”的教学目标,应重视对学生能力和创造性的培养,要达到这一要求,必须改变重理论轻实践、重知识传授轻技能培养的传统教学方法,而采用项目教学法对学生能力的培养是全面的,是一种典型的以学生为中心的教学方法,能充分发掘学生的创造潜能,提高学生解决实际问题的综合能力。
计算机程序设计课的最终目的就是要培养学生分析和设计程序的思维方法和能力。传统的教学方法是:先讲解语法功能,再讲授在程序中的使用,然后就是举例做练习。这种教学模式,学生学得枯燥,教师教得费力,往往达不到预期的教学效果。学生在学习过程中仅仅是记住了这些语法而不会实际运用,更缺乏对学生综合应用所学知识能力的锻炼与培养。因此,在程序设计课程教学中应用项目教学法就显得尤为迫切与重要。因为它能使学生对所学的知识进行充分理解和掌握,接受知识性与技能性于一体,更能使学生学以致用,把知识融会贯通地应用到解决实际问题中去,重要的是提高了学生解决实际问题的综合能力。
项目教学法是通过实施一个完整的项目而进行的教学活动,其目的是在课堂教学中把理论与实践教学有机地结合起来,充分发掘学生的创造潜能,提高学生解决实际问题的综合能力。通过教师在教学中引导学生参与实际的项目,培养学生的自学能力、分析问题和解决问题能力、协助合作能力,提升学生的专业技术和职业素质,满足社会对学生能力的需求。项目教学法与传统教学法相比,由以教师为中心转变为以学生为中心,由以课本为中心转变为以项目为中心,由以课堂为中心转变为以实际经验为中心。采用项目教学法,可以将学生的主动性、积极性调动起来,有效地达到对当前所学知识的意义建构。
建构主义学习理论是当今世界教育的潮流,最早由著名的瑞士心理学家皮亚杰(J.Piaget)提出。建构主义学习理论认为,知识不是通过教师传授得到的,而是学生在一定的情景下,借助他人(包括教师和同学)的帮助,利用必要的学习资料,通过意义建构的方式而获得。项目教学法的理论依据是建构主义的学习理论。建构主义的教学观念认为:学生是教学情境中的主角,学生是学习的主体,教师不能代替学生学习,教师是学生学习的引导者、辅助者、资料提供者;教学是激发学生建构知识的过程;教学活动体现为合作、探究方式,让学生学会在合作中学习;教学活动的展开是一个过程,教学应该注重过程而不是结果。
以Java程序设计课程为例来探讨项目教学法在本课程中的应用。Java程序设计课程知识点多,涉及面广,是一门实践性很强的课程。目前高职院校的Java程序设计的教学中,普遍课程体系陈旧,教材基本根据学科知识系统进行编写,教学方式没有脱离传统学科教育的框架,实践性环节薄弱,学生的实践能力不强,学生的学习能力普遍较低,以及多数教师项目能力不强,从而导致教学效果不佳。按照传统的教学方法,学生只是被动地听、机械地学,学到的知识往往是零碎的知识点,仅仅限于会简单的程序设计,学生对这门课程的作用不明确,更难谈到灵活应用解决实际问题。在Java课中采用项目教学法,就是使学生在一个个程序“项目”的驱动下开展教学活动,通过教师引导、自主学习和相互合作,完成知识的学习与技能的掌握,建构真正属于自己的知识与技能。
在选择项目时,选择的项目既要考虑有一定的综合性,但不应太难。难度太大,学生容易丧失信心,但是太简单,学生又会缺乏兴趣。要符合学生的能力水平,应激发学生的学习兴趣,使学生产生一种解决问题的欲望,当看到阶段性的成果时,他们就会有成就感,真正掌握知识与技能。项目设计的质量直接决定学生掌握知识和培养学生的创新实践能力,因此,项目的确定至关重要。
Java作为面向对象的语言类和对象知识的学习非常重要,在对类和对象及封装、继承、多态的讲授过程中,可以选用一个完整的学籍管理系统项目来讲授。在学生掌握了基础知识和面向对象编程的基本方法后,要求学生以一个类似的系统进行模仿训练、复习和巩固,进一步提高学生的应用能力。
1.项目的分解
将学籍管理系统项目分解为一个个可实现的子任务。项目分解时,要根据知识点的递进进行分解,将知识点、重点及难点分布于具体的子任务中,根据学生的实际情况进行实施。首先,演示学籍管理系统,向学生讲解有关系统中的基本知识点,并作操作引导,使学生清楚了解本项目所包含内容及所要达到的目标,进行任务分解。将学籍管理系统主要分为界面设计、实体类的设计和实现类的设计,使学生准确、清楚地理解项目任务,并产生兴趣。此阶段亦是教师创设情境阶段。
2.项目任务的分配
将学生分成几个小组,每组人数应适中,在分组时应充分考虑学生的个性、能力方面,每组选出小组长,对该组项目负责,由组长结合项目中涉及到的程序的功能难易度及学生的程度,给组员分配合适的任务,保证小组的每个成员都有各自的任务,这样每个学生都有明确的完成目标,扮演好各自的角色。这种项目分组的方式,既锻炼了学生的团队合作精神,又可以起到“以强扶弱”的作用;既能充分调动学生的主观能动性,提高组织协调能力,又可减轻教师的负担。
3.项目任务的实施
在完成项目的过程中,会遇到一些不能解决的问题。尤其是在编程时,常常首先遇到的问题就是如何将思维转换为项目中具体的程序,其次是在具体编写程序时,出现的某一个问题由于知识储备不足、程序排错经验不够,往往找不到出错的原因。如:在此项目的实现过程中,学生最容易出现的问题是,实体类和实现类的关系怎样处理,项目中的功能如何通过类去实现,具体应该在什么类中去完成等等。因此,教师应随时进行观察与跟踪,学生提出问题时,教师要对学生提出的问题进行分析、给出解决问题的办法,引导学生。这样,既充分发挥了学生的主动性,也培养了学生分析问题、解决问题的能力。
4.项目评价总结
在项目结束时,对项目完成步骤及项目的思路作总体性的概括和总结,使学生对所学知识有一个完整的认识和掌握,让学生建构一个系统的、全面的知识框架。在该项目中,让学生通过该项目的实现,充分理解Java面向对象的类和对象的概念,初步掌握面向对象的编程思维,并从总体上理解如何将面向对象的编程运用到具体的问题中。
给出学生项目评价,包括教师评价、小组互价和自我评价三部分。在教师评价中,教师对每一小组完成项目情况进行评定:是否实现了项目预定功能,成员之间能否共同协作,程序是否具有独立创新,同时也要指出存在的问题与不足;小组评价时,小组成员之间要在态度方面、参与意识方面、团结协作方面、完成程度方面给予互评;自我评价时,从思想方面、知识方面以及能力方面是否有所提高进行自我评价。
项目选择的是否合适直接关系到教学的成功与否。教师在选择项目时,应结合教学内容,并充分考虑学生的实际情况,如学生学习的实际水平、接受能力,既能与教学知识结合,又要有一定的发挥空间。在这样的前提下,选择的项目应该难易度适中,而且应该尽量选择学生熟悉的实际项目,一方面提高学生的学习兴趣,另一方面使学生易于理解,使学生能够运用已掌握的知识,学习新的知识和技能,并解决具有一定难度的实际问题。
在项目教学法的整个过程中,始终是以学生为主体,教师起指导作用。虽然教师不是项目教学法中的主体,但是教师是整个过程中的主导,没有教师的正确引导,学生不可能真正自主地完成学习。在项目教学过程中,教师的任务并没有减轻,反而加重了。因为教师不但要对所教课程融会贯通,还要随时回答学生提出的各种问题。在整个教学过程中,教师地位不是削弱了,而是比传统教学中的作用更加重要、更加不可缺少。教师是学生学习的资源和协作学习的环境的创设者,是学生学习过程中问题的协商者与解决引导者等等。这就要求教师要对这门课程融会贯通,具有较广博的知识体系和灵活的组织能力。
项目教学法注重的是完成项目的过程,而不是最终的结果。在项目教学过程中,使学生的个性得到充分的发展。学习过程成为每个学生参与的具有创造性的实践活动,学生在此过程中自主参与、积极探究,能体会遇到问题时的困惑,更能体会到通过自身的努力解决问题后的成就与快乐。通过动手动脑学到的知识,比以往的传统方式学到的知识更为牢固。通过项目教学,学生在收获知识的同时,也提高了各种技能,如应变能力、分析能力、合作能力和解决实际问题的能力。
采用项目法进行教学,并不意味着教学方式是唯一的,并不是日常教学方式的全部,在教学过程中需要根据实际情况灵活采取其他教学方式作为辅助教学方式。如在讲一些比较容易理解的程序概念时,可以采用问题驱动的方式来讲授。
在项目教学的过程中,整个项目的实施是以小组为单位进行的,项目大多数由多个学生合作共同完成,因此,在程序设计教学的教学过程中培养学生之间的协作学习尤为重要。在进行程序设计时,不可避免地会碰到各种各样的疑难问题,除了向老师请教外,作为教师,还应该鼓励学生积极与其他成员多切磋、多交流、多沟通,通过互相合作来解决问题,引导学生顺利完成项目的全过程,从而提高自己。这样,既充分发挥了学生的主观能动性,又在合作过程中提高了学生的人际交往和沟通表达能力的同时,加深了同学之间的友谊,培养了团队合作的能力,使学生深刻理解团队合作的重要性。
同时,作为教师更应注意,在教学过程中应当使每个学生的能力得到提升、知识得到提高。特别注意个别学习差的学生,他们无论是知识基础、自学能力还是其他方面的自控能力都比较差,不能让他们依赖学习好、能力强的学生,要让他们有事可做,增强他们的自信心。所以在小组学习中,应采取一些有针对性的措施,让学习较好的学生带动较差的学生,从而帮助他们顺利完成自己在项目中的任务,达到共同进步的目的。
综上所述,项目教学具有传统教学方式所不具备的优势,项目教学法是在建构主义学习理论的影响下,通过选取项目来创设情景,通过协作学习的方式开展学习,通过完成项目来达到意义建构,是一种比较有效的教学方法。在程序设计的教学中采用项目教学法,突破了传统的教学模式,在整个教学过程中既发挥了教师的主导作用,又体现了学生的主体作用,学生的动手能力、解决实际问题的能力有了很大的提高,也大大提高了学生学习的积极性和主动性,充分发掘了学生的创造潜能,全面培养了学生分析问题和解决问题的思维和方法,使课堂教学的质量和效益得到大幅度的提高。同时,教师在观察学生、帮助学生的过程中,开阔了视野,拓展了自己的相关专业技能与教学方法,提高了专业水平,调动了教师开展教学创新研究的积极性,加快程序设计课程体系、教学内容及教学模式等方面的改革,转变教育观念。教学也从以教师传授知识、技能为主,转变为以重视学生职业能力培养和发展为主,在程序设计这种实践性较强的课程中尤为适用,充分体现了现代职业教育“以能力为本位”的价值取向,达到了高职院校学生的培养目标,更好地为社会培养应用型人才。
[1]赵建华,李克东.协作学习及协作学习模式[J].中国电化教育,2000,(10).
[2]刘艳飞,谭论正.项目教学法在Java程序设计课程中的实践与体会[J].软件导刊,2009,(8).