140 likes | 331 Vues
資料結構 Data Structures. Fall 2006 , 95 學年第一學期. Instructor : 陳宗正. Instructor : 陳宗正 Office: 第二教學大樓 『 6 樓 』 C623 Tel: (06) 2785123 ext. 2408 E-mail: tchen1@mail.cju.edu.tw Textbook: Horowitz, Shani and Anderson-Freed Fundamentals of Data Structures in C ( 新月圖書 ) Reference
E N D
資料結構Data Structures Fall 2006, 95學年第一學期 Instructor: 陳宗正
Instructor : 陳宗正 • Office: 第二教學大樓 『 6樓』 C623 • Tel: (06) 2785123 ext. 2408 • E-mail: tchen1@mail.cju.edu.tw • Textbook: Horowitz, Shani and Anderson-Freed Fundamentals of Data Structures in C (新月圖書) • Reference Sedgewick, Algorithms in C (Parts 1-4) 3rd ed. Sedgewick, Algorithms in C (Parts 5) 3rd ed. Goodrich, Data Structures and Algorithms in C++ Stephen Prata, C Primer Plus 5th ed.
Data Structures 重要 • What is data structure? • 探討一群相關資料的資料表示方法與資料運作方法 • Objective • 使用最有效率的方式,對一群相關資料進行處理 • Programs = Data structures + Algorithms • How to analyze and design? 1. 定義資料並描述該資料對欲處理物件的特性 2. 找出並描述對該資料的各種運算 3. 考慮最適當的Data Structure,使得各種運算 的效率最佳 4. 設計一個完整的Algorithm
Advantages of Studying Data Structures • Solving problems by existing methods • Understanding good algorithms • Learning analysis and design • Building complex software systems • Documentation • Better programming skills • Knowing hardware & software • Knowingan arsenal of algorithms 重要
Foundation for Other Fields • Various fields in our department • Communication system • RF Integrated Circuits • Signal Processing/Image Processing • Mechatronics Integrated Engineering • Computer Graphics • VLSI/SOC • IC Design
Foundation for Other Fields • Theories • shortest path problem • queuing theory & spanning tree • Estimation & Control theory • Optimization & simulation • Programming techniques • pointer • linked list • stack, queue, heap, hash • protocol, driver, firmware design
ZZZZZZZZ~~Z Question to Ask How do you start?
Start with Understanding Analysis Design
Example • Problem: • Read in 3 integers • Find the largest and the smallest • Solution: • Using flowchart • Using pseudocode
Structured Programming • One IN one OUT flow • Three basic constructs Sequence Selection Iteration
Pseudocode • English-like (Chinese-like) representation of the code required for an algorithm • Algorithm– Logical steps necessary to solve a problem in a computer • Part English and part structured code • English part– easy to read • Code part– extended version of the basic algorithmic constructs
Writing a Program – System Life Cycle • Requirements • Analysis • Top-down analysis • Design • Abstract data type • Specification of algorithms (strategies) • Detail design • Not only create a system could be written in several languages, but pick the most efficient. • Refinement and coding • Implementation – coding in C • Verification • Correctness proofs • Testing
C Programming Tools • Visual Studio 6 • Visual studio 6 includes C++, BASIC, JAVA and SQL • VC++ 6 is needed in this class • The window command or console mode is required only • NO RECOMMENDED working with the GUI/MFC • Visual Studio 2005 or .NET • New version of Microsoft Development Suite • .NET and 2005 include various of Server Protocol • C compiler on Unix and Linux and gcc and Dev-C++ on Windows –not recommended/acceptable
成績計算方式 • 期中考與期末考(筆試): • 各佔25% (close book) • 作業: 40% • 共四次作業,每次各佔10% • 作業記分方式: (遲交以0分計算) • (80%) 報告之完整性:須包含 • (一) 簡介及問題描述 • (二) 理論分析 • (三) 演算法則 • (四) 執行結果與討論 • (五) 程式 • (20%) 程式經壓縮後(RAR),以學號為檔案名稱,交予班代。班代須將其彙整後,燒成光碟,當天繳交。 • 若報告或程式二者缺一,則作業分數以0分計算 • 嚴禁抄襲、複製等行為,但鼓勵同學互相討論 • 鼓勵同學經常向老師或助教請教問題。老師及助教各有5%的學習態度分數。若請教的問題太過淺顯易懂,或課堂上已強調多次者,學習態度分數將被倒扣。