《Python程序设计》教学大纲参考.docx
《《Python程序设计》教学大纲参考.docx》由会员分享,可在线阅读,更多相关《《Python程序设计》教学大纲参考.docx(11页珍藏版)》请在冰豆网上搜索。
《Python程序设计》教学大纲参考
《Python程序设计》
教学大纲
院(系、部):
计算机科学与技术学院
教研室:
日期:
2016
年
5
月
1
日
课程名称:
Python程序设计课程编号:
课程性质:
限制性选修考核方式:
考查
参考学时:
64+16
前导课程:
数据结构、数据库原理、计算机网络、计算机图形学、数字图像处理、计算机安全等,根据学生专业可适当微调。
适用专业:
计算机科学与技术、软件工程、网络工程、通信工程、数字媒体技术及其他工科专业
一、教学目的和要求
通过本课程的学习,使得学生能够理解Python的编程模式,熟练运用Python列表、元组、字典、集合等基本数据类型以及相关列表推导式、切片等特性来解决实际问题,熟练掌握Python分支结构、循环结构、函数设计以及类的设计与使用,熟练使用正则表达式处理字符串,同时使得学生掌握不同领域的Python扩展模块并能够解决大数据处理、图形图像处理、音乐编程与语音识别、多线程编程、数据库编程、网络编程、逆向工程与软件分析、科学计算可视化、密码学、安卓平台应用等领域中的实际问题,同时还应培养学生的代码优化与安全编程意识。
二、教学中应注意的问题
Python编程模式中非常重要的一条是代码简单化、问题简单化,保证代码具有较强的可读性。
在教学过程中,一定不要在Python程序中带有其他编程语言的痕迹,要尽量从最简单的角度去思考和解决问题、实现自己的想法和思路,保证代码的优雅、简洁,让代码更加Pythonic。
使用Python编程解决问题应充分借鉴和使用成熟的标准库和扩展库,尽量避免独立编写完整的业务逻辑,部分具体操作完全可以使用扩展库来实现,大幅度提高开发效率。
例如,如果需要进行排序则直接使用内置函数或方法进行排序,切不可再使用选择法排序、冒泡法排序或堆排序等排序算法来编写代码实现。
3、教学内容
不同专业可根据专业特色在以下主要教学内容中进行选取。
对于非计算机专业本科生或研究生,一般建议前8章都讲,第二篇中的部分章节可以选讲。
对于计算机专业本科生,建议全部讲授。
教学重点:
如何选择正确的Python版本。
教学重点:
Windows平台的Python安装。
教学重点:
使用pip安装和管理Python扩展库。
教学重点:
Python对象模型,Python变量,Python自动内存管理功能,数字、字符串基本知识,Python运算符与表达式,常用Python内置函数,基本输入输出,Python模块的导入与使用。
教学难点:
变量类型不需要提前说明,并且可以随时动态改变;Python中一切都是对象,包括函数也是对象。
教学重点:
缩进和空格、空行在Python程序中的作用和重要性,注释的形式和注释的作用,测试驱动的程序设计方式。
教学难点:
时刻保证Python代码的可读性。
教学重点:
.py、.pyc等文件名的作用,Python伪编译,Python3.5之后不再使用.pyo文件。
教学重点:
根据__name__属性来确定Python程序的运行方式。
教学重点:
Python程序的组织方式。
教学重点:
Python程序设计入门,了解运算符和表达式以及模块中方法的用法。
教学重点:
列表对象的创建与删除,列表元素的增加与删除,列表元素访问与计数,有序序列的双向索引,成员资格判断运算符in,切片操作,列表排序,列表推导式。
教学难点:
Python自动内存管理,切片操作与浅复制,列表推导式。
教学重点:
元组对象的创建与删除,元组与列表的区别,序列解包,生成器推导式。
教学难点:
元组与列表的区别,元组的不可变本质,序列解包,生成器与列表推导式的效率比较。
教学重点:
字典对象的创建与删除,字典元素的读取,字典元素的添加与修改,有序字典对象的使用,使用字典来计数。
教学难点:
字典对象的get()方法,访问字典对象时可以使用“键”作为下标。
教学重点:
集合对象的创建与删除,集合的并、交、差以及对称差等运算,使用集合来提取序列中的唯一元素。
教学难点:
Python运算符的多重含义。
教学重点:
栈、队列、堆、链表、二叉树、图等数据结构的实现。
教学重点:
Python运算符,条件表达式。
教学难点:
关系运算符可以连用,Python中的False等价对象,几乎所有Python表达式都可以作为条件表达式来使用。
教学重点:
单分支选择结构、双分支选择结构、多分支选择结构、选择结构的嵌套。
教学难点:
缩进体现代码的业务逻辑。
教学重点:
for循环、while循环,range对象在循环中的使用,成员测试符in在循环语句中的使用,,带有else子句的循环结构,循环代码的优化。
教学难点:
带有else子句的循环结构,循环代码的优化。
教学重点:
break和continue语句的作用。
教学重点:
字符串编码,字符串格式化,find()、index()、split()、join()、replace()、translate()、strip()、startswith()、endswith()、center()、ljust()、rjust()等字符串常用方法,字符串常量,可变字符串。
教学重点:
正则表达式元字符,re模块常用方法,正则表达式对象,正则表达式子模式扩展语法。
教学难点:
正则表达式子模块扩展语法。
教学重点:
Python函数的定义形式。
教学重点:
形参与实参的概念。
教学重点:
默认值参数,关键参数,可变长度参数,参数传递时的序列解包。
教学难点:
任何默认值参数后面不允许出现非默认值参数,可变长度参数,参数传递时的序列解包。
教学重点:
如果函数中没有(或没有执行)return语句或者执行了没有返回值的return语句,则将被认为返回空值None。
教学重点:
局部作用域,全局作用域。
教学难点:
局部作用域与全局作用域的区别,在函数内部定义全局变量的方法。
教学重点:
使用lambda表达式声明匿名函数和命名函数,在lambda表达式中调用函数,把lambda表达式作为函数参数。
教学重点:
map()、reduce()、filter()、yield语句,dis模块。
教学重点:
Python类的定义,self与cls参数,类成员与实例成员,私有成员与公有成员。
教学难点:
带下划线的变量名,Python对象的可变性。
教学重点:
类方法,实例方法,静态方法,修饰器。
教学重点:
属性的定义与使用,使用属性和公开数据成员的区别,Python2.x与Python3.x属性的异同。
教学重点:
Python类特殊方法与运算符的对应关系。
教学重点:
Python支持多继承,如果多个父类中有相同名字的成员,Python解释器将按照从左向右的顺序在所有父类中进行搜索,并且使用第一个遇到的成员。
教学重点:
文本文件与二进制文件的区别,open()方法以及flush()、close()、read()、write()等文件对象常用方法。
教学难点:
文件操作三步骤:
打开文件、操作文件、关闭文件。
教学重点:
read()、write()、seek()等文件对象常用方法的运用。
教学难点:
Python2.x和Python3.x的区别。
教学重点:
二进制文件读写方式,序列化模块pickle与struct。
教学重点:
os与os.path与shutil模块中方法的运用,判断文件是否存在,文件路径分割与连接,文件重命名,文件复制。
教学重点:
os模块常用方法,当前目录的查看与修改,文件夹的创建与删除,文件夹遍历的几种方式。
教学难点:
遍历文件夹时递归的应用。
教学重点:
CRC32与MD5计算,文件相似度计算,文件类型检测,Excel文件操作,Word文件操作。
教学重点:
异常的概念与表现形式。
教学重点:
Python内建异常类,自定义异常类。
教学重点:
常见异常处理结构。
教学难点:
异常处理代码中可能再次引发异常。
教学重点:
assert与with语句。
教学重点:
IDLE调试界面操作。
教学重点:
pdb常用命令,使用交互模式、命令行模式、程序中嵌入断点等几种方式使用pdb调试功能。
教学重点:
wxPython基础知识,Frame的概念与作用,控件与事件处理函数的编写与绑定。
教学重点:
按钮、静态文本框、文本框、菜单、工具条、状态条、对话框、单选钮、复选框、组合框、列表框、树形控件的用法。
教学重点:
OSI参考模型,TCP/IP协议族,网络协议三要素,IP地址与MAC地址。
可根据需要进行适当扩充。
教学重点:
UDP协议与TCP协议的区别与实现,socket模块的应用。
教学重点:
嗅探器工作原理,网卡混杂模式。
教学重点:
urllib模块的应用,读取网页内容。
教学重点:
IIS配置,ASP文件嵌入Python代码,C#与Python混合编程开发ASP.NET网站。
教学重点:
MapReduce、Hadoop、Spark等大数据处理平台或框架基础知识,可根据需要进行适当扩充。
教学重点:
Map、Reduce思路。
教学重点:
Windows注册表基本概念与相关知识,win32api、win32con模块方法的应用。
教学重点:
py2exe、distutils模块的应用,控制台应用程序与GUI应用程序打包方式的不同。
教学重点:
os模块的system()、popen()、startfile()方法,win32api模块的ShellExecute()方法,win32process模块,使用ctypes模块调用动态链接库或共享库中的函数。
教学重点:
win32gui、win32api、win32con等模块的应用,使用不同方式窗口应用程序窗口。
教学重点:
多线程概念,threading模块基本用法。
教学难点:
线程数量不是越多越好。
教学重点:
Thread对象,创建线程的方法,join()方法,daemon属性。
教学重点:
线程同步技术,Lock/RLock对象,Condition对象,Queue对象,Event对象。
13.4多进程编程
教学重点:
创建进程,启动进程,进程同步。
教学重点:
SQLite数据库概念,如何在Python中使用SQLite数据库,Connection对象,Cursor对象,Row对象。
教学重点:
使用pywin32操作ACCESS数据库和MSSQLServer数据库,使用pymssql操作MSSQLServer数据库,使用MySQLDb操作MySQL数据库,SQL语句的编写。
教学重点:
PyOpenGL模块的使用,图形编程框架的搭建,绘制文字,绘制基本图形,纹理映射,键盘与鼠标事件的接收和处理。
教学重点:
PIL模块与pillow模块,图像文件的打开、保存与显示,图像信息查看,图像点运算,图像格式转换,图像缩放、旋转、增强、裁剪与粘贴,图像滤波、边缘提取、对比度调整。
教学重点:
pygame模块,音乐播放器的设计与实现。
教学重点:
speech模块,语音识别。
教学重点:
逆向工程与软件分析的重要性,主流软件和插件介绍。
教学重点:
IDAPython插件的安装与使用,PE文件的概念及其在Windows平台的地位,使用IDAPython简单分析PE文件;ImmunityDebugger调试器的使用与简单操作,使用ImmunityDebugger寻找PE文件中的循环、打包器或指令。
教学难点:
ROP攻击以及ROPGadgets简单识别。
有些内容需要查阅PE文件规范,并要求学生了解汇编语言的基本语法和有关指令。
教学重点:
Windows调试接口,调试事件的概念,进程调试原理,线程环境或上下文的读取与修改,断点概念与类型。
教学重点:
numpy模块的安装与使用,数据与标量数值的计算,数据与数组的算数运算,数组转置,向量内积,数组元素访问,矩阵不同维度上的求和与均值计算以及最大值、最小值的查找,标准差与方差计算,数组切片与布尔运算,加权平均值的计算。
教学重点:
scipy模块的安装与使用,常数与特殊函数的使用,使用scipy实现中值滤波。
教学重点:
matplotlib模块的安装与使用,正弦曲线与散点图的绘制,图形显示模式的设置,三维图形绘制。
17.4数据分析模块pandas
教学重点:
Python标准库pandas应用。
17.5统计分析模块statistics
教学重点:
Python标准库statistics应用。
第十八章密码学编程
18.1安全哈希算法
教学重点:
MD5、SHA系列算法的Python实现与应用。
18.2对称密钥密码算法DES和AES
教学重点:
DES、AES算法的Python实现与应用。
18.3非对称密钥密码算法RSA与数字签名算法DSA
教学重点:
RSA和DSA算法的Python实现与应用。
第十九章安卓平台的Python编程
19.1QPython简介
教学重点:
QPython和QPython3简单介绍。
19.2安卓应用开发案例
教学重点:
安卓平台编程。
4、教学课时分配
以下学时分配表仅供参考,可根据学生专业进行微调。
教学课时分配表(参考)
章节名称
课堂学时
实验学时
课外学时
第一章Python基础
4
2
第二章Python数据结构
6
4
4
第三章选择与循环
4
2
第四章字符串与正则表达式
6
2
2
第五章函数设计与使用
4
2
第六章面向对象程序设计
4
2
2
第七章文件操作
4
2
4
第八章异常处理结构与程序调试
4
2
第九章GUI编程
4
2
2
第十章网络程序设计
2
2
第十一章大数据处理
2
2
第十二章Windows系统编程
4
2
4
第十三章多线程编程
4
2
4
第十四章数据库编程
2
2
2
第十五章多媒体编程
4
2
4
第十六章逆向工程与软件分析
4
2
第十七章科学计算与可视化
2
2
4
第十八章密码学编程
6
4
4
第十九章安卓平台的Python编程
2
2
4
五、参考书目
1.董付国.《Python程序设计》,清华大学出版社,2015
2.董付国.《Python程序设计基础》,清华大学出版社,2015
3.董付国.《Python程序设计》(第2版),清华大学出版社,2016
4.张颖,赖勇浩著.《编写高质量代码——改善Python程序的91个建议》.机械工业出版社,2014
5.杨佩璐,宋强等编著.《Python宝典》.电子工业出版社,2014
6.袁国忠译.《Python编程入门》.人民邮电出版社,2013
7.张若愚著.《Python科学计算》.清华大学出版社,2012
8.赵家刚,狄光智,吕丹桔等编.《计算机编程导论——Python程序设计》,人民邮电出版社,2013
9.李锐,李鹏,曲亚东等译.《机器学习实战》.人民邮电出版社.2013