首页 -> 2008年第7期

高职《Java程序设计》课程与项目驱动教学法

作者:罗恒辉




  【摘 要】本文从高职Java程序设计课程教学的现状出发,探讨了在Java课程中引入项目驱动教学方法,为java程序设计课程的施教者在整合专业技能训练与职业能力培养的教学方面提供了新的视角。
  【关键词】Java程序设计 项目驱动教学法
  
  一、问题提出
  
  Java程序设计是软件开发专业的一门实践性和操作性很强的专业课程,对于实现高职教育的“高技能人才”的培养目标,起着举足轻重的作用,因而该课程的教学研究工作受到了众多教育者的关注。
  目前高职学校的Java程序设计的教学中,普遍存在课程体系陈旧,没有脱离传统学科教育的框架,实践性环节不足,导致学生的实践能力不强,职业学校学生的学习能力普遍较低,以及多数教师项目能力不强,导致教学效果不佳。
  为解决上述问题,笔者通过不断探索和实践,采用项目驱动教学法进行Java程序设计课程的教学,激发了学生的学习兴趣,提高了学生的知识综合应用能力,取得了好的教学效果。
  
  二、教学设计
  
  项目驱动教学法以建构主义学习理论、行动导向教育理论和现代职业教育等现代教育理论为基础,将企业软件生产过程融入到程序设计课程教学中,采用的是“软件工厂”式的项目教学法。
  1. 授课项目的选择
  由于教师授课项目直接影响其教学过程,也直接影响教学效果,因此,教师授课项目的选择至关重要。项目一般来源于企业,授课教师首先对项目进行分析,找出其知识点。Java程序设计课程一般仅开设一个学期,在选择项目时,必须考虑项目的规模和难度,项目过大,教师只能抽取其中小部分讲解和辅导,影响授课的完整性;如果项目难以完成或技术含量过高,会直接影响学生的自信心,可能使得部分学生知难而退;但如果项目过小或过于简单,就很难激发学生学习Java的热情。项目规模的大小选择应适中,既要包括Java语言的基本语法知识,又要体现数据库管理、网络连接等实用性强的内容。
  在授课初期,鼓励学生自行寻找项目,了解用户需求,再汇集到组长处,经过小组讨论,集思广益,在教师的指导下,根据每个小组成员的实际情况,确定一个可行的软件开发项目,并按功能划分模块,最后将模块分配给小组成员。所划分的模块在很多方面具有相似性,如:用户界面的设计、数据库的连接、系统的框架结构等,采用的方法是一样的,只是具体内容不同而已。
  2. 授课项目的分解
  授课项目的实现要体现整体目标,而我们的授课时间分散于整个学期,这就势必要将大的项目,根据授课进度计划,分解为一个个可实现的子任务。项目分解时要采用递进的方法,将知识点、重点及难点分布于具体的子任务中,根据学生的实际情况进行实施。
  3. 学生分组
  项目驱动教学法与传统的课堂讲授法之间本质的差别,就在于所传授的知识是否具有系统性和连贯性,后者的课程试验只是为了验证教材或教师精心准备的实例,可由学生单独完成;而前者更注重项目的整体性和知识的综合性,为了完成项目,学生必须花费大量的时间和精力。另外,我们还要考虑个体能力与水平的差异,并从培养学生团队合作精神出发,根据学生的现状分组,每组选出小组长,即项目经理PM,对该组项目负责。每组成员一般在3~5人,由组长给组员分配任务。这种项目分组的方式,既锻炼了学生的团队合作精神,又可以起到“以强扶弱”的作用;既能充分调动学生的主观能动性,提高组织、协调能力,又可减轻教师的负担。
  4. 授课过程
  使用项目驱动教学法讲授Java程序设计课程时,需要与项目的软件开发流程一致,具体方法如下:
  (1)搭建软件开发平台,确定开发工具及辅助开发工具。不但要使学生了解程序设计的目标,还要使其知道实现目标的各种辅助条件。在给高职院校的学生讲授Java程序设计课程时,最好先使用可视化的开发工具,框架结构部分由开发工具自动生成,编写的代码比较少,又很直观;当学生有一定的程序设计基础后,再让学生并行使用非可视化的开发环境,以得到更好的锻炼。讲授程序设计课程时,一定要从软件工程的角度出发,鼓励学生适当使用一些其他的辅助工具,如代码版本管理、数据库结构设计、项目进度管理等,以提高学生综合应用知识的能力,培养企业真正需要的人才。
  (2) 详解软件开发环境。软件企业为了提高软件开发速度,缩短开发周期,普遍使用可视化的集成开发环境,往往将开发工具、数据库、Web服务器等集成到一起,这就增加了高职院校学生理解的难度,加之Java的开发环境基本上是英文版本的,授课教师一定要详细讲解开发环境中的关键内容,力争让学生全面理解,为后续开发扫清一切障碍。
  (3)设计用户界面。采取先易后难、循序渐进的方法,先行安排界面设计。由于未涉及程序代码的编写,学生容易入门,不会感到有太大的困难,极易产生满足感、成就感,以此激发进一步学习的热情。
  (4)编写程序代码。讲授程序代码编写时,一定先要根据功能的要求,给出每部分的大体框架,然后再细化。这部分涉及Java程序设计的语法知识,应按照事先划分好的子任务,根据学生的实际接受能力,用通俗的语言对每一个知识点进行讲解。切忌贪多求全,尽量消除学生对编写程序代码的畏惧心理,让他们产生自信心和自豪感,建立起较好的编程思想。
  (5)学习结果的考核方式
  传统的学习考核方式已不适合使用项目驱动教学法授课的科目。在整个授课过程中,学生都在渐进地完成属于自己的项目部分,其结果如何直接反映了每位学生的学习态度、知识掌握程的度等。授课教师可对学生所作项目每月检查一次,计为平时成绩;期末,要求学生对项目作演示汇报,由相关学科的教师组成专家组对每个项目评分,再结合学生相互评定的分数,作为学期总评成绩的一部分,既体现了公平性,又体现出权威性。
  
  三、教学实践
  
  以Java中数据库应用的教学为例,选择“使用小型通讯录”这一项目,其教学目标为:通过实例,学生掌握Java数据库的使用,能够综合运用数据库操作的相关知识,了解文件的查询、打开、修改及合并方法,同时,学生通过教师的指导设计并完成该项目,获得与学校生活、职业生活和继续学习有关的能力,如自我探究、团队协作、人际沟通和掌握现代信息工具等能力。教师通过对学生的指导,转变其教学方式,动态观察、了解学生,创造轻松的教学环境,提高教学效率与教研能力。
  在该项目的实际教学中,我们将任务式与小组合作式两种方式结合使用。项目的完成以小组为单位,每组3-4人,组员间以项目为纲,通过多角度、多途径的分析创造性解决问题,该项目涉及到素材的搜集、算法的设计、菜单的设计、语句的实现与调试等方面内容,各小组根据组员特长分工,最终完成任务。同时制定相应激励机制,并分组进行评比。教师在此过程中的主要作用是为学生提供适当的组织、协助与点评。
  项目教学法教学过程设计流程图如下:
  
  在练习数据库操作的同时,增加文件的查询功能,并能打开或修改指定文件及将多个文件组成一个文件。项目完
  成后,要求程序运行给出如下界面(选择菜单前数字即可对该通讯录进行操作):
  
  项目目标提出后,首先向学生讲解有关“通讯录”编程内容中的基本知识点,并作操作引导,使学生清楚了解本项目所包含内容及所要达到的目标,即“Java中数据库的操作、文件的建立、文件的存取与显示、删除记录、查询记录,此阶段亦是教师创设情境阶段。
  项目开发阶段,要求学生以3-4人为一组,合作完成该项目,项目开发过程中要求学生自主探究与协作学习相结合,项目的完成要求学生既发挥主动性与首创精神,又与小组成员充分地沟通交流。
  阶段小结,即小组内或各组间同学相互学习和借鉴。编程语言的项目教学过程中,教师须指导学生在面对不同的观点时,学会理清和表达自己对编程问题的见解,学会聆听和理解他人的想法。这样学生可以了解编程问题的不同算法和实现途径,从而对编程知识产生新的洞察。随时点评,通过随时观察学生编程进展情况,进行实时提示,指出问题所在与解决方法,引导其不断完善项目的开发,同时提高其运用计算机语言编程解决实际问题的能力。
  知识点的拓展,指在学生已有知识点基础上的知识延伸,其目的是促进学生编程语言的知识迁移。
  项目总结,即在额定教学时间即将结束时,对项目完成步骤及如何提高项目的解题思路作总体性的概括,防止教学知识点的遗漏,同时加深学生对所学Java知识的印象,并给出学生项目评价与考核结果。
  采用项目驱动教学法,进行Java程序设计课程的教学,能激发学生的学习兴趣,消除学生编写程序的恐惧心理,提高学生对知识的综合应用能力,达到高职院校学生的培养目标,此法也可广泛应用于其他各种程序设计语言的教学工作。
  
  参考文献:
  [1]马玉青.计算机绘图教学中应用“任务驱动”教学法初探[J].职业教育研究,2005,(10)P66-67.
  [2]姜大源.职业教育专业教学论初探[J].教育研究,2004,(5)P49-53.
  [3]吴言.项目教学法[J].职业技术教育,2003,(7)P50.
  [4]张党省.论职校教师在项目教学法中的角色[J].科教文汇,2006,(9)P114.
  [5]张哲、陈桂生.在Java语言教学中实施“项目驱动”教学法的实践探索[J].教育与职业,2007,(18) P160-161.
  [6]岳云峰、顾晖、李跃华.计算机硬件课程教学中的项目驱动教学法[J].南通大学学报(教育科学版),2007,(3) P93-94.
  栏目编辑:程少波