天天看點

python 公開課_[Python視訊公開課]程式設計入門—Python

過去近二十年的“進階語言程式設計”課程多是以 C 語言為主要的講授對象,C 語言具有代碼簡潔緊湊、執行效率高、貼近硬體、可移植性好等優點,廣泛應用于系統軟體、嵌入式軟體等開發。

然而,随着計算機技術的發展和進步,我們可以使用它來解決越來越多的問題,計算機的應用場合也不局限于計算機學科,衆多的學科被冠以“計算”之名,如計算生物學、計算化學等等。在這種情況下,C 語言這種“低級”語言已經越來越難适應計算機發展的潮流,衆多的“進階”語言被創造出來以解決更實際的問題。

另外,C 語言由于其文法過于靈活,所需要掌握的細節概念非常龐雜,即使是實作最簡單的功能,也要涉及很多概念。是以如果教師在教學中不能将學生從文法細節中擺脫出來的話,那麼往往也會吓退很多初學者,不利于學習興趣的培養。

最後就是盡管 C 語言對于學生掌握計算機底層的工作原理非常重要,但 C 語言相對比較“低級”,缺乏進階資料結構,是以要想解決更實際的問題,如字元串的處理、大規模的資料分析等,就需要編寫非常大規模且複雜的代碼,初學者往往會顯得力不從心了。

是以,我們需要一種簡單易學且能解決更實際問題的語言,Python 語言恰好能彌補 C 語言的不足。

本課程除了講授 Python 語言程式設計語言的基本要素,包括基本資料類型、運算、控制結構、函數外,還講授資料結構的概念和應用、算法時空複雜性的概念等知識,使學生在學完本課程後,即可利用計算機解決衆多的實際問題。授課大綱

知識單元一:程式設計語言基礎

第1周:程式設計的基礎知識

教學内容:計算的基本概念,計算機程式設計語言的曆史,Python語言的發展簡史及語言的特點,程式設計語言的基本文法

教學要求:了解馮諾依曼計算機的基本結構;了解編譯型/解釋型語言的差別

第2周:資料類型、運算符與表達式、變量指派與簡單I/O操作

教學内容:數值資料類型(integer、float、boolean),算術運算符、關系運算符和邏輯運算符,表達式,運算符優先級,常用的數學函數,辨別符命名規則,變量指派和指派運算,标準輸入/輸出,辨別符命名規則,變量指派和指派運算,标準輸入/輸出

教學要求:掌握資料類型的功能,不同資料類型的表示方式,它們之間的差別和聯系,掌握标示符命名規則;掌握變量的含義及定義方式;掌握标準輸入/輸出方法,掌握不同運算符的含義;掌握運算符的優先級;了解常用的數學函數

第3周:控制結構與流程圖

教學内容:順序、分支和循環控制結構,嵌套控制結構,流程圖表示方法

教學要求:掌握不同控制結構的差別和聯系;會靈活運用不同的控制結構解決實際的問題;掌握流程圖繪制方法

第4周:函數

教學内容:函數定義與調用,參數傳遞,變量作用域,結構化程式設計的核心思想,程式測試與調試,遞歸的基本思想,遞歸函數應用執行個體。

教學要求:掌握函數的功能;了解參數傳遞的過程;了解變量作用域的含義;了解分而治之的結構化程式設計思想;了解基本的程式測試與調試方法;了解遞歸的基本思想;學會用遞歸的思想解決實際問題

知識單元二:資料結構與算法基礎

第5周:字元串

教學内容:字元串表示、字元串處理、正規表達式

教學要求:了解字元串的概念;掌握字元串的基本操作

第6周:清單、元組和簡單算法

教學内容:清單的概念和基于清單的算法,算法基礎知識(算法的概念和特性,時間和空間複雜度概念),查找、排序等

教學要求:了解清單、元素的基本概念和差別;了解算法的定義;了解時間和空間複雜度概念;掌握基本的查找、排序算法

第7周:字典與集合

教學内容:字典與集合的概念和應用

教學要求:了解字典與集合的基本概念和差別以及應用場合;了解不同資料的優缺點和适用領域;學會綜合應用多種資料結構解決實際問題

參考資料

教材: Allen B. Downey.《Think Python: How to Think Like a Computer Scientist》Green Tea Press.