基于CDIO的程序设计类课程教学研究与实践

2022-09-12 版权声明 我要投稿

C++程序设计、JAVA程序设计等程序设计类课程,是所有计算机类专业的主要专业基础课程,是其他专业课程和延展课程的最重要先修课程[1]。程序设计作为计算机专业的知识领域的核心内容之一,其课程承载为程序设计类课程。这类课程的教学模式通常更注重程序设计语言中的语法、基本语句和编程时的细节应用和分析,仍然是以教师为中心,即学生的“学”围绕着教师的“教”转的教学模式;很多教师仍然是填鸭式教学,学生只是被动地接受教师传授的知识;教学方法不够灵活,学生参与度低。这样的教学模式内容枯燥,学生失去对成为软件设计师的期望、学习兴趣逐渐丧失,最后没能学会应该掌握的知识和技术,导致评价课程时反映课程难学、学不会。在这种传统的教学模式中,学生对于程序设计的编程能力得不到充分锻炼,缺乏分析解决整体项目的工程能力,无法适应行业、企业的需求[2]。CDIO工程教育理念,是通过构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate),以产品的全生命周期为载体,即从产品研发到产品的运行、维护和废弃,建立一体化的相互支撑和有机联系的课程体系,让学生以主动的、实践的方式学习工程[3]。该理念强调“以学生学习为中心”和理论与实践的结合,以及对学生主动学习和创新能力的培养,契合程序设计类课程教学要求。

一、程序设计类课程教学存在问题

在当前的程序设计类课程的课堂教学中,由于计算机编程语言与学生平时交流沟通使用的自然语言,不论是思维方式还是表达上都有比较大的区别,特别是计算机编程语言具有严密的逻辑和独特的语法等特征,导致一部分学生很难理解和接受计算机编程语言,这直接影响到学生的程序设计能力。

(1)学生的实践锻炼不足,逐渐丧失学习兴趣。程序设计类课程实践性、应用性强,学生在课堂中学习到的理论知识基本是为学生的编程实践操作提供理论基础的,学校安排的课程上机实践是学生锻炼应用知识和编程能力的主要方式。在上机实践中学生接受到的实践任务是教师课堂上下达的,学生按照教师发布的任务,逐步完成一道道练习题,实践过程缺乏连贯性,甚至有些同学虽然顺利完成了作业,但却不知道这些操作有什么实际用处。学生为了成绩而学习,却不知道学到的技能如何应用,甚至固定了学了也没用的认知,导致大量学生失去对这门学科的兴趣。

(2)学生层次参差不齐,其个性化学习需求无法满足。在程序设计类课程的教学安排上,大多还是传统的以班级为单位开展教学,即一位教师对全班几十名学生实施教学。不同学生的基础不同,接受能力里存在差异,他们对课程讲授内容和进度的诉求状况也会不同。学习程度较差、接受知识相对较慢的同学需要巩固已经学习的知识,才能接受新知识和技能,并顺利进行下一阶段的学习;而接受能力强、学习程度好的同学则希望能够在课堂上学习更多新的知识和技能,使其能力得到更大的提升,一般的教学内容和进度无法满足这些同学的学习诉求。这些情况的客观存在,因材施教对于教师来说就是一句空话,更谈不上满足学生的个性化学习需求。

(3)上机实践学生各自为战,程序设计开发过程中遇到的问题很难及时得到解答。程序设计类课程都是实践性、应用性很强的课程,需要大量的时间进行练习和上机实践。学生在设计程序的过程中经常出现各种类型的错误,都需要对各自编写的代码进行反复调试修改,每位同学由于自学能力、学习水平等存在差异,各自设计、调试程序的过程中出现的错误也会各种各样,教师很难进行统一指导。遇到的问题迟迟无法解决,会导致学生逐渐失去学习程序设计的信心。

(4)评价内容单一、标准落后,标价体系不够科学[4]。在程序设计类课程施教过程中,现行的考核评价内容,大多还是以期中、期末等纸笔考试为主,虽然也有平时的考勤、作业、实验报告等内容,但这些内容在整体成绩构成中所占比例较少。且不能体现学生的情感因素、学习态度、团队协作能力、创新精神等非智力因素的锻炼和提高,评价缺乏科学性。这样的评价内容、方式,强调的还是终极评价的结果,无法体现对学生个体发展的全面、科学的评价,而且对学生创新能力的发展变化也无法体现,不能有效指导整个教学过程。

二、基于CDIO的程序设计类课程模式设计

(一)制定符合CDIO工程理念课程大纲

(1)明确教学目标。CDIO工程教育模式紧紧围绕着“培养提高学生实践能力和综合素质”这一中心目标,在程序设计类课程中运用CDIO工程教育模式实施教学,学生除了能学习并掌握书本上的基础知识和技能外,更多的是对于其计算思维能力、应用实践能力和职业素养等方面的提升。

(2)确定学生能力定位与实现方法。CDIO注重理论与实践操作的相结合,对于课程来说强调三个层面能力的培养:课程基础知识、个人能力素质,以及团队合作与沟通能力。具体内容如图1所示。

(二)以实际软件工程项目生命周期组织教学过程

课程的教学组织上以CDIO工程教育模式为指导,采取案例驱动、任务驱动、项目驱动为主的教学模式,结合应用程序开发生命周期各阶段的主要特征[5],对课程教学内容和施教过程进行重构,构建以学生学习为中心的学习模型。

(1)在设计学习模型时将学习任务分成两类:知识点任务、工程项目任务。按照课程知识点设计知识点任务,一个知识点任务对应一个新的知识点,教师可在MOOC平台提前用MOOC或SPOC的方式发布给学生,也可以通过即时通讯工具群发给学生,学生根据任务在课前自主学习,并完成随任务点发布的练习。这类任务主要是帮助学生理解课程基础知识。工程项目任务由教师根据学生已学习知识和实际工程实践进行精心设计,设计时结合企业职业岗位工作情景,针对不同层次学生适当考虑项目任务规模和难度。每个工程项目任务由多个知识点综合而来,复杂度相对较高,旨在提高学生的软件系统分析、软件开发等工程实践能力。

(2)每个任务的实施分成四个阶段。即结合应用程序开发全生命周期各阶段的主要特征,根据CDIO模式中的四个阶段,教师首先引导学生对工程项目任务进行分解,指导学生按照“需求分析、功能设计、编程实现、测试与运行”四个阶段以小组分工协作的方式完成工程项目任务开发,让学生在项目开发实践中锤炼应用程序开发的职业能力。

(三)教学实施采用学生深度参与的教学方法

程序设计类课程实践性、应用型特别强,在教学方法的选取上,要求选取学生能够深度参与的教学方法,例如案例教学法、项目驱动法、讨论法等,这样可以更好地调动学生的积极性,也能体现以学生为中心的教学理念。

(1)案例教学法。该方法是以实际程序设计、开发案例为基础的参与式教学法,与通常的教学方法区别是教师不但承担传授知识的责任,同时也是设计者,学生学习、实践过程中还要扮演激励者的角色,鼓励学生积极参与讨论。

(2)项目驱动法。此方法根据本行业的企业技术应用实际需求,以工程项目开发驱动,在理论知识和项目用例讲解后,学生组建项目团队,按“分析、设计、实现、运行”四个阶段完成工程项目任务,以达到预期教学效果。该教学法的优点是学生在实践中消化吸收所学知识,在解决项目开发的实际问题中锻炼所学技术,在提高其职业素质的同时,培养其团队意识和协作精神,最终达到熟练应用的学习目标。

(3)讨论法。它是指教师指定问题或学生在实践中发现问题,学生在教师的引导下为解决该问题而进行思考、研讨,获取解决问题的途径、方法,或分辨优劣、真伪等,是学生在思考和研讨中获取新知识的教学方法。此方法的优点是能更好地引导学生主动思考、学习,调动其主观能动性,便于培养学生的独立思考、口头表述和综合运用知识的能力。

三、构建过程评价与学习效果反馈机制

参与式、实践类课程的性质和教学目标确定了,学生的学业考核、评价意图都应以改进学习效果、激发兴趣、满足个性学习为目标。而程序设计类课程因学生参与度高、实践性强,也需注重过程性考核评价而不是终结性评价,即“过程+终结”。期末的终结考核参考计算机等级考试的考核要求,采用技能考试的方式。同时可探索在考核当中增加项目程序评审和答辩的模块,以便对学生的综合知识运用能力和职业素养进行更准确的考核。

课程的评价考核确立重过程的导向,在课程教学实施中按课程进度和学习任务完成情况适时分段的进行评价,并将评价结果及时向学生反馈,帮助学生及时调整学习方法、进度等,同时也可以起到激励的作用。课程的综合总评时间应适当提前,在学期初安排教学进度计划时可留出一周或少量课时,作为课程总评后的效果反馈,教师结合对学生的学业评价结果为学生发展提出下一步的指导、建议,指导学生制定学习改进计划,以实现课程教学效果的长效化[6]。

四、结束语

高等学校人才培养模式的改革在充分考虑学情、校情的同时需要与时俱进。对于程序设计类课程,建议确立以程序设计开发为轴,课程基础理论知识为辅,注重技能训练、编程能力提升同时养成良好职业道德的培养目标。课程不但要对每个知识点进行基本编程练习,还需根据学生学习的进度增加契合企业应用场景的工程项目训练,教学实施时运用CDIO工程教育理念,即要求学生运用软件工程的思想和方法进行程序设计开发。教学中采用案例法、项目驱动法和讨论法等学生参与度高的教学方法,学习任务为组建团队完成一个个项目,学生的参与感大大增加,学习兴趣和学习效果均有极大提升。这种模式既训练了技能,也培养了学生们的团队协作精神,使学生摆脱了单纯枯燥的课程知识体系的学习,课程学业成绩和参加学科竞赛的获奖率都有一定程度的提高,为学生下一阶段学习和以后的工作打下了较好的基础。

摘要:本文从分析当前程序设计类课程教学存在的学习兴趣逐渐丧失、个性化学习难于满足、实践中的问题解决不及时和课程评价体系落后等问题出发,提出结合CDIO工程教育理念设计该类课程的教学模式:以实际软件工程项目生命周期组织教学过程,将教学内容重新组织并与学生能力定位与实现方法对应起来,运用学生深度参与的教学方法,采用过程性评价并引入学习效果反馈机制,使其在学习课程基础知识的同时提升个人能力素质、职业技能和素养。

关键词:程序设计类课程,CDIO,深度参与式教学方法,工程项目

参考文献

[1] 梁宝兰,吴舜歆.独立学院“C程序设计”课程学习兴趣的培养[J].黑龙江科技信息.2011,(26):230+253.

[2] 刘志刚,衣治安,杜娟.CDIO案例教学在程序设计课程中的实践[J].中国电力教育.2011,(4):71-72.

[3] 汤琳.基于项目的网络工程实践教学体系改革[J].绵阳师范学院学报.2014,(5):133-135.

[4] 张俊林.产业升级背景下的程序设计类课程改革实践探索[J].智库时代.2017,(6):10-11.

[5] 郑霖娟.基于CDIO的“Android开发基础”课程翻转课堂教学模式实践探索[J].福建电脑.2018,(11):74-75.

[6] 杨艳东,刘洪民.大学研讨课的学业评价与反馈机制构建研究[J].考试研究.2015,(6):85-90.

上一篇:电信产业与物联网产业接轨体系研究下一篇:唐传奇中女性形象的塑造——以爱情传奇为中心