中正大學課程大綱
課程名稱(中文): 資料結構 開課單位: 電機工程學系(Department of Electrical Engineering)
課程名稱(英文) Data Structure 課程代碼 4152201_01
授課教師: 劉立頌 學分數 3
必/選修 選修 開課年級 大二
先修科目或先備能力:
Introduction to Programming
課程概述:
This course introduces the data representation and problem solving methods required by electrical, communication, and computer engineering. The abstract data type concept is used in realizing such techniques, and algorithm design and complexity analysis are exercised throughout the course. Development of software systems is another important focus in the course for introducing the importance of analysis and design before implementation. C programming language is used in the class.

* This is an EMI (English as a Medium of Instruction) course. The course is taught in English.
學習目標:
1. To understand different data structures, their characteristics, and applications
2. To learn problem solving methods.
3. To practice through software system development
教科書:
Either one of the following is suggested but any DS textbook will also work:
1. Ellis Horowitz, Sartaj Sahni, & Susan Anderson-Freed, Fundamentals of Data Structures in C (2nd Edition), Silicon Press, 2008
2. Richard F. Gilberg and Behrouz A. Forouzan, Data Structures: a Pseudocode Approach with C (2nd Edition), Course Technology, 2005

課程大綱 分配時數 核心能力 備註
單元主題 內容綱要 講授 示範 隨堂作業 其他
Basic concept in data structures and software development
Introduction to data structures
Abstract data types
Algorithm efficiency
Introduction to basic software engineering concept
Introduction to analysis and design
3 1.11.21.32.12.23.13.24.14.24.34.4
Reviews on programming skills in C
Recursion
Pointers and structures
Linked lists
Pointers to functions
6 3 1.11.21.32.12.23.13.24.14.24.34.4
Fundamental data structures and techniques
Searching
Stacks, queues, hash
Queues
3 3 1.11.21.32.12.23.13.24.14.24.34.4
Tree and related representation
Basic tree representation
Tree traversals
Expression Trees
Binary search trees
AVL trees
Heaps
6 1.5 1.11.21.32.12.23.13.24.14.24.34.4
Sorting techniques
Internal sorting techniques
External sorting techniques
O(n) sorting techniques
6 1.5 1.11.21.32.12.23.13.24.14.24.34.4
Graph representations
Adjacency matrix and list
Spanning trees
Shortest path problem
3 1.11.21.32.12.23.13.24.14.24.34.4
Advanced tree representation
Multiway trees
B-Trees
3 1.11.21.32.12.23.13.24.14.24.34.4
Examinations
Onsite exams
Paper exam
3 6 1.11.21.32.12.23.13.24.14.24.34.4
Final onsite exam takes 3 hours on a weekend.

教育目標
1.傳授學生電機工程相關知識,配合各種實驗的進行,達到理論與實務相結合之目的。
2.訓練學生具有分析與解決問題的能力。
3.訓練學生良好的溝通技巧,並培養分工合作發揮團隊力量的能力。
4.培養學生瞭解國內外相關產業之現狀與需求,並理解專業倫理及社會責任。

核心能力
1.1.瞭解電機工程基礎知識。
1.2.培養電機工程實作能力。
1.3.訓練技術報告寫作與簡報的能力。
2.1.培養分析問題的能力。
2.2.培養善用資源以解決問題的能力。
3.1.培養溝通與表達的能力。
3.2.訓練運用個人專長,與他人合作完成專案計畫。
4.1.瞭解國內外相關產業現況。
4.2.理解工程倫理及社會責任。
4.3.培養良好的資訊能力。
4.4.培養科技英文能力

請尊重智慧財產權,不得非法影印教師指定之教科書籍

教學要點概述:
1. 教材編選(可複選):自編簡報(ppt)教科書作者提供
2. 教學方法(可複選):講述板書講述
3. 評量工具(可複選):上課點名 0%, 隨堂測驗20.00%, 隨堂作業0%, 程式實作25.00%, 實習報告0.00%,
                       專案報告15.00%, 期中考0%, 期末考20.00%, 期末報告0%, 其他20.00%,
4. 教學資源:課程網站 教材電子檔供下載 實習網站
5. 教學相關配合事項: two in-class onsite programming exams

課程目標與教育核心能力相關性        
請勾選:1.11.21.32.12.23.13.24.14.24.34.4
1.1 瞭解電機工程基礎知識。()
為何有關:
The course helps the students understand how they can solve problems in the electrical engineering and communication engineering field such as memory organization in computers, scheduling problems in operating systems, queuing concept in network communications, minimal spanning trees in circuits, etc.
達成指標:
Obtaining the knowledge
評量工具(可複選):
Quizzes and final exam
1.2 培養電機工程實作能力。()
為何有關:
Many of the concepts and the problem solving methods will be realized in software. The students will also learn how to analyze and design a software system before implementing the system in C.
達成指標:
Programming skills
評量工具(可複選):
Programming exercises, onsite programming exams
2.1 培養分析問題的能力。()
為何有關:
The importance of analysis and design is stressed in the course by introducing basic software engineering concept. The students will not only enhance their ability in programming, but also practice analysis and design of a software system with an incremental and iterative approach. After such training, the students will have the ability to build simple simulation systems.
達成指標:
Able to analyze and design a system
評量工具(可複選):
Project
2.2 培養善用資源以解決問題的能力。()
為何有關:
The problem solving methods taught in the course have many applications. The students are assigned with projects to implement such applications by developing software systems. The topics of the projects are designed to incorporate the concepts learned in the course with applications, so that the students can use their solutions to experiment the usage of such concepts.
達成指標:
Constructing a software system
評量工具(可複選):
Project
4.3 培養良好的資訊能力。()
為何有關:
All assignments are conducted in writing programs in C.
達成指標:
Writing programs
評量工具(可複選):
Onsite exams