课程名称:Python程序设计 课程性质:限制性选修 考核方式:考查 建议学时:48+32 前导课程:数据结构、数据库原理、计算机网络、计算机图形学、操作系统、软件工程等 适用专业:计算机科学与技术、软件工程、网络工程、通信工程、数字媒体技术大数据应用技术及其他工科专业 一、教学目的和要求 通过本课程的学习,使得学生能够理解Python的编程模式,尤其是函数式编程模式,熟练运用Python内置函数与运算符、列表、元组、字典、集合等基本数据类型以及相关列表推导式、切片等语法来解决实际问题,熟练掌握Python分支结构、循环结构、函数设计以及类的设计与使用,熟练使用正则表达式处理字符串,同时使得学生掌握不同领域的Python扩展模块并能够解决文件操作、大数据处理、图形图像处理、音乐编程与语音识别、多线程编程、数据库编程、网络编程、逆向工程与软件分析、科学计算可视化、密码学、安卓等领域中的实际问题,同时还应培养学生的代码优化与安全编程意识。 二、教学中应注意的问题 Python编程模式中非常重要的一条是代码简单化、问题简单化,同时应保证代码具有较强的可读性。在教学过程中,一定不要在Python程序中带有其他编程语言的痕迹,要尽量从最简单的角度去思考和解决问题、实现自己的想法和思路,保证代码的优雅、简洁,让代码更加Pythonic。 使用Python编程解决问题应充分借鉴和使用成熟的标准库和扩展库,尽量避免自主编写完整的业务逻辑,部分具体操作完全可以使用扩展库来实现,大幅度提高开发效率。例如,如果需要进行排序则直接使用内置函数或方法进行排序,切不可再使用选择法排序、冒泡法排序或堆排序等排序算法来编写代码实现;如果要测试一段代码的运行事件,应使用标准库time中的有关函数;要测试一个年份是否为闰年,应使用calendar标准库中的函数;要进行图像处理,应使用扩展库pillow;要进行计算机图形学编程,应使用扩展库pyopengl;要进行数据分析,应使用pandas扩展库;要进行数据可视化与科学计算可视化,应使用matplotlib扩展库;要进行编写爬虫程序,应使用requests、BeautifulSoup、scrapy扩展库;等等。 三、教学内容 建议第一篇的前8章都讲,第二篇中的部分章节可以根据培养方向和目标进行选讲。 第一篇 Python基础 第1章 基础知识 1.1 Python语言版本之争 教学重点:如何选择正确的Python版本。 1.2 Python安装与简单使用 教学重点:Windows平台的Python安装。 1.3 使用pip管理扩展库 教学重点:使用pip安装和管理Python扩展库。 1.4 Python基础知识 教学重点:Python对象模型,Python变量,Python自动内存管理功能,数字、字符串基本知识,Python运算符与表达式,常用Python内置函数,基本输入输出,Python模块的导入与使用。 1.5 Python代码编写规范 教学重点:缩进和空格、空行在Python程序中的作用和重要性,注释的形式和注释的作用,测试驱动的程序设计方式。 1.6 Python文件名 教学重点:.py、.pyc等文件名的作用,Python伪编译,Python 3.5之后不再使用.pyo文件。 1.7 Python程序的运行方式 教学重点:根据__name__属性来确定Python程序的运行方式。 1.8 编写自己的包 教学重点:Python程序的组织方式。 1.9 Python快速入门 教学重点:Python程序设计入门,了解运算符和表达式以及模块中方法的用法。 1.10 The Zen of Python 第2章 Python数据结构 2.1 列表 教学重点:列表对象的创建与删除,列表元素的增加与删除,列表元素访问与计数,有序序列的双向索引,成员资格判断运算符in,切片操作,列表排序,列表推导式。 2.2 元组 教学重点:元组对象的创建与删除,元组与列表的区别,序列解包,生成器推导式。 2.3 字典 教学重点:字典对象的创建与删除,字典元素的读取,字典元素的添加与修改,有序字典对象的使用,使用字典来计数。 2.4 集合 教学重点:集合对象的创建与删除,集合的并、交、差以及对称差等运算,使用集合来提取序列中的唯一元素。 2.5 其他数据结构(选讲) 教学重点:栈、队列、堆、链表、二叉树、图等数据结构的实现。 第3章 选择与循环 3.1 运算符与条件表达式 教学重点:Python运算符,条件表达式。 3.2 选择结构 教学重点:单分支选择结构、双分支选择结构、多分支选择结构、选择结构的嵌套。 3.3 循环结构 教学重点:for循环、while循环,range对象在循环中的使用,成员测试符in在循环语句中的使用,带有else子句的循环结构,循环代码的优化。 3.4 break和continue语句 教学重点:break和continue语句的作用。 3.5 综合运用 第4章 字符串与正则表达式 4.1 字符串 教学重点:字符串编码,字符串格式化,find()、index()、split()、join()、replace()、translate()、strip()、startswith()、endswith()、center()、ljust()、rjust()等字符串常用方法,字符串常量,可变字符串。 4.2 正则表达式 教学重点:正则表达式元字符,re模块常用方法,正则表达式对象,正则表达式子模式扩展语法。 第5章 函数设计与使用 5.1 函数定义 教学重点:Python函数的定义形式。 5.2 形参与实参 教学重点:形参与实参的概念。 5.3 参数类型 教学重点:默认值参数,关键参数,可变长度参数,参数传递时的序列解包。 5.4 return语句 教学重点:如果函数中没有(或没有执行)return语句或者执行了没有返回值的return语句,则将被认为返回空值None。 5.5 变量作用域 教学重点:局部作用域,全局作用域,nonlocal变量。 5.6 lambda表达式 教学重点:使用lambda表达式声明匿名函数和命名函数,在lambda表达式中调用函数,把lambda表达式作为函数参数。 5.7 高级话题 教学重点:map()、reduce()、filter()、yield语句,dis模块。 第6章 面向对象程序设计 6.1 类的定义与使用 教学重点:Python类的定义,self与cls参数,类成员与实例成员,私有成员与公有成员。 6.2 类的方法 教学重点:类方法,实例方法,静态方法,修饰器。 6.3 类的属性 教学重点:属性的定义与使用,使用属性和公开数据成员的区别。 6.4 类的特殊方法 教学重点:Python类特殊方法与运算符的对应关系。 6.5 继承机制 教学重点:Python支持多继承,如果多个父类中有相同名字的成员,Python解释器将按照从左向右的顺序在所有父类中进行搜索,并且使用第一个遇到的成员。 第7章 文件操作 7.1 文件基本操作 教学重点:文本文件与二进制文件的区别,open()方法以及flush()、close()、read()、write()等文件对象常用方法。 7.2 文本文件基本操作 教学重点:read()、write()、seek()等文件对象常用方法的运用。 7.3 二进制文件操作 教学重点:二进制文件读写方式,序列化模块pickle与struct。 7.4 文件操作 教学重点:os与os.path与shutil模块中方法的运用,判断文件是否存在,文件路径分割与连接,文件重命名,文件复制。 7.5 目录操作 教学重点:os模块常用方法,当前目录的查看与修改,文件夹的创建与删除,文件夹遍历的几种方式。 7.6 高级话题 教学重点:CRC32与MD5计算,文件相似度计算,文件类型检测,Excel文件操作,Word文件操作。 第8章 异常处理结构与程序调试 8.1 基本概念 教学重点:异常的概念与表现形式。 8.2 Python异常类与自定义异常 教学重点:Python内建异常类,自定义异常类。 8.3 Python中的异常处理结构 教学重点:常见异常处理结构,异常处理代码中可能再次引发异常。 8.4 断言与上下文管理 教学重点:assert与with语句。 8.5 用sys模块回溯最后的异常 8.6 使用IDLE调试代码 教学重点:IDLE调试界面操作。 8.7 使用pdb模块调试程序(选讲) 教学重点:pdb常用命令,使用交互模式、命令行模式、程序中嵌入断点等几种方式使用pdb调试功能。 第二篇 Python高级编程与应用 第9章 GUI编程(选讲) 9.1 wxPython 教学重点:wxPython基础知识,Frame的概念与作用,控件与事件处理函数的编写与绑定。按钮、静态文本框、文本框、菜单、工具条、状态条、对话框、单选钮、复选框、组合框、列表框、树形控件的用法。 9.2 tkinter精彩编程 教学重点:tkinter组件用法,tkinter案例。 第10章 网络程序设计 10.1 计算机网络基础知识 教学重点:OSI参考模型,TCP/IP协议族,网络协议三要素,IP地址与MAC地址。可根据需要进行适当扩充。 10.2 UDP和TCP编程 教学重点:UDP协议与TCP协议的区别与实现,socket模块的应用。 10.3 简单嗅探器实现 教学重点:嗅探器工作原理,网卡混杂模式。 10.4 网页内容读取 教学重点:urllib模块的应用,读取网页内容。 10.5 使用Python开发网站 教学重点:IIS配置,ASP文件嵌入Python代码。 10.6 使用web2py框架开发网站 第11章 大数据处理(选讲) 11.1 大数据框架 教学重点:MapReduce、Hadoop、Spark等大数据处理平台或框架基础知识,可根据需要进行适当扩充。 11.2 Map/Reduce编程案例 教学重点:Map、Reduce思路。 第12章 Windows系统编程(选讲) 12.1 注册表编程 教学重点:Windows注册表基本概念与相关知识,win32api、win32con模块方法的应用。 12.2 创建exe可执行文件 教学重点:py2exe、distutils模块的应用,控制台应用程序与GUI应用程序打包方式的不同。 12.3 调用外部程序 教学重点:os模块的system()、popen()、startfile()方法,win32api模块的ShellExecute()方法,win32process模块,使用ctypes模块调用动态链接库或共享库中的函数。 12.4 创建窗口 教学重点:win32gui、win32api、win32con等模块的应用,使用不同方式创建应用程序窗口。 12.5 判断操作系统版本 第13章 多线程编程 13.1 threading模块 教学重点:多线程概念,threading模块基本用法。 教学难点:线程数量不是越多越好。 13.2 Thread对象 教学重点:Thread对象,创建线程的方法,join()方法,daemon属性。 13.3 线程同步技术 教学重点:线程同步技术,Lock/RLock对象,Condition对象,Queue对象,Event对象。 第14章 数据库编程 14.1 SQLite应用 教学重点:SQLite数据库概念,如何在Python中使用SQLite数据库,Connection对象,Cursor对象,Row对象。 14.2 访问其他类型数据库 教学重点:使用pywin32操作ACCESS数据库和MSSQLServer数据库,使用pymssql操作MSSQLServer数据库,使用MySQLDb操作MySQL数据库,SQL语句的编写。 第15章 多媒体编程 15.1 图形编程 教学重点:PyOpenGL模块的使用,图形编程框架的搭建,绘制文字,绘制基本图形,纹理映射,键盘与鼠标事件的接收和处理。 15.2 图像编程 教学重点:PIL模块与pillow模块,图像文件的打开、保存与显示,图像信息查看,图像点运算,图像格式转换,图像缩放、旋转、增强、裁剪与粘贴,图像滤波、边缘提取、对比度调整。 15.3 音乐编程(选讲) 教学重点:pygame模块,音乐播放器的设计与实现。 15.4 语音识别(选讲) 教学重点:speech模块,语音识别。 第16章 逆向工程与软件分析(选讲) 16.1 主流项目与插件简介 教学重点:逆向工程与软件分析的重要性,主流软件和插件介绍。 16.2 IDAPython与Immunity Debugger编程 教学重点:IDAPython插件的安装与使用,PE文件的概念及其在Windows平台的地位,使用IDAPython简单分析PE文件;Immunity Debugger调试器的使用与简单操作,使用Immunity Debugger寻找PE文件中的循环、打包器或指令。 教学难点:ROP攻击以及ROP Gadgets简单识别。有些内容需要查阅PE文件规范,并要求学生了解汇编语言的基本语法和有关指令。 16.3 Windows平台软件调试原理 教学重点:Windows调试接口,调试事件的概念,进程调试原理,线程环境或上下文的读取与修改,断点概念与类型。 16.4 案例精选 第17章 科学计算与可视化 17.1 numpy简单应用 教学重点:numpy模块的安装与使用,数据与标量数值的计算,数据与数组的算数运算,数组转置,向量内积,数组元素访问,矩阵不同维度上的求和与均值计算以及最大值、最小值的查找,标准差与方差计算,数组切片与布尔运算,加权平均值的计算。 17.2 scipy简单应用 教学重点:scipy模块的安装与使用,常数与特殊函数的使用,使用scipy实现中值滤波。 17.3 matplotlib简单应用 教学重点:matplotlib模块的安装与使用,正弦曲线与散点图的绘制,图形显示模式的设置,三维图形绘制。 第18章 密码学编程 18.1 安全哈希算法 教学重点:MD5算法,标准库hashlib,扩展库pycrypto和pycryptodome。 18.2 对称密钥密码算法DES和AES 教学重点:DES和AES算法原理与应用。 18.3 非对称密钥密码算法 教学重点:RSA、DSA算法原理与应用。 第19章 安卓编程(选讲) 19.1 QPython简介 教学重点:QPython安装与使用 19.2 安卓应用开发案例 教学重点:android、androidhelper、sl4a、kivy模块的应用。 写在最后前几天有私信小编要Python的学习资料,小编整理了一些有深度的Python教程和参考资料,从入门到高级的都有,文件已经打包好了,正在学习Python的同学可以下载学习学习。文件下载方式:点击小编头像,关注后私信回复“资料”即可下载。首先把代码撸起来!首先把代码撸起来!首先把代码撸起来!重要的事说三遍,哈哈。“编程是门手艺活”。什么意思?得练啊。 |
|
来自: r_r_nothrus > 《40_IT技术》