《Python程序设计(第3版)》教学大纲(参考)_第1页
《Python程序设计(第3版)》教学大纲(参考)_第2页
《Python程序设计(第3版)》教学大纲(参考)_第3页
《Python程序设计(第3版)》教学大纲(参考)_第4页
《Python程序设计(第3版)》教学大纲(参考)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE1《Python程序设计(第3版)》教学大纲院(系、部):教研室:日期:2020年6月1日目录TOC\o"1-3"\h\u16730一、总体教学目标和要求 36393二、教学中应注意的问题 43652三、教学内容与教学重点 424349第1章基础知识 410966第2章Python数据结构 723440第3章选择与循环 824998第4章字符串与正则表达式 919146第5章函数设计与使用 104251第6章面向对象程序设计 128477第7章文件操作 1322691第8章异常处理结构与程序调试 162593第9章GUI编程(选讲) 1729674第10章网络程序设计(选讲) 1726740第11章安卓平台的Python编程(选讲) 1812054第12章Windows系统编程(选讲) 19163第13章多线程与多进程编程(选讲) 209489第14章数据库编程(选讲) 214151第15章多媒体编程(选讲) 226755第16章逆向工程与软件分析(选讲) 2323093第17章科学计算与可视化(选讲) 2431794第18章密码学编程(选讲) 2615506四、各章节课时分配 2726714五、教材、参考书目与在线练习平台 28

课程名称:Python程序设计课程编号:课程性质:限制性选修考核方式:考查建议学时:48+32或48+16前导课程:数据结构、数据库原理、计算机网络、计算机图形学、数字图像处理、操作系统、软件工程等。适用专业:计算机科学与技术、软件工程、网络工程、通信工程、数字媒体技术、数据科学及其他工科专业,建议至少讲授13个以上的章节;非计算机相关专业或公共课可以讲完前7章再从第9章及后面章节中选讲2、3章。一、总体教学目标和要求通过本课程的学习,使得学生能够:了解Python编码规范,能够编写出优雅的Python程序;熟练使用Python的函数式编程模式;熟练运用Python内置函数与运算符、列表、元组、字典、集合、字符串等基本数据类型以及推导式、切片、序列解包等语法来解决实际问题;熟练掌握Python选择结构、循环结构、异常处理结构的语法和应用,能够编写鲁棒性较强的程序;熟练掌握函数设计与面向对象程序设计有关内容,具备一定的代码复用和设计复用能力;熟练使用字符串对象方法和正则表达式处理文本;熟练掌握文本文件与常见类型的二进制文件操作;了解不同领域的Python扩展模块并能够解决文件操作、GUI、图形图像处理、音乐编程与语音识别、视频采集与处理、多线程与多进程编程、数据库编程、套接字编程、网络爬虫、逆向工程与软件分析、数据分析、科学计算可视化、密码学、安卓等领域中的实际问题;具有一定的代码调试与集成能力;具有较强的学习能力、资料查阅能力和代码阅读能力;具有一定的代码优化与安全编程意识和能力。二、教学中应注意的问题Python编程模式中非常重要的一条是代码要优雅、简洁、直观。除了保证功能正确和适当优化之外,同时还应保证代码具有较强的可读性和可维护性。在教学过程中需要特别注意的是,不要使用其他编程语言的思维去理解和使用Python,不要在Python程序中带有其他编程语言的痕迹,要尽量从最简单的角度去思考和解决问题、实现自己的想法和思路,保证代码的优雅、简洁,让代码更加Pythonic。Python是以快速解决问题为目的的编程语言,教学过程中不建议在语言细节上花费太多时间。使用Python编程解决问题应充分借鉴和使用成熟的内置对象、标准库对象和扩展库对象,尽量避免自主编写完整的业务逻辑,部分具体操作完全可以使用扩展库来实现,大幅度提高开发效率,在开发速度和运行速度之间达到最佳平衡。例如,如果需要进行排序则直接使用内置函数sorted()或列表的sort()方法进行排序,切不可再使用选择法排序、冒泡法排序、快速排序算法或堆排序等排序算法来编写代码实现;如果要测试一段代码的运行时间,应使用标准库time或timeit中的有关函数;要测试一个年份是否为闰年,应使用calendar标准库中的isleap()函数;词频统计推荐使用标准库collections中的Counter类;组合、排列推荐使用标准库itertools中的combinations()和permutations()函数;要进行图像处理,建议使用扩展库pillow;要进行计算机图形学编程,建议使用扩展库pyopengl;要进行数组运算、矩阵运算以及科学计算方面的工作,建议使用扩展库numpy和scipy;要进行数据分析与数据处理,建议使用pandas扩展库;要进行数据可视化与科学计算可视化,建议使用matplotlib扩展库;要进行编写爬虫程序,建议使用标准库urllib或扩展库requests、bs4、scrapy;中文分词推荐使用扩展库jieba;拼音处理推荐使用pypinyin;密码学编程建议使用扩展库pycryptodome等等。另外,在教学过程中,建议简单介绍语法之后通过大量例题来演示其用法,尽量不要枯燥地读语法文档,要以用促学,案例驱动,兴趣驱动。最后,针对不同专业和不同层次的学生,一定要对教材中的内容进行选讲,主次分明,重点讲授学生确实需要和确实难以通过自学掌握的知识点,其他内容可以一带而过或让学生自学或者用到时再进行查阅。教学内容与教学重点建议前7章都讲,后面的章节可以根据学生所在专业的培养方向和目标进行选讲。第1章基础知识1.1如何选择Python版本教学目标:了解Python版本发展历史。教学内容:1)Python版本变更历史和版本号含义;2)Python常见应用领域。教学重点:如何选择正确的Python版本。建议使用Python3.6或更高版本,不要使用Python2.x的版本。教学难点:Windows平台中环境变量path的配置。教学方式:讲解。作业:习题51.2Python安装与简单使用教学目标:熟练安装和搭建Python开发环境。教学内容:1)从官方网站下载并安装Python解释器;2)下载并安装Anaconda3、PyCharm、VSCode或其他开发环境,任选其一,配置Python解释器;3)IDLE交互模式和程序模式的使用,常用快捷键,运行Python程序的几种方式。教学重点:Windows平台的Python安装。教学难点:Windows平台中环境变量path的作用以及在运行程序时的影响。教学方式:讲解+演示+练习。1.3使用pip管理扩展库教学目标:掌握使用pip在线安装与离线安装扩展库的方法。教学内容:1)pip命令的运行方式;2)pip命令支持的常用子命令;3)pip命令支持的常用选项;4)使用pip命令查看、在线安装、升级、卸载扩展库,可以以numpy、pandas、jieba、openpyxl、python-docx为例进行演示和练习;5)指定pip命令的默认源;6)使用pip命令通过离线whl文件安装扩展库。教学重点:使用pip安装和升级Python扩展库。教学难点:使用pip命令通过离线whl文件安装扩展库。教学方式:讲解+演示+练习。1.4Python基础知识教学目标:1)了解列表、元组、字典、集合、字符串等常用Python内置类型;2)熟练掌握运算符、内置函数的用法;3)4理解变量的作用和命名规则;4)掌握标准库对象与扩展库对象的导入和使用。教学内容:1)Python常用内置类型;2)Python变量;3)Python自动内存管理功能;4)数字、字符串基本知识;5)Python运算符与表达式;6)常用Python内置函数,基本输入输出;7)Python标准库和扩展库对象的导入与使用。教学重点:列表、元组、字典、集合、字符串基本概念,运算符,内置函数,变量命名。教学难点:Python自动内存管理功能。教学方式:讲解+演示+练习+作业。作业:习题1、2、3、4、6、7、81.5Python代码编写规范教学目标:了解Python代码编写规范。教学内容:缩进和空格、空行在Python程序中的作用和重要性,注释的形式和注释的作用,测试驱动的程序设计方式。教学重点:代码缩进的作用和重要性。教学方式:讲解+演示。1.6Python文件名教学目标:理解.py、.pyw、pyc扩展名的不同。教学内容:.py、.pyw、.pyc等文件名的作用,Python伪编译,Python3.5之后不再使用.pyo文件。教学方式:几句话快速带过。1.7Python程序的__name__属性(选讲)教学目标:里面__name__特殊属性的含义。教学内容:根据__name__属性来确定Python程序的当前使用方式。教学方式:演示+练习。作业:习题91.8编写自己的包(选讲)教学目标:理解模块的概念。教学内容:Python程序的组织方式。教学重点:导入自己的模块。教学方式:讲解+演示+练习。1.9Python快速入门教学目标:熟练掌握一种Python开发环境的使用,掌握Python程序的编写和运行方式。教学内容:讲解书上例题。教学重点:编写优雅的Python代码。教学方式:讲解+练习+作业。作业:习题101.10TheZenofPython教学方式:学生自学。第2章Python数据结构2.1列表教学目标:熟练掌握元素常用方法、切片和列表推导式。教学内容:1)列表对象的创建与删除;2)列表元素的增加与删除;3)列表元素访问与计数;4)有序序列的双向索引;5)成员资格判断运算符in;6)切片操作;7)列表排序;8)列表推导式。教学重点:列表对象的方法,列表推导式。教学难点:原地操作与非原地操作的区别。教学方式:讲解+演示+练习+作业。作业:习题1、2、3、4、5、9、10、12、13、14、16、182.2元组教学目标:1)熟练掌握元组用法;2)理解元组不可变的特定以及对用法的影响;3)熟练掌握序列解包和生成器推导式的用法。教学内容:1)元组对象的创建与删除;2)元组与列表的区别;3)序列解包;4)生成器推导式。教学重点:序列解包。教学难点:生成器对象的惰性求值特点。教学方式:讲解+演示+练习。作业:习题112.3字典教学目标:1)熟练掌握字典常用方法;2)熟练掌握字典在频次统计方面的应用。教学内容:1)字典对象的创建与删除;2)字典元素的读取;3)字典元素的添加与修改;4)有序字典对象的使用;5)使用字典来计数。教学重点:字典的get()方法,使用“键”作为下标为字典元素赋值语句的两种含义。教学难点:使用“键”作为下标为字典元素赋值语句的两种含义。教学方式:讲解+演示+练习+作业。作业:习题6、7、8、172.4集合教学目标:理解集合中元素不重复的特点并能够熟练运用这个特点。教学内容:1)集合对象的创建与删除;2)集合的并、交、差以及对称差等运算;3)集合的大小比较;4)使用集合来提取序列中的唯一元素。教学重点:集合运算。教学难点:集合的大小比较。教学方式:讲解+练习。2.5其他数据结构(选讲)教学内容:栈、队列、堆、链表、二叉树、图等数据结构的实现。教学方式:讲解+练习。第3章选择与循环3.1运算符与条件表达式教学目标:理解表达式的值与True/False的等价关系。教学内容:Python运算符,条件表达式。教学重点:表达式与True/False的等价关系。教学难点:表达式与True/False的等价关系。教学方式:讲解+演示。作业:习题23.2选择结构教学目标:理解不同形式选择结构的执行流程。教学内容:单分支选择结构、双分支选择结构、多分支选择结构、选择结构的嵌套。教学重点:缩进对代码逻辑的影响。教学难点:缩进对代码逻辑的影响。教学方式:讲解+练习+作业。作业:习题3、53.3循环结构教学目标:1)理解for循环和while的执行流程;2)理解带else的循环结构执行流程;3)养成优化循环结构代码的习惯和意识。教学内容:1)for循环、while循环执行流程和使用场合;2)range对象在循环中的使用;3)成员测试符in在循环语句中的使用;4)带有else子句的循环结构;5)循环代码的优化。教学重点:for循环、while循环执行流程和使用场合,带有else子句的循环结构;循环代码的优化。教学难点:for循环的本质,带有else子句的循环结构。教学方式:讲解+演示+练习。作业:习题4、6、73.4break和continue语句教学目标:理解break和continue语句对程序执行流程的影响。教学内容:break和continue语句的作用。教学重点:break语句的作用。教学难点:break语句对带else语句的循环结构的影响。教学方式:讲解+演示。3.5综合运用教学内容:教材例题讲解。教学重点:编写Pythonic代码,一题多解,部分标准库对象的应用。教学难点:编写Pythonic代码、代码优化。教学方式:讲解+练习+作业。作业:习题8、9、10、11、12第4章字符串与正则表达式4.1字符串教学目标:1)理解字符串编码格式;2)熟练掌握字符串常用方法。教学内容:1)字符串编码;2)字符串格式化;3)encode()、find()、index()、split()、join()、replace()、maketrans()、translate()、strip()、startswith()、endswith()、center()、ljust()、rjust()等字符串常用方法;4)切片;5)内置函数和标准库函数对字符串的操作;6)字符串常量;7)可变字符串。教学重点:字符串方法format()、encode()、index()、split()、join()、maketrans()/translate()、strip()、startswith()/endswith()、center()。教学难点:字符串不可变,所有涉及修改字符串的方法都是返回新字符串,不对原来的字符串做任何修改。教学方式:讲解+演示+练习+作业。作业:习题1、2、3、44.2正则表达式(选讲)教学目标:1)了解正则表达式基本语法;2)了解标准库re中的常用函数。教学内容:1)正则表达式元字符,正则表达式基本语法,子模式扩展语法;2)re模块常用函数,正则表达式对象。教学重点:正则表达式元字符,re模块函数findall()、sub()、split()。教学难点:正则表达式语法。教学方式:讲解+演示+练习。第5章函数设计与使用5.1函数定义教学目标:熟练掌握函数定义和调用的语法。教学内容:Python函数的定义和调用形式,注释的作用。教学重点:函数体的缩进,函数命名规范。教学难点:函数体的缩进。教学方式:讲解+演示。5.2形参与实参教学目标:理解形参和实参的概念。教学内容:1)形参与实参的概念;2)在函数内直接修改形参不影响实参;3)如果形参为可变容器对象,在函数内通过下标或可变容器对象自身的原地操作方法可以影响实参。教学重点:调用函数时实参的引用传递给形参。教学难点:调用函数时实参的引用传递给形参。教学方式:讲解+演示。5.3参数类型教学目标:理解不同形式的参数传递的区别和用法。教学内容:位置参数、默认值参数,关键参数,可变长度参数,参数传递时的序列解包。教学重点:不同类型参数的形式和函数调用方式。教学难点:可变长度参数,参数传递时的序列解包。教学方式:讲解+演示+练习+作业。作业:习题4、6、7、85.4return语句教学目标:1)理解return语句的作用;2)理解没有返回值的函数和有返回值的函数在用法上的区别。教学内容:如果函数中没有(或没有执行)return语句或者执行了没有返回值的return语句,则将被认为返回空值None。教学重点:常用内置函数和标准库函数的返回值。教学难点:没有返回值的函数调用不能出现在等于号的右侧。教学方式:讲解+演示。作业:习题25.5变量作用域教学目标:理解作用域的概念以及对变量访问的影响。教学内容:局部作用域,全局作用域,nonlocal变量。教学重点:局部作用域,全局作用域。教学难点:global关键字的作用,变量访问顺序。教学方式:讲解+演示+练习。作业:习题1、95.6lambda表达式教学目标:理解lambda表达式的功能及其适用场合。教学内容:使用lambda表达式声明匿名函数和具名函数,把lambda表达式作为函数参数。教学重点:lambda表达式在功能上等价于函数,lambda表达式的应用场景。教学难点:lambda表达式中只能包含一个表达式,不能包含复杂结构。lambda表达式在map()、filter()、reduce()、max()、min()、sorted()以及列表方法sort()中的作用。教学方式:讲解+演示+练习+作业。作业:习题55.7案例精选教学目标:能够熟练编写函数解决实际问题。教学内容:本节全部例题。教学重点:代码功能与思路,如何编写Pythonic代码。教学方式:讲解+练习+作业。作业:习题11、12、13、14、155.8高级话题教学目标:1)理解并熟练掌握Python的函数式编程模式;2)理解函数嵌套定义与修饰器的原理;3)理解生成器函数与生成器对象的工作原理。教学内容:1)map()、reduce()、filter();2)函数嵌套定义,修饰器;3)生成器函数;3)dis模块,反编译Python字节码。教学重点:函数嵌套定义,修饰器,生成器函数。教学难点:函数嵌套定义,修饰器。教学方式:讲解+演示+练习。作业:习题3第6章面向对象程序设计6.1类的定义与使用教学目标:1)了解面向对象程序设计有关的基本概念与术语;2)熟练定义和使用类;3)理解self参数的含义;4)理解类成员与实例成员以及私有成员与公有成员的概念和区别。教学内容:Python类的定义,self与cls参数,类成员与实例成员,私有成员与公有成员。教学重点:class关键字,self参数,私有成员与公有成员。教学难点:self参数,私有成员。教学方式:讲解+演示+练习+作业。作业:习题1、36.2类的方法教学目标:理解类方法、实例方法、静态方法的不同。教学内容:类方法、实例方法、静态方法的定义与调用形式,以及分别能够访问类和实例中的哪些成员。教学重点:实例方法,类方法,类成员和实例成员的访问权限。教学难点:类成员和实例成员的访问权限。教学方式:讲解+演示+练习。6.3属性教学目标:熟练定义和使用属性。教学内容:属性的定义与使用,使用属性和公开数据成员的区别。教学重点:只读属性、可读可写属性、可读可写可删除属性的定义。教学难点:函数property()的用法。教学方式:讲解+练习。6.4特殊方法与运算符重载(选讲)教学目标:理解特殊方法与运算符和内置函数的对应关系。教学内容:Python特殊方法的作用,特殊方法与运算符、内置函数的对应关系。教学重点:特殊方法与运算符、内置函数的对应关系。教学难点:特殊方法与运算符、内置函数的对应关系。教学方式:讲解+练习+作业。作业:习题2、5、66.5继承机制教学目标:1)理解继承机制的作用和工作原理;2)理解方法解析顺序MRO。教学内容:单继承,多继承,方法解析顺序MRO。教学重点:Python支持多继承,如果多个父类中有相同名字的成员,Python解释器将按照从左向右的顺序在所有父类中进行搜索,并且使用第一个遇到的成员。教学难点:方法解析顺序MRO。教学方式:讲解+演示+作业。作业:4、7、8第7章文件操作7.1文件基本操作教学目标:1)理解文本文件与二进制文件的区别;2)熟练掌握内置函数open()以及文件对象的常用方法。教学内容:1)文本文件与二进制文件的区别;2)内置函数open(),以及read()、readline()、readlines()、write()、writelines()、seek()等文件对象常用方法。教学重点:内置函数open()的mode和encoding参数,以及read()、readline()、readlines()、write()、writelines()、seek()方法。教学难点:1)使用不同模式打开文件时,文件指针的位置有所不同;2)读写文件时,文件指针的位置会随着读写操作而移动;3)使用读模式打开的文件不能写,使用写模式打开的文件也不能读。教学方式:讲解+演示+练习。作业:习题77.2文本文件基本操作教学目标:1)理解编码格式对文本文件内容读写的影响;2)熟练掌握文本文件的读写操作。教学内容:read()、write()、seek()等文件对象常用方法的运用。教学重点:1)内置函数open()的mode和encoding参数;2)文件对象的read()、readline()、readlines()、write()、writelines()、seek()方法。教学难点:文本文件的编码格式对内容读写操作的影响。教学方式:讲解+练习+作业。作业:习题1、47.3二进制文件操作教学目标:1)理解二进制序列化的基本原理;2)了解pickle、struct模块的用法。教学内容:1)序列化和反序列化的概念和作用;2)二进制文件读写方式;3)序列化模块pickle、struct、marshal、shelve。教学重点:pickle、struct、shelve模块的用法。教学难点:序列化和反序列化的概念和作用。教学方式:讲解+演示+练习。作业:习题57.4文件级操作教学目标:熟练掌握os、os.path、shutil模块中关于文件操作的函数的用法。教学内容:os、os.path与shutil模块中函数的功能和使用。教学重点:1)os模块中的函数remove()、rename()、listdir()、startfile();2)os.path模块中的函数dirname()、basename()、exists()、getsize()、isfile()、isdir()、join();3)shutil模块中的函数copyfile()、make_archive()、unpack_archive()。教学难点:相对路径与绝对路径。教学方式:讲解+练习。7.5目录操作教学目标:1)熟练掌握os、os.path模块中关于目录操作的函数的用法;2)理解深度优先和广度优先的文件夹遍历方法。教学内容:os、os.path模块中与目录操作有关的常用函数,当前目录的查看与修改,文件夹的创建与删除,文件夹遍历的几种方式。教学重点:os.path.join()函数,目录树遍历的深度优先和广度优先方式。教学难点:目录树遍历的广度优先方式。教学方式:讲解+练习+作业。作业:习题2、3、6、8、97.6案例精选教学目标:了解使用Python操作Office文件的方法。教学内容:CRC32与MD5计算,文件类型检测,Excel文件操作,Word文件操作,PowerPoint文件操作。教学重点:Excel文件操作,Word文件操作,PowerPoint文件操作。教学难点:Word文件与Excel文件结构和内容组织形式。教学方式:讲解+练习+作业。作业:习题10、11、12第8章异常处理结构与程序调试8.1基本概念教学目标:理解异常表现形式和可能发生异常的原因。教学内容:异常的概念与表现形式、可能导致代码发生异常的情况。教学重点:异常概念与表现形式。教学难点:阅读异常信息,准确定位有问题的代码。教学方式:讲解+演示。作业:习题58.2Python异常类与自定义异常教学目标:理解异常类层次结构。教学内容:Python内建异常类,自定义异常类。教学重点:Python内建异常类。教学难点:Python内建异常类的层次关系。教学方式:讲解。作业:习题18.3Python中的异常处理结构教学目标:熟练掌握不同形式异常处理结构的用法。教学内容:常见异常处理结构。教学重点:常见异常处理结构的形式。教学难点:异常处理代码中可能再次引发异常。教学方式:讲解+练习+作业。作业:习题48.4断言与上下文管理教学目标:了解assert和with语句的用法。教学内容:assert与with语句。教学重点:with语句的用法。教学方式:讲解+演示。作业:习题2、38.5使用IDLE调试代码(选讲)教学目标:熟练掌握使用IDLE调试代码的方法。教学内容:IDLE调试界面操作。教学方式:演示+练习。8.6使用pdb模块调试程序(选讲)教学目标:了解使用pdb模块调试程序的方法。教学内容:pdb常用命令,使用交互模式、命令行模式、程序中嵌入断点等几种方式使用pdb调试功能。教学方式:讲解+演示+练习。作业:习题6第9章GUI编程(选讲)9.1tkinter基础教学目标:了解tkinter常用组件以及tkinter应用程序开发基本流程。教学内容:1)tkinter标准库的基本结构、常用组件的用途;2)tkinter应用程序开发基本流程。教学重点:常用组件的用途。教学难点:tkinter应用程序开发流程。教学方式:讲解。作业:习题2、39.2tkinter精彩编程教学目标:熟练使用tkinter开发GUI程序。教学内容:用户登录界面、选择类组件应用、简单文本编辑器、简单画图程序、电子时钟程序、简易计算器、桌面放大镜、抽奖程序、猜数游戏、图片查看器程序。教学重点:可以选择3-5个案例进行讲解。教学方式:讲解+演示+练习+作业。作业:习题1、4、5、6、7、8,至少选做3个第10章网络程序设计(选讲)10.1计算机网络基础知识教学目标:了解计算机网络常见概念和术语。教学内容:OSI参考模型、TCP/IP协议族、网络协议三要素、IP地址与MAC地址、套接字概念与用途、应用层常见协议、传输层常见协议。教学方式:讲解+回顾+提问。10.2UDP和TCP编程教学目标:能够编写程序使用TCP和UDP协议进行通信。教学内容:UDP协议与TCP协议的区别,标准库socket对UDP和TCP套接字的支持,使用UDP和TCP协议进行通信。教学重点:使用UDP和TCP协议进行通信。教学难点:使用UDP和TCP协议进行通信。教学方式:讲解+演示+练习+作业。作业:习题1、310.3Socket编程案例精选教学目标:熟练掌握标准库socket和扩展库psutil的用法。教学内容:嗅探器工作原理、多进程端口扫描器、查看本机所有联网程序信息、查看局域网内IP地址与MAC地址对应关系、查看本机网络流量、局域网内服务器自动发现、多线程+Socket实现素数远程查询。教学重点:socket、psutil模块函数应用。教学难点:socket、psutil模块函数应用。教学方式:讲解+演示+练习+作业作业:习题2、5、610.4网页内容读取与网页爬虫教学目标:了解HTML基本语法、网页基本结构,能够编写程序采集网页上的内容。教学内容:urllib模块的应用、域名处理基础知识、网页爬虫实战。教学重点:urllib模块的应用、网页爬虫实战。教学难点:目标网页源代码分析,使用正则表达式提取网页中的信息。教学方式:讲解+演示+练习+作业。作业:习题4、7、8、9第11章安卓平台的Python编程(选讲)11.1QPython简介教学目标:能够安装QPython3或PyDroid3以及常用扩展库。教学内容:QPython安装与简单使用。教学方式:讲解+练习。11.2安卓应用开发案例教学目标:能够在安卓手机上编写简单程序。教学内容:在屏幕上显示字符串、获取用户输入并在屏幕上显示字符串、扫描并显示条形码信息、自动拍照、获取GPS和罗盘信息、编写WebAPP、kivy包生成按钮与绘制椭圆、生成二维码。教学重点:android、androidhelper、sl4a、kivy模块的应用。教学方式:讲解+练习。作业:课后习题第12章Windows系统编程(选讲)12.1注册表编程教学目标:1)了解Windows注册表基本结构;2)了解使用winreg、win32api、win32con模块操作注册表的方法。教学内容:1)Windows注册表基本概念与相关知识;2)winreg、win32api、win32con模块方法的应用。教学重点:注册表结构、pywin32库的安装与使用。教学难点:Windows系统的注册表结构。教学方式:讲解+演示+练习。作业:习题112.2创建可执行文件教学目标:了解把Python程序打包为二进制可执行程序的方法。教学内容:py2exe、distutils、pyinstaller模块的应用,控制台应用程序与GUI应用程序打包方式的不同。教学重点:pyinstallter打包程序的用法。教学方式:讲解+演示+练习。作业:习题212.3调用外部程序教学目标:了解在Python程序中启动外部程序的方法。教学内容:os模块的system()、popen()、startfile()方法,win32api模块的ShellExecute()方法,win32process模块,使用ctypes模块调用动态链接库或共享库中的函数。教学重点:使用os、pywin32、cytpes启动外部程序。教学难点:使用os、pywin32、cytpes启动外部程序。教学方式:讲解+演示+练习。作业:习题312.4创建窗口教学目标:了解使用扩展库pywin32创建应用程序窗口的方法。教学内容:win32gui、win32api、win32con等模块的应用,使用不同方式创建应用程序窗口。教学重点:pywin32库的使用。教学方式:讲解+演示+练习。12.5判断操作系统版本教学目标:熟练掌握查看本机Python版本的方法。教学内容:使用不同方式获取Python版本号。教学方式:演示。作业:习题412.6系统运维教学目标:了解psutil、pywin32等扩展库在系统运维方面的应用。教学内容:1)使用扩展库psutil查看CPU、内存、硬盘、进程、登录用户等信息;2)使用pywin32实现事件查看器、切换用户登录身份。教学重点:扩展库psutil、pywin32的使用。教学方式:讲解+演示+练习。第13章多线程与多进程编程(选讲)13.1threading模块教学目标:1)理解线程的概念和运行方式;2)了解标准库threading的常用对象。教学内容:多线程概念、线程运行方式、threading模块基本用法。教学难点:线程数量不是越多越好。教学方式:讲解。13.2Thread对象教学目标:熟练掌握创建线程和启动线程的方法。教学内容:创建线程的方法、线程对象的start()、join()方法与daemon属性。教学重点:创建线程的方法、线程对象的start()、join()方法。教学难点:线程对象的daemon属性。教学方式:讲解+演示+练习+作业。作业:习题1、2、313.3线程同步技术教学目标:理解线程同步的原理和不同机制的实现。教学内容:线程同步的必要性、Lock/RLock对象、Condition对象、Queue对象、Event对象、Semaphore/BoundedSemaphore对象、Barrier对象。教学重点:线程同步的必要性、Lock/RLock对象、Queue对象、Barrier对象。教学难点:临界区的概念。教学方式:讲解+演示+练习。作业:习题413.4多进程编程教学目标:1)理解多进程与多线程编程的本质区别;2)熟练掌握进程的创建与启动方法;3)了解进程间数据交换与进行同步的原理与实现。教学内容:1)创建与启动进程、进程间数据交换、进程同步;2)标准库subprocess。教学重点:进程间数据交换、进程同步。教学难点:进程间数据交换。教学方式:讲解+演示+练习。作业:习题5、6第14章数据库编程(选讲)14.1SQLite应用教学目标:熟练掌握使用Python操作SQLite数据库的方法。教学内容:1)SQLite数据库基本概念;2)标准库sqlite3以及Connection对象、Cursor对象、Row对象。教学重点:sqlite3模块、Connection对象、Cursor对象。教学难点:executemany()方法。教学方式:讲解+演示+练习+作业。作业:习题1、2、6、714.2访问其他类型数据库(选讲)教学目标:了解使用扩展库操作Access、MSSQLServer、MySQL数据库的方法。教学内容:操作Access数据库、操作MSSQLServer数据库、操作MySQL数据库。教学重点:根据情况任选其中一种数据库。教学方式:讲解+演示+练习+作业。作业:习题3、4、5,至少选做1个第15章多媒体编程(选讲)15.1图形编程教学目标:了解在Python程序中使用OpenGL库编写计算机图形学程序的方法。教学内容:PyOpenGL模块的安装与使用、图形编程框架的搭建、绘制文字、绘制基本图形、纹理映射、键盘与鼠标事件的响应和处理。教学重点:PyOpenGL模块的安装与使用、图形编程框架的搭建、绘制文字、绘制基本图形。教学难点:OpenGL编程。教学方式:讲解+演示+练习+作业。作业:习题115.2图像编程教学目标:掌握在Python程序中使用扩展库pillow进行数字图像处理的方法。教学内容:pillow模块的安装与使用,图像文件的打开、保存与显示,图像信息查看,图像点运算,图像格式转换,图像缩放、旋转、增强、裁剪与粘贴,图像滤波、边缘提取、对比度调整,计算椭圆中心,生成比例分配图,生成验证码图片。教学重点:pillow模块的基本用法、图像点运算、图像变换、图像裁剪、图像增强、边缘提取、对比度调整。教学难点:图像变换、图像滤波。教学方式:讲解+演示+练习+作业。作业:习题2、315.3音乐编程(选讲)教学目标:了解在Python程序中使用扩展库pygame、pyaudio以及scipy实现音乐播放和处理的方法。教学内容:pygame模块安装与使用、音乐播放器的设计与实现、wav波形音乐文件处理。教学重点:音乐播放器的设计与实现、wav波形音乐文件处理。教学方式:讲解+演示+练习+作业。作业:习题415.4语音识别(选讲)教学目标:了解在Python程序中使用扩展库pyaudio进行音频数据采集的方法。教学内容:speech模块实现语音识别、使用pyaudio模块编写录音程序。教学重点:使用pyaudio模块编写录音程序。教学难点:音频数据格式的设置。教学方式:讲解+演示+练习。15.5视频处理和摄像头接口调用教学目标:了解在Python程序中使用opencv和扩展库moviepy进行视频处理和采集的方法。教学内容:使用opencv实现avi文件帧提取、使用opencv调用摄像头进行录像、使用moviepy进行视频处理。教学重点:使用opencv实现avi文件帧提取、使用opencv调用摄像头进行录像、使用moviepy进行视频处理。教学方式:讲解+演示+练习。第16章逆向工程与软件分析(选讲)16.1主流项目与插件简介教学目标:了解用于软件分析与逆向工程的常用工具和插件。教学内容:逆向工程与软件分析的重要性,主流软件和插件介绍。教学方式:讲解。16.2IDAPython与ImmunityDebugger编程教学目标:了解使用IDAPython插件和ImmunityDebugger软件进行二进制可执行程序分析和调试的方法。教学内容:1)IDAPython插件的安装与使用,PE文件的概念及其在Windows平台的地位,使用IDAPython简单分析PE文件;2)ImmunityDebugger调试器的使用与简单操作,使用ImmunityDebugger寻找PE文件中的循环、打包器或指令。教学难点:ROP攻击以及ROPGadgets简单识别。有些内容需要查阅PE文件规范,并需要学生了解汇编语言的基本语法和有关指令。教学方式:讲解+演示+练习。作业:习题1、2、3、416.3Windows平台软件调试原理教学目标:了解Windows平台的软件调试原理与基本概念。教学内容:Windows调试接口,调试事件的概念,进程调试原理,线程环境或上下文的读取与修改,断点概念与类型。教学重点:Windows调试接口。教学方式:讲解。作业:习题516.4案例精选教学目标:了解在Python程序中使用pefile、pydasm、winappdbg等扩展库进行二进制可执行程序分析的方法。教学内容:pefile、pydasm、winappdbg模块的使用。教学方式:讲解+演示+练习。作业:习题6第17章科学计算与可视化(选讲)17.1numpy简单应用教学目标:熟练掌握Python使用扩展库numpy实现数组运算、矩阵运算的方法。教学内容:1)numpy模块的安装与使用,数据与标量数值的计算,数据与数组的算数运算,数组转置,向量内积,数组元素访问,分段函数,数组切片与布尔运算,加权平均值的计算;2)矩阵不同维度上的求和与均值计算以及最大值、最小值的查找,标准差与方差计算,计算矩阵的逆矩阵、奇异值分解、特征值与特征向量、QR分解、范数以及线性方程组求解。教学重点:数组维度的计算,元素访问,数组与矩阵的区别。教学难点:axis参数的含义与作用,使用布尔数组做下标访问元素。教学方式:讲解+演示+练习。作业:习题117.2scipy简单应用教学目标:了解Python使用扩展库scipy进行数字信号处理、多项式计算以及符号计算的方法。教学内容:scipy模块的安装与使用,常数与特殊函数的使用,使用scipy实现中值滤波,实用scipy进行多项式计算与符号计算。教学重点:使用scipy实现中值滤波,实用scipy进行多项式计算与符号计算。教学难点:中值滤波原理。教学方式:讲解+演示+练习。作业:习题217.3matplotlib简单应用教学目标:熟练掌握Python使用扩展库matplotlib进行数据可视化与科学计算可视化的方法。教学内容:matplotlib模块的安装与使用,折线图、散点图、饼状图、柱状图、雷达图、三维图形的绘制,图例设置,绘图区域切分子图。教学重点:折线图、散点图、饼状图、柱状图、雷达图的绘制,图例设置,绘图区域切分子图。教学难点:图形中显示中文的方法,图例设置,切分子图。教学方式:讲解+演示+练习+作业。作业:习题6、7、8、917.4数据分析模块pandas教学目标:熟练掌握Python使用扩展库pandas进行数据分析与处理的方法。教学内容:扩展库pandas的安装与导入,一维数组Series、二维数组DataFrame的创建,数据选择、修改,缺失值、重复值、异常值处理,数据拆分、合并、分组、离散化、交叉表、透视表、差分、相关系数计算,绘图,文件读写。教学重点:数据选择、修改,缺失值、重复值、异常值处理,数据拆分、合并、分组、离散化、交叉表、透视表、差分、相关系数计算,绘图,文件读写。教学难点:缺失值、重复值、异常值处理,交叉表、透视表。教学方式:讲解+演示+练习+作业。作业:习题3、4、5、1017.5统计分析模块statistics教学目标:了解Python标准库statistics中有关统计的常用函数。教学内容:函数mean()、median()、mode()、pstdev()、pvariance()、variance()、stdev()。教学方式:讲解+演示。第18章密码学编程(选讲)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论