融合MOOC的逆向课程设计模式在软件工程课程中的应用研究
2018-09-17彭毅弘程铃钫
彭毅弘 程铃钫
摘 要: 软件工程是计算机类专业的一门核心专业课程,由于该课程具有知识域广泛、更新速度快、实践性强等特点,导致不少高校的教学效果不太理想。通过分析该课程教学中遇到的问题和难点,结合教学实践和企业研发经验,采用逆向课程设计模式,并融合MOOC混合式教学方式,从课程目标、评价标准、教学内容与教学方法上进行了探索与改革。实践证明,该模式极大地激发了学生的主观能动性,启发了学生对职业发展的思考,取得了良好的教学效果。
关键词: 软件工程; 逆向课程设计模式; MOOC; 混合式教学
中图分类号:G642 文献标志码:A 文章编号:1006-8228(2018)07-103-04
Abstract: Software engineering is a core professional course for computer majors, but the teaching effect is less impressive in many universities because of the characteristics of extensive knowledge field, fast updating speed and strong practice in this course. By analysing the problems and difficulties encountered in the course teaching, and combining teaching practice and enterprise research and development experience, using the reverse course design mode fusing MOOC blending learning, the reform of the course on the curriculum objectives, evaluation standards , teaching contents and teaching methods etc. is explored. The practice has indicated that this mode has greatly stimulated the students' subjective initiative, inspired the students' thinking on career development, and achieved good teaching results.
Key words: software engineering; reverse course design mode; MOOC; blending learning
0 引言
軟件工程是一门研究用工程化方法构建和维护软件的学科,是培养学生计算机理论与实践能力的一门关键课程。软件工程本身是比较复杂的系统工程,而且理论性与实践性并重,课程教学中会遇到很多问题。为满足应用型本科人才培养要求,促进计算机专业课程体系改革,提升软件工程课程教学效果,需要研究和探讨软件工程的教学方法。
1 软件工程课程特点与教学难点
下面从软件工程课程特点的角度分析该课程的教学难点。
⑴ 从课程内容上看,软件工程的原理众多,根据IEEE-CS和ACM于2014年发布的软件工程知识体系SWEBOKv3[1],软件工程课程共15个知识域,涉及7门学科,系统性、交叉性和综合性都非常明显。在有限的课程学时内如何使学生较好的掌握这么多知识点,对教师而言是一个挑战。
⑵ 从课程的时效性看,软件工程是一门发展极为迅速的学科,物联网、云计算、人工智能等新一代IT产业领域发展迅猛,产生了很多新理论、新技术和新岗位,相关知识的更新速度远远超过了教材的更新速度。另一方面,高校教师一直处于高校教学体系中,如果没有实际参与企业项目研发或密切跟进最新企业人才需求,就会导致教学内容与实际脱节。
⑶ 从课程的实践性看,软件工程课程涉及的15个知识域中有11个属于实践类别,意味着这门课程对实践性要求很高,具有很强的工程应用特征。目前对于该课程在提升实践教学效果的改革上,比较主流的是采用项目驱动的教学模式[2],有很好的实训效果。但值得注意的是,项目驱动的教学模式对教师所选的软件项目要求很高,既不能过于庞大,也不能过于简单,同时需要具备综合性、针对性和可拓展性,因此要求教师对项目有很强的把控能力和设计能力。
针对以上教学难点,结合多年软件工程教学经验以及与企事业紧密合作的平台,对软件工程课程教学模式进行了多方面的研究和改造,引入逆向课程设计模式,同时融入混合式MOOC教学方式,激发学生的内在学习动力,实现有效的学习。
2 逆向课程设计模式的特点和应用
2.1 逆向课程设计模式的理念和特点
逆向课程设计模式是美国教学领域专家威金斯(Grant Wiggins)和麦克泰(Jay McTighe)共同提出的一种新的课程设计理念,针对传统教学模式的不足,强调采用与常规课程设计相逆的方式,以达到使学生追求并实现对所学内容理解的目标[3]。
传统的课程设计是根据教材内容和大纲的,导致在教学设计过程中很容易会忽略以学生为主体的重要性。为了提升教学设计的有效性,采用与传统设计方式相反的做法,在教学设计中,教师首先要明确教学目标,然后依据目标设计教学活动。逆向设计具有非常明确的目标指向,能更加有效地推进大学实现有效教学,培养学生的创新思维和学习主动性。逆向课程原理的一个显著特征就是强调评价, 评价优先于课程组织和实施,而教学内容和方法的安排处于次要的地位,是实现教学目标的策略,其最终目标是如何行之有效的使教学达到最有效的状态。
2.2 逆向课程设计模式的应用
逆向教学的课程设计由以下三个阶段组成:先确定学习的预期结果;再明确预期结果达到的证据;最后设计教学活动以发现证据[4]。其应用在软件工程课程设计中,有以下基本流程。
⑴ 确定课程目标
软件工程课程必须为学生将来走向工作岗位提供系统性、实践性的指导,课程目标的设定不应局限于教材内容上,而应该把关注点放在三个对接上:专业与产业企业岗位对接、课程内容与职业标准对接、教学过程与工作过程对接[5]。基于职业岗位能力的教学目标的确定先要深入到企业用人部门和岗位中做调研,分析和总结出典型的岗位技能要求,结合教材内容,最终确定课程教学目标,即在学习过程中了解和掌握相关职业岗位所必须的软件方法、技术和思想,最终获取可从事该职业岗位的基础技能和可持续发展能力。表1是根据目前软件行业的岗位需求做调研和分析后归纳出的岗位划分和技能需求,并罗列了与此对应的软件工程课程中的知识点。
为达到培养适合企业岗位需求的应用型人才的目标,就必须根据职业岗位的技能要求去设计评价体系和教学内容。
⑵ 制定评价标准
當明确了教学目标后,并不是马上开展教学过程和内容的设计,而是先明确教学的评价标准,有了明确的评价标准,才开展教学活动和内容的设计。评价标准围绕教学目标展开,基于职业岗位所需的关键技能点进行设计,对每个知识域的掌握度都有明确的输出物和评价要求,下面罗列主要知识领域的技能评价标准。
软件需求:撰写软件需求说明书、制作软件原型作品、使用软件需求管理软件;
软件设计:合格的软件作品、撰写软件设计说明书、提供数据库模型图、使用软件版本管理软件;
软件测试:设计测试用例、使用测试工具、使用测试管理软件、撰写软件使用说明书;
软件维护:撰写维护记录、合格的升级版软件作品;
软件配置管理:掌握软件的安装、配置和测试;
软件工程管理:使用项目管理软件、撰写项目计划说明书、管理和推进项目小组的开发活动。
⑶ 制定教学计划,确定教学内容。
单从教学内容看,表1提供的7种职业岗位所需的技能几乎都涵盖了软件工程教材的所有重点章节和知识点,但反过来看,教材的知识点并不能涵盖掌握这些岗位技能所需的最新方法、工具和思想,因此需要对授课内容进行更新和补充。软件工程的理论教学采用面向全生命周期软件开发过程的教学流程,可以在每个阶段增加必要的新方法和工具,如图1所示。
3 融入MOOC的教学方法
MOOC是 Massive Open Online Course的缩写,意即“大规模网络开放课程”,采用5~15分钟短视频课程模式,将课程内容根据知识点分解,拥有在线学习有效性、学伴交互协作、评价多样化等核心学习机制。鉴于软件工程理论知识的广泛性和抽象性,需要进一步简化教学环节和教学内容,把关乎学生终身受用的“核心知识”讲透即可,课堂上应更多地启发学生去思考去辩证,而MOOC正好顺应了这种教学本质,因此在软件工程的理论教学中融入了MOOC教学方法。
采用MOOC的授课方式不能完全照搬国外模式,虽然学生可以通过MOOC平台自己选择学习内容,但地方应用型高校学生的基础相对薄弱,学习主动性和积极性不足表现较为突出,如果完全依靠学生的自我管理,就会导致MOOC课程的完课率很低。因此需要将线上MOOC与线下课堂授课融合在一起,改造软件工程理论授课方式。具体流程是:提前布置学生课后利用MOOC平台学习下一次课的知识点,知识点不需要涵盖所有的知识域,指定最核心的1~2个知识点即可。同时根据核心知识点布置下一次课需要解决的问题,这个环节需要学生自行查阅资料,提前做好准备。在每次上课的三个课时中,第一课时用于讲解本次课程的章节内容,由于核心知识点已经提前布置学生利用MOOC平台学习,学生能更快的理解和接受,因此课堂上可以有更多的对新技术、新方法、新思想的介绍和学习。第二课时安排课堂讨论,围绕事先布置好的问题进行分组讨论和交流,过程中重视学生的辩证思想,给予他们最大程度的鼓励和推进。学生也可将他们在课程中遇到的问题抛出来讨论,老师给予适当的指引和解答。第三课时主要用于作业、测试和项目检查,确保每堂课都有明确的输入和输出。
相对于以教师面授为特征的传统课程,该课程修改后的教学设计更突出以学习为中心和个别化学习的教学理念,不仅让学生掌握了必要的知识技能,更拓宽了他们的专业视野,帮助他们成长为更好的自主学习者。
4 应用成效
以2014级计算机专业作为实验组,采用融合MOOC的逆向课程设计模式进行教学,2013级计算机专业作为对照组,采用传统的教学模式进行教学。抽样人数时,去掉高考成绩最差和最优的4位同学,保持学生平均水平一致。授课教师为同一教师,笔试试卷题型和难易度相当,软件作品的分数经过系数转换保持复杂度和难易度相当。在学时、上课环境、问卷调查内容等方面均保持一致,保证了实验结果的有效性。
从表3可以看出,实验组的成绩无论是理论成绩还是实践成绩,均比对照组的要高,而且学生满意度也更高。在问卷调查中,2013级学生提出的建议中,占比最高的是建议老师减少抽象理论的讲解,增加实际案例的介绍和讨论,而2014级学生提出的建议占比最高的是希望实践项目中能得到老师更多的指导,这说明2014级学生对实践项目有了更多的学习欲望。同时2014级学生明确表示对未来自己的职业方向有了更深的认识,希望能通过自己的努力去提升就业能力。由此可见融合MOOC的逆向课程设计模式使得学生很明确的知道为何学习软件工程,要掌握何种技能,可以使用哪些方法和工具,激发了学生对软件开发的学习兴趣,变被动为主动,开始认真思考自己的职业方向并为之努力。
5 结束语
软件工程课程的特点决定了这门课程需要在教学模式上做更多的改革和创新,采用逆向课程设计模式可以使得教学内容和手段成为发现证据的过程,而评价成为教学活动设计的前提和基础,教学和评价两者形成了“教学-评价-教学”的螺旋式上升环,从而使得课程目标不断接近达成。在理论教学方法上采用线上MOOC授课和线下面授方式的混合式教学方式,提升了教学效率和学生主观能动性。实践证明,在软件工程课程中采用融合MOOC的逆向课程设计模式取得了良好的教学效果,有效解决了以往软件工程教学中存在的问题。在软件工程实践环节,如何合理引入时下互联网企业最为常用的敏捷开发模式,如何使实践与理论教学环节同步,是下一步需要研究和解决的问题。
参考文献(References):
[1] 沈备军.解读软件工程知识体系SWEBOK V3[J].计算机教育,2014.7:1-2
[2] 曾明星,周清平,王晓波.软件工程专业“项目化”教学实施体系的构建[J].实验室研究与探索,2013.32(5):158-163
[3] 杨文丽,高凛.逆向教学:目标、逻辑及实现可能——基于大学有效教学视角的审视[J].黑龙江高教研究,2015.2:21-24
[4] 叶海龙.逆向教学设计简论[J].当代教育科学,2011.4:23-26
[5] 金玉书.实现四个“对接”服务经济社会[J].中国职业技术教育,2010.23:90-91,93