社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

计算机相关专业“Python程序设计”教学大纲(参考)

Python小屋 • 5 年前 • 529 次点击  

“Python程序设计”

教  学  大  纲(参考)

    

课程名称: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  breakcontinue语句

教学重点:breakcontinue语句的作用。

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类的定义,selfcls参数,类成员与实例成员,私有成员与公有成员。

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  二进制文件操作

教学重点:二进制文件读写方式,序列化模块picklestruct

7.4  文件操作

教学重点:osos.pathshutil模块中方法的运用,判断文件是否存在,文件路径分割与连接,文件重命名,文件复制。

7.5  目录操作

教学重点:os模块常用方法,当前目录的查看与修改,文件夹的创建与删除,文件夹遍历的几种方式。

7.6  高级话题

教学重点:CRC32MD5计算,文件相似度计算,文件类型检测,Excel文件操作,Word文件操作。


8  异常处理结构与程序调试

8.1  基本概念

教学重点:异常的概念与表现形式。

8.2  Python异常类与自定义异常

教学重点:Python内建异常类,自定义异常类。

8.3  Python中的异常处理结构

教学重点:常见异常处理结构,异常处理代码中可能再次引发异常。

8.4  断言与上下文管理

教学重点:assertwith语句。

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  UDPTCP编程

教学重点:UDP协议与TCP协议的区别与实现,socket模块的应用。

10.3  简单嗅探器实现

教学重点:嗅探器工作原理,网卡混杂模式。

10.4  网页内容读取

教学重点:urllib模块的应用,读取网页内容。

10.5  使用Python开发网站

教学重点:IIS配置,ASP文件嵌入Python代码。

10.6  使用web2py框架开发网站


11  大数据处理(选讲)

11.1  大数据框架

教学重点:MapReduceHadoopSpark等大数据处理平台或框架基础知识,可根据需要进行适当扩充。

11.2  Map/Reduce编程案例

教学重点:MapReduce思路。


12  Windows系统编程(选讲)

12.1  注册表编程

教学重点:Windows注册表基本概念与相关知识,win32apiwin32con模块方法的应用。

12.2  创建exe可执行文件

教学重点:py2exedistutils模块的应用,控制台应用程序与GUI应用程序打包方式的不同。

12.3  调用外部程序

教学重点:os模块的system()popen()startfile()方法,win32api模块的ShellExecute()方法,win32process模块,使用ctypes模块调用动态链接库或共享库中的函数。

12.4  创建窗口

教学重点:win32guiwin32apiwin32con等模块的应用,使用不同方式创建应用程序窗口。

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  IDAPythonImmunity 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,扩展库pycryptopycryptodome

18.2  对称密钥密码算法DESAES

教学重点:DESAES算法原理与应用。

18.3  非对称密钥密码算法

教学重点:RSADSA算法原理与应用。


19章  安卓编程(选讲)

19.1  QPython简介

教学重点:QPython安装与使用

19.2  安卓应用开发案例

教学重点:androidandroidhelpersl4akivy模块的应用。


四、教学课时分配

教学课时分配表(参考)

    章 节 名 称

课堂学时

实验学时

课外学时

第1章 Python基础

4


2

第2章 Python数据结构

4

2

4

第3章 选择与循环

4

2

2

第4章 字符串与正则表达式

4

2

2

第6章 函数设计与使用

4

2

2

第6章 面向对象程序设计

4

2

2

第7章 文件操作

6

2

4

第8章 异常处理结构与程序调试

2



第9章 GUI编程(选讲)

2

2

4

第10章 网络程序设计

2

2


第11章 大数据处理(选讲)

2

2


第12章 Windows系统编程(选讲)

2

2

4

第13章 多线程编程

4

2

4

第14章 数据库编程

2

2

2

第15章 多媒体编程

4

2

4

第16章 逆向工程与软件分析(选讲)

2

2


第17章 科学计算与可视化(选讲)

4

2

4

18章  密码学编程

2

2

4

19章  安卓编程(选讲)

2


4

   

五、教材与参考书目

教材:

1. 董付国.《Python程序设计(第2版)》,清华大学出版社,2016

参考书目:

1. 董付国.《Python程序设计开发宝典》,清华大学出版社,2017

2. 董付国.《Python可以这样学》,清华大学出版社,2017

3. 董付国.《玩转Python轻松过二级》,清华大学出版社,2018

4. 张颖,赖勇浩著.《编写高质量代码——改善Python程序的91个建议》.机械工业出版社,2014

5. 杨佩璐,宋强等编著.《Python宝典》.电子工业出版社,2014

6. 张若愚著.《Python科学计算》.清华大学出版社,2012

7. 李锐,李鹏,曲亚东等译.《机器学习实战》.人民邮电出版社.2013

    

 



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/II3ERiTij1
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/12468
 
529 次点击