清華大學資工系必修課,主要對象為大一學生,延續計算機程式設計一,繼續磨練程式能力。
課程概述
Course Description
1. | 延續計算機程式設計一,繼續鍛鍊程式能力! |
2. | 透過實作來認識資訊工程基礎知識與技術! |
♠ | 修課學生必須 修過程式設計一 (等同 EECS/EE 程式設計) 或是 通過開學第一週舉辦定,符合資格才能 |
以加簽方式選課。 | |
♠ | 修課學生必須 修過程式設計一並取得學分 (等同 EECS/EE 程式設計)或是通過開學第一週舉辦的程式 |
| 設計一能力檢定,符合資格才能以加簽方式選課。 |
♠ | 採用榮譽制,請對自己負責,憑實力完成! |
| 這也是對自己的程式能力的檢驗,如果沒能力達成,可能會跟不上程設二的課程難度和進度。 |
|
---------------------------------------------------------------------------------------------
【對象】 | 還沒拿到「資工系計算機程式設計一、「電機系計算機程式設計」、「電資班 |
計算機程式設計」任何一個科目學分的同學 | |
【題目】 | http://acm.cs.nthu.edu.tw/contest/2084/ |
【註冊帳號】 | 必須採用 IPHTC+學號格式,例如 IPHTC109062500 |
【條件】 | 在期限內,用規定的帳號,答對全部題目,通過檢定符合條件可在第二週上課時加簽 |
|
指定用書
Text Books
♠ | 無指定用書,https://reurl.cc/bG1LAX |
授課大綱
Syllabus
1. | 課程介紹、加簽、程設一資格檢定測驗 | 11. | Templates |
2. | 複習 C 指標 | 12. | Graph and Path Finding |
3. | Circular linked Lists | 13. | Search Problems |
4. | Josephus Problem | 14. | Search Problems |
5. | Binary Trees | 15. | Modern C++ |
6. | Binary expressions, Syntax Trees | 16. | Modern C++ |
7. | Calculator Tree, Assembly | 17. | Final Exam |
8. | Midterm Exam & Written Exam | 18. | Project Demo |
9. | C++ Introduction | ||
10. | Derived Class | ||
movie chapter
第1R講 | Week 02 | 課程簡介、C 指標複習、Linked List 介紹 |
第2R講 | Week 03 Part 1 | Linked List 補充 (double pointer) |
第3R講 | Week 03 Part 2 | Linked List 補充 (delete, swap) |
第4R講 | Week 04 Part 1 | 資料結構與演算法介紹 (Josephus problem)、時間複雜度 |
第5R講 | Week 04 Part 2 | 時間複雜度介紹 (Big-O notation)、Josephus Problem |
第6R講 | Week 04 Part 3 | Josephus Problem (code 實作) |
第7R講 | Week 04 Part 4 | Josephus Problem (code 實作, 更高效的解法) |
第8R講 | Week 05 | Binary Tree, Tree Order (pre-order, in-order, post-order) |
第9R講 | Week 06 | Binary Expression, Syntax Tree |
第10R講 | Week 07 Part 1 | Calculator, Compiler (lexer, parser) |
第11R講 | Week 07 Part 2 | Calculator, Compiler (lexer, parser), Grammar |
第12R講 | Week 08 | Assembly, Computer Architecture |
第13R講 | Week 09 | C++ Introduction (syntax, I/O, 字串, array, class) |
第14R講 | Week 11 | C++ Classes (introduction, derived classes, abstract classes) |
第15R講 | Week 12 | C++ Classes (examples: list, vector) |
第16R講 | Week 13 | C++ Classes (vector), Standard Library, 使用演示 (猜數字) |
第17R講 | Week 14 | Graph and Path Finding, Standard Library |
第18R講 | Week 15 Part 1 | Problem Solving Using C++ (water jug) |
第19R講 | Week 15 Part 1.5 | Problem Solving Using C++ (water jug) |
第20R講 | Week 16 | Problem Solving Using C++ (missionary, torch) |
第21R講 | Week 17 | Week 17〡C++ 17 and C++ 20 |
授課形式
Teaching Method
♠ | 遠距同步上課 |
♠ | 電腦教室實體上機考試 |
成績考核
Evaluation
Evaluation
♠ | 10%written exam、30%midterm exam、30%final exam、10%mini project、 |
20%big project & hackathon |