迭代式教学法在高职计算机类项目化课程中的实践研究
2021-07-20陈涵深
陈涵深
摘 要: 针对传统项目化教学法实施过程中学生积极性低、学习效果差和教学管理难等问题,对迭代式教学法在高职计算机类项目化课程中的实践展开研究,并以“JavaScript程序设计”课程为例阐述迭代式教学法在计算机类项目化课程中的具体应用。教学实践表明,该方法能激发学生的热情和兴趣,发挥学生的创新能力,提高学生的实践设计水平。
关键词: 教学改革; 迭代式教学; 项目化课程; JavaScript程序设计
中图分类号:G652 文献标识码:A 文章编号:1006-8228(2020)06-80-04
Abstract: Aiming at the problems existed in the implementation of traditional project-based teaching method that students have low enthusiasm in learning, learning effect is poor and the management is difficult, this paper studies the practice of iterative teaching method in computer project-based courses of higher vocational education, and taking the course of "JavaScript Programming" as an example, expounds the specific application of iterative teaching method in computer project-based courses. The teaching practice shows that this method can stimulate the enthusiasm and interest of students, give full play to their innovation ability and improve their practical design level.
Key words: teaching reform; iterative teaching; project-based courses; JavaScript programming
0 引言
由于高职计算机类专业课程有着很强的实践性,传统的项目化教学法在众多的教学理念和教学模式中凸现,虽然已经具备成熟的理论研究与广泛的应用和发展,但仍不能满足当前高职计算机类专业以产业需求为导向的课程教学要求。随着互联网时代的高速发展,信息技术正在改变着人们的生活方式,企业对信息软件类人才的需求越来越多,技能要求也水涨船高,如何满足高职计算机类人才建设的发展需求是高职计算机教育发展面临的重要问题。迭代式开发方法是目前互联网企业推崇的高效的开发模式,学生如果能够在大学期间就具备初步的项目经验,无疑为他们今后走上工作岗位提供很大的优势。目前,国家教育部门在大力推广1+X证书制度,计算机类专业对接的证书由工信部或知名企业(华为,阿里巴巴等)负责颁发,考证难度较大,因而对学生的知识掌握程度提出了更高的要求。作为互联网软件开发方式的创新课堂教学法,迭代式教学法能够在课堂教学中营造出真实软件开发氛围,引导学生采用多次迭代的开发方法完成来自企业的真实项目,有望能循序渐进提高学生的专业理论水平和实践能力。
目前国外关于迭代式教学研究的工作开展较为有限,但成效突出。Jiandong H等人[1]提出以案例为基础的迭代式教学应用于数据库课程,通过“认知-理论-实现”三阶段进化形式,增强和训练学生的理论认知和实践设计能力,明显提高了教学效果;Silveira PED等[2]探讨了在计算机编程教学中实施迭代和递归技术来构建教学程序,结果强化了学生编程概念的理解,促进交互式学习体验,提高学习成绩和满意度。国内院校对迭代式教学的研究已有开展:卢华灯等[3]探讨了理实一体化类课程中,迭代式项目驱动教学的过程;此外,研究者亦在软件工程[4],ASP.NET[5]等课程中采用迭代式教学法来提高学生的学习兴趣、培养学生的职业技能,并取得了较好的教学效果。本文通过参考这些资料,根据当前教学工作特点,结合自身的企业软件开发经验,展开迭代式教学法的研究和实践。
1 高职软件课程教学现状与存在的问题
软件项目化教学一般采用的是瀑布模型,即將软件项目教学过程分为:可行性分析、需求分析、软件设计、编码、测试、运行维护等几个阶段,强调完成上一个活动后才可进入下一个活动,依此流程,由教师进行排课和教学,学生逐步完成项目开发任务。然而,这种传统的软件项目化教学方法在面对高职学生教学过程可能存在以下几个问题:①当将整个项目要求告知学生时,学生感觉项目复杂、无从下手,继而产生畏惧心理,导致不愿尝试或半途而废;②项目教学前期主要是枯燥乏味的文档(需求、设计等)编写工作,容易在项目开端就出现学生学习兴趣不高、积极性低下的情况;③整个项目周期长,教师管理项目进度难,往往有的学生到课程结束时,仍未完成整个项目,无法完全掌握各项技能并体验项目全过程;④项目教学过程中,学生易遗忘,学了后面,忘记前面;⑤毕业生工作后发现学校所学和企业所做的项目开发过程差别较大,不能顺利完成社会角色的有效转变。
2 迭代式教学法的设计思路
迭代式开发有别于传统的瀑布式开发,它将一个大项目分解为若干个版本的小项目,每个小项目开发过程都包含不同比例的需求分析、设计、编码、测试等工作,迭代规模较小,却可以有针对性地处理项目中的问题。在由简到繁的迭代开发中,软件由最初的雏形经过一系列的迭代演化,由部分到整体、由弱到强,最终形成功能强大的完整的系统。
项目的教学内容被拆分到每一次迭代中,在不断巩固所学到的理论和技能的过程中,根据项目的演化逐步地增加新的知识和技巧,课程的教学目标在迭代中逐步实现,具体教学过程见图1。学生在教学初期即通过简单项目开发工作的完成获得成就感,这样在下一个迭代开发课堂中面临即将实现的新功能,能激发学生的学习热情和创新意识,从而实现由简到繁、由浅入深的渐进教学,学生能够充分熟悉所学内容,又能进一步加深所学知识的理解和掌握,提高自身的发现问题和解决问题的能力。每个版本都是采用启发式、引导式教学方法对项目进行深入浅出的剖析,提出最基本的解决方案,然后由学生自主练习和相互讨论,并提出最佳解决方案。每个版本发布的是一个经学生测试,教师验证的可用软件,通过多次版本迭代后完成整个课程的教学工作。
3 以“JavaScript程序设计”课程为例的迭代式教学法
JavaScript是高职计算机专业的一门核心课程,也是目前最常用的一种程序设计语言,本文以该课程为案例讲解迭代式教学方法在课程教学中的具体实施过程。
3.1 课程的整体设计
课程的教学内容和目标与原有保持不变,对教学进度和授课安排进行重新设计,同时选用软件项目需要具备一定的可分解性和可迭代性。教学中笔者以一个真实的网页摇号器项目作为“JavaScript程序设计”课程的教学项目,按照由浅入深、现学现用的原则,将教学的各项理论知识和实践技能分解到每一个具体明确的迭代版本中,让学生在规定的时间内依次完成这些任务。具体来说,笔者将该项目分解成五个迭代版本,按照96学时分配,详见表1。项目第一版称为初级版,16学时,主要实现摇号器的基本功能;项目第二版本为基础版,16学时,完成摇号器常用功能的开发工作;项目第三版和第四版分别为美化版和完善版,主要对界面的美观度和功能做升级迭代,两者各安排20学时;项目第五版本是最终版,为20学时,主要添加摇号器的增值功能。最后是项目总结,安排4个学时,引入联想集团的“复盘文化”[6],即将整个项目开发过程做一个具体而全面的剖析,从而总结有利于今后工作的经验教训,归纳处理问题的方法,获取新的知识和技能。
课程考核评价也针对迭代教学法的特点进行重新设计。每个版本作为一个完整独立的阶段,学生成绩由每个迭代版本考核分累计组成。考虑学生适应新教学方法需要一个过程,第一版本的分值比例设定相对较低,为10%,其他版本分值比例均为20%。每个阶段实施“过程考核与结果并举、教师主导与学生主体并行”的综合考核评价方法,即每个迭代阶段的成绩=平时考核20%+过程性考核30%+实践成果考核50%。最后,每个迭代版本考核成绩累加之和作为学生该课程的期末成绩录入。
3.2 每个版本的教学设计
依据教育家陶行知所提出“做中学、学中做”的教育思想,将每个版本设计成“教、学、做、演”递进式的学习过程,通过反复学习实现知识的理解、记忆和掌握,详见图2。首先在“教”过程中,教师完成知识点、讲义、作业的整理及编写,传授每个版本的专业理论知识,学生则通过听讲、问答的方式了解知识技能点,掌握其基本的使用方法;同时教师在网上学习平台上为学生提供课程相关网址和视频,使其通过网上资料和视频的查阅,确保知识点的掌握。在“学”过程中,通过简单的预研项目实验练习,完成从“教”到“学”的过渡,使学生掌握知识技能在单个程序案例中的简单应用,从而促进知识实质的领会,强化其“学”的能力,培养实际软件项目的开发基础。在“做”的阶段,提供当前版本的开发素材,学生在原有的预研项目基础上,通过修改和移植,把所学的知识和技能成功的應用到具体项目中,使学生完全掌握在具体项目中合理、快速地使用课程知识技能的能力。最后阶段是“演”,通过学生作品展示和讲解,发挥其主观能动性,通过老师“点评”指出学生作品的设计优缺点,使学生更加熟悉软件项目开发中的代码规范和设计思想。
4 迭代式教学法的教学实践效果分析
在教学实践过程中作者发现,教师是迭代式教学法过程中的引领者和驱动者,不仅能够传授学生理论知识和操作技能,更重要的是提高学生解决问题的能力,无形中培养学生专业实践能力。从“教”和“学”两个角度来评价,教师和学生都是受益者。
⑴ “教”角度
首先,教师更易实时了解学生对知识的理解和掌握程度。每个迭代阶段都要求学生演示和提交当前版本的所有成果,并进行点评和打分,可及时掌握学生的学习状况,通过整理学生的常见问题,在下个迭代版本中对教学进度和方法做适当的改进。再者,迭代式项目开发过程给学生提供一个知识融合的平台,消除学生知识点孤立的情况,通过反复的迭代“讲解+应用”这一过程,使学生的知识学习和知识应用更加紧密地结合。
⑵ “学”角度
统计和对比两届四个班级学生的授课情况,发现学生不管在学习的积极性还是知识掌握程度都较之前有所提高。直观地体现在以下两点:①学生在整个项目完成度上由传统项目化教学法的86%提升到现在的97%;②学期间和学期末的师生沟通平台显示,学生对所采取的迭代式教学课程形式满意度高,“学评教”分值提升了5个点。
5 结束语
本文结合高职院校计算机专业学生特点,根据学院学科发展的要求和学生技能职业化的准则,在程序设计类课程中引入了迭代式教学法,并以“JavaScript程序设计”课程为例阐述了具体的教学设计和过程。实践表明,该方法能激发学生的热情和兴趣,发挥学生的创新能力,提高学生的实践设计水平。笔者认为迭代式教学法也适合运用到其他计算机类专业课程中,针对课程要求和特点,在实践过程中灵活地调整,才能不断提高教学质量和效果。
参考文献(References):
[1] Jiandong H, Jinyu S, Suojuan Z. Study on the iterative teaching method in database curriculum[C].International Conferenceon Information Technology in Medicine and Education (ITME). IEEE Computer Society, Hangzhou:IEEE,2018:615-617
[2] Silveira PED, Rui GN. How to achieve better performancein teaching computer programming: Cases of iterative and recursive programming[C]. AIP Conference Proceedings. AIP Publishing LLC, 2019.2116(1):410003
[3] 卢华灯,李婷妤.基于Gitee的理实一体化迭代式项目驱动教学法应用研究[J].计算机教育,2019.7:117-120
[4] 朱忠旭,黄兵.基于案例项目的高职“软件工程”迭代式教学法研究[J].安庆师范学院学报(自然科学版),2014.20:141-144
[5] 戴菲.基于迭代式项目教学法构建ASP.NET课程教学内容的研究[J].福建电脑,2014.30(06):152-153
[6] 柳传志.复盘:最好的学习方式[J].新远见,2013.7:59-61