时间:2024-08-31
江天仿
(山东凯文科技职业学院,山东 济南250200)
CDIO是20世纪末麻省理工学院等四所国际知名大学联合创立的一种现代工程教育模式。它以培养产业界合格工程师为目标,通过模拟工程师角色和工程实践环境,以理实一体化的方式促进学生专业知识、实践技能和职业素养的同步提升。CDIO工程教育的实施,能够有效建立理论与实际的关联,解决专业教学中知识传授与能力培养的矛盾,对兼具基础性、实用性的高职程序设计课程教学改革具有重要的现实意义。
但CDIO作为一种基于项目的群体教育模式,引入教学实践后,却出现了一些无法回避的现实问题:一是不能兼顾学生个体的差异性,学生在课堂讲授环节必须掌握本次课的知识点,跟上班级的教学进度,否则难以进入课堂实践环节的学习;二是“设计实现”经验依赖于内容复杂、功能完备的工程项目,课堂有限的教学时间难以完成教学任务。此外,强调基于项目的协作探究,弱化基本编程技术训练,要求学生在项目训练过程中自觉主动地将项目经验与理论知识融会贯通,实现理论和实践的双重学习目标,无疑提高了程序设计课程的入门难度。
针对上述问题,我们需要重构现有的高职程序设计课程CDIO教学模式,不仅能通过项目CDIO全过程以用导学、学做合一,更要兼顾学生的基础,循序渐进地提高知识、锻炼能力,保证项目的顺利进行。本文将翻转课堂理念引入CDIO教学中,通过线上线下教学的有机结合,构建了“翻转课堂+CDIO”教学模式,以满足高职软件人才培养的需求。
CDIO代表构思(Conceive)、设计(Design)、实现(Implement)、运作(Operate),涵盖了产品从构思、研发、应用到反复改进的全生命周期,[1]主张以产品生命周期为教育环境,引导学生主动实践并通过课程之间有机联系的方式学习,在获取一体化学习经验的同时,将工程实践问题和课程知识相结合,从而在专业知识和技能、终身学习能力、团队合作能力、企业环境下构建产品能力等方面得到全面提升。
翻转课堂则是将传统的学习过程翻转过来,学生课下自主学习教师提供的教学资源,完成知识的传递;课上通过合作探究、互动交流完成知识内化的一种新型教学模式。两者均倡导以学生为中心,[2]在课堂上给予学生更多“做中学”的机会,充分发挥学生的主体能动性,最大限度地实现知识内化和能力提升。将翻转课堂引入CDIO教学中,解决了有限学时与大容量、系统化的工程教学内容的矛盾,营造了个性化、协作式的学习环境,鼓励学生课下自定步调地深度学习,为课堂上CDIO项目的顺利开展创造了良好的条件。
图1 高职程序设计课程“翻转课堂+CDIO”教学模式
“翻转课堂+CDIO”教学模式,实质是现代教育技术与工程教育模式的有机结合。CDIO强调教学实践过程的工程化,就程序设计课程而言,就是选择接近实际的软件项目作为教学贯穿项目,按翻转课堂方式进行教学流程设计,按构思、设计、实现、运作四个步骤组织每一环节的教学活动。考虑到高职学生的认知水平和程序设计类课程的特点,我们将整个教学过程划分为基础教学和综合运用两个阶段,按照软件工程开发流程,遵循程序设计一般步骤,通过线上线下多元教学活动,融合课堂内外两种学习形式,形成了以学科知识为基础、实践应用为重点、CDIO能力为目标的分阶段、递进式“翻转课堂+CDIO”教学模式,如图 1所示。
Java作为一种纯面向对象的编程语言,具有跨平台、分布式、高安全性、健壮性、多线程等特性,[3]是高职院校计算机专业的核心课程。该课程理实并重,要求学生掌握Java的基础知识,具备面向对象的程序设计思想,能用Java语言开发实际工作领域的应用程序。为了充分发挥学生的主动性,确保教学目标的顺利实现,我们在教学中引入了“翻转课堂+CDIO”教学模式。
践行“翻转课堂+CDIO”教学模式,关键是CDIO框架下的项目设计。由于大多数学生没有项目开发经验,我们在Java程序设计课程中分阶段引入两类项目。
一类是仿真软件项目,作为教学项目贯穿基础教学阶段始终。此类项目以实际软件项目为蓝本,根据课程目标改编而成。目的是有机整合课程知识,承载教学内容;在项目带动知识的同时,能兼顾课程知识结构的系统性。我们选用“员工管理系统”项目串接Java课程理论知识点,教师按项目需求将其分解成若干个功能模块,再将这些功能模块进一步分解为一系列覆盖课程知识点、由浅入深的小项目。每个小项目都具有各自的需求分析、算法设计、编码、测试、运行等活动,实现局部功能的某项开发任务。随着小项目的递进,增量式完成整个系统的开发,随之也完成了课程全部知识点的学习和训练。项目内容及知识点对应关系如表1所示。在小项目的讲解和训练过程中,实现多次知识内化,引导、推动学生自主完成知识的建构和CDIO能力的形成。
表1 《Java程序设计》课程教学项目与知识点对应表
另一类是中小规模的实际软件项目。基础教学阶段结束后,学生虽然完成了一个完整教学项目的开发训练,但学生CDIO能力培养主要是通过课堂小项目完成的,难免会“只见树木不见森林”。面对真实软件项目的开发,无法建立较为宏观的解决方案。因此,在学期末的综合运用阶段,要求学生通过协作探究,自主开发一个相对完整的中小型软件项目,强化学生的CDIO能力,重点培养“C-构思”与“D-设计”能力。项目内容须覆盖课程主要知识点,可以是一个功能完整的小项目,也可以是一个大项目下功能独立的子项目,由教师指定或学生自拟,自拟的项目经教师批准后方能执行。
(1)问题引导的基础教学阶段
模块1“搭建员工管理系统开发平台”采用传统教学模式,教师除了介绍Java语言的发展背景、特点、开发平台等知识点外,还要向学生展示教学项目,分析项目需求,确定要实现的功能模块及每个模块的CDIO开发周期,在激发学生兴趣的同时让他们对学习任务心中有数。其他6个模块则采用融合翻转课堂的CDIO教学模式,包括课前准备、课中训练、课后巩固三个相互关联的环节,以问题引导的方式循序渐进地完成从接受知识到内化知识的全过程。
课前准备是CDIO教学的基础知识自学环节,学习效果直接影响课堂CDIO项目的完成质量。教师在课前一周将相关知识点的教学视频和资源统一发布到云端,供学生下载学习。由于《Java程序设计》课程概念抽象、语法繁多,初学者往往觉得晦涩难懂、不易理解,课前教学视频宜选用任务单一、针对性强的小案例为载体,以问题引出知识点,便于学生理解和掌握,也有助于培养学生程序化解决问题的能力。案例的讲解按 “构思-设计-实现-运作”所对应的程序设计一般步骤展开,通过问题分析、算法设计、编码实现、程序运行四个步骤解决问题、完成知识点的传授。学生在自学中如果遇到困惑,可以在线与教师或同学进行探讨。此外,视频播放结束后教师应布置若干针对知识点的基础验证性练习,促使学生在设计程序、编写程序、调试程序、修改错误中完成知识的初次内化,在验证理论的同时,重点锻炼“D-设计”“I-实现”和“O-运作”能力。
以模块“员工基本信息处理”中的小项目“部门绩效考核分析”为例,任务描述为:系统提供部门绩效查询功能,用户可以选择需要查询的部门,查询该部门所有员工的考核信息,也可以查询该部门员工绩效考核的平均分。目的是学习和训练Java语言的循环结构。教师根据“部门绩效考核分析”项目需求设计教学内容,通过百度云发布学习任务、提供学习资源,引导学生自主学习并完成针对性练习,课前学习任务单见表2。
课中训练是CDIO能力形成的关键环节,也是知识深度内化的过程。教师根据学生课前学习情况及反馈答疑解惑,进行重难点强化,然后进入CDIO项目训练阶段。教师简单演示“部门绩效考核分析”项目,介绍项目评价标准,根据课前作业情况划分项目小组,要求学生以小组为单位,按照“构思-设计-实现-运作”四个步骤完成开发任务。由于高职学生基础薄弱,抽象思维能力有限,项目训练初期往往一头雾水不知从何入手,教师可以将开发任务分解成若干个待解决的问题(见表3),为学生提供可利用的学习支架,引导学生快速进入CDIO项目训练;在项目开发过程中遇到问题可以采用组内讨论、组间协作的方式解决,也可以向教师求助。最后,组长演示项目运行效果,教师点评并总结课堂教学过程和学生表现。该环节模拟软件工程师工作环境,课堂成为工程实践场所,学生运用“先验知识”,在CDIO项目开发中完成知识的消化吸收并形成初步CDIO能力。
表2 “部门绩效考核分析”项目课前学习任务单
表3 “部门绩效考核分析”项目需解决的问题
课后巩固是CDIO教学的复习、提升环节。学生梳理、总结知识点,回顾、反思教师课堂评价,排查项目开发中的不足和问题,修改、优化程序,完善、上传项目实验报告、项目总结等文档,温故知新,进一步完成知识的内化和CDIO能力的训练。
(2)项目驱动的综合运用阶段
学期末的综合运用阶段,融合原有的课程设计,为期2周,采用项目驱动、分组合作的方式由学生自主完成真实软件产品的开发。此阶段教师不再提供任何支架性帮助,仅对各小组开发过程中的问题进行个别指导。组内成员参照教学项目进行CDIO周期规划和功能模块划分,集体讨论项目构思和项目设计,组长分配项目实施任务至个人。一个功能模块完成后集成一次,最后集成所有的功能模块统一测试运行。项目成品须上传至教师机并进行演示和答辩,由教师进行评价。综合运用阶段,学生整合运用基础教学阶段所学知识,通过个人探究和团队协作,独立完成真实软件产品的构思、设计、实现和运作全过程,实现知识内化,在程序设计基础知识、个人能力、团队合作能力和工程系统能力四个方面再次提升。
表4 实验班与对照班期末成绩分析(样本单位:人)
表5 实验班与对照班实践项目成绩分析(样本单位:小组)
为了验证“翻转课堂+CDIO”教学模式的实施效果,学期末,以笔者所在学校17级软件技术1班和软件技术2班为研究对象,进行教学效果的实验对照。两个班学生的学习成绩、自学能力、认知能力、学习态度没有明显差异。软件技术1班40人,作为实验班,采用 “翻转课堂+CDIO”教学模式,软件技术2班42人,作为参照班采用传统课堂下的CDIO教学模式。《Java程序设计》课程结束后,就学生的期末成绩和实践项目成绩进行对比,具体如下:
(1)期末成绩分析
表4中数据显示,实验班的期末考试平均成绩为81.600分,主要分布在70-89分区间内,对照班的期末考试平均成绩为72.166分,主要分布在60-79分区间内。期末采取笔试,主要是对Java课程理论知识的考核,两个班的分值差异反映了实验班在理论知识掌握方面优于对照班,“翻转课堂+CDIO”教学模式在课程理论教学中的确具备优势。
(2)实践项目成绩分析
按教学计划,对照班在学期末有2周的课程设计时间,与实验班的综合运用阶段类似,要求学生在教师指导下,以项目小组为单位独立完成一个实际软件项目的开发任务。每个班按“同组异质”的原则由教师划分为10个项目小组,实践项目成绩按小组提交的项目成品、相关设计开发文档和答辩情况打分。
由表5中的数据可知,所有小组的开发任务基本完成,但实验班的项目成绩明显高于对照班,说明实验班的软件开发能力远远超过对照班,“翻转课堂+CDIO”教学模式较传统课堂中的CDIO教学模式更能提高学生的项目实战能力。此外,对比表4和表5我们可以看出,期末考试成绩与软件项目开发的质量呈正相关,夯实理论基础是CDIO能力培养的前提。
将翻转课堂理念引入高职计算机程序设计课程CDIO教学中,突破了时空限制,兼顾了学生的个体差异性,实现了从基础知识学习到CDIO能力培养的平滑过渡,为高职计算机专业教学改革提供了有益思路。然而,CDIO和翻转课堂作为教学改革的舶来品,良好的本土化应用有赖于一线教师的不断努力,在持续创新中优化、完善“翻转课堂+CDIO”教学模式的各个环节,从而为社会培养更多的适用软件人才。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!