[摘 要]面向对象程序设计课程的教学积累了许多经验,但是在教学方式和教学效果上还需要新的提升。因此,教学团队针对面向对象程序设计课程的重实践、重应用的特点,探索新的教学模式——项目式教学。在教师指导下,学生独立处理项目信息的收集、方案的设计和项目的实施,力求克服传统教学中重理论、轻实践的不足,实现教学的突破。文章从项目式教学的准备、教学设计、开展和考评机制等方面介绍了项目式教学在面向对象程序设计课程中的应用,也为其他课程开展项目式教学提供参考。
[关键词]项目式教学;面向对象程序设计;课程改革
[中图分类号]G434 [文献标识码]A [文章编号]1008-7656(2022)02-0043-05
引言
面向对象程序设计课程是在具备了基本的程序设计思想以及基本的程序逻辑的基础上,基于编程语言继续深入学习面向对象的程序设计思想及其实现,是计算机软件和大数据专业的核心课,是一门理论与实践一体化的科目。该课程集理论和实践为一体,理论性和实践性都很强,在课程设计理念上,偏重对有关原理和理论知识的理解,注重理论联系实际。在课程教学中,该课堂教学流程是:理论—实践—理论。但是,由于受学生的知识基础、理解能力、思维能力等因素的影响,教学效果不够理想。尤其在教授“类”的高级特性、集合和泛型等难度较大的教学内容,很多学生难以理解和掌握相关专业知识。完成学习后,学生不能将零散的知识点融会贯通,也不能独立地进行小型项目的开发。
针对以上情况,教师需要探索一种新的教学模式,以提升学生运用面向对象的思维分析问题、理解问题、解决问题的能力。经过多次集体教研,教学组决定采用项目式教学,以《柳橙汁美食家管理系统》为贯穿项目案例,将项目开发过程与知识点的学习结合起来,同步推进,随用随学,边学边做。
一、项目式教学准备过程
面向对象程序设计课程采用的项目式教学是在教师指导下,以学生为中心,通过完成《柳橙汁美食家管理系统》为实践性项目教学作准备。根据课程知识点设置,根据实际情况,将项目划分成小的阶段任务,以围绕着Java OOP技能培养为主线,按照知识和技能由基础到高级、由简单到复杂、由单项到综合的原则,分段阶段逐步完成[1]。这就要求学生有一定的理论知识基础,并运用已有的知识和经验,通过完成阶段性项目,解决实际问题,进而促进综合能力的发展。为了顺利开展项目式教学,课程教学小组作了以下准备。
(一)项目的选择和确定
项目选择是影响项目式教学效果的关键环节。课程教学小组重视项目的选择,遵循以下原则选择项目。
1.紧密联系基础理论知识点。项目要能够体现一个较为完整的理论知识体系,又能紧扣面向对象程序设计的所有理论知识点,这样能让学生在完成项目的过程中既可以不断运用所学的基础理论知识,又提升分析问题和解决问题的能力。
2.项目难度要适中。项目难度太大,学生完成不了,会有挫败感,也会打击学生的学习主动性。项目太容易又没有挑战性,难以提升学生的综合能力。
3.适合三至五人的小组合作完成。小组合作,不仅培养学生的团队协作能力和沟通能力,还创建真实的项目开发场景,让学生深入体验项目开发的过程。
课程教学小组以《柳橙汁美食家管理系统》的小型软件系统为载体,分阶段、分层次、分模块逐步完成,实现知识的传授和技能的训练。通过项目案例驱动教学活动的开展,通过项目案例将各个知识点、技能点贯穿起来,最终达到综合应用的目的[2]。在项目教学设计上,突出技能培养和技能训练,使学生在有限的时间里,完成项目案例,并获得实践技能。
(二)校本教材的开发
为了开展项目式教学,教学组提前一年进行以《柳橙汁美食家管理系统》为教学贯穿项目的校本教材开发。通过多次集中研讨,将总项目划分为若干个独立的子项目(阶段任务),每个子项目(阶段任务)对应相关的知识点和技能点,并以此为基础确定教材章节,优化项目,编写教程。最终确定项目教学与实训教学两本校本教材的开发,以《Java OOP项目式教程》作为主教材,以《Java OOP项目实训指导》作为辅助教材。
1.《Java OOP项目式教程》按开发过程将《柳橙汁美食家管理系统》划分为6个阶段,将每个阶段分别对应的知识点提炼出来 ,以需求为导向。通过分析问题,明确开发任务,激发学生求知欲。进而通过学习探究、实现任务及验证成果等环节,让学生学习和掌握新知识,同时在此过程中完成项目实践,掌握新技能并能实现应用。为了帮助学生深入理解和掌握Java面向对象程序设计,培养扎实的程序设计能力和初步的项目实战能力,教材提供了详细的项目概述、附录等内容,并提供了大量的图、表和程序代码。
2.《Java OOP项目实训指导》以贯穿项目案例《柳橙汁美食家管理系统》的开发过程为主线,指导学生完成设计、编码、测试等软件项目开发过程,这有利于帮助学生理解软件的完成周期,能从项目整体的角度进行软件系统的设计,并自上而下、分步实施,体验完整的软件开发流程,从而学会如何从项目的层面思考并解决现实问题。按照《柳橙汁美食家管理系统》的开发过程和功能模块进行划分,每个模块即为一个开发阶段,以完成階段任务为目标,通过实现思路、系统设计、算法设计、编程要点和测试与验证等各方面的指导,使学生在理解的基础上,能够通过编程解决现实问题。该教材资料丰富且立体化,图文并茂,能很好地展现项目框架结构及各要素之间的关系,深度剖析技术重点和难点,有助于学生深刻理解和强化记忆。
(三)对人才培养方案和课程标准进行了相应的修改
经过对项目式教学的总结与评价,根据取得的教学成果,对照1+X培养目标,对下一年度的人才培养方案进行相应修改。项目式教学启动前,教学小组就根据教学设计和将要实施的教学过程对课程标准进行了修改和调整。B415C67F-4F88-4754-B286-42A7633161CA
(四)建立网上教学资源
课程教学小组依托职教云平台准备了丰富的学习资料:学习用的PPT、详细的教案、针对知识点的题目练习、教学视频等,为项目式教学提供了学习支持。
(五)思政元素的融入
本研究的项目式教学在准备的过程中融入了许多思政元素,包括转变思想、实事求是、团队精神等。面向对象语言是计算机语言,计算机思考问题和处理问题的方式与人类有所不同,要学好这门语言,就要转变思想。首先,面向对象程序设计课程的知识点都来自日常生活,可以从现实中找到实例作为依托。其次,课程的代码都是为现实服务的,离开了实际需求,项目的开发就没有了意义。项目的开发需要团队精神,每一个队员通力合作才能保证项目的顺利完成。
二、项目式课堂教学实践
(一)教学设计
围绕项目设计教学活动,推动教学过程。项目任务既是教学活动的切入点,也是最终教学成果的呈现。根据课程教学目标和教学内容,结合项目实际,将教学设计分为三个阶段:模块项目前期(包括制定方案和计划,布置任务及基础理论知识点的学习)、模块项目中期、模块项目后期(总结分析)。
(二)教学过程
1.布置项目阶段性任务。根据开发过程划分与课程基础理论知识相关的阶段性项目任务[3],并充分考虑到学生需要一个思维转变和知识积累的阶段,前期学习阶段每四周完成一个模块项目,后期每两周完成一个模块项目。经过三周的知识积累,学生能够自行完成模块任务中的分析、设计甚至编码测试过程。三周后会将模块项目下发给学习小组。小组成员对任务进行分析,收集相关信息,对照教材了解相关知识点,并通过职教云的学习,统计哪些内容是能理解的,哪些内容存在困惑。教师通过课堂讲解、答疑解惑和实践练习,能够确保学生自行完成需求分析和详细设计,为后期编码实现和测试验证作准备。
2.课堂答疑解惑。首先是解答学生课前遇到困难的知识点;其次是按项目式教程,结合高职学生的特点,串讲模块项目涉及的基础理论知识点,并运用实际生活案例进行剖析,培養分析问题和解决问题的思维习惯;接着进行一定的实践训练[4],通过技能训练加强稳固和强化,课堂案例也选择了可以贯穿一个模块项目知识点的实践案例。实践过程中不仅掌握了基础理论知识,还能够灵活运用,举一反三,构建自己的知识体系,为独立完成模块项目的设计打下坚实的基础。
3.模块项目的实现。在每个阶段的最后一次课程中对模块项目进行适当的分析讲解,之后学习小组独立完成编码任务和测试部分。在这个过程中,教师指导学生解决编码中遇到的问题,并启发学生主动解决问题,在遇到共性的问题时可以通过控屏统一解决,并查找问题出现的原因和寻求解决的办法,要关联到对应的知识点上。
4.总结分享。这是一个升华的阶段,让小组里的每个学生都能认识到,大家都遇到过困难,而且都通过努力解决了问题,在促进相互学习的同时也增强了学生自信。
三、项目式教学的考核与评价
项目式教学的应用,制定了相对应的考核评价机制,从注重期末考核,转向注重平时项目的完成过程的考核,占比情况:期末考核40%+模块项目考核60%。
(一)平时模块项目的完成情况考核评价
1.学习小组内部评价。每个模块项目设定总分100分,按分工和完成的工作量确定占总分数的百分比,并按完成情况由组长打分。
2.小组间相互评价:模块项目完成后,小组交换完成结果,互相评价,评价完之后与被评小组进行核实。
3.教师评价:根据最后结果的呈现及小组的汇报情况,结合完成过程,教师给出一个评价。
模块项目考核成绩(平时成绩)=小组25%+互评25%+教师考核50%
(二)期末考核
期末考核为笔试+机试。笔试在考试库进行考核,考核的是知识点。机试考核知识点在编程中的应用。期考成绩=(笔试50%+机试50%)*60%+模块项目考核成绩*40%。
四、项目式教学的优点
项目式教学在面向对象课程中的应用进行了一个学期,从作业提交情况来看,35%的学生能够独立完成《柳橙汁美食家管理系统》各个模块的内容;50%的学生能够完成主界面和商品信息列表、“类”的继承、动态删减等内容;15%的同学能够独立完成主界面、单条商品的显示等方面的内容。总的来说,项目式教学模式的优点已经凸显出来,具体体现如下。
(一)充分调动学习积极主动性,提升自主学习能力
学生是学习的主体,在课堂教学过程中,学生的主动性表现为主动地参与教学活动。学生有无积极主动性,已成为能否完成教学目标的重要因素。自主学习是以学生作为学习的主体,通过学生独立地分析、探索、实践、质疑、创造等方法来实现学习目标。自主学习是所有能力中最重要的一种能力,有了这种能力之后,学生才能更全面的发展。学生有了自主能力就可以自主学习,独立思考,可以自己学习新的知识,掌握新的技能。主动和自主的学习能力是学习过程中的关键因素。项目式教学通过任务分配,让每个学生都有参与的机会,学生在此过程中找到一定的归属感和责任感,同时还能够挖掘学生的潜能,如有些学生表达能力强,能代表小组进行讲述;有些学生的Photoshop学得好,在PPT的设计和海报设计方面能承担更多的任务。这不仅激发了学生的学习积极主动性,培养自主学习的能力,同时让学生认识到自己的长处,找到发展的方向。
(二)教师综合能力的提升
教师要在教学过程中关注学生的情感体验,懂得将教学课堂与实际生活相结合,从学生感兴趣的方面提出问题。这就要求教师主要了解学生的认知背景,不同背景的学生的学习节奏不尽相同。项目式教学的应用让教师经过了相关的培训、与教研、校本教材的开发、项目的组织与实施等过程,在整套流程下来,教师的专业能力、组织能力、学习能力、团队合作能力都得到了提升。教学组的教师带领学生完成了《北部生态新区康养项目APP》《柳州市传染病监测预警信息平台》的开发,并荣获学院青年教师教学能力大赛一等奖、自治区创新创业大赛二等奖等多个奖项。
(三)提升了学生的综合能力
学生的综合能力是指学生的观察能力、实践能力、思维能力、整合能力和交流能力。问题解决能力是培养学生的重要指标,也是学生综合实践活动的核心价值之一,培养学生问题解决能力对提升学生综合能力具有重要的意义。在本研究中学生除了完成《柳橙汁美食家管理系统》项目,还在教师的带领下组成开发小组,利于课余时间完成了《北部生态新区康养项目APP》和《柳州市传染病监测预警信息平台》的开发。在这个过程中,学生的专业能力得到了很大的提升。通过参与项目的开发,激发学生的创造力、团队合作能力、时间管理能力,不断挖掘学生的领导力、计划以及执行项目的能力。学生积极参加省级专业大赛,如参加了一带一路暨金砖国家技能发展与技术创新大赛,学生的综合素质得到了提升。
由于项目式教学仍处于探索的过程,也凸显出了一些问题:如个别学生由于基础、学习能力不足,在小组中承担的任务分工较为简单。学生的任务完成情况难以做到时时监督和引导,小组间的能力差距直接影响项目开发结果。
五、结语
项目式教学在面向对象课程中的应用,适当结合了传统理论与实践一体化的课堂、翻转课堂和小组学习模式,将项目开发过程与基础理论知识相结合,充分调动了学生的主动性,在一定程度上锻炼了学生的团队合作和沟通能力,提升了教师的教学水平和教学模式的创新。但是,它是一种新的教学模式教学实践中的运用,还有待不断探索,积累经验,逐步推广。
[参考文献]
[1]齐卫,王文青.项目式教学过程与效果评价[J].河北师范大学学报,2020(11):119-121.
[2]张力.项目式教学在《c#程序设计》课程教学中的应用[J].中国发明与专利,2019(12):73-76.
[3]崔慧娟.项目式教学在Oracle数据库课程中的应用[J].科教文汇(下旬刊),2021(2):84-85.
[4]王健庆.项目式计算机实践教学研究[J].福建电脑,2021(1):109-111.
[作者简介]王丽娟,柳州城市职业学院讲师,研究方向:计算机信息技术。
[责任编辑 韦志巧]B415C67F-4F88-4754-B286-42A7633161CA