《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

提交評論