龙源期刊网 http://www.qikan.com.cn
基于项目的学习理论研究
作者:陈张荣
来源:《教育教学论坛》2017年第12期
摘要:社会不断发展,教育改革不断深入,传统的教学方法逐渐被新型高效的教学模式代替,实现了高效课堂的打造。其中项目教学以项目理论为支撑,在高职C++课程教学中发挥着积极作用。本文重点就该教学法在高职院校C++课程教学中的运用进行分析,以期更好地推广项目教学,提升高职C++课程教学水平。
关键词:项目教学;C++教学;高职教学;教学模式;改革
中图分类号:G712 文献标志码:A 文章编号:1674-9324(2017)12-0249-02 一、项目教学法及基于项目学习理论研究
项目教学法简单地说就是以教师为指导,让学生自主解决相对独立的学习项目。针对C++课程而言,项目教学法具体涉及人员的有效组织及管理、软件的度量、软件项目计划的制定、软件质量保证、软件过程能力客观评估、软件配置管理等,所有的教学内容由学生负责,学生在项目任务引领下探索课堂知识,了解并把握项目每个环节的每项学习要求。信息时代的到来,计算机思维的培养尤为重要,在高职院校做好创新思维的培养可以实现高素质创新型人才的输出,在创新思维指导下奠定科研创新的基础。基于项目的学习理论起源于美国,最初其被作为研究性学习的主要模式之一,国外关于项目学习的理论研究不断深入取得了优异成果。国内方面,2002年宁波大学刘景福教授,江西师范大学教学论研究中心钟志贤教授在《外国教育研究》上发表了《基于项目的学习模式研究》,明确了基于项目学习的定义:以学科概念和原理为中心,以制作作品将作品进行推广为目的,在现实世界发挥资源共享优势,解决相互关联的系列问题的新型学习模式。其以杜威的实用主义教育理论及布鲁纳的学习理论为支撑。2011年重庆大学金凡路在《职业教育立体化多元化项目主题式教学评价构想》中提出了多元化主体评价、多层化内容评价及多样化方式评价的立体化项目教学体系,同样是对项目教学理论的完善与延伸阐述。
二、C++课程项目教学法的实施
1.课程项目的有效选取。对于C++教学来说,最为关键的当属类与对象、继承与多态、输入输出流及异常处理技术的讲解。C++课程学习的难点在于课程语言的把握,其中指针与动态内存分配时语言学习的精华。开展项目教学必须做好教学项目的明确,项目必须做到语言机制精华的渗透,让传统教学知识系统化目的化。项目的设定应注重可理解性与实用性,也就是项目需求与实现能够让学生花最少的时间做最大限度的理解。课程项目分析、设计及实现接近真实的软件开发,学生通过把握项目方法与技术能实现企业类似问题的解决。UML是当前使用广泛的对象软件工程技术,在企业中得到广泛运用,在项目教学中引导学生用UML图方式表
龙源期刊网 http://www.qikan.com.cn
达,实现与企业真实项目对接。将UML技术引入C++课程教学,学生理解UML的表达分析,同时能根据UML图写出对应的C++实现代码,制作UML图。项目的合理选取既能涵盖基本的语言机制,有具有实用意义,难度中等,更能激发学生的学习兴趣,让他们更加积极地投入到项目学习之中。
2.项目教学常见方法。(1)复杂向简单的转化。程序设计遵循既定原则,自上而下,逐步求精,将《学生信息管理》划分为系统初始化处理,依次是数据输入、数据处理、数据输出、数据维护。通过项目的层层划分,子项目数量增多,原项目难度降低,使得项目教学实现从复杂到简单的转化。而每个子项目还可以继续分离,以数据处理为例,可以具体划分为数据排序、数据查询等,让学生依次完成单一项目,逐渐实现代码的完整理解与把握。(2)最合适的描述表达。UML是C++课程中通用的图形化建模语言,定义良好善于表达,功能十分强大兵适用普遍,其中面向对象的分析主要在加强对问题空间与系统任务的理解上,改进交流、与需求保持一致、支持软件重用四个方面比其他系统分析方法更具优势。在项目教学中引入UML,对项目开展需求分析,注重总体设计基础上详细设计,编写代码,在各个阶段进行对应描述,实现图到程序的有效转化。(3)启发引导教学的魅力。以冒泡排序为例,依次比较相邻数字,小数在前,大数在后,第一趟所得最大数值放到元素最后位置上,第二趟将剩下元素两两比较,剩余元素最大放到倒数第二位置,依次找到趟数与该趟比较次数之和等于元素个数,启发学生对二维数组的思考,假设其按照行排序,对应的列中元素也发生相应交换,在教师的项目启发下,学生加强对相关问题的关注,有效解决异常问题。(4)算法优化理论的应用。依然以数据冒泡排序,某趟排序后,数据满足排序需求,是否还进行排序?排序结束设计标记,标记初始数值不需要排序,若有交换,该标记位置位需重新排序,当末趟排序完成,查看标志是否依然需要排序,如果不再需要,排序完成,如果需要,优化算法。再例如求质素问题,斐波那契序列问题的优化都是通过算法优化让学生了解算法执行时间与数据占用空间进行估算完成的。
三、C++课程项目教学过程设计
1.创设有效的教学情境。首先是用已知问题创设情境。语法上先让学生回忆数学中的有穷序列,然后讲解数组,将数组与有穷序列加以对照,二维数组与矩阵,平面对照,三维数组与立体坐标对照。算法上,以往选择目测方式进行数组的有序排列,在此基础上给出两两比较进行排序的冒泡法。例如在判断正整数N是否为质数时,可以根据数学定义求解,用正整数分解两个因数积的形式得到最大的因数不超过M/2,再接着深入分析,最大因数不超M的平方根。其次是寻找新旧知识连接点,做好情境创设。通过组织学生分享对“人以群分物以类聚”这句话的理解,引导学生思考人的特点与活动,让学生分享“演绎与推理”的认识,在函数及结构体的基础上,提出类的概念,让学生依次理解类及其特点、语法格式等。通过新旧知识的联系对比让学生明白计算机的很多概念是源于数学,运用已有的知识去激发学生课程学习的兴趣。 2.课堂教学优化师生关系。首先是鼓励学生自主探究。教师在课程教学时应给予学生充分的自由让学生自主探究,让学生自主完成知识总结,学生动手查阅资料,强化自身学习能力,激发其潜在创造力。在该环节中教师要鼓励学生大胆发言,就自己解决问题的思路及方式方法
龙源期刊网 http://www.qikan.com.cn
与大家共享,在课堂上形成集体探讨的热烈氛围,而这也有助于合作精神的培养。其次是创设良好的环境。计算机思维的培养离不开良好的教学环境,发挥各种载体的教学优势,为学生呈现生动丰富的案例,鼓励学生在模仿中逐渐形成计算机思维能力,教师在教学实施中讲解项目设计的原则与思想,学生在真实的工作情境中,通过练习项目掌握计算思维的方法原则,教师点评,学生自由发言,在民主宽松的课堂氛围中,一起探讨分析问题,学生思维更为流畅,课堂气氛更为活跃。最后是鼓励学生自主探究。项目教学重在项目设计,学生拿出自己的设计思路与方案,潜移默化地提升自身探究能力。在具体的课堂教学中抓住教材内容重点、难点及易错点,教师可以故意出错,通过对错的对比教学加深学生学习印象,学生从实际出发,参与实践性问题的解决,实现课堂学习与生活经验的融合。 四、C++课程项目教学效果考核
教学效果考核涉及阶段考核、小组自评、课堂交流、综合评价四个方面。其中阶段考核就是引导学生在教师的有效监督之下,每个小组认真参与完成项目的教学实施,直接参与项目需求分析、概要设计、单元测试及集成测试,在学习后接受考核,完成该阶段的学习后才能进入下一阶段的学习,对应做好考核记录。而小组自评重点是自评,教师指导学生理解迭代及收敛等程序概念,通过迭代后优化的系统模型,积极消除功能性错误。按照预防保护及通过冗余、容错及纠错的方式,引导学生树立从最坏情形恢复系统的计算思维原则,让学生形成更加成熟系统的思维体系。在完成上述两环节任务后,鼓励学生课堂交流。以组为单位,每一组代表就组内研究成果课堂展示共享,具体阐述系统设计过程、遇到什么问题、问题如何解决等细节性问题,教师及其他小组提问,组内成员解答,通过课堂上的交流让整个思维过程充分暴露,学生在讨论中获得多方面的认识。最后是综合评价,C++课程要求学生做好学习记录,在阶段考核基础上开展综合评价,该评价包括自评、组评、师评,重点做好对学生计算机思维能力、学习态度及处理方法的评价,多方评价整合给予学生客观公正的评价。 五、结束语
在C++课程教学中引入项目教学,借助项目拉动教学实施,学生动手实践,发现问题自主解决问题。项目教学案例融入使得交互课堂更为活跃,学生更深入地了解C++课程的既定原则与思维方式,提升课堂参与性与主动性,实现从被动学习向主动学习的转变,提升C++课程教学实效。 参考文献:
[1]孙博.基于项目的学习在《C++程序设计》教学中的应用研究[D].曲阜师范大学,2014. [2]陆发芹.项目教学在中职计算机专业课中的应用[D].首都师范大学,2008.
[3]刘畅.项目教学法在C++程序设计教学过程中的应用[J].齐齐哈尔师范高等专科学校学报,2009,(05):124-125.