APP下载

基于CDIO以面向对象程序设计思维为导向的教学研究与实践

2019-12-06钟原刘忠慧

软件工程 2019年11期
关键词:项目驱动实践教学体系互动式教学

钟原 刘忠慧

摘  要:针对计算机专业基础核心课程《面向对象程序设计》的教学过程中,学生普遍存在从面向过程的程序设计思维方式向面向对象的思维方式转变的困难,本文结合理论与实践教学环节,提出一种以“面向对象程序设计思维”为导向,以CDIO理念为基础的互动教学模式,通过构建“案例+项目”式的教学内容,实施层次化、阶段性、递进式的教学过程,使学生逐步理解并掌握了面向对象的思维方式,取得了较好的教学效果。

关键词:面向对象思维;案例+项目驱动;互动式教学;实践教学体系

中图分类号:TP399     文献标识码:A

Teaching Research and Practice of Object-Oriented Programming

Thinking Based on CDIO

ZHONG Yuan,LIU Zhonghui

(College of Computer Science,Southwest Petroleum University,Chendu 610500,China)

Abstract:In view of the difficulty of changing from the process-oriented thinking to the object-oriented thinking that the students majoring in computer science have in the teaching process of the basic course Object-Oriented Programming Design,by combining theory with practice,this paper proposes an interactive teaching mode based on CDIO concept and guided by Object-Oriented Programming thinking.By constructing the teaching content of Case + Project,the teaching process has become hierarchical,phased and progressive so that students can gradually understand and master the object-oriented programming thinking,which has achieved good teaching results.

Keywords:object-oriented thinking;Case+Project driven;interactive teaching;practical teaching system

1   引言(Introduction)

根据计算机专业的人才培养方案,《面向对象程序设计》是计算机专业的一门专业核心课程,在程序设计思维培养和编码能力训练中具有极其重要的位置。该课程开设在《C语言程序设计》之后,共有64学时(理论40,实验24),课程大纲涵盖了基础语法,重点要求掌握面向对象的特性:封装、继承、多态等知识模块。课程内容的理论性较强,如以知识点的讲解为主,学生无法深刻理解面向对象(Object Oriented,OO)的思维模式,导致其程序设计思维方式依然停留在面向过程(Procedure Oriented,PO)中。本研究在CDIO[1-3](Conceive-构思、Design-设计、Implement-实现和Operate-运作)理念指导下,改变以往从孤立知识点出发,强灌式的理论课堂模式[4],提出以面向对象设计思维为导向的教学过程,将理论和实践教学紧密结合,运用“案例+项目”的互动教学模式,不断引导学生从面向过程的思维过渡到面向对象的思维,从而更全面掌握面向对象程序设计的方法,激发创新型思维,培养具有自主创新和创造的计算机专业人才。

2   面向对象思维方式(Object-oriented thinking)

《面向对象程序设计》课程以Java语言作为讲授对象,传授面向对象的概念特性,其中重要的教学目标是掌握面向对象的编程方法,引导学生从面向过程思维方式转向面向对象的思维方式。但是,面向对象与前序课程学习的面向过程的程序思维方式有着截然不同的逻辑,如图1所示。要转变已形成的定向思维模式必然面临较大的挑战。

图1 面向过程与面向對象

Fig.1 Process-oriented and object-oriented

面向过程强调解决问题所需要的步骤,并通过调用函数(过程)将步骤逐一实现;而面向对象则把构成问题的事物分解成各个对象,使用对象封装事物的属性,并通过调用对象的方法来解决问题。因此面向对象思维方式转换的关键在于建立“一切皆对象”的思维模式[5],将面向对象思维中的三个重要特性:封装,继承和多态贯穿于整个教学活动中。因此,在理论和实践教学过程中,教学内容,教学方法,教学过程都应以面向对象思维为导向[6],摸索学生的认知规律,激发学生兴趣,引导学生去思考、去设计、去实现、去应用,从而掌握这种程序设计思想和方法。

3  以面向对象为导向的理论教学改革(Object-oriented theory teaching reform)

3.1   建立“案例式”的课程教学内容

根据课程教学目标和内容要求,梳理教学内容,主要包括以下两个方面:(1)提炼面向对象程序设计的理论模块:①语言概述+开发环境(JDK、Eclipse);②基础语法(数据类型、控制流程、数组等)和基础算法(最值、排序等);③面向对象语法特性(类、对象、继承、抽象、接口、多态、异常等)以及延伸的;④开发平台功能(网络、图形)等模块。(2)制作案例式的教学内容:针对不同理论模块以及相关知识点设计案例,编写代码,制作演示文稿。重点针对面向对象的特性,设计与面向过程的对比案例,形成对比的设计思路,并进行代码级的比较。将面向过程的设计方法与面向对象的设计方法进行多维度的比较,从而引导学生转变设计思维。

如案例A:编写一个计算三角形面积的程序,分别用C语言和Java语言实现。首先要求学生以C语言的函数方式计算面积,并通过函数调用实现程序,如图2所示;再引导学生设计三角形类,并通过对象调用方法实现程序功能,如图3所示。在此过程中,学生会潜移默化的对比两种思维方式的差异,从而掌握面向对象中类的封装功能,理解对象的含义,并学会应用对象调用方法实现功能。

图2 面向过程方式

Fig.2 Process-oriented approach

图3 面向对象方式

Fig.3 Object-oriented approach

3.2   基于CDIO的“互动式”教学方法

教学过程中改变传统课堂授课方式,开展基于CDIO(Conceive-构思、Design-设计、Implement-实现和Operate-运作)的互动式教学方法,通过“提出问题/需求引导学生讨论→设计→编码→演示”的五大环节,将理论与实践进行交叉,使学生在做中完成知识理论学习[5],提高学习兴趣,激发学生自主学习潜能。

(1)提出问题:某公司有若干雇员,需设计程序进行员工信息的管理,思考如何表示员工的信息,并实现对于员工信息的操作。

(2)引导讨论:分析员工的静态属性,如:name,sex,age,

salary,hireDay;分析员工行为,如:getName(),setName(),

getHireDay(),setHireDay(),raiseSalary(),…引导学生进行小组讨论。

(3)进行设计:引导学生利用UML进行类的设计,如图4所示,理解属性和方法的含义。

图4 雇员UML类图

Fig.4 Employee UML class graphic

(4)编码与演示:课堂上设计编码与演示的实践环节,充分与学生进行互动,老师演示编码与学生编码演示交叉进行,同时提升学生的动手实践能力。如首先创建员工类,再通过类实例化对象,最后通过对象调用方法实现案例要求的功能。

3.3   实施层次化、阶段性、递进性的教学过程

针对不同的模块实施教学过程管理,主要包含两个层次:①对于基础语法模块采用“点+线”的教学过程:“点”即零碎的知识点,如数据类型(整形、浮点型)、运算符(关系运算符、逻辑运算符)等;“线”即由知识点串起的基础语法。②对于面向对象特性模块采用“面+块”的教学过程:“面”即面向对象的特征语法,如类和对象;由“面”可以组合成“块”,如“类+对象”表示面向对象中的封装思想,“父类+子类”表示继承特性,“抽象+接口”表达多态特性。通过层次化、阶段性、递进性的教学过程,逐步加深学生理解,从而构建面向对象程序设计的思维方式。

4  以面向对象为导向的实践教学改革(Object-oriented practical teaching reform)

CDIO理念的核心是在“做—中—学”,将实践贯穿到面向对象的思维训练中,不断训练学生的动手实践能力[7]。本项目提出“3+1”层次实践体系,如图5所示。3代表按照“分级递进、逐步提高、综合运用”的基本思路设计的三个实践阶段,1代表一个实践教学资源库。

图5 实践教学体系

Fig.5 Practical teaching system

(1)面向对象特性实践教学:在课堂环节融入面向对象特性的验证与体验的实践环节,引导学生思考与对比两种不同的编程思路,通过即时的动手实践消化知识点。

(2)案例式实验教学:在实验环节中,设计“案例式”的实验内容,引导学生进一步验证理论知识点,通过分析、设计和编码,将面向对象的特性融入设计中,融会贯通。

(3)项目式实战教学:在综合性实验中,以实战项目的方式进行分组管理、跟踪和验收。以用户需求为导向,分组进行完整的项目开发流程。在实战训练中,引导学生主动思考、以面向对象的程序设计模式进行项目设计、编码、测试和发布,不断激发其创新和创造的能力。

(4)建立实践教学资源库:包含三个实践环节所需要的示例、案例、项目资源。其中包含三条线索:①以面向对象的特性为线索建设示例分析和对应代码;②以特定功能为线索建设案例库,综合面向对象的多个特性;③以特定用户需求为线索建立项目库,包含项目的需求分析、功能设计、代码等资源。

5  教学改革成果分析(Analysis of teaching reform achievements)

通过以上教学改革的研究和实践,目前取得了一定的成果。课题组按知识模块构建了实践教学资源库,围绕案例制作了教学课件,充分融合到互动式教学方式和渐进式过程中;并基于网络构建了实验平台,学生可以针对案例进行有效练习,及时获得练习成绩。以本校网络工程专业2016级,2017级为例,教学评价良好,以面向对象思维为导向的教学内容以及“案例+项目”的互动教学方式得到了学生的积极反馈与肯定。

6   结论(Conclusion)

通过以面向对象思维为导向进行教学组织,使学生通过案例方式理清基础概念,逐渐理解了面向对象的思维方式;并在案例加项目训练的动手实践的过程中,深入体会面向对象的设计理念,逐步掌握面向对象的程序设计方法。对计算机专业的学生继续学习后续课程打下良好的理论基础和实践基础具有深远的影响。为了更好跟踪教学效果和进行教学质量监督,下一步将更充分利用网络教学平台,通过对教学平台和考试系统的数据分析,在教学过程中分析学生的实际情况,了解学生的学习状态,通过优化案例,調整互动方式,以及加强考核校验进一步提升教学质量。

参考文献(References)

[1] 顾佩华,沈民奋,李升平,等.从CDIO到EIP-CDIO——汕头大学工程教育与人才培养模式探索[J].高等工程教育研究,2008(1):12-20.

[2] 顾佩华,胡文龙,陆小华,等.从CDIO在中国到中国的CDIO:发展路径、产生的影响及其原因研究[J].高等工程教育研究,2017(1):30-49.

[3] 李竹林,张根耀,王文发,等.基于CDIO的计算机专业课程教学改革与效果分析[J].计算机教育,2014(16):64-66.

[4] 姜大志,孙浩军.基于CDIO的主动式项目驱动学习方法研究——以Java类课程教学改革为例[J].高等工程教育研究,2012(4):159-164.

[5] 朱立平,林志英.从面向过程到面向对象思维方式的教学引导[J].计算机教育,2014(5):59-63.

[6] 毕忠勤,周平.基于CDIO理念的面向对象分析与设计课程教学改革探索[J]. 计算机教育,2018(2):51-53.

[7] 姚敦红.案例引导多项目实施的面向对象的分析与设计课程[J].计算机教育,2018(10):166-169.

作者简介:

钟  原(1982-),女,硕士,讲师.研究领域:机器学习,图形图像处理.

刘忠慧(1980-),女,硕士,副教授.研究领域:深度学习,人工智能.

基金项目:2018年四川省高等教育人才培养质量和教学改革项目“多学科融合的项目引导式双创人才培养研究与实践”(编号:JG2018-447);2018年西南石油大学本科课程教学改革研究项目“基于MSF模式的Java程序设计课程改革与实践”(编号:X2018KZ029);2018年西南石油大学计算机科学学院教育教学改革研究项目“基于CDIO以面向对象程序设计思维为导向的教学研究与实践”.

猜你喜欢

项目驱动实践教学体系互动式教学
“互联网+”创新会计人才培养模式研究与实践
论互动式教学在小学语文教学中的应用
《金融市场学》课程教学新方法探析
《金融市场学》课程教学新方法探析
生物工程本科专业毕业生就业情况分析
市场营销专业小学期实践教学体系构建的研究
依托工作室的软件工程实践教学研究
基于物联网项目驱动的嵌入式系统教学改革的研究与实践
基于“红色之旅”项目驱动的《调酒与咖啡》工作室制人才培养机制探讨
试论基于项目驱动的机械制图教学改革