前言:想要写出一篇引人入胜的文章?我们特意为您整理了程序设计项目任务驱动法教学改革探究范文,希望能给你带来灵感和参考,敬请阅读。
摘要:面向对象程序设计是一门理论和实践相结合的课程,而且实践在整个教学过程中起着极其重要的作用。本文针对教学中实践与理论脱节的现象,提出了项目任务驱动教学法在面向对象程序设计课程中的应用,将理论与实践教学相结合,提高学生的编程能力、实践能力和团队合作能力,达到教学相长的目标。
关键词:项目任务驱动教学法;编程能力;实践能力;团队合作
1引言
面向对象程序设计是我校电子信息科学与技术专业的一门专业选修课,具有很强的实践性,旨在C语言和数据结构的基础上进一步增强培养学生的编程能力,为今后深入学习JAVA等高级编程语言并向软件方向发展奠定坚实的基础。受传统教学方法的影响,在面向对象程序设计教学的过程中,很多教师往往采用的还是教师为主体的讲授法、演示法等教学方法,教学效果并不理想。学生只能简单地处理和例题相似的题目,面对实际问题或者稍微复杂一些的程序则不知该如何下手,最终造成所学内容与实践完全脱节,甚至对编写程序产生厌倦情绪,达不到应有的学习效果。如何提高学生的编程水平和运用能力是面向对象程序设计任课教师一直追求的目标。
2教学中面临的问题
面向对象程序设计通常是以C++作为编程语言,在教学方法、教学手段上已经进行了很多改进,并取得了一定的效果。然而仍然面临着一些问题[1]:(1)C语言是面向过程的程序设计语言,C++虽然是在C语言的基础上产生的,但是很多语法形式、设计思想与之发生了巨大改变,部分学生无法适应这种变化。同时,教学内容的抽象性、知识点多样化以及逻辑结构的复杂性使得学生难以将数据结构的思想运用到程序编写中,无法具备独立编程或修改代码的能力;(2)C++程序设计是一门具有很强实践性的课程,传统的讲授法以讲授程序设计的概念、原理、语法为主,学生只能被动地接收甚至单纯地死记硬背;上机实验课上也是教师布置题目,学生仿照书本上例题机械地敲代码,碰到编译、链接中出现的问题通常不知道如何解决;(3)案例式教学是程序设计课程中经常采用的教学方法,其目的是通过案例的讲解和分析使学生更深刻地理解编程语言的语法和使用。但在实际的操作中,教师往往选择课本上简单易懂的案例,与实际项目相差甚远,学生无法将其运用到实践中去;(4)学生在研讨式教学中由于自身的局限性,无法深刻理解题目的内在含义,往往只是对研讨内容进行表面论述,流于形式,达不到设计要求。
3项目任务驱动教学在面向对象程序设计课程中的应用
项目任务驱动法以培养学生的应用能力和创新能力为出发点,融合“启发式”的教学理念,开发学生独立思考、自主探索的能力,让学生能够积极地进行有意义的学习,体现学生在课堂教学中的主体地位,从而实现掌握知识和锻炼思维两种能力的的培养[2-4]。在项目任务驱动教学中学生是主体,在老师的帮助下通过自主学习或分工协作共同完成项目;教师是辅助者,为学生提供项目所需要的知识,在实施项目中引导启发学生,为学生提供技术支持和帮助。项目任务驱动教学法不仅能够充分发挥学生的主观能动性和创新性,还能构建良好的沟通意识和团队协作能力,达到真正的学以致用[5]。项目任务驱动教学法在面向对象程序设计中的具体实施方案如下:
(1)准备工作每班约有50名的学生,教师准备10~15个左右贴近学生日常生活、难度适中、几乎涵盖课程中所有知识点并具有开发价值的项目提供给学生自由选择。为了让学生初步认识该课程的体系结构及意义,同时对每个项目具有基本的认识,教师在第一节课时就以教案的形式向所有学生讲解每个项目包含的功能模块,并演示项目完成后的效果[6]。然后,教师引导学生选择项目,自愿组成项目组,每组3~5人,确定小组长,组长根据每位组员的意愿和特长进行分工,每人负责项目的不同模块,并规定每周召开组会,共同研究、交流、探讨项目的进展情况和实施过程中遇到的问题[7]。通过这种分组合作,一方面提高了软件开发的效率和质量,另一方面还能够激发学生的团结协作精神,同时不同小组之间的相互比较也能促进学生产生浓厚的学习氛围,形成良性竞争。
(2)课堂环节课堂上教师要将每个项目的模块划分和功能展现给学生,引导学生独立分析并讨论实现这些功能所需的知识点。教师要根据学生的分析反馈详细讲解项目实现过程可能遇到的未学过的知识点以及与功能模块之间的关系,并演示利用新的知识点实现该模块的最终效果。演示中要屏蔽实现代码,将其留给学生自行完成。在学生自己操作的过程中,教师还要随时关注学生的表现,及时解答设计和编程中出现的问题。对于普遍存在的问题要让所有同学停下来统一讲解,避免学生走弯路。每节课的最后半个小时每组组长要指定发言人阐述本节课每个组员的完成情况,相似项目或者模块的同学可以共同探讨不同实现代码的优劣,开阔编程思路,取长补短。教师要对学生的发言和讨论进行总结,特别是对学生所编代码中的创新点进行表扬[8]。通过一段时间的相互讨论和学习,学生的分析问题、解决问题以及分工协作能力明显提高。
(3)课后作业为了巩固课堂学习的效果,每次课后教师要根据本节课上项目模块所用到的知识点给学生布置一个与该知识点匹配且难度相似的作业,并要求学生独立,完成后将分析过程以文档的形式连同代码交给老师。老师批改之后不仅要给出成绩,还要对作业完成情况做反馈,以此激发学生的学习热情,促使学生产生强烈的学习兴趣。
(4)期末考核课程结束前,教师通过大作业的形式进行期末考核,期末考核项目的难度与上课所选项目类似,功能的强弱可由学生根据自己的能力设定。在学生独立完成项目过程中,要将项目的需求分析、总体设计、详细设计、代码编写、调试等以文档的形式记录下来,形成考核报告上交。需求分析包括系统设计的目的与意义、系统功能需求以及输入输出的要求;总体设计包括系统功能分析、系统功能模块划分与设计;系统详细设计包括E-R图和类层次图等;代码编写进行各功能模块的实现;系统调试用来找出主要问题、编译语法错误并修改。在文档末尾,还需要学生结合编程体会对整个开发过程进行总结。通过期末考核,使学生了解并亲自体验项目开发成功的全过程,不仅能够全面检验面向对象程序设计课程的学习成果,还能让学生真正体会软件编程的目的和意义,为将来从事软件开发类工作奠定基础。
4小结
将项目任务驱动教学方法引入面向对象程序设计的教学中,使该课程不再只是纸上谈兵,而是真枪实弹的实践教学。项目任务驱动法以学生为主体,旨在培养学生独立思考、认真分析、努力实践、积极协作、懂得反思的能力。教师是课程学习的策划者和陪练,帮助学生获得专业技能和提高动手能力。学生从中不仅学到了专业的编程知识,而且学会了面对实际问题如何进行分析和解决。同时培养了学生的主观能动性和团队合作意识,对于提高学生的编程素养和实际动手能力,实现教、学、练三者有机结合起到了至关重要的作用。
参考文献:
[1]张程,古平,刘慧君.竞赛项目驱动的软件工程课程教学改革探索[J].计算机教育,2018(8):22-24.
[2]高俊.浅析计算机软件教学中项目导向与任务驱动教学模式的应用[J].科技风,2018(36):100-100.
[3]凌湘春.微课下的项目驱动的协作式学习促进跨文化交际能力[J].教育教学论坛,2018(40):194-196.
[4]王辉.将项目驱动教学法应用于数据库教学的探索[J].职业,2018(28):60-61.
[5]盛波.项目教学法在C语言教学改革实践中的探索[J].科技风,2010(8):26-26.
[6]罗平,朱珍,朱扬清.基于项目驱动的《数据库程序设计》课程教学改革研究[J].软件导刊,2015,14(11):186-188.
[7]姚庆玲.“项目教学法”在计算机语言程序设计课程教学中的实践与探索[J].安徽冶金科技职业学院学报,2009(1):69-72.
[8]赵夫群.“项目教学法”在计算机课程教学中的应用[J].产业与科技论坛,2015,1(20):206-207.
作者:李丹 吉紫娟 罗春娅 王怀兴 单位:湖北第二师范学院