
清華大學資工系必修課,主要對象為大一學生,延續計算機程式設計一,繼續磨練程式能力。
有意願修課的同學,請直接從校務資訊系統的加簽電子表單提出申請!
♠ | 這門課是以遠距直播方式上課,上課時間是每個星期二晚上 6:30-9:20。 |
每個星期四晚上的助教時間,也是以直播方式講解。期中考、期末考則另外會安排在電腦教室實體上機考試。 | |
♠ | 9/13 開學第一堂課,請直接進入 Microsoft Teams 線上上課: |
Microsoft Teams Channel 直播連結是https://tinyurl.com/2f3r4uuz | |
♠ | 只要使用 NTHU Office365 帳號可以直接加入課程群組。 |
校外同學請提供 Microsoft Teams 帳號,我們會手動將你加入群組。 |
【課程概述】
Course Description
1. | 延續計算機程式設計一,繼續鍛鍊程式能力! |
2. | 透過實作來認識資訊工程基礎知識與技術! |
♠ | 修課學生必須先修過!!!! |
(1). 「資工系計算機程式設計一」 (2). 「電機系計算機程式設計」 (3). 「電資班計算機程式設計」三門課程其中任何一門課。 | |
♠ | 如果未滿足上述條件,則必須通過程式設計檢定。 |
程式設計檢定採用榮譽制,請對自己負責,憑實力完成,這也是對自己的程式能力的檢驗。如果沒能力達成,可能會跟不上程設二的課程難度和進度。 | |
♠ | 線上作答題目,稍後會再公告。題目難度相當於程式設計一期末考。 |
♠ | 截止期限:2022/09/20 00:00:00 |
【指定用書】
Text Books
♠ | 無指定用書 |
♠ | |
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 | ||
第1R講 | Week 02 | C 指標複習、Linked List (singly, circular) 介紹 |
第2R講 | Week 03 | 課程日程、Linked List (double pointer) |
第3R講 | Week 04 | Josephus Problem (array, linked list, recursive) |
第4R講 | Week 05 | Binary Tree, Tree Order (pre-order, in-order, post-order) |
第5R講 | Week 06 | Binary Expression, Syntax Tree |
第6R講 | Week 07 | Calculator, Compiler (lexer, parser) |
第7R講 | Week 08 | Assembly, Computer Architecture |
第8R講 | Week 09 | C++ Introduction (syntax, I/O, array, class) |
第9R講 | Week 10 | C++ Classes (introduction, derived classes, abstract classes) |
第10R講 | Week 12 | C++ Classes (examples: list, vector) |
第11R講 | Week 13 | C++ Classes (examples: vector) |
第12R講 | Week 14 | Standard Library, Graph and Path Finding |
第13R講 | Week 15 | Problem Solving Using C++ (water jug) |
第14R講 | Week 16 | Problem Solving Using C++ (missionary, torch) |
第15R講 | Week 17 | C++ 17 and C++ 20 |
♠ | 遠距同步上課 |
♠ | 電腦教室實體上機考試 |
♠ | 若因防疫規定而影響實體考試的執行,各項成績考核的分配 |
比例可能會依情況因應調整! | |
| 10% written exam |
| 30% midterm exam |
| 30% final exam |
| 10% mini project |
| 20% big project & hackathon |
清華大學資工系必修課,主要對象為大一學生,延續計算機程式設計一,繼續磨練程式能力。
1. | 延續計算機程式設計一,繼續鍛鍊程式能力! |
2. | 透過實作來認識資訊工程基礎知識與技術! |
♠ | 修課學生必須 修過程式設計一 (等同 EECS/EE 程式設計) 或是 通過開學第一週舉辦 |
定,符合資格才能以加簽方式選課。 | |
♠ | 修課學生必須 修過程式設計一並取得學分 (等同 EECS/EE 程式設計) |
| 或是 通過開學第一週舉辦的程式設計一能力檢定,符合資格才能以加簽方式選課。 |
♠ | 採用榮譽制,請對自己負責,憑實力完成! |
| 這也是對自己的程式能力的檢驗,如果沒能力達成,可能會跟不上程設二的課程難度和進度。 |
|
【對象】 | 還沒拿到「資工系計算機程式設計一、「電機系計算機程式設計」、 |
「電資班 計算機程式設計」任何一個科目學分的同學 | |
【題目】 | http://acm.cs.nthu.edu.tw/contest/2084/ |
【註冊帳號】 | 必須採用 IPHTC+學號格式,例如 IPHTC109062500 |
【條件】 | 在期限內,用規定的帳號,答對全部題目,通過檢定符合條件可在第二週上課時加簽! |
| |
【授課大綱】
第1R講 | Week 02 | 課程規則、題目講解 (linked list, pointer, 前綴和) |
第2R講 | Week 03 | OJ 介紹、題目講解 (Josephus problem, linked list) |
第3R講 | Week 05 part 1 | 題目講解 (前綴和, 快速冪, tree order) |
第4R講 | Week 05 part 2 | Code debug 方法介紹 |
第5R講 | Week 07 | 題目講解 (binary expression, 二分搜尋樹, 二分搜尋法)、 |
Mini Project 1 介紹 | ||
第6R講 | Week 09 | 題目講解 (二分搜尋樹, lower bound, upper bound) |
第7R講 | Week 11 | 題目講解 (set, class, depth-first search) |
第8R講 | Week 13 | 題目講解 (vector, string, depth-first search, 二分搜尋法) |
第9R講 | Week 14 | 題目講解 (class, 二分搜尋法)、Pre-final Project 介紹 |
第10R講 | Week 17 | 題目講解 (standard library, 二分搜尋法, 前綴和, 離散資料處理) |
♠ | 遠距同步上課 |
♠ | 電腦教室實體上機考試 |
This course is aimed to help the students learn how to program in C. There will be several labs, two midterm exams, one final exam, and the final project, with the following percentages: 1. Online judge labs (20%), 2. Two midterm exams (30%), 3. One final exam (30%), 4. Final project (20%). The textbook is S. Prata, C PRIMER PLUS. Printout lecture notes will be available.
【課程大綱】
Syllabus
This course is aimed to help the students learn how to program in C.There will be several labs, two midterm exams, one final exam, and the final project,with the following percentages:
1. | Online judge labs (20%) — every two weeks |
2. | Two midterm exams (30%) |
3. | One final exam (30%) |
4. | Final project (20%) |
第1R講 | Week 01 | 課程介紹、編輯器介紹 (codeblocks)、OJ 使用 | |
第2R講 | Week 02 | 課程介紹、題目講解 (I/O)、I/O format | |
第3R講 | Week 03 | 題目講解 (數學邏輯題), 學習資源介紹 | |
第4R講 | Week 04 | 題目講解 (數學邏輯題, 二進位) | |
第5R講 | Week 05 | 時間複雜度介紹 (big-O notation, 分析方法) | |
第6R講 | Week 06 | 做題技巧、題目講解 (前綴和, 數學題) | |
第7R講 | Week 07 | 題目講解 (字串, 邏輯題)、常見問題 (陣列大小)、Coding Style | |
第8R講 | Week 08 | 題目講解 (遞迴, 枚舉, 字串) | |
第9R講 | Week 09 | 題目講解 (最大公因數, 遞迴, 枚舉)、Debug 教學 | |
第10R講 | Week 11 | 題目講解 (二分搜尋法, 快速冪) | |
第11R講 | Week 12 | 題目講解 (邏輯題, pointer, 前綴和) | |
第12R講 | Week 13 | 題目講解 (貪心, 數學題, 二分搜尋法) | |
第13R講 | Hackathon Part 1 | Final Project: 規則、介紹、環境安裝 | |
第14R講 | Hackathon Part 2 | Final Project: 函式庫教學、優秀作品 demo | |
第15R講 | Week 14 | 題目講解 (depth-first search, sorting, 二分搜尋法) | |
第16R講 | Week 15 | 題目講解 (sorting, struct, string, depth-first search, 枚舉)、 | |
觀念釐清 (pointer) | |||
第17R講 | Week 16 | Final Project 注意事項、題目講解 (矩陣快速冪, sorting, 貪心) | |
第18R講 | Week 17 | 題目講解 (矩陣快速冪, linked list, 二分搜尋法) | |
| | |
【指定用書】
Textbook
♠ | S. Prata, C PRIMER PLUS |
♠ | Lecture notes - https://reurl.cc/OExyMX |
|
清華大學資工系必修課,主要對象為大一學生,延續計算機程式設計一,繼續磨練程式能力。
1. | 延續計算機程式設計一,繼續鍛鍊程式能力! |
2. | 透過實作來認識資訊工程基礎知識與技術! |
♠ | 修課學生必須 修過程式設計一 (等同 EECS/EE 程式設計) 或是 通過開學第一週舉辦定,符合資格才能 |
以加簽方式選課。 | |
♠ | 修課學生必須 修過程式設計一並取得學分 (等同 EECS/EE 程式設計)或是通過開學第一週舉辦的程式 |
| 設計一能力檢定,符合資格才能以加簽方式選課。 |
♠ | 採用榮譽制,請對自己負責,憑實力完成! |
| 這也是對自己的程式能力的檢驗,如果沒能力達成,可能會跟不上程設二的課程難度和進度。 |
|
【對象】 | 還沒拿到「資工系計算機程式設計一、「電機系計算機程式設計」、「電資班 |
計算機程式設計」任何一個科目學分的同學 | |
【題目】 | http://acm.cs.nthu.edu.tw/contest/2084/ |
【註冊帳號】 | 必須採用 IPHTC+學號格式,例如 IPHTC109062500 |
【條件】 | 在期限內,用規定的帳號,答對全部題目,通過檢定符合條件可在第二週上課時加簽 |
|
【指定用書】
Text Books
♠ | 無指定用書,https://reurl.cc/bG1LAX |
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 | ||
第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 |
♠ | 遠距同步上課 |
♠ | 電腦教室實體上機考試 |
♠ | 10%written exam、30%midterm exam、30%final exam、10%mini project、 |
20%big project & hackathon |
「資料結構」是學習以聰明的方法去儲存資料,使得我們在有需要的時候能夠快速有效地把資料擷取....
【課程說明】
Course Description
「資料結構」是學習以聰明的方法去儲存資料,使得我們在有需要的時候能夠快速有效地把資料擷取。例如我們希望把學生某一科的考試成績整理,使得我們能隨時查詢任何學生的排名。為了節省查詢的時間,我們或許會把學生們的成績從高至低排好,而不會以隨意的順序排列。〈對此問題,其實還有一個更好的方法呢!〉
Week 1 | Getting Started、Heap |
● Introduction ● Sorting 的方法 & 分析 ● Exercise - Insertion Sort ● Sorting 的分析 ● Exercise - Merge Sort ● Growth of Functions ● Exercise - Growth of Functions ● Insertion Sort 上機 ● Heap-1 ● Exercise - Heap I ● Heap-2 ● Exercise - Heap II | |
Week 2 | Sorting Lower Bound、Basic Data Structures I (List, Queue, Stack) |
● Lower Bound on Comparison Sorts - 1 ● Exercise - Lower Bound on Comparison Sorts I ● Lower Bound on Comparison Sorts - 2 ● Exercise - Lower Bound on Comparison Sorts II ● Pointers in C ● Basic Data Structure Ⅰ - 1 ● Basic Data Structure Ⅰ - 2 ● Exercise - Basic Data Structure I ● Josephus 上機 ● Exercise - Josephus Problem ● Balanced 括號上機 ● Exercise - Balanced Parentheses ● List 上機_insert ● List 上機_delete | |
Week 3 | Basic Data Structures II (Tree, Graph)、Graph and Tree Traversals I |
(BFS, DFS) | |
● Tree and Graph ● Exercise - Tree ● Breadth First Search ● Exercise - Breadth First Search ● Depth First Search ● Exercise - Depth First Search ● Depth First Search 分析 | |
Week 4 | Graph and Tree Traversals II (Tree Traversals, Expression Tree )、 |
| Graph and Tree Traversals III (Topological Sort) |
● Tree Traversal ● Exercise - Tree Traversal ● Expression Tree & Postfix Notation of an Expression ● Infix-Postfix Coversion ● Exercise - Expression ● Topological Sort ● Topological Sort 證明 ● Exercise - Topological Sort ● Two IQ Questions ● Exercise - Josephus Problem Revisited | |
Week 5 | Searching Set Data I (Binary Search Tree) |
● Binary Search Tree ● Binary Search Tree 實作 (Min / Max) ● Binary Search Tree 實作 (Search / Predecessor) ● Binary Search Tree 實作 (Insert / Delete) ● Binary Search Tree 實作 (Delete) - Case 1 & 2 ● Binary Search Tree 實作 (Delete) - Case 3 ● BST上機_insert ● BST上機_delete_1 ● BST上機_delete_2 ● BST上機 - 3 ● Exercise - Binary Search Tree | |
Week 6 | Searching Set Data II (AVL Tree) |
● AVL Tree ● AVL Tree - Rotation ● AVL Tree - Insertion 的情形 ● AVL Tree - Insertion實作 Case 2.2 ● AVL Tree - Insertion 實作 Case 2.3 ● AVL Tree Insert 補充 & Delete ● Augmenting Data Structure ● Exercise - AVL Tree | |
Week 7 | Searching Set Data III (B-Tree) |
● B-tree EM Model ● B-tree insert ● B-tree delete ● Exercise - B Tree I ● Exercise - B Tree II | |
Week 8 | Hashing (Chaining, Open Addressing)、Suffix Tree and Suffix Array |
● Hashing ● Common Hash Function ● Exercise - Hashing ● Indexing Strings & Suffix Array ● Exercise - Suffix Array | |
♠ | Introuction to Algorithms |
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein | |
♠ | Fundamentals of Data Structures in C++ |
Ellis Horowitz, Sartaj Sahni, Dinesh Mehta |
♠ | Algorithms in C++Robert Sedgewick |
♠ | C/C++ Programming |
♠ | B. Razavi, "Fundamentals of Microelectronics," Wiley, 2008. |
♠ | |
1. | Introduction to microelectronics (ch. 1) |
- Examples of electronic systems - Basic circuit theorems | |
2. | Basic physics of semiconductors and diodes (ch. 2 and ch. 3) |
- Semiconductor material properties - PN junction and diodes - Diode circuits and applications | |
3. | Basic physics of transistors and their equivalent circuit models |
(ch. 4 and ch. 6) | |
- Basic structures and characteristics of MOSFETs and BJTs - Equivalent circuit model of MOSFETs and BJTs - Large-signal and small-signal operation | |
4. | Single-stage (multi-stage) amplifiers and frequency response |
(ch. 5, ch. 7, ch. 9, and ch. 11) | |
- MOSFET and BJT amplifier topologies (CS, CG, CD, and cascode) - Transfer function and Bode's plot - Frequency response of different amplifiers | |
5. | Differential amplifiers (ch. 9 and ch. 10) |
- Basic MOS and BJT differential pairs | |
- Large-signal and small-signal analysis | |
- Current mirror and active load | |
This course covers fundamental concepts in operating systems for computers, including multiprogramming, interrupt, processes, kernel, parallelism...
Silberschatz, P. Galvin, and G. Gangne, Operating System Concepts, | |
10th Edition (International Student Version), John Wiley & Sons, Inc. | |
♠ | Small Device C Compiler, http://sdcc.sourceforge.net/ |
♠ | Slides:https://ocw.nthu.edu.tw/ocw/index.php?page=newsContent&id=692 |
Chap0 : | History of OS |
Chap1 : | Introduction |
Chap2 : | System Structures |
Chap3 : | Process Concept |
Chap4 : | Threads |
Chap5 : | Scheduling |
Chap6 : | Synchronization, Chap7: Synchronization Examples |
Chap7 : | Synchronization Examples |
Chap8 : | Deadlocks |
Chap9 : | Main Memory |
Chap10 : | Virtual Memory |
Chap11 : | Mass Storage |
Chap12 : | I/O |
Chap13 : | File System |
Chap14 : | File System |
♠ | IEEM203000 (Engineering Statistics) or equivalent basic probability course. |
♠ | Introduction to Probability Models, 10th Ed. by Sheldon M. Ross, Academic |
Press, 2009 (or the newest version). |
♠ | To develop an ability to model dynamical processes as stochastic processes; |
♠ | To develop an understanding of important qualitative characteristics of |
stochastic processes; | |
♠ | To develop an ability to analyze basic stochastic processes. |
♠ | Student presentation (1 week) |
♠ | Class Exercises |
You will team up with up to 3 team members, work on class exercises together and present your answers on a luck-draw system. The exercises are designed to improve your understanding of the class materials and give you a chance to learn and interact with your classmates. The same team will be give the same grade based on the correctness of the answer and the presentation if any. | |
♠ | Homework |
Homework will be assigned roughly weekly while I will not collect them. You are also encouraged to discuss homework with your classmates and learn from each other | |
♠ | Quizzes |
Quizzes are given on a weekly basis. All the quiz problems are strongly related (or identical) with the homework problems. You should fully understand every homework problem in order to get good grades for the quiz | |
♠ | Exams |
Exams will cover material discussed in class. The two midterm and final examinations are close book and notes. No make up exams! Final exam is cumulative. The exact date of midterm exams is given as below (additional information | |
(1) | A background introduction of the application area |
(2) | The description of your stochastic model. You should justify the appropriateness of |
stochastic modeling being used to model systems/processes in the chosen area. | |
(3) | Work out numerical examples to demonstrate the use of stochastic process models in |
solving realistic problems and provide the managerial insights through your examples. | |
♠ A complete reference list is required. The final report (and the presentation slides) will be collected in class before your presentation starts, and plus, each team will make a 15-minute presentation in the last two weeks of this semester. More details about the order of presentation will be announced later. |
This course provides the students with basic knowledge in modeling, analysis and design for linear feedback control systems. It begins with reviewing some mathematical fundamentals and introducing block diagrams and signal-flow graphs. Students will then learn how to model mechanical, electrical......
1. | Introduction |
2. | Mathematical Foundation |
3. | Block diagrams and Signal-Flow Graphs |
4. | Modeling of Dynamic Systems |
5. | Time-domain Analysis of Control Systems |
6. | Root Locus Analysis |
7. | Frequency-Domain Analysis |
8. | Design of Control Systems |
♠ | |
♠ | Syllabus |
♠ 01-1 | Digital Systems and Information: Digital Systems & Digital Signals |
♠ 01-2 | Digital Systems and Information: Data Representation - Number Systems |
♠ 01-3 | Digital Systems and Information: Data Representation - Codes |
♠ 01-4 | Digital Systems and Information: Arithmetic Addition and Subtraction |
♠ 02-1 | Boolean Algebra and Logic Gates (1/2) |
♠ 02-2 | Boolean Algebra and Logic Gates (2/2) |
♠ 03-1 | |
♠ 03-2 | Gate Level Minimization (2/2) |
♠ 04-1 | Combinational Logic (1/3) |