项目驱动教学法在PHP程序设计课程中的应用
2019-08-07覃忠台
覃忠台
(广州大学华软软件学院 网络技术系,广东 广州510990)
0 引 言
随着互联网技术的高速发展,信息数据不断膨胀,大数据、云计算在互联网的普及应用,使网络信息时代发生了质的变化。目前,我国网民规模达8.02亿,互联网普及率为57.7%;我国网络购物用户和使用网上支付的用户占总体网民的比例均为71.0%[1],这说明Web应用迅猛发展,因此,从事互联网应用开发的人员正成为社会急需的技能型人才。进入Web2.0时代,人们更加注重用户的交互性、跨平台性和实时高效性。国内近年来推出的Web2.0网站中,有80%使用PHP开发,因此,基于PHP技术的Web应用课程在互联网应用开发中日益重要。此外,掌握PHP开发技术能够拓展学生的应用领域和提高互联网应用开发的能力。
PHP课程是一门操作性和实践性很强、以IT人才培养为特色的课程,培养学生使用PHP脚本语言,以MySQL数据库为平台、结合主流的操作系统和Web服务器,按照一定的流程分析、设计动态网站和编写管理系统(BS结构)的能力,并最终开发出适合于当前中小企业需求的Web应用网站,为学生走向工作岗位打下良好的技术基础。目前课程教学存在的问题有以下3方面:①知识结构与业务所需岗位不相适应,传统的课程内容比较陈旧,不利于形成学生的技术能力,不能有效提高学生的学习兴趣,难以满足当前PHP应用开发的岗位需求;②教学方式学科化,师生互动性不强,课程内容的教学主要通过教师的讲和学生的听来实现,教师通过安排相应的实验内容来指导学生应用所学的知识完成实验内容,是一种典型的“填鸭式”教学方式,不利于学生对知识的掌握,且学生缺乏探讨和团队协作精神;③课程考核方式欠缺灵活性,PHP课程强调技术实践性,现有的考核方式偏重理论,实践应用较少,不能有效体现学生技能的形成,对学生的整体考核有失客观性。
1 项目驱动教学法探究
项目驱动教学(Project Based Teaching)模式是一种建立在建构主义(Constructivism)教学理论基础之上的教学法,同时也是CDIO(Conceive、Design、Implement、Operate,即构思、设计、实现、运行)理念所倡导的教学模式[2]。教师借助项目的拓展进行课堂教学,以项目案例促进驱动课堂教学活动的开展,学生通过实践活动来提高综合应用能力的教学方法。
项目驱动教学法的特点是以学生为中心、教师为指导、项目任务为基础的新型教学模型[3]。目前,各高校在人才培养方面都注重与区域经济和社会发展结合,以信息技术在各行各业的应用为立足点,培养适应国家信息产业发展需要的应用型人才。为了培养适应网络信息时代的应用人才,提升学生的职业素养和职业能力,适应未来Web网站建设的趋势,在PHP课程中引入项目驱动教学模式,以宽口径、厚基础、强能力作为课程教学标准。教学大纲以社会需求为基础、教学内容以岗位需求为目标,以强化能力促个性发展,从PHP应用开发技术入手,将教学内容在项目实战化背景下进行吸收、消化、应用,同时积累PHP开发经验,因此建设基于项目驱动教学法的PHP课程教学显得尤为重要,它对促进课程的理论与实践相结合具有重要的意义。
在教学活动过程中,以一个项目案例作为教学过程的主线任务,以解决问题为主,突出学生技能方面的培养,提升学生的信息处理、问题解决方案等方面的能力,促进教师在教学过程中将最新的开发技术与应用带进课堂,紧贴业界的技术前沿,保持教学内容的新颖性。体现教师的主导作用和学生的学习主体,强调学生的主动学习,培养学生的创新精神,增强学生之间的探讨活动和师生的互动性,让学生置身于知识探索的情境中,改变传统教学模式带来的问题。
2 项目驱动教学法教学
2.1 教学模式设计
项目驱动教学法将项目案例与教学活动相结合。通过对项目案例的分析,按照知识点的渐进梯度过程,在教师的引导下,从了解项目应用背景到相关知识点的学习再到知识点应用这一系列过程来开展教学活动。项目驱动教学法课程教学模式设计如图1所示。
将项目案例划分成3个教学模块,每个模块配置相应的知识点,对应相应的学习阶段,确保每个学习阶段的内容都以项目实战背景作驱动。各个模块之间紧密关联,环环相扣、相互驱动:模块一是项目开发准备阶段,PHP开发环境的搭建,服务器安装及基本配置,项目需求与分析等;模块二在模块一的功能分析基础上进行相关知识点的教学;模块三在模块二的学习基础上结合项目案例进行知识点应用,实现项目功能代码。
PHP精品资源共享平台是课程教学模式的数据资源学习驱动中枢,教师利用平台提供丰富的学习案例、习题集、微视频以及问题解决方案等学习资源;学生对知识点的掌握以及应用是通过平台进行资料查找、咨询交流和学习的。在学习结束后,进行项目案例的阶段性小结、反思提高。
2.2 教学内容设计
项目驱动教学法依据项目的推进来开展教学,从简单到复杂、单项到综合,将教学内容分成多个学习任务,学习任务之间按照认知规律的顺序安排[4]。根据设计的课程教学模式,在项目案例教学模块划分的基础上,将教学内容划分为6个学习任务,要求学生对PHP服务器环境搭建、PHP语法基础、函数、数组、文件与目录应用、PHP操作数据库、会话技术、面向对象编程、MVC架构等知识点达到熟练应用。基于项目案例的课程教学内容如图2所示。
在图2中,开发前准备教学模块分为①、②两个学习任务;是为项目代码实现教学模块作开发环境的铺设、项目应用背景的了解以及项目要实现的功能分析;知识点讲解教学模块按知识的
渐进梯度过程分为③、④、⑤三个学习任务,学习任务⑤属于PHP中级应用,在③和④两个任务的学习基础上进行任务⑤的学习;项目代码实现教学模块中的任务⑥贯穿于整个教学过程;教师引导学生应用知识点进行项目功能代码的逐步实现,最终完成整个项目的开发。
2.3 教学实践及效果分析
教学实践开展的核心是教学方法和教学手段的应用。项目驱动教学法在PHP程序设计课程中的有效应用是结合多种教学手段开展的。
图2 基于项目案例的课程教学内容
(1)强调学生动手的实践过程,全面客观评价学生技能。将课程的考核分为理论和实践两部分,各占50%;理论部分主要放在期末考试,实践部分体现在平时的实验课中。课程全程在实验机房上课,确保每节课有50%以上的时间让学生进行实操。
(2)从项目的功能案例出发,根据教学内容安排,按照项目背景分析、知识点精讲、案例演示等过程,利用多媒体结合讲授、演示、讨论、全员参与应用等教学手段进行全方位授课。通过对项目案例进行分析,让学生了解案例的应用背景,明确学习目标,激发学生的学习兴趣与动机;通过对知识点进行讲解、讨论、案例应用演示,促进学生吸收并掌握知识技能;通过指导学生应用知识点共同完成项目案例功能代码的实现,提升学生的技能。经过这一系列教学活动,引导学生对项目案例从提出问题到确定解决方案再到方案的实现等过程进行各个阶段的教学,在每个阶段学习结束后,组织学生进行小结,交流学习心得,提升开发经验。比如,在教学模块⑤中的会话技术学习环节,该环节学习内容是cookie与session知识点的应用,在讲解session的应用时,通过项目案例的用户登录功能进行讲解,在教学活动上分为5个步骤进行开展:①对用户登录功能进行需求分析,让学生知道登录功能的作用,要做什么,了解session会话技术的应用背景;②从session技术、应用两方面对知识点进行精讲;③引导学生讨论如何应用session实现用户登录功能,确定实现方案,最终给出登录功能的设计思路:设计数据库表→编辑用户登录表单页面→通过PHP接收用户提交表单数据,并验证用户名和密码是否正确→通过session保存用户登录成功的会话,登录成功跳转到用户中心页面→编辑用户中心PHP页面用于判断用户是否登录成功→实现用户退出功能;④根据设计思路指导学生应用session实现用户登录功能;⑤阶段小结,教学反思。
以上步骤实现了登录功能从需求分析到思路设计再到功能代码实现的过程,让学生知道在需求分析步骤解决的问题是“做什么”,在思路设计步骤解决的问题是“怎么做”,在思路设计的蓝图基础上进行功能代码的实现,培养了学生软件开发的思路和方法的理念,为后继开发复杂的模块打下良好的基础。
(3)为培养团队协作精神,突出教师的主导作用和学生的学习主体,增进学生之间的互动性和学习的探索精神,激发学生自主学习新知识点。对于较复杂的功能模块,学生以团队小组的形式展开讨论,小组之间形成竞赛机制,有利于驱动学生的学习热情与动力。比如在教学模块⑥中,项目案例的文章管理模块就是一个比较复杂的功能模块,课时跨度较长,涉及的知识点比较宽广,有面向对象编程、PDO数据库抽象层、文件与目录操作以及第三方插件的应用等。教学过程的做法是教师如何引导学生利用前面所学的知识来实现文章管理模块:①将教学班每3人为1组建立开发团队,确立1名组长作团队协调及任务分配,全员参与,成员中每个人的侧重点不同,分别侧重于后台代码、前端和数据库,分工合作,强调团队协作精神;②对文章管理模块进行需求分析,让学生了解模块具有添加、删除、修改、查询、排序等管理功能,所应用到的主要知识点有PDO数据库操作、面向对象编程、文件的上传以及第三方插件在线编程器的应用等;③引导各团队小组讨论如何结合前面学过的知识点来实现文章管理模块,并形成设计思路:设计数据库表→封装PDO类→实现文章分类的添加、展示、排序等功能→应用在线编辑器实现文章添加、修改→封装并应用分页类来展示文章→实现文章与文章分类联动删除功能;④依据设计思路,教师作相关案例应用演示,引导学生通过PHP精品资源共享平台进行拓展性学习;指导各小组进行实操开发,辅助各团队组长协调好各组工作;各小组形成竞赛机制,在规定的课时内完成模块功能开发;⑤各团队小组总结,挑选一些优秀团队上台演示结果,相互交流心得,提升开发经验。
(4)利用互联网技术,建设PHP程序设计课程精品资源共享平台,实现线上线下同步学习,以及学习问题的在线解答。平台资源包括教学大纲、考核大纲、实验大纲、课件、习题集、应用案例、微课视频等资源,提高课程学习的丰富性的和学生自学能力。
课程应用项目驱动教学法经过了2年的教学实践,取得了一定的成果。表1从学生的考核情况、参赛情况、学生对课程的评价以及横向项目训练情况进行教学成果前后对比。
表1 教学成果
在教学成果表中,课程的考核情况呈正态分布,学生在课程评价系统中的评分逐年增高。在丰富学生的横向项目训练方面,通过与企业的合作建立校外软件实训基地;投入一定的师资力量加强并完善互联网应用开发特训班的建设;通过考核、选拔等方式让学生参与互联网应用开发特训班、与企业合作开设的各种实训班、院级“大创”项目以及校企合作的软件实习基地等。满足不同层次的学生需求,让更多的学生获得实战背景下的项目训练,提高学生的技能和开发经验。学生走出校园参加全国各种软件赛事的人数逐年增多,并获得了丰硕的成果。
3 结 语
项目驱动教学法在PHP程序设计课程中的运用,将教学内容和实战背景项目相结合,调动了学生学习的积极性,提高学生的自主学习能力、知识的应用能力和团队协作精神。实践证明,项目驱动教学法是符合以IT人才培养为特色的PHP程序设计课程。当然,在以项目驱动为导向的课程建设中,也存在不少问题。随着课程改革的不断发展以及课程教学的深入研究,项目驱动教学法在PHP程序设计课程教学过程中会逐步趋于完善。