推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Python的数据结构课程

更新时间:2019-12-25 07:23:18 大小:108K 上传用户:songhuahua查看TA发布的资源 标签:python数据结构 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

使用Python讲授程序设计课程正成为一种趋势,如果从计算机专业的第一门课程开始就使用Python,则必须考虑后续课程的衔接问题,特别是重要的数据结构课程。文章基于使用Python讲授数据结构课程以及编写基于Python数据结构教材的实践经验,探讨使用Python讲授数据结构课程的优势和劣势,指出发现的重点问题并提供相应解决方法。


部分文件列表

文件名 大小
基于Python的数据结构课程.pdf 108K

部分页面预览

(完整内容请下载后查看)
12 期  
计 算 机 教 育  
Computer Education  
32  
2017 12 10 日  
G642  
中图分类号:  
文章编号:1672-5913(2017)12-0032-04  
Python 的数据结构课程  
裘宗燕  
(北京大学学院,北100871)  
摘 要:使Python授程序设计课程正成为一种趋势,如果从计算机专业的第一门课程开始就使用  
Python,则必须考虑后续课程的衔接问题,特别是重要的数据结构课程。文章基于使Python授数  
据结构课程以及编写基Python据结构教材的实践经验,探讨使Python授数据结构课程的优  
势和劣势,指出发现的重点问题并提供相应解决方法。  
关键词Python;数据结构课程;教学;内容和方法  
C 语言的使用日益广泛Pascal 日渐衰落,越  
来越多的国内外高校改C 语言教授数据结构课  
程,而后又有其他语言逐渐加入。目前,数据结  
构课程使用的主要语言包CC++Java 等。  
随着越来越多的高校开始使Python 讲授  
第一门程序设计课程,Python 讨论数据结构  
的问题也被提上议事日程。为了深入探讨有关情  
况,我们首先回答几个经常听到的问题,网上对  
于这些问题也有许多讨论。  
0 引 言  
越来越多的高校开设Python 程课,  
国际上已有很多学校Python 作为第一门计算  
机科学技术课的语言,讲授基本编程的思想、概  
念和技术。这种做法不可避免地带来一个问题:  
这门课程怎样与后续课程衔接,首先是怎样与数  
据结构课程衔接。我们使Python 语言讲授过  
几次计算机基础课,包括基本编程课和数据结构  
课,并编写出版了相关教[1],发现Python  
讲授数据结构课程的现实情况:与原来基C 语  
言等的课程相比,该课程有哪些优势,又有哪些  
需要特别关注和解决的问题。  
1 常见的问Python 表和字典就  
是数据结构课程中讨论的典型数据结构,学习  
Python 编程之后就已经会用了,还需要学习数  
据结构课程吗?我们的回答是,当然需要。一方  
面,数据结构是计算机科学知识体系中最重要的  
环节之一,其核心问题是讨论数据组织和管理的  
思想和技术、计算复杂性的概念和分析等,这些  
都是计算机科学技术领域最重要的基础知识,而  
表、字典等只是传播上述核心知识和技术的媒  
介,是课程所讨论的典型实例,Python 的程序  
设计基础和相关课程既不能提供上述重要知识和  
相关技术,又不可能代替数据结构课程;另一方  
面,要用Python 语言并发挥其作用,必须理  
解数据结构的一般性知识Python 的特殊情况,  
编程语言是非常复杂的工具,编程是最复杂的工  
作,缺乏对所用语言的理解是做不好编程的,数  
据结构课程则能帮助学生深入理Python 的表、  
1 Python与数据结构  
数据结构课程大约20 70 年代从发  
达国家的计算机科学系起步,最初使用伪代码  
讨论和分析,相关教学和教材很大程度上受到文  
[2] 的影响。随着高级语言的广泛使用,数据  
结构课程的教学逐渐转向以高级语言作为讨论工  
具。文[3] 中提出的观点被广泛接受,对数据  
结构课程的发展产生了很大影响。一时之间,绝  
大多数数据结构课程都转向采Pascal 语言。后  
来,抽象数据类型(ADT思想逐渐被数据结  
构教材和课程所采用。20 90 年代以后,随  
作者简介:裘宗燕,男,教授,研究方向为软件理论和技术、程序语义、形式化方法,qzy@ math.pku.edu.cn。  
字典等组合类型。因此,基Python 的数据结  
构课程教学需要兼顾这两方面的需求。  
1晰介绍数据结构课程的基本理论内容。  
这些内容与具体语言无关,包括数据结构和算法  
的基本概念,相应的理论问题(复杂性等数  
据结构的基本构造技术,各种典型数据结构的原  
理、性质、基本使用和基本实现技术等。  
2 个常见的问题:Python 语言讨论数  
据结构的可行性。依据我们的理解和经验来判  
断,这种做法确实可行。目前,国际上已经出版  
了许多使Python 语言讲授数据结构相关内容  
2Python 语言讨论数据结构的实现技  
术,既要体现一般的数据结构技术,又要充分发  
Python 的优点,展示有用的设计Python 编  
程技术,还应说明Python 程序里使用数据结  
构解决问题时可能遇到的问题、分析和思考的方  
法、解决问题的方法等。  
的教材,如在亚马逊网站上可以查到文[4-6],  
但是国内至今未出版中文翻译版本。我们已经  
使Python 讲授过几次数据结构课程,并编写  
出版了相关教[1]。此外,还可以找到国外同行  
研究这个问题的论文,如文[7],也可以找到  
国外一些知名高校发布的有关使Python 讲授  
CS2 [8]这些情况都说使Python  
讲授数据结构课程的做法是可行的。当然,不同  
语言有各自的特点,应用于同一门课程时,也需  
要考虑其特点,扬长避短。如前所述,这门课程  
应该是数据结构基础知识Python 的结合,用  
Python 讲授数据结构既有优势,又有劣势。  
3 个常见的问题:学习数据结构课程对于  
使Python 开发程序(软件特殊意义吗,特  
别是使Python 语言讨论的课程?对此,我们  
的回答是肯定的。因为除了讲授计算机科学技术  
的一般性作用之外,这门课程还对提升学生使用  
Python 工作的能力产生重要影响,主要体现在以  
3 个方面。  
3真分Python 语言中的各种组合数据  
结构(作为理论数据结构的具体实现想法、  
具体设计和实现,各方面的实际性质、优缺点、  
使用时需要注意的问题等。  
Python 授数据结构课程有许多优,  
最重要的优势来Python 语言设计的很多特征  
可以在数据结构课程中发挥作用。  
1Python 的面向对象机制可以作ADT  
(抽象数据类型具体体现,用于实现各种数据  
结构和支持封装。类定义中的实例方法可用于实  
现数据结构操作;继承用于扩充已定义的部件,  
实现扩充(或部分修改新数据结构等。  
2Python 的生成器函数可用于实现各种容  
器结构都需要的遍历操作,使自定义的容器类型  
可以平滑地纳Python 语言的基本编程模型。  
3Python 变量、参数和对象属性都没有类  
型限制,因Python 里定义的函数和对象方法  
都具有通用性,能操作任何满足需要的对象且只  
要求被操作对象提供所需操作,自定义数据结构  
能保存任何类型的数据元素。  
1助于学生理Python 程序的行为,理  
解怎样写Python 程序。  
2助学生在使Python 编程的过程中作  
出正确的设计选择,并为这些选择提供本质性的  
判断根据。例如,保存一批数据时,选用标准类  
型的表或字典,还是自己开发专门结构,并知悉  
原因;向表中加入元素应该用哪个操作等。  
3助于识别程序中的效率陷阱。Python  
程序中很容易创建各种复杂数据对象,这种便利  
如果使用不当,很可能严重影响程序的效率和可  
用性。  
4于上述通用性,教科书里、课堂上和  
学生工作中开发的各种组件,如函数、类等,只  
要定义合适,就能作为辅助性数据结构直接用于  
后续工作,用于实现更复杂的数据结构和操作,  
或直接支持数据结构的应用。这使学生能看到从  
简单到复杂的软件开发过程,看到自己编写的程  
序能真正得到应用,更有成就感。  
2 用Python讲授数据结构课程的目标、  
优势和困难  
Python 授数据结构也存在一些困,  
主要困难源Python 语言的高级和抽象。做算  
法(程序复杂性分析时,首先要确定基本  
操作和基本数据单元,它们必须具O(1) 复杂  
Python 的数据结构课程的教学目标应  
包含以3 方面。  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载