基于Python语言的面向对象课程实践教学探讨

时间:2022-04-17 01:22:50

基于Python语言的面向对象课程实践教学探讨

摘要:面向对象开发思维是当代软件工程领域重要的行为规范,是软件工程学生必须要掌握的基本理论。该文论述了运用Python语言作为面向对象课程实践工具的起因、优势和具体实践过程,将基础理论与实践结合,使学生加深领会面向对象领域概念,为后续课程的深入学习和具体工作实践奠定良好的基础。

关键词:Python语言;面向对象;实践教学;教学改革

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)04-0136-02

1 引言

面向对象课程是软件工程专业的基础课程,也是非计算机科学与技术专业学生选修的重要课程,在整个教学体系中占有非常重要的地位。课程教学主要目标是培养学生熟练掌握面向对象的主导思想和行为理念,应用面向对象思想解决和处理实际问题的指导方针和实践方法。目前主流的软件开发过程大多采用面向对象思想,用具体的某种面向对象语言去构建软件主体,同时其也是系统设计、仿真实验、科学计算等众多领域的有力工具。本课程主要介绍了面向对象基本思想、类和对象、抽象、封装、继承、多态、消息、模板等内容,这些理论在向初学者讲解时抽象难懂,学生不能够透过抽象概念理解面向对象的实际应用过程,不能通过实例看到应用结果,使教学效果不理想。这就需要一种支持面向对象程序设计语言作为描述和实践工具,通过上机实践形象化地将面向对象的主要概念原理、设计模式和具体方式方法展示。学生再通过形式化理论深化,又可以熟练运用编程语言进行应用设计开发,为后续课程打下牢固的理论实践储备。所以教学中采用的程序设计语言,对学习面向对象知识至关重要,起着桥梁和阶梯作用,是引入学生掌握面向对象理论体系的重要媒介。

2 现阶段面向对象课程教学主要存在的问题

长期以来,国内众多高校采用C++或Java作为程序设计语言进行面向对象思想、技术和方法的讲授及实践。C++或Java具有面向对象的核心特性,符合面向对象设计思想,特别是Java是纯面向对象语言,要求学生完全按照面向对象模式进行编程。以此作为教学的实践过程,课程前几章大都讲解C++或Java语言开发环境、基础语法、程序设计方法等基础知识,以便为后续章节的学习打下基础。而在教学中后期引入面向对象的核心概念,如类、对象、封装、继承和多态性等主体内容,在教学方法上,采用案例式、研讨式、项目驱动式和实践操作等各种教学方法。这样的课程体系,希望通过具体实际应用,逐渐构建概念的深入过程,贯穿课程整体系列,使学生通过理论实践整合,渐次性的迭代序列,最终掌握面向对象知识体系结构。然而,从最终教学效果来看却不甚理想,通过平时测验和期末考试,达到优秀水平学生人数较少,大部分学生的成绩处于中等偏下的状态。大部分学生对语言运用掌握不好,语法细节模糊不清,不具备编程基本思想和良较好的编程习惯,导致无法对面向对象中的抽象和复杂的概念进行形式化编程实践,从而更难深入理解和运用所学知识。面对这些困难,基础薄弱的学生不得不花费大量时间用于学习基础语法和编写调试过程。但是本门课程的中心环节是面向对象相关概念的掌握和应用,编程语言只是实现此目标的中介,教师在前期的编程语言导入过程,不可能深入过多细节,只是起着引导和示范作用。但在课程核心内容的编程实践时,很多学生在没有熟练掌握编程知识的前提下,无法对面向对象的抽象进行有效的编程实践,导致无法对面向对象程序设计范型、设计模式、多态性等热萦凶派钊氲睦斫狻U庵炙重失效的局面,使学生感到知识体系的混乱无头紊,对本门课程学习失去了兴趣。综上分析,形成学习困惑现象很大程度上是由于C++或Java语言及其开发环境的复杂性和细节繁杂,增加了学习课程的负担和困难。在有限的课程时间内,学习语言反而成了很多学生的主要目标,完全淡化了本门课程的教学宗旨。为了提高学生的编程能力,有时候不得不延长编程语言内容的课时量,压缩课程后面的核心内容,这样就会造成本门课程中心教学内容偏离,变成了C++或Java语言编程课程,对学生发出了错误的引导信息,使其忽略了宏观思想的建立,丢了西瓜捡了芝麻。

3 Python语言的面向对象特性

Python是一种面向对象的解释性计算机程序设计语言,具有功能强大而完善的通用性,具有十多年的发展历史,成熟且稳定。现在国内外众多的大学已将Python课程导入到计算机相关学科的教学体系中。Python本身特性决定了它是一门很好的面向对象程序设计语言,以下几个特点非常有利于面向对象程序设计教学:

(1) 语法简单实用。Python是一门语法简约,表达丰富的计算机程序设计语言。良好的形式化设计使Python程序感觉像阅读英语文稿,其更加接近人类的自然语言思维方式。这种具有伪代码的特性让编程人员专注于设计解决问题的算法过程而不是语言本身的书写细节。Python设计上的这种清晰划一的风格,使代码易读、易学习和易维护。

(2)Python是完全面向对象的语言。函数、模块、数字、字符串都是对象,并且完全支持继承、重载、派生、多继承等面向对象特性,非常适合面向对象课程教学体系的要求。

(3)Python可以在交互模式下运行。通过输入操作指令实现即时的运行结果,对教学硬件设备要求不高,非常适合在有限的课堂时间内,通过形象化展示讲解教学内容。

(4)代码的易管理可维护性。作为一种高级语言,Python可以自动管理程序低层次的运行环境,使程序员不必担心内存泄漏等设计缺陷,能够高效地运行在不同的操作系统上,达到了一致的通用性。Python在编程设计时让违反了缩进规则的程序不能通过编译,以此来强制学生养成良好的编程习惯。

(5)可扩展性。Python可以调用由其他程序语言编译后的程序,也可以将其嵌入到C/C++程序中,实现高级语言的脚本化能力。Python有功能强大的标准函数库,实现了许多常用功能,可快速地完成目标业务的组装。

4 面向对象课程的Python语言实践

由于Python语言简单易学易用,所以对于本课程教学内容的设计,可以快速讲解Python的基础语法和基本应用,将更多教学时间分配到更重要的面向对象程序设计内容上。教学关注点不应在python的基础语法上,程序语言学习只是为了理解面向对象原理的应用工具,要引导学生将更多的精力和时间放在面向对象的概念消化。表1列出了《面向对象》课程教学内容及学时分配。

[序号\&教学内容\&学时分配\&1\&Python语言基础(变量、字符串和编码、列表和字典、逻辑结构、函数)\&8\&2\&面向对象基础(类和对象、封装、继承、多态、接口)\&16\&3\&异常处理和调试机制\&4\&4\&面向对象高级编程(多重继承、元类、设计模式)\&10\&5\&文件处理和序列化\&6\&6\&应用实例\&4\&]

第一部分主要是Python语言基础知识,包括数据类型和变量,变量引用方式,字符串编码方式和Unicode与其他编码的转换,列表的定义和作用,字典的使用,条件逻辑设计,迭代循环设计,函数的定义、作用和应用。对于专业学生,前期已经学习过C语言程序设计,对于程序设计的结构化思想有着很好的基础,已具备了一定的程序设计基础,所以可根据学生接受和理解程度作出适当的课时缩减。对于非专业计算机学生,大部分没有接受过系统的结构化程序训练,对于结构化编程的基础思路、操作技巧不熟练,则可适当增加基础训练学时,为以后学习打下基础。

第二部分是面向对象程序设计基础,主要内容包括面向对象范型、类和对象、封装、继承、重载、多态性、抽象类、接口和模板等,是本课程的主要教学内容。面向对象方法作为一种独具优越性的新方法引入软件开发过程以来,引起了行业越来越广泛的关注和高度重视,一直是计算机界关心的重点。

第三部分异常处理是运行和调试程序的重要工具,它分离了接收程序错误信息和错误处理过程,对明晰程序设计思路,增强代码可读性和可维护性,提高编程效率具有重要的作用。Python的异常处理能力很强大,对于提高学生分析和调试代码能力有着很大的帮助。

第四部分是本n程较为高级的内容,通过学习使用多重继承和设计模式等内容,可依照前人创建的某种设计模式,更加简单快捷地复用成功的软件设计和体系结构,简化设计的复杂性,减少未知风险。Python语言可以简单、灵活和高效地实现设计模式原型。掌握了软件设计模式,可在更高层次上掌握面向对象整体的设计理念。对以后软件开发的学习或职业生涯具有较强的指导作用。

第五部分是文件处理及序列化。它是程序设计中经常要用到的模块与功能,描述了Python程序如何创建、更新及处理数据文件,同时介绍了各种基于文件的数据存储机制。

5 结语

面向对象设计是一门重要的专业基础课程,教学目的是让学生理解面向对象基本理念和应用实践,学会对实际问题进行分析建模,解决具体问题。它是后续的软件项目开发案例课程重要基础理论,能够加深理解软件设计模块化、软件架框理论和各种开发框架等宏观体系等高层次理论,奠定了成为优秀IT领域设计开发人才的升级路径。面向对象思想是现代软件开发过程的基本行为指南,为今后让学生更好地走向社会打下良好的基石。

参考文献:

[1] 鲁特兹. Python学习手册[M]. 3版.侯靖,译.北京: 机械工业出版社,2009.

[2] Mark Lutz.Learning Python[M].东南大学出版社,200(6).

[3] 挪威.Magnus Lie Hetland Python基础教程[M].人民邮电出版社,2010.

上一篇:基于HTK的嵌入式猪只声音识别系统设计 下一篇:基于云计算的高校图书馆建设