APP下载

面向对象程序设计教学实践中的问题探微

2016-02-23周则明胡友彬张鹏马宁蒋林

教育教学论坛 2016年8期
关键词:高效课堂微课教学模式

周则明 胡友彬 张鹏 马宁 蒋林

摘要:面向对象程序设计是信息类专业的选修课程,是培养学生编程能力的重要载体。本文探讨了该类课程在课程设置、内容选择、教学与实践环节设计、新型教学方法探究等方面需要注意的几个问题,以期提升该类课程的教学效果,适应学生未来岗位的任职需求。

关键词:面向对象程序设计;教学模式;微课;高效课堂

中图分类号:G642.0     文献标志码:A     文章编号:1674-9324(2016)08-0209-02

面向对象程序设计是目前编程技术的主流方法,是掌握像C#、Visual Basic、Java等开发工具的基础[1],也是学习《数据结构》、《操作系统》等使用C++或Java语言作为算法示例的后续课程的前提,更是培养锻炼学生程序设计思维的重要环节。所以,面向对象的程序设计是信息类专业的必修内容,在学生全期培养中尤为重要。为促进学生深入掌握面向对象的程序设计方法,解放军理工大学相关专业开设了《C++程序设计》和《Java程序设计》等课程。本文针对该类课程的特点,重点探讨教学实施过程中应突出关注的几个问题。

一、面向对象程序设计教学的特点

《C++程序设计》开设于第5学期,60学时;《Java程序设计》开设于第7学期,40学时。《C++程序设计》教学内容包括类的抽象与封装、类的继承与多态、操作符重载、STL编程等内容;《Java程序设计》还包括JDBC数据库访问、多线程序设计、Java集合框架等很有Java特色的内容。该类课程的特点是:概念多、知识点分散、实践性强、入门容易提高难。面向对象的编程思想串联了整个教材,但面向对象的软件工程方法着墨不多,因此需要在教学过程中注重讲清概念,沿着举例—模仿—实践—开发的链条引导学生理解面向对象的编程思想,掌握面向抽象的编程方法。

二、提高课程教学效果探微

1.衔接好C语言向C++语言的过渡。由于前期已经开设了《C语言程序设计》,学生具备了一定的程序设计基础。C语言是面向过程的程序设计语言,由于先入为主,学生在学习《C++程序设计》时会有一定的困难,需要将程序设计的思想从面向过程转变为面向对象。教学时可从结构体入手,过渡到C++的设计。此外,注意讲解与C语言有区别的部分,如带默认值的函数、重载函数、引用的概念等。教学过程中应精心准备实例,少讲概念,通过典型例程来说明知识点和程序的设计要点。

2.处理好程序设计教学与面向对象的理论教学之间的关系。目前比较经典的C++或Java教材,对面向对象的分析和设计理论介绍不多。在教学过程中应适当补充介绍面向对象理论研究的最新进展和成果,注意基本概念和基本方法的讲解。面向对象的分析重点介绍三种模型:功能模型、对象模型、动态模型。用面向对象的方法建模时,可借助于UML的用例图表述需求,再使用类图定义类及之间的关系。对于简单的设计问题,可画出用例图和类图;对于较复杂的设计问题,则应画出顺序图和协作图。Rational Rose[2]是一种比较好的建模工具,定义类图后能自动生成代码框架,提高了编程效率。

3.厘清面向对象语言间的区别与联系。目前,Java的应用面非常广泛,由于其跨平台性和开发工具的开源性,已经成为主流的开发工具。从对程序员的调查来看,软件设计人员最应该熟练掌握的程序设计工具是C++和Java。作为C++语言的后续教学内容,在Java教学中要注意与C++语言的区别,例如Java语言中的引用变量不是C++中用缺省构造函数构造的对象;Java的数组是对象而不是指针;Java的多态性实现方式与C++有差别;Java的内存管理技术也有很大的不同。总之,在教学过程中对容易混淆的概念和方法要多讲解,多通过实例解释和说明。

4.统筹好理论教学、上机实习和课程设计的循环递进。要学好程序设计,使其真正成为必备的工具,只在课堂上听讲是远远不够的,程序设计有一个听懂、模仿、反复实习的过程。在教学过程中,需要注重上机实习环节。教员应精心选择实习课题,对编译器生成的错误提示要求学生看懂并知道如何排错。此外,应当让学生熟练掌握设置断点、单步执行、观察局部变量或对象状态的方法。将程序从开始到结束单步执行一遍,对该程序的理解就会加深一层,让学生熟练掌握调试程序的方法是十分重要的。教学过程中常常发现,一种语言学完之后,对于较复杂的程序学生还是难以下手。为了提高编程能力,可以考虑增加课程设计环节。由于课时数的限制,该设计可在课后完成,这就要求教员合理设计课题,既要注意难度也要注意广度。学生除了编写程序之外,还应编写文档使用如用例图、类图等工具描述需求分析和设计结果。

5.引进微课、翻转课堂等新型教学模式。程序设计类课程知识点分散,具有碎片化的特征,非常适合以“微课”作为辅助教学手段[3-5],促进课上教学和学生课下自主学习。此外,微课也是翻转式课堂的重要支撑工具[6-8]。为此,需要结合教学实践,分析将每个章节的编程要点“碎片化”的方法;根据课程教学的总体要求,确定“微课”内容在整个教学活动中的比重;针对不同类型的教学内容,以“微视频”为微课的核心,围绕知识点和教学环节来设计制作微课,逐步将微课资源拓展到“微型教学活动”。如C++操作符重载部分,可用矩阵的加减及乘法运算为实例,制作10分钟的微课,讲清作为类成员和友元成员函数的设计方法。再如,在JAVA的JDBC访问技术中,围绕“增删改查”的基本操作,通过微课拓展下列内容:插入记录时获取自动增量主键的方法、记录的批处理方法、信息管理系统中逻辑业务层与数据访问层的设计方法。

6.帮助学生进行课程拓展学习。由于课时的限制,教材中只对面向对象程序设计的基础内容做了介绍,要深入理解编程的思想和精髓,需要学生多看参考文献,多做设计和开发工作。可以根据学生的实际水平推荐适合的参考资料以拓宽学生的视野,像《Inside C++ Object Model》之类的经典教材介绍了许多C++设计和编译中的难点,《Visual C++技术内幕》是非常有影响的C++应用开发参考资料,《STL开发指南》则介绍了STL中的各种标准算法,等等,以进一步激发学生的学习兴趣,提高编程水平。

7.优化课程设置和教材选用。目前《Java语言》与C++课程衔接不够紧密,一般而言,在C++之后衔接开设Java语言课程,更有利于掌握Java语言和巩固C++的学习效果,促进学生在完成基本知识的学习之后,通过自学熟悉Java的各种开发环境和开发架构,不断提高软件开发的水平。

此外,目前使用的数据结构教材用C语言描述各种算法,而实际上各种数据对象的抽象数据类型(ADT)与类描述是一致的,建议选择用C++或Java描述的数据结构作为教材,这样与面向对象程序设计课程有比较好的衔接,此外数据结构中的各种算法也可以以类库的方式用于C++和Java的应用程序开发。

三、结语

面向对象的程序设计方法是学生必须熟练掌握的内容,也是学习后续课程的基础。本文探讨了该类课程在课程设置、内容重点、教学环节设计、教学方法等方面需要注意的几个问题。为进一步提升教学效果,还需要深入研究新的教学理念,引入新的教学方法,以期不断提高学生的编程能力和软件工程开发能力,从而满足信息化作战条件下未来岗位的任职需求。

参考文献:

[1]唐大仕.“递归算法”微课教学设计——以“文科计算机基础(下)”为例[J].计算机教育,2013,(17):5-7.

[2]解本巨,李晓娜,宫生文.UML与Rational Rose 2003从入门到精通[M].电子工业出版社,2010:22-28.

[3]吴婵.关于微课对优化高校教学效果的思考[J].高教论坛,2013,(10):17-18.

[4]程岚,肖贵桥,王英,朱莉.微课教学设计思路探讨[J].江西电力职业技术学院学报,2013,(26):79-81.

[5]胡铁生.“微课”:区域教育信息资源发展的新趋势[J].电化教育研究,2011,(10):62-63.

[6]张旸,蒙泽察.“导学案教学”与“翻转课堂”的价值、限度与共生[J].全球教育展望,2013,(7):10-14.

[7]朱宏洁,朱赟.翻转课堂及其有效实施策略刍议[J].电化教育研究,2013,(8):79-83.

[8]张莉靖,曹殿波.“翻转课堂”教学模式研究[J].陕西教育(高教),2014,(1-2):91-92.

猜你喜欢

高效课堂微课教学模式
群文阅读教学模式探讨
微课在初中历史教学中的应用
“一精三多”教学模式的探索与实践
“导航杯”实践教学模式的做法与成效
与“微课”的首次亲密接触
5E教学模式对我国中学数学教学的启示