面向对象程序设计实践教学研究

时间:2022-05-07 01:57:36

【前言】面向对象程序设计实践教学研究由文秘帮小编整理而成,但愿对你的学习工作带来帮助。2 面向对象程序设计实践教学 面向对象程序设计是计算机相关专业的一门重要的编程基础课程,其目的就是培养学生使用面向对象技术方法和面向对象编程语言进行软件开发的能力。实践教学环节是让学生有实际动手编程的机会。目前,在面向对象程序设计实践环节还存在一些不...

面向对象程序设计实践教学研究

摘要:面向对象程序设计是一门实践性很强的计算机相关专业的基础课程,实践教学环节在其教学体系中具有十分重要的地位。针对该课程实践教学过程中学生主动性不够、程序设计环节缺失的问题,结合该课程的实践教学经验,提出项目驱动式的实践教学方法,有效提升实践教学过程中学生的自治性、任务的实战性、考核的全面性和过程的完整性。

关键词:面向对象程序设计;计算机相关专业;实践教学;教学方法;教学改革;项目驱动

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)25-5687-02

1 概述

面向对象程序设计是一门实践性非常强的计算机相关专业的重要基础课程。提高学生的实际动手编程能力一直是该课程教师孜孜以求的目标。目前,面向对象程序设计课程教学研究多侧重于教学内容、教学模式、教学体系方面的研究[1-6]。对于实践教学环节的研究并不多见[7, 8]。为提高学生采用面向对象程序设计语言(以C++语言为例)进行程序设计的实践操作能力,该文提出项目驱动式实践教学方法来指导实践教学,通过模拟项目运行管理方式,让学生在实践过程中对程序设计的语法层面、方法学层面、工具层面和算法层面有比较全面的了解和掌握,提高学生的程序设计实践能力。

2 面向对象程序设计实践教学

面向对象程序设计是计算机相关专业的一门重要的编程基础课程,其目的就是培养学生使用面向对象技术方法和面向对象编程语言进行软件开发的能力。实践教学环节是让学生有实际动手编程的机会。目前,在面向对象程序设计实践环节还存在一些不足。一是面向对象思想和方法学在上机实习中体现不够。学生上机实习的实验目标不明确,往往只是把实验教材上的习题输入计算机试一下,没有真正理解程序设计的核心与精髓在于设计。对于教学过程中提到的面向对象程序设计的优越性实践验证不够,不知道如何采用面向对象分析、设计方法解答实习作业和实际问题。二是上机实部分停留在示范操作层面。实验前教师集中讲授实验目的、原理与步骤,然后操作示范,学生只能在限定时间范围能跟随操作,甚至用手机录屏,不需要主动思维和创新,这也限制了学生的创造性和主动性。为此,为强化实践教学,我们将面向对象程序设计课程的实践教学环节分为两个部分:实验教学和综合实习。

实验教学主要解决学生对面向对象程序设计语言(C++语言)和面向对象技术基础的练习与理解,并初步掌握可视化的开发环境与和工具的使用。这部分主要解决的是程序设计的语法层面和工具层面的实践问题。实验教学的主要内容包括:1)面向对象程序设计IDE(如Visual C++、Code::Blocks、QtCreator等)的初步掌握与使用;2)面向对象程序设计语言(C++)编程基础;3)类和对象;4)继承与派生;5)多态性。

综合实习主要是让学生练习综合运用面向对象程序设计知识,让其熟悉和掌握使用面向对象方法、面向对象程序设计语言(C++语言)和开发工具(Visual C++ IDE)来开发具有一定实用性的软件项目的方法和过程。与实验教学相比,综合实习主要解决的是面向对象程序设计的方法学层面和算法层面的问题。综合实习的主要内容包括:1)面向对象可视化程序设计的UI库(如Visual C++的MFC、Code::Blocks下的wxWidget、QtCreator的Qt)的了解与使用;2)面向对象技术与方法的综合使用;3)软件项目开发过程。

3 项目驱动式的实践教学

面向对象程序设计的实践教学的目标就是提高学生实际动手设计、编程能力。项目教学方法被广泛应用于面向对象课堂教学中[9-11],但在实践教学中应用较少。项目驱动式的实践教学就是整个实践过程围绕一个项目进行,将面向对象的类与对象、继承与派生、多态性等基础内容融合到一个大型的项目任务中,采取“模拟项目”方式进行教学。该方法以学生为项目合同乙方,也作为主体成立项目组,选举项目经理,承接项目合同甲方—指导老师的项目任务,通过一个模拟的软件项目开发过程的培训,引导学生总结面向对象程序设计的基础知识,提高专业技能,锻炼团队协作能力,掌握初步的软件工程项目研究与开发方法,体验相关软件企业的实际工作过程。

项目驱动式的实践教学具有以下特点:1)任务的实战性:以真实的软件公司实际软件项目为蓝本,基于实际数据和需求,模拟软件项目或软件产品研发的各个过程,通过实战性的训练,提升学生对于面向对象程序设计的四个不同层次(语法、工具、方法与算法)的深入理解。对于学生以后就业或从事相关软件研发大有裨益;2)学生的自主性:学生成立的项目组具有高度的独立自主性,指导老师作为旁观者,主要扮演项目合同的甲方代表,提供数据支持、专业技术顾问、质量监管等角色,不直接干涉项目组日常运行;3)考核的全面性:学生的考核成绩由考勤、项目经理评分、实习报告评分、平时进展汇报评分等构成。这里项目经理评分对于学生个体而言权重最大,因此项目经理人选必须具有很强的组织能力、较好的基础知识、较强的沟通能力,在实践过程中,项目经理由各组学生自由选举产生,项目经理的成绩则由指导老师根据整个项目组的情况进行评分;4)过程的完整性:在软件项目开发过程中,学生必须自觉查找资料,攻克技术难关,加强团队协作,学习软件设计与开发方法,通过项目实战锻炼了学生在软件分析、设计、开发、测试及管理等过程环节中的专业技能,同时团队合作也训练了学生协同工作能力和合作意识。

在实际的实践教学过程中,项目组的划分一般以10-15人为一组。项目组内部的小组由项目组自行划分。以项目组为单位对指导老师给出的软件开发任务进行需求分析、概要设计、详细设计、编码实现和系统集成与测试。项目驱动式实践教学是以学生为主体,而他们知识基础、专业技能、团队协作等各方面能力都有待提高,并且学生的主动性、积极性、合作性对于教学的成败起到很大的作用。因此,作为指导老师需要高超的组织能力,需要密切关注学生的进展情况,做到每个阶段都要有预案,实习进度要严格控制,多用启发和案例的方式引导学生更好地进行软件项目开发,使其体会面向对象分析(OOA)、面向对象设计(OOD)、面向对象实现(OOI)和面向对象测试(OOT)等面向对象技术与方法的优越性。从而保证更好地兼顾面向对象程序设计的语法、方法学、工具以及算法四个层面的实践教学内容。

4 项目案例与过程管理

项目驱动的面向对象程序设计实践教学的关键是项目的选择和以项目为核心的教学过程管理。对于项目的选择,需要遵循易学、有趣、有用的原则。所谓的易学,就是项目的选择虽然来源于实际项目,但项目的起点应该较低,容易入手学习。对于需要较多专业背景知识的大型的实际项目,需要对其进行抽象简化,或选取其局部作为实习用的项目案例。所谓的有趣,就是项目的选择需要让学生感兴趣,最好是和其学习、生活具有一定相关度的项目案例。所谓的有用,则是这个项目做出来后要有一定的实用性。遵循这三个原则选取出来的项目案例有利于激化学生的求知欲,在实践教学过程中能起到事半功倍的效果。

此外,项目案例的选择还需要注意以下几个方面的问题:1)项目涉及到的知识点应该覆盖面向对象程序设计的四个层面的内容,即要涉及面向对象程序设计的语法层面的类与对象、继承与派生、多态性等基础知识,也要涉及面向对象程序设计的方法学、算法方面的高层知识,还要结合具体的开发工具选取适合的项目案例。例如,如果采用的开发工具是Visual C++,项目开发是基于MFC的,那麽项目的界面设计部分应该涉及到MFC的文档/视图结构、用户交互—菜单、工具栏、状态栏、对话框、各种常用控件以及各种鼠标、键盘消息响应等内容。2)项目案例中的功能应该都是在实际项目中实现过或者验证过的,并且可以看到实际演示效果。这样学生容易弄懂需求,自己编程实现的目标直接可见,更容易激发学生的编程兴趣与欲望。

项目驱动式的实践教学过程中,项目过程的可控管理非常重要。既要尊重学生项目组的独立自治性,同时也要防止其自治能力不够而导致的无所事事或无所适从的局面出现,需要引导学生项目组制定明确的分阶段目标和计划,以及明确的项目任务分工,要明确到每个学生个人头上。由于项目组内学生个人能力有差异,在避免出现滥竽充数的项目组员的同时,也要允许、鼓励相互帮助完成任务,实现团结协作和团队学习的教学效果。

5 结束语

面向对象程序设计是计算机相关专业的基础必修课程,在其专业体系中具有重要地位。该文结合本校面向对象程序设计课程多年实践教学经验,从程序设计的语法、方法学、工具与算法四个层次讨论了如何使用项目驱动式的实践教学方法。通过易学、有趣、有用的实践教学项目案例的选择与项目过程的可控管理,项目驱动式的实践教学方法能充分发挥学生主观能动性,强化学生程序设计的全局观,增强学生的团队协作意识,为今后计算机相关专业方向就业奠定良好基础。

参考文献:

[1] 陈优良, 徐昌荣, 陈淑婷. GIS专业面向对象程序设计教学改革探讨[J]. 地理空间信息, 2010,8(1):151-154.

[2] 吴跃, 陈峥. 面向对象程序设计教改探索[J]. 计算机教育, 2010(8):60-63.

[3] 柳宏川, 宋伟. 以“类”为中心进行C++程序设计的教学[J]. 福建电脑, 2011(1):198-202.

[4] 黄璐, 于红, 李向军, 等. C 语言程序设计课程教材建设研究[J]. 吉林省教育学院学报, 2013,29(3):92-93.

[5] 张麟华, 孔令德,杨慧炯. 面向图形图像处理的C++课程案例设计[J]. 计算机教育, 2013(4):88-91.

[6] 胡明晓, 刘海霞, 励龙昌. 程序设计类课程的层次化教学模式研究与实践[J]. 计算机时代, 2013(3):58-61.

[7] 彭召意, 朱艳辉, 周玉. C++面向对象程序设计课程的实践教学研究[J]. 计算机教育, 2010(5):151-154.

[8] 孟繁军, 刘东升, 张丽萍, 等. 程序设计基础教学策略的实践研究[J]. 内蒙古师范大学学报(教育科学版), 2013,26(3):126-129.

[9] 张丽, 夏斌. 项目教学法在面向对象程序设计课程教学中的应用[J]. 计算机教育, 2010(10):92-94.

[10] 王昕.《面向对象程序设计课程》项目教学法的探索[J]. 电脑知识与技术, 2011(15):3627+3631.

[11] 贺萌,赵香会. 浅谈项目驱动教学法在面向对象教学中的应用[J]. 黑龙江科技信息, 2009(36):308+132.

上一篇:经济转型中高职院校专业设置影响因素的观察与... 下一篇:抓好毕业设计培养创新人才