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 |
【條件】 | 在期限內,用規定的帳號,答對全部題目,通過檢定符合條件可在第二週上課時加簽! |
| |
【授課大綱】
第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, 二分搜尋法, 前綴和, 離散資料處理) |
♠ | 遠距同步上課 |
♠ | 電腦教室實體上機考試 |
清華大學資工系必修課,主要對象為大一學生,延續計算機程式設計一,繼續磨練程式能力。
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 |
清華大學資工系必修課,主要對象為大一學生,延續計算機程式設計一,繼續磨練程式能力。
有意願修課的同學,請直接從校務資訊系統的加簽電子表單提出申請!
♠ | 這門課是以遠距直播方式上課,上課時間是每個星期二晚上 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 |
民國89年(西元2000年)台達電子公司董事長鄭崇華先生感念孫運璿先生對國家經濟卓越貢獻,以台達電子公司股票之現金股利,捐贈本校設置「孫運璿科技講座」,協助本校推動科技研究活動並提供具特殊成就者獎助或獎勵。
【課程說明】
Course Description
民國89年(西元2000年)台達電子公司董事長鄭崇華先生感念孫運璿先生對國家經濟卓越貢獻,以台達電子公司股票之現金股利,捐贈本校設置「孫運璿科技講座」,協助本校推動科技研究活動並提供具特殊成就者獎助或獎勵。科管院孫運璿講座所扮演的角色不再只是一個專業的學術講座,而是涵蓋更多生活化、產業化,及大眾關心的議題。以孫運璿先生做為講座名稱,就是希望能讓學術知識產生影響社會的力量。從這個高度出發,這個講座演講讓學校建立起對社會的影響力並有更大的貢獻。
第 1 講 | 德治、禮治、刑治、法治:科技社會的文化環境 |
♠ 李念祖 理律法律事務所所長 | |
第 2 講 | 跨領域專業資源整合與尤努斯三零世界 |
♠ 蔡慧玲 財團法人台灣尤努斯基金會董事長兼創辦人 | |
第 3 講 | 台灣新國病:肺癌的篩檢及防治 |
♠ 陳晉興 台大癌醫中心醫院 副院長/腫瘤外科部主任/台大醫學系外科 教授 | |
第 4 講 | 全民健保來了,健康不平等依舊 |
本課程的目的, 在於讓沒有從事數位人文學習的修課同學有初步的體驗, 了解文字、數字、表格和圖表之間轉換;另外一個重點 在於, 並利用資料庫(CBDB, China Biographical Databa