課程名稱 |
資料結構與程式設計 Data Structure and Programming |
開課學期 |
104-1 |
授課對象 |
電機資訊學院 電機工程學系 |
授課教師 |
黃鐘揚 |
課號 |
EE3011 |
課程識別碼 |
901 31900 |
班次 |
|
學分 |
3 |
全/半年 |
半年 |
必/選修 |
選修 |
上課時間 |
星期三7,8,9(14:20~17:20) |
上課地點 |
明達231 |
備註 |
初選不開放。 總人數上限:190人 |
Ceiba 課程網頁 |
http://ceiba.ntu.edu.tw/1041_DSnP |
課程簡介影片 |
|
核心能力關聯 |
核心能力與課程規劃關聯圖 |
課程大綱
|
為確保您我的權利,請尊重智慧財產權及不得非法影印
|
課程概述 |
In this class, you will learn the practical issues and gain the real experiences in implementing various data structures with C++ on Linux workstations.
1. Data Structure in Programming: Why is data structure (implementation) so important?
2. Programming on Linux Workstations: A peek in the real engineering world
3. C++ Advanced Features Review: When can/should I use them?
4. What is a Good Program? A software engineering point of view
5. Computational Complexity: Time and space tradeoffs
6. Memory Management: How to gain 30% performance improvement easily
7. Dynamic Array vs. Linked List: Which one is better?
8. Tree: How to search data faster than linear time?
9. Graph and Circuit: From CS to EE Applications
10. Heap, Set and Map: How to store sorted data?
11. Cache vs. Hash: Virtual memory in your program
12. Bit Vector and Matrix: All about numerical operations
13. Putting What You Learn Together: Implementing an advanced data structure (e.g. BDD) |
課程目標 |
. |
課程要求 |
1.成績評量:Homework (50%), Final Project (50%), Bonus (TBD)
2.預修課程:程式設計 (C++) |
預期每週課後學習時數 |
|
Office Hours |
|
指定閱讀 |
For more information, please visit: https://www.facebook.com/groups/NTUDSnP/ |
參考書目 |
教科書: 1. None, but you are encouraged to use any data structure or programming textbooks as references
2. Class slides: Please download and/or print out for yourself
3. Referenced papers and handouts |
評量方式 (僅供參考) |
|
週次 |
日期 |
單元主題 |
第1週 |
9/16 |
0. Class Introduction <br>
1. Data Structure in Programming <br>
2. Linux Programming |
第2週 |
9/23 |
3. C++ Review (Variables) <br>
// HW#1 due; HW#2 out |
第3週 |
9/30 |
3. C++ Review (class) |
第4週 |
10/07 |
3. C++ Review (Polymorphism) <br>
// HW#2 due; HW#3 out |
第5週 |
10/14 |
3. C++ Review (I/O, Exception Handling) |
第6週 |
10/21 |
4. Memory Management <br>
// HW#3 due; HW#4 out |
第7週 |
10/28 |
5. STL Basics <br>
6. Software Engineering <br>
7. Computational Complexity |
第8週 |
11/04 |
8. List and Array <br>
// HW#4 due; HW#5 out |
第9週 |
11/11 |
9. Tree |
第10週 |
11/18 |
10. Graph and Circuit <br>
// HW#5 due; HW#6 out |
第11週 |
11/25 |
11. Heap, Set, and Map |
第12週 |
12/02 |
12. Hash and Cache <br>
// HW#6 due; HW#7 out |
第13週 |
12/09 |
Special Topic |
第14週 |
12/16 |
Final Project Discussion <br>
// HW#7 due; Final project out |
第15週 |
12/23 |
Final Project Discussion |
第16週 |
12/30 |
Special Topic |
第17週 |
1/06 |
Special Topic |
|