您好, 访客   登录/注册

融入CDIO理念的《程序设计基础》实践课程改革探索

来源:用户上传      作者:童端

  摘 要:随着微课、翻转课堂等本科教学改革的不断深入和人才培养目标的不断提高,传统的课程教学弊端日益显著。通过分析传统实践教学存在的问题,融入CDIO教育理念,提出新型教学模式下的几种提高学生实践能力的方法,探索通过引入创新性和个性化的教学模式,提高学生自己动手解决实际问题的能力。
  关键词:程序设计基础;课程改革;CDIO教育理念;多元化考核
  中图分类号:G4 文献标识码:Adoi:10.19311/j.cnki.1672-3198.2019.28.073
  1 前言
  《程序设计基础》是一门重要的计算机公共基础课程,教学内容包括了程序设计语言语法基础和结构化程序设计思想,不仅需要学生掌握语法规则,更要学会用程序解决实际问题的思维方法。如何在有限的课时内让学生系统的掌握该课程的基本原理进而提高学生解决问题的能力,是这门课程一个主要目标和挑战。为了让学生对程序设计产生兴趣并能主动运用所学知识去解决实际问题,本文探讨了通过融入CDIO教育理念的实践课程改革方法。
  2 传统课程模式存在的问题探索
  2.1 被动填鸭式的理论教学的弊端
  《程序设计基础》课程要求学生的动手能力较强。传统的课堂根据课本内容从C语言的语法、语句书写、模块化程序设计思想着手,教给学生编写一些简单程序来解决一些常见的数学或物理问题。根据学生的反馈情况,这种教学模式会使得课堂氛围比较沉闷,教师为了完成教学大纲的任务,急于填鸭式灌输,导致互动太少。大部分学生虽然能掌握课程的语法知识,但并不能灵活运用。
  2.2 与企业实际需求脱节的实验课程教学
  传统的实验内容基本上是教材实例或实验指导书中的题目,没有来源于实际市场,这就导致上机实验内容与企业实际需求相脱节的情况比较突出,学生按部就班的做实验,缺乏主动思考的能力和创新性。而且实验的形式也比较单一,实验内容相对枯燥。当实验程序出了语法语义问题时,学生容易被动的对照原始程序进行检查,而不是主动思考的本身。部分学生虽然知道程序调试的常用方法,但是他们不愿意主动使用工具去查找出错原因,导致同样的错误会在不同的程序里出现,学生不会去归纳总结。所以学生解决问题的能力普遍较弱,学习的积极性和主动性都很欠缺。
  因此,如何通过融入CDIO教育理念来加强学生的自主学习能力、创新性思维能力和主动式应用能力的培养成为提高教学质量的关键问题。本文通过创新性思维模式和启发式实践教学改革来解决这些问题,从而取得比传统教学方法更好的教学效果。
  3 融入CDIO教育理念的创新性实践教学探索
  3.1 CDIO教育理念解析
  CDIO工程教育理念,是由麻省理工学院等四所大学组成的跨国研究机构,经过四年的探索研究而创立的。CDIO代表的是Conceive(构思)、Design(设计)、Implement(实现)和Operate(运作)这四者的整合,主要思想是让学生能主动的参与到实践课程的学习,并研究探索课程之间的联系。因此,CDIO是“做中学”原则和“基于项目的教育和学习”的集中体现。
  3.2 建立以真实项目和算法为中心的程序设计思维模式
  为了让学生不要形成单一的思维定式,在实际教学中,以企业项目为主线和目标,精心设置一系列与之相关的子问题和小算法引导学生去思考。让学生自由讨论如何建立知识点之间的联系,把学过的知识点或算法整合成某一个大项目,比较不同解题思路的优劣,从而拓宽学生的思维,让他们主动去发现问题、思考问题,设计解决方案并最终解决问题。
  真实项目来自企业,或是学生感兴趣的游戏,比如:简易计算器、电子万年历等。实验过程中,把大的项目细化成一个个学生学过的语法知识点或小算法,比如简易计算器主要用到switch…case语句和若干函数调用;万年历程序则要用到闰年的算法和循环程序设计思想等。
  算法是程序设计的关键,一个好的算法能达到事半功倍的学习实践效果。在课堂讨论中,适时引导学生讨论算法的特点和改进方法,开发学生的创新性思维。在实践改革中,让每一个学生团队自己划分子问题,约定好模块接口,遵循“构思->设计->实现->完善”的思维方式进行分析,忽略程序设计语言自身的细节问题,着重培养学生的主动构思和自主设计程序的思维模式。其中,成熟算法的熟练掌握和灵活运用,有助于增强学生的学习信心,提高解题效率。比如常用的闰年的算法、素数的算法、进制数之间的转换算法的熟练掌握,有助于学生解决实际的万年历程序或贪吃蛇游戏里面的细节问题。
  3.3 启发式教学和引导式实验相结合的实验教学方法
  在实验教学过程中,采取以任务驱动为主的启发式和引导式的实践方法,加强综合性实验和创新性实验的比例。考虑到学生的个性化培养,循序渐进的推进基础性实验、设计性实验、综合性实验和企业项目这四个层次的实践环节,让学生在潜移默化中接受CDIO教育理念中的培养学生构思、设计、实施和运行这四方面能力的要求。初期先从基础实验内容开始,但它必须是某个真实项目中的一个子问题,比如闰年的算法等,帮助部分学生克服编程的心理障碍。随后逐步加大实验难度,让学生自己写算法,在老师和团队的帮助下合力完成复杂程序代码的书写和调试。大部分学生完成一个项目的具体实施过程如下:
  第一步:把算法转化为C语言程序。在这个阶段,绝大部分学生会因为基本的语法错误导致程序不能运行,通过进一步掌握语法知识和简单的程序调试方法,让学生自己检查和发现简单的问题,进而积累编程经验。
  第二步:检查语义错误。实验教学中经常出现的一个典型问题是:程序运行得不到正确的结果。因此,这个阶段的重点是引导学生学会使用系统自带的调试工具,比如Debug工具,或单步跟踪每条语句的方法,了解程序执行过程,体会关键变量值的变化过程对项目的影响,初值的设计对多次循环结果的影响等,进一步理解程序执行的步骤,从而深刻领会课程中的基本概念和基本原理。
  第三步:教师适时引导学生找到错误所在的位置及原因,這个过程有时可能会直接推翻前面的流程思路,但是学生很快能想出新的解决办法并进行尝试。
  通过这三步的锻炼和启发,大多数学生都能踊跃提出自己的看法,有时还能引起热烈的讨论,学生的学习主动性和自主解决问题的能力有很大程度的提高。
  3.4 多元化的课程考核方式和团队精神
  课程改革中的考核方式采取以“上机实验+期中机考+期末闭卷笔试”为主,“项目设计及答辩+期末闭卷笔试”为辅的方式,让教师站在IT企业或用人单位的角度去设置问题,引导学生逐步分析和自主学习,必要的时候进行团队合作,使其具备工程人员必备的素质和能力。
  在实际教学过程中,根据项目的难易程度,让学生自由组合成一个小团队,两到三人为一组。团队负责人分配好每个学生的学习和实践任务,约定好函数接口等细节问题,小组成员各自设计完成自己的模块。相同项目组的成员之间可以进行沟通,协力完成共同的学习任务。这既是CDIO教育理念中对团队精神的要求,还能让学生提前适应团队协作,为以后的工程学习和实际工作提供良好而扎实的工程基础。
  4 结束语
  《程序设计基础》是一门实践性很强的课程,如何在有限的课时内让学生系统地掌握课程精髓并灵活应用,是该课程改革面临的一个主要挑战。为此,本文在CDIO工程教育模式的指导下进行了创新性课程实践改革探索,提出了以真实项目和算法为中心的程序设计思维模式,拓宽学生的创新思维,进而提高学生主动学习并解决问题的能力。通过尝试多元化的考核方式,解决了学生个体差异性的问题,注重团队合作精神。在实验过程中,采取循序渐进、逐层推进的方式,提高学生的学习兴趣和解决实际问题的能力。本文提出的教学改革与尝试有利于实现程序设计类课程的系统化教学,让学生真正成为学习的主体。
  参考文献
  [1]曾晓辉,文展,付琳.CDIO教学模式在编程类课程中的改革与评价探索[J].当代教育理论与实践,2016,(8):123-125.
  [2]刘丹.基于CDIO的教学模式在“数据结构”课程中的研究与应用[J].工业和信息化教育,2013,(5):29-32.
转载注明来源:https://www.xzbu.com/2/view-15017107.htm