教學大綱表 (111學年度 第2學期)
請遵守智慧財產權,勿使用非法影印教科書,避免觸法。
課程名稱
Course Title
(中文) 資料結構
(英文) Data Structures
開課單位
Departments
資訊經營學系
課程代碼
Course No.
N2400A
授課教師
Instructor
胡志堅
學分數
Credit
3.0 必/選修
core required/optional
必修 開課年級
Level
大二
先修科目或先備能力(Course Pre-requisites):
課程概述與目標(Course Overview and Goals):資料結構是發展演算法的基礎,規劃好的資料結構,在撰寫程式時方能得心應手。本課程敘述程式內的資料如何運用變數,有效率的應用記憶體中,並說明演算法的利用方式,使得資料結構可以結合演算法運作。
課程介紹資料結構的基本概念,包含:
 結構、指標及遞迴程式等
 陣列與鏈結串列等資料結構的基礎工具
 靜態與動態資料結構
 探討線性結構之堆疊與佇列
 樹狀結構
 二元搜尋樹與其高度平衡
 圖形結構

課程將資料結構理論內容以淺顯易懂之方式介紹,而對於需要撰寫程式的部分,使用虛擬碼的方式提供學習者參考,並將實作部分列入隨堂練習。
 建立學習者「資料結構」基礎
 著重於引導學習者認識「資料結構」的知識概念
 藉由實作(hands-on)體驗「資料結構」的理論與程式之間的關聯
 建立學習者領域知識以及系統思維
教科書(Textbook) 1. 陳木中 (2015), 資料結構, 新文京開發出版; ISBN:9864300520
2. Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser, Data Structures and Algorithms in Java, 6th Edition 6th, Kindle Edition
參考教材(Reference) 1. 吳燦銘,胡昭民(2018),圖解資料結構-使用Java(第三版) ,博碩; ISBN:9789864343034
課程大綱 Syllabus 學生學習目標
Learning Objectives
單元學習活動
Learning Activities
學習成效評量
Evaluation
備註
Notes

No.
單元主題
Unit topic
內容綱要
Content summary
1 The Big Picture (資料結構概念) 1. What Are Data Structures?
2. What Data Structures Do We Study?
3. What are Abstract Data Types?
4. Why OOP and Java for Data Structures?
5. How Do I Choose the Right Data Structures?
* What Are Data Structures?
* What Data Structures Do We Study?
* What are Abstract Data Types?
* Why OOP and Java for Data Structures?
* How Do I Choose the Right Data Structures?
 
2 Arrays (陣列的定義與操作) 1. Using Arrays * Using Arrays  
3 Arrays (陣列定址) 1. Arrays
2. Index
1. How Array works
2. How to arrange data to an array
 
4 The applications of array (陣列的應用) 1. The use cases of array
2. Examples
Implementation of array in Java  
5 Linked lists (鏈結串列的概念) Linked lists Understand of the linked lists  
6 Implementation of linked-lists (鏈結串列的操作) 1. Implementation of linked-lists Implementation of linked-lists in Java  
7 The applications of linked-lists (鏈結串列的應用) The use cases of linked-lists The implementation of linked-lists  
8 Stacks I (堆疊的概念) 1. Introduction of stacks Understand of stacks  
9 期中考 上半學期課程內容 檢驗上半學期學習成效  
10 Stacks II (期中檢討 & 堆疊以陣列實作) 1. Linked Lists
2. Stacks
3. ... etc.
檢討期中考之上半學期所學  
11 Queue I (佇列) 1. The Queue Abstract Type Understand of queue ADT  
12 The implementation of queue (佇列實作) 1. Using array
2. Using linked list
The implementation of queue using array and list  
13 Trees I (樹的概念) 1. Tree Structure
2. Tree Traversal Algorithms
What is the definition of trees in graph theory  
14 Trees II (樹的建構與二元樹) 1. Binary Tree
2. Huffman Tree
3. General Tree
How to construct a tree  
15 Trees III (樹的應用) The use cases of trees Maintenance of ninimum spanning trees (forest)  
16 Graph I (圖形結構) 1. the relationship among edges and vertices
2. defining a graph
Graph Theory - Introduction  
17 Graph II & Sorting (圖形應用、排序與搜尋) 1. Merge-Sort
2. Quick-Sort
3. Data Structures for Graphs
* Learning More Sorting Algorithms
* Learning Data Structures for Graphs
 
18 期末考 本學期課程內容 檢驗學習成效  


教學要點概述:
1.自編教材 Handout by Instructor:
□ 1-1.簡報 Slids
□ 1-2.影音教材 Videos
□ 1-3.教具 Teaching Aids
□ 1-4.教科書 Textbook
□ 1-5.其他 Other
□ 2.自編評量工具/量表 Educational Assessment
□ 3.教科書作者提供 Textbook

成績考核 Performance Evaluation: 期末考:40%   期中考:30%   其他評量:10%   平時考:10%   作業:10%  

教學資源(Teaching Resources):
□ 教材電子檔(Soft Copy of the Handout or the Textbook)
□ 課程網站(Website)
扣考規定:https://curri.ttu.edu.tw/p/412-1033-1254.php