分步迭代教学法在Java程序设计课程应用的研究与探索
2020-06-04寿周翔胡则辉
寿周翔 胡则辉
摘 要: 为加强学生Java应用能力的培养,分析了Java程序设计课程的教学现状,结合课程的特点,提出以校企共建课程为依托的“项目引领、任务驱动、工学结合”分步迭代教学法,并从教学设计、课堂教学组织实施、教学效果评价三方面进行了论述。教学实践表明,分步迭代教学法的引入有效地促进了学生项目开发能力的培养,提高了该课程的教学水平与教学质量。
关键词: 分步迭代; Java程序设计; 校企共建; 教学设计
Abstract: In order to strengthen the cultivation of students' Java application ability, this paper analyzes the current teaching situation of Java programming course, and combining the characteristics of the course, puts forward the step-by-step iterative teaching method of "project leading, task driving, combination of work and learning" based on the course jointly built by school and enterprise. And the teaching design, classroom teaching organization and implementation, and teaching effect evaluation are discussed as well. Teaching practice shows that the introduction of step-by-step iterative teaching method effectively promotes the cultivation of students' project development ability, and improves the teaching level and teaching quality of the course.
Key words: step by step iteration; Java programming; school enterprise co construction; teaching design
0 引言
目前Java程序设计课程的教学,一般是基于课程知识结构体系,教师遵循其内蕴的逻辑,依次讲授该课程知识点,虽然大多数知识点辅以相应的例子讲解,但从学生的角度来看,由于这些例子与具体的工程应用脱钩,缺乏整体性和实战性。这种教学方式主要存在的问题[1]有以下几方面。
⑴ 教师单方面的知识输出,学生只是被动地接受。教师与学生之间缺少一种媒介来推动双向交流,难以激发学生的学习兴趣,导致学生积极性、主动性不足,一旦学生在学习过程中受挫,就容易产生畏难情绪,造成厌学,甚至弃学。
⑵ 学生在学习过程中,看不到当前所学知识的用处,在学习中分不清重点,往往“胡子眉毛一把抓”,过分拘泥于一些语法细节,甚至“捡了芝麻,丢了西瓜”。学生学得很累,但最后整个课程教学效果很不理想。
⑶ 学生学完该课程后,由于缺少实际项目训练这一过程,对整体知识结构难以把握,所学知识是零碎的、孤立的,缺乏对一门课程的整体把握能力,难以在实际项目开发中灵活应用。
⑷ 采用知识结构驱动的教学法,严格按照教科书的编排顺序组织教学,虽然注重了教學的系统性和完整性,但培养出来的学生在理论深度上会显不足,同时在实践动手能力上无法达到企业的岗位要求,造成应届毕业生就业困难。
基于上述情况分析,为了实现Java程序设计课程教学目标,培养学生软件工程师职业岗位的能力,我们提出基于校企共建课程,“项目引领、任务驱动、工学结合”的分步迭代教学法,目的是要寻求解决上述问题的方法和途径,以期根本性地提升Java程序设计课程的教学质量,增强学生运用Java编程语言进行实际工程项目的开发能力。
1 分步迭代教学法的基本思想
迭代法是用计算机解决问题的一种基本方法,其基本思想是用前一次的结果作为下一次迭代的初始值,递推出新的结果,不断重复这一过程,从而逼近正确的结果。迭代法所内蕴的反馈性、修正性、进步性正好符合教学过程的特点。我们提出的分步迭代教学法是指基于校企共建课程,通过“项目引领、任务驱动、工学结合”的方式来开展课程教学。每一个阶段都是对学生编程开发能力的不断迭代,最终实现培养学生具有较强工程项目开发能力的目标。其中项目引领是指教师以一个完整的项目为载体,对遴选的教学内容进行整合、序化,通过示范来引导学生掌握基础知识,构筑起课程知识的支架,然后运用知识迁移、协作讨论等方式完成对知识在感觉层上的意义构建。任务驱动是以项目任务为导向,以知识点为纽带,将教学内容设计成一个或多个具体的、可操作性强的任务,并将任务划分成多个子模块,构建模块化课程结构。学生紧密围绕任务活动,在教师的指导下,通过自主学习、合作探究,实现知识在感知层上的构建。工学结合是以IT职业岗位活动为导向,学生参与到实际工程项目开发中去,教、学、做有机结合,从而实现知识在感悟层上的构建[2]。
在分步迭代教学法中,项目、任务的设计在整个教学实施中起到非常关键的作用。所选择的项目案例作为课程知识的载体应具有一定的典型示范作用,既要覆盖Java程序设计课程主要的教学内容,又要让学生对项目的需求容易理解和接受,并具备良好的扩展性,方便学生以此项目为支架,为后续工程项目开发作为参照。所以需要通过校企共建课程,邀请IT企业资深工程师、项目经理和高校教师合作,对企业的实际项目进行精心提练、适度分割、与教学知识点有机结合,真正起到让学生通过项目开发对课程知识“感觉、感知、感悟”。
2 教学设计
按照软件工程的思想以企业软件开发项目为载体贯穿整个课程教学,以企业项目的实现为目标,以项目的开发过程为脉络安排教学步骤,通过项目引领→任务驱动→工学结合的分步迭代训练方式来组织教学过程。设置可迁移、可替代、可操作的学习情境,训练学生的项目开发能力,提高学生沟通能力和团队协作精神。
2.1 校企共建课程
通过与本专业有长期合作关系的IT企业资深项目经理、软件工程师合作,首先确定计算机科学与技术专业面向的职业岗位群,梳理出各岗位对应要求完成的工作任务以及应具备的专项能力。在此基础上,通过分解专项能力确定教学目标,组织教学内容,结合分步迭代教学法,提高教学内容的应用性、以及与职业岗位能力培养的匹配性。
⑴ 分解专项能力
根据对IT职业岗位群进行分析,分解出软件开发的专项能力以及应达到的标准,描述出每一专项能力所要求知识结构和素质结构,以及相应的支撑课程。
⑵ 确定教学内容
课程团队成员通过集体备课形式,讨论将专项职业能力标准转化为教学目标,并根据专项能力所要求的知识结构划分教学模块。依照专项能力目标要求,将课程知识进行重构、组合、序化,并结合工程项目来设计课程子模块,确定各个子模块的阶段性目标、教案设计、教学组织等。通过IT企业资深工程师、项目经理和高校教师合作,对企业的实际项目进行精心提练、适度分割,每个模块对应的知识点再分解成若干个教学单元,将书本上孤立知识点通过项目进行串联,使教学目标和内容融入到实际项目的开发和实践中,与教学知识点有机结合,真正起到让学生对项目开发“感觉、感知、感悟”。我们选用了“教师业绩管理系统”项目作为课内教学案例,设计了“8个教学模块和1個综合模块”,每一个教学模块围绕一个主题,将项目分解成若干模块作为教学内容的案例,覆盖了教学大纲所有的内容,见表1。
2.2 课堂教学组织实施
在“项目引领、任务驱动、工学结合”三位一体教学模式中,学生是主体,教师是学习过程的指导者和组织者,教师根据IT岗位工作任务提供相应的学习资源,编制模块化课程的学习指南;按照“教、学、做”一体化原则,强化学生能力训练,采取项目引领→任务驱动→工学结合分步迭代训练方式来组织教学过程。
⑴ 在项目引领阶段,教师通过项目案例进行教学示范与演示,讲解相应的知识点,帮助学生建立起知识支架以及基本的项目开发能力,通过这个阶段的学习,教师帮学生“扶上马”,使学生初步对课程知识和项目开发过程有了一定的感觉;
⑵ 在任务驱动阶段,教师通过为学生分析项目案例功能需求及关键问题,指出所需要用到的知识点。在项目任务开发实践教学环节,考虑到学生个体之间存在的差异性,将不同层次的学生组成到同一个项目小组,采用协作学习的方式来进行组织教学实施。每组设一名组长,各组在项目组长的协调下共同去完成案例任务,针对任务开展研究讨论、分工协作,提高团队合作能力。在学生开发实践过程中,教师要特别注意发挥协助和引导作用,为学生再“送一程”。通过这个阶段的迭代,学生对课程知识进一步理解和巩固,解决实际问题的能力进一步提升,对课程知识及项目开发达到了感知的程度。
⑶ 在工学结合阶段,学生参与到合作企业的实际工程项目开发中去,与企业员工一同完成系统总体结构和逻辑设计、代码编写、系统测试以及文档整理等工作。对于开发过程中需要用到的知识,学生通过自主学习和知识迁移,实现对课程知识理解的升华与灵活运用[3]。教师在这一环节,主要起到监督指导作用,给学生“压担子”,并会同企业对学生进行学习效果的评价。通过这个阶段的迭代,学生对知识与工程项目开发的理解真正达到了感悟意义上的构建。
3 教学效果评价
本课程在考核过程中采用基于过程、以成效为导向的教学质量评价方法[4],即将传统的考试机制与成效评价有机结合,综合评定教学效果。学生成绩由理论笔试成绩和成效评价成绩二部分组成,理论笔试检测学生对课程基础概念、理论知识的掌握情况,成绩占整个评价结果的45%;而成效评价则贯穿整个学习过程,重点考核的是学生的学习态度、团队协作精神、项目开发能力以及创新能力,其成绩占整个评价结果的55%。由于成效评价需要结合项目任务开发的实践过程,所以把成效评价分为过程评价和成果评价两个方面[5]。
过程评价是根据学生在项目开发过程中的表现情况,包括到课率、回答问题、参与讨论发言等,评定结果反映的是该学生平时的学习态度,可占总成绩的15%。
成果评价则是在项目完成后根据学生完成项目的作品、报告等多个方面来评价学生在项目实践过程中的开发能力、学习能力、创新能力、组织协作能力等综合能力。由于成果评价相对主观性比较强,为了更加客观公正地进行成果评价,应引入第三方合作企业参与到这一环节。这部分评价的是学生应用知识的能力,重点考察的是学生的综合素质,可占总成绩的30%。这两部分成绩的合计基本反映出了学生对这门课程的综合运用情况。
4 结束语
我们在Java程序设计课程教学中引入分步迭代教学法,经过三轮的教学实践,学生的学习目标更明确,学习主动性增强,对于课程知识的系统性应用能力以及项目开发能力均有了大幅度的提升,教师的主导作用和学生主体地位都得以体现。实践证明,在程序设计类课程中应用分步迭代教学法是可行的。但在分步迭代教学法组织和实施过程中,对教师的教学技能也是一个大的挑战,需要运用新的教学策略帮助学生完成知识构建,教师需要投入更多的精力和时间来准备课前课中的教学设计。另外,分步迭代教学法实施过程中也要求学生有较高的自我约束能力及沟通表达能力,这些问题需要在今后的教学中不断反思与改进[6]。
参考文献(References):
[1] 周运.Java EE框架课程教学方法改革与实践[J].高师理科学刊,2012.2(32)99-102
[2] 钟原,刘忠慧.基于CDIO以面向对象程序设计思维为导向的教学研究与实践[J].软件工程,2019.22(11):45-47
[3] 谢凯,李靓,冯文祥.项目驱动模式下的面向对象程序设计教学改革研究[J].电脑知识与技术,2019.15(15):208-209
[4] 黄钰,王建勇.JAVA语言程序设计的新三段式教学[J].计算机教育,2011.7(14)55-58
[5] 谭火彬,林广艳.培养软件工程思想的面向对象程序设计课程改革与实践[J].计算机教育,2018.8:53-58
[6] 寿周翔,王李冬,李文娟,胡克用.翻转课堂教学模式在Java程序设计课中的应用研究[J].计算机时代,2016.10(292):83-86