數據結構(Python)課程教與學(32、48和60學時教學大綱+視頻)

2021-02-13 書圈

《數據結構》課程教學大綱

課程中文名稱: 數據結構。

課程英文名稱:Data Structures。

課程類別:專業基礎課 必修。

課程學分數:3(16學時為1學分)

課程學時數:講課32學時,上機16學時。

授課對象:計算機科學與技術專業。

本課程的前導課程:高級語言程序設計。

本課程的後續課程:作業系統、資料庫應用技術等。

一、教學目的

數據結構課程是計算機專業一門重要的專業基礎課。通過本課程的學習,使得學生從數據邏輯結構、存儲結構和基本運算算法設計三個層面掌握基本的數據組織和數據處理方法,能夠從問題出發設計面向數據結構的求解算法,具有基本的算法時間複雜度和空間複雜度分析能力,為後續課程如作業系統等課程學習打下較好的基礎。

二、教學要求

通過講授和上機實驗,使學生領會數據結構的基本原理,掌握線性表、棧和隊列、串、數組和稀疏矩陣、樹和二叉樹、圖、查找和排序等基本數據結構及其相關算法設計方法,具備較好的數據組織、數據存儲和數據處理能力。

三、授課課時安排(48學時)

知識單元

涵蓋知識點情況*

知識點學時

小計

1、緒論

1.1  什麼是數據結構

1.2  算法及其描述

1.3  Python簡介

1

2

1.4  算法分析:

   ①算法時間複雜度分析;②算法空間複雜度分析

1

2、線性表

2.1  線性表的定義

2.2  線性表的順序存儲結構:

   ①順序表以及線性表基本運算算法在順序表中的實現;②順序表的應用算法設計示例

2

4

2.3  線性表的鏈式存儲結構:

   ①單鍊表以及線性表基本運算算法在單鍊表中的實現;②單鍊表的應用算法設計示例;③雙鍊表以及線性表基本運算算法在雙鍊表中的實現;④雙鍊表的應用算法設計示例

2

3、棧和隊列

3.1  棧:

   ①棧的定義;②順序棧及其實現;③順序棧的應用算法設計示例;④鏈棧及其實現;⑤鏈棧的應用算法設計示例  

2

4

3.2  隊列:

   ①隊列的定義;②順序隊及其實現;③順序隊的應用算法設計示例;④鏈隊及其實現;⑤鏈隊的應用算法設計示例  

2

4、串和數組

4.1 串

   ①串的定義;②串的存儲結構—順序串和鏈串

1

2

4.2  數組:

   ①數組的基本概念;②特殊矩陣的壓縮存儲

1

5、樹和二叉樹

6.1  樹:

   ①樹的定義和邏輯表示;②樹的基本術語;③樹的性質;④樹的基本運算;⑤樹的存儲結構

1

6

6.2  二叉樹:

   ①二叉樹的概念;②二叉樹的性質;③二叉樹存儲結構

1

6.3 二叉樹先序、中序和後序遍歷:

   ①二叉樹遍歷的概念;②先序、中序和後序遍歷遞歸算法 

1

6.4  二叉樹的層次遍歷:

   ①層次遍歷過程;②層次遍歷算法設計

1

6.5  二叉樹的構造

6.7 哈夫曼樹

6.8 二叉樹與樹、森林之間的轉換

2

6、圖

7.1  圖的基本概念

7.2  圖的存儲結構:

   ①鄰接矩陣;②鄰接表

1

5

7.3  圖的遍歷:

   ①圖遍歷的概念;②深度優先遍歷;③廣度優先遍歷

1

7.4 生成樹和最小生成樹:

   ①生成樹和最小生成樹的概念;②普裡姆算法;③克魯斯卡爾算法

1.5

7.5 最短路徑:

   ①最短路徑的概念;②狄克斯特拉算法;③弗洛伊德算法

1.5

7、查找

8.1  查找的基本概念

8.2 線性表的查找:

   ①順序查找;②折半查找;③索引存儲結構和分塊查找

2

5

8.3 樹表的查找:

   ①二叉排序樹;②平衡二叉樹

2

8.4 哈希表查找:

   ①哈希表的基本概念;②哈希函數構造方法;③哈希衝突解決方法;④哈希表查找及性能分析  

1

8、排序

9.1 排序的基本概念

9.2 插入排序:

   ①直接插入排序;②折半插入排序;③希爾排序

1

4

9.3 交換排序:

   ①冒泡排序;②快速排序

1

9.4 選擇排序:

   ①簡單選擇排序;②堆排序

1

9.5 歸併排序

9.6 基數排序

1

*教材中所有帶"*"的內容均為提高知識點,不作為課堂講授內容以減少課堂學時,刪除遞歸一章的課堂講授。

知識單元

涵蓋知識點情況*

知識點學時

小計

1、緒論

1.1 什麼是數據結構

1.2 算法及其描述

1.3 Python簡介

1

2

1.4 算法分析:

   ①算法時間複雜度分析;②算法空間複雜度分析

1

2、線性表

2.1 線性表的定義

2.2 線性表的順序存儲結構:

   ①順序表以及線性表基本運算算法在順序表中的實現;②順序表的應用算法設計示例

2

6

2.3 線性表的鏈式存儲結構:

   ①單鍊表以及線性表基本運算算法在單鍊表中的實現;②單鍊表的應用算法設計示例;③雙鍊表以及線性表基本運算算法在雙鍊表中的實現;④雙鍊表的應用算法設計示例;⑤循環鍊表

2

2.4 順序表和鍊表的比較

2.5 線性表的應用:

   求解兩個多項式相加問題

2

3、棧和隊列

3.1 棧:

   ①棧的定義;②順序棧及其實現;③順序棧的應用算法設計示例;④鏈棧及其實現;⑤鏈棧的應用算法設計示例

2

6

   ⑦棧的綜合應用(用棧求解簡單表達式求值問題,用棧求解迷宮問題)

1

3.2 隊列:

   ①隊列的定義;②順序隊及其實現;③順序隊的應用算法設計示例;④鏈隊及其實現;⑤鏈隊的應用算法設計示例  

2

   ⑦隊列的綜合應用(用隊列求解迷宮問題)

1

4、串和數組

4.1 串

   ①串的定義;②串的存儲結構—順序串和鏈串;③串的模式匹配(BF算法和KMP算法)

2

4

4.2 數組:

   ①數組的基本概念;②特殊矩陣的壓縮存儲;③稀疏矩陣

2

5、遞歸

5.1 什麼是遞歸

   ①遞歸的定義;②何時使用遞歸;③遞歸模型;④遞歸的執行過程;⑤遞歸算法的時空分析

1

2

5.2 遞歸算法的設計:

   ①遞歸算法設計的步驟;②基於遞歸數據結構的遞歸算法設計;③基於歸納方法的遞歸算法設計

1

6、樹和二叉樹

6.1 樹:

   ①樹的定義和邏輯表示;②樹的基本術語;③樹的性質;④樹的基本運算;⑤樹的存儲結構

1

7

6.2  二叉樹:

   ①二叉樹的概念;②二叉樹的性質;③二叉樹存儲結構;④二叉樹的遞歸算法設計;⑤二叉樹的基本運算及其實現

2

6.3 二叉樹先序、中序和後序遍歷:

   ①二叉樹遍歷的概念;②先序、中序和後序遍歷遞歸算法;③遞歸遍歷算法的應用

1

6.4 二叉樹的層次遍歷:

   ①層次遍歷過程;②層次遍歷算法設計;③層次遍歷算法的應用

1

6.5 二叉樹的構造

6.6 線索二叉樹

1

6.7 哈夫曼樹

6.8 二叉樹與樹、森林之間的轉換

1

7、圖

7.1 圖的基本概念

7.2 圖的存儲結構:

   ①鄰接矩陣;②鄰接表

1

7

7.3  圖的遍歷:

   ①圖遍歷的概念;②深度優先遍歷;③廣度優先遍歷;④非連通圖的遍歷;⑤圖遍歷算法的應用

2

7.4 生成樹和最小生成樹:

   ①生成樹和最小生成樹的概念;②普裡姆算法;③克魯斯卡爾算法

1.5

7.5 最短路徑:

   ①最短路徑的概念;②狄克斯特拉算法;③弗洛伊德算法

1.5

7.6 拓撲排序

7.7 AOE網與關鍵路徑

1

8、查找

8.1 查找的基本概念

8.2 線性表的查找:

   ①順序查找;②折半查找;③索引存儲結構和分塊查找

2

7

8.3 樹表的查找:

   ①二叉排序樹;②平衡二叉樹;③B-樹和B+樹

3

8.4 哈希表查找:

   ①哈希表的基本概念;②哈希函數構造方法;③哈希衝突解決方法;④哈希表查找及性能分析

2

9、排序

9.1 排序的基本概念

9.2 插入排序:

   ①直接插入排序;②折半插入排序;③希爾排序

2

6

9.3 交換排序:

   ①冒泡排序;②快速排序

1

9.4 選擇排序:

   ①簡單選擇排序;②堆排序

1

9.5 歸併排序:

   ①自底向上的二路歸併排序;②自頂向下的二路歸併排序

9.6 基數排序

9.7 各種內排序方法的比較和選擇

2

10、複習

課程知識點歸納和總結

1

1

*教材中所有帶"*"的內容均為提高知識點,不作為課堂講授內容以減少課堂學時。

知識單元

涵蓋知識點情況*

知識點學時

小計

1、緒論

1.1 什麼是數據結構

1.2 算法及其描述

1

4

1.3 Python簡介

1.5

1.4 算法分析:

   ①算法時間複雜度分析;②算法空間複雜度分析

1.5 數據結構的目標

1.5

2、線性表

2.1 線性表的定義

2.2 線性表的順序存儲結構:

   ①順序表以及線性表基本運算算法在順序表中的實現;②順序表的應用算法設計示例

3

8

2.3 線性表的鏈式存儲結構:

   ①單鍊表以及線性表基本運算算法在單鍊表中的實現;②單鍊表的應用算法設計示例;③雙鍊表以及線性表基本運算算法在雙鍊表中的實現;④雙鍊表的應用算法設計示例;⑤循環鍊表

3

2.4 順序表和鍊表的比較

2.5 線性表的應用:

   求解兩個多項式相加問題

2

3、棧和隊列

3.1 棧:

   ①棧的定義;②順序棧及其實現;③順序棧的應用算法設計示例;④鏈棧及其實現;⑤鏈棧的應用算法設計示例

2

6

   ⑥棧的綜合應用(用棧求解簡單表達式求值問題,用棧求解迷宮問題)

1

3.2 隊列:

   ①隊列的定義;②順序隊及其實現;③順序隊的應用算法設計示例;④鏈隊及其實現;⑤鏈隊的應用算法設計示例;⑥Python中的雙端隊列deque

2

   ⑦隊列的綜合應用(用隊列求解迷宮問題);⑧優先隊列(堆)

1

4、串和數組

4.1 串

   ①串的定義;②串的存儲結構—順序串和鏈串;③串的模式匹配(BF算法和KMP算法)

3

5

4.2 數組:

   ①數組的基本概念;②特殊矩陣的壓縮存儲;③稀疏矩陣

2

5、遞歸

5.1 什麼是遞歸:

   ①遞歸的定義;②何時使用遞歸;③遞歸模型;④遞歸的執行過程;⑤遞歸算法的時空分析

1

3

5.2 遞歸算法的設計:

   ①遞歸算法設計的步驟;②基於遞歸數據結構的遞歸算法設計;③基於歸納方法的遞歸算法設計

2

6、樹和二叉樹

6.1 樹:

   ①樹的定義和邏輯表示;②樹的基本術語;③樹的性質;④樹的基本運算;⑤樹的存儲結構

1

9

6.2  二叉樹:

   ①二叉樹的概念;②二叉樹的性質;③二叉樹存儲結構;④二叉樹的遞歸算法設計;⑤二叉樹的基本運算及其實現

2

6.3 二叉樹先序、中序和後序遍歷:

   ①二叉樹遍歷的概念;②先序、中序和後序遍歷遞歸算法;③遞歸遍歷算法的應用;④先序、中序和後序遍歷非遞歸算法

2

6.4 二叉樹的層次遍歷:

   ①層次遍歷過程;②層次遍歷算法設計;③層次遍歷算法的應用

1

6.5 二叉樹的構造

6.6 線索二叉樹

1

6.7 哈夫曼樹

6.8 二叉樹與樹、森林之間的轉換

1

6.9 併查集

1

7、圖

7.1 圖的基本概念

7.2 圖的存儲結構:

   ①鄰接矩陣;②鄰接表

1

8

7.3  圖的遍歷:

   ①圖遍歷的概念;②深度優先遍歷;③廣度優先遍歷;④非連通圖的遍歷;⑤圖遍歷算法的應用

2.5

7.4 生成樹和最小生成樹:

   ①生成樹和最小生成樹的概念;②普裡姆算法;③克魯斯卡爾算法

1.5

7.5 最短路徑:

   ①最短路徑的概念;②狄克斯特拉算法;③弗洛伊德算法

1.5

7.6 拓撲排序

7.7 AOE網與關鍵路徑

1.5

8、查找

8.1 查找的基本概念

8.2 線性表的查找:

   ①順序查找;②折半查找;③索引存儲結構和分塊查找

2

7

8.3 樹表的查找:

   ①二叉排序樹;②平衡二叉樹;③B樹;④B+樹

3

8.4 哈希表查找:

   ①哈希表的基本概念;②哈希函數構造方法;③哈希衝突解決方法;④哈希表查找及性能分析

2

9、排序

9.1 排序的基本概念

9.2 插入排序:

   ①直接插入排序;②折半插入排序;③希爾排序

2

8

9.3 交換排序:

   ①冒泡排序;②快速排序

1

9.4 選擇排序:

   ①簡單選擇排序;②堆排序

1

9.5 歸併排序:

   ①自底向上的二路歸併排序;②自頂向下的二路歸併排序

9.6 基數排序

9.7 各種內排序方法的比較和選擇

2

10.8 外排序:

   ①生成初始歸併段的方法;②多路歸併方法

2

10、複習

課程知識點歸納和總結

2

2

*教材中部分帶"*"的內容作為提高知識點,不作為課堂講授內容。

四、上機課時安排(16課時)

知識單元

實驗內容

學時

1、線性表

上機實驗題**

3

2、棧和隊列

上機實驗題

3

3、樹和二叉樹

上機實驗題

3

4、圖

上機實驗題

3

5、查找和排序

上機實驗題

4

**上機實驗題均來自於教材,教師可以根據學生的情況選擇相應的題目。

本書提供1000多頁PPT課件,大綱,源碼,答案,上機,40小時視頻,教案,題庫(1000多道題目

本書配套《數據結構教程(Python語言描述)學習與上機實驗指導》(ISBN:9787302560838)

本書配套視頻演示

六、考核

(1)期末考試:期末考試形式為筆試,一般以閉卷方式進行。

(2)課程成績評定方法:期末考試成績、課後作業、上機實驗(含實驗報告)和其他。後三項所佔成績比例加起來不低於30%。

公眾號「書圈」後臺回復【9787302560289】,下載本書配套資源

掃描優惠購書

七、參考圖書

點擊下方的【閱讀原文】,查看本書目錄

相關焦點

  • HTML前端設計教與學(32/48/60學時教學大綱+視頻)
    XX系學    分:X學分學    時:32學時   (其中理論學時:20學時  上機學時:12學時)先修課程:計算機基礎、計算機網絡、計算機應用後續課程:UI設計、 JavaScript與jQuery開發與設計、資料庫應用、移動互聯開發應用等適用專業:信息技術及其計算機相關專業HTML5網頁前端設計是計算機專業一門重要的專業方向課程
  • Java語言課程教與學(36學時和48學時教學大綱)
    《Java語言》課程大綱
  • PHP Web程序設計教與學(48和72學時教學大綱)
    3、其它需要說明的問題(1) 教學內容說明教學內容可以根據學時進行適當調整。(2) 教學方式本課程是一門實踐性都很強的課程,在教學中,應系統地講授必要的理論知識,並輔之以大量的應用實例,才能夠幫助學生較好地掌握所學的知識。
  • 數據結構(Java版)教與學(48和60學時教學大綱)
    通過本課程的學習,使得學生從數據邏輯結構、存儲結構和基本運算算法設計三個層面掌握基本的數據組織和數據處理方法,能夠從問題出發設計面向數據結構的求解算法,具有一定的算法時間複雜度和空間複雜度分析能力。為後續課程如作業系統等課程學習打下基礎。
  • Java程序設計及課程設計教與學(64、56和48學時教學大綱)
    ,教學大綱,教案,試卷,習題答案,配套習題和實驗指導一、課程的性質和教學目的課程性質:Java不依賴平臺的特點使得它受到廣泛的關注,已成為網絡時代最重要的程式語言之一。Java課程設計(單獨課程,有大綱)《Java課程設計》結合JAVA程序設計課程的理論知識,通過實踐環節鞏固所學的理論知識、提高程序設計能力,為今後進行系統軟體和應用軟體的開發研究打下堅實的基礎以及今後從事項目開發和撰寫畢業論文積累經驗。
  • Python數據分析教與學(教學大綱+教案+視頻)
    數據分析與實踐英文名稱:Python Data analysis and Practice課程類型:專業課                    課程要求:                            學時/學分
  • Python通識課教與學(教學大綱和教案)
    >考核方式: 機試  平時+末考比例:40%+60%一、教學目標和基本要求本課程是程序設計的入門語言。通過學習本課程,使學生掌握Python語言的基本語法、語句以及結構化程序設計的基本思想和方法,了解基本的算法和數據結構。更重要的是,本課程的主要目的是通過學習該課程,使學生掌握基本的程序設計原理和基本的程序設計方法,培養規範的程序設計思想,了解進行科學計算的一般思路,建立起清晰、基本完整的程序設計概念。
  • PHP Web程序設計教與學(48和72學時教學大綱+視頻)
    可採用課堂講授,課堂討論,習題課等形式進行課堂教學;採用電子教案,視頻,同步演示等形式加強教學效果;每章布置2~4道習題以鞏固教學內容;安排5~8個上機實驗題以使理論與實際相結合(72學時:每章布置3~5道習題以鞏固教學內容;安排8~12個上機實驗題以使理論與實際相結合)。
  • Java語言程序設計教與學(32和48學時教學大綱)
    課程對Java語言的面向對象特徵,包括繼承、封裝、多態等,進行深入具體講解,同時講解一些Java的實用技術。通過課程的學習,使學生能夠掌握面向對象程序設計的基本理論與方法,掌握實用的面向對象程式語言Java,為學生應用面向對象程序設計理論解決實際問題奠定了良好基礎。
  • JSP Web 開發課程教與學(教學大綱,考核大綱和試卷)
    二、課程大綱一、課程的基本信息適應對象:本科層次,計算機科學與技術,軟體工程、網絡工程、物聯網工程等專業學時分配:48學時(理論授課32學時+課內實驗16學時)先修課程:高等數學、數據結構、Java語言程序設計二、課程性質與任務
  • 大數據分析課程教與(教學大綱和教案)
    《大數據分析》課程教學大綱【課程名稱】大數據分析
  • 機器學習課程教與學(教學大綱和教案)
    「機器學習」教學大綱課程編號:課程名稱:機器學習
  • Python從入門到機器學習教與學(教學大綱,附知識圖譜)
    中文名稱:Python應用程式設計 英文名稱:Python Program學    分:2學 時 數:32理論學時二、課程性質、目的與要求本課程是計算機科學與技術、軟體工程、物聯網工程、信息與計算科學、電子信息工程、通信工程、自動化、光電信息科學與工程的專業選修課程,在大三上學期開設
  • 作業系統的教與學(教學大綱)
    時:56學時,其中講課:48學時,上機:8學時,實驗:0學時先修課程:C語言程序設計、數據結構、信息系統基礎         88第8章 文件管理8.1 文件概念8.2 文件結構和文件系統8.3 目錄8.4 文件系統實現了解文件概念;理解文件結構和文件系統;了解目錄管理方法;熟練掌握文件系統實現。
  • 算法競賽(程序設計競賽)教與學(教學大綱+視頻)
    《算法競賽(程序設計競賽)》課程教學大綱課程編號:課程性質
  • 編譯原理課程教與學(教學大綱)
    課程代碼:13024課程名稱(中/英):編譯原理/Compiler Principle學     分:4總學時:64理論學時:40實驗學時:24課程性質:專業核心類課程必修開課學期:6適用專業:計算機科學與技術先修課程:面向對象程序設計,數據結構,離散數學
  • Web程序設計的教與學(教學大綱)
    《Web程序設計》教學大綱文:沈士根 課程編號:********英文名稱:Web Programming學    分:3學    時:總學時64學時,其中理論32學時,實踐32學時先修課程:資料庫原理(資料庫應用)課程類別:專業必修課適用專業:計算機科學與技術、信息管理與信息系統、電子商務、軟體工程、網絡工程一、課程描述和目標本課程是計算機科學與技術
  • Spring Boot開發教與學(教學大綱和教案)
    【課程編號】【課程名稱】【課程類型】專業必修課【授課對象】【學時學分】周學時6,共96學時,6學分【課程概況】2 學時授課內容Spring的體系結構、Spring開發環境的構建、使用Eclipse開發Spring入門程序。
  • 大數據分析導論(教學大綱+教學進度表)
    課程名稱:大數據分析導論英文名稱:Introduction of Big DataAnalytics學分數:2建議學時數:課內32學時,實踐16學時課程性質:通識基礎課教學目的:通過本課程的學習,讓學生對大數據技術相關基礎知識、基本應用路線和實用工具進行深入學習和了解,為後續的其他信息科學技術及大數據應用等專業課程的學習打下基礎
  • 物聯網技術課程教與學(教學大綱)
    >本課程是物聯網應用技術專業的專業基礎課,首先討論物聯網的基本概念、體系結構、軟硬體平臺系統組成、關鍵技術以及應用領域;其次介紹節點感知識別技術,包括射頻識別工作原理、RFID系統的基本組成及其典型應用、傳感器及檢測技術等;然後講述與物聯網相關的通信與網絡技術、傳感網及其關鍵支撐技術等內容;最後介紹物聯網中的數據融合、雲計算技術、物聯網應用系統的規劃設計與典型應用,使課程理論與實踐緊密地結合起來