課程代碼 |
G0D15Q01
|
課程中文名稱 |
程式設計實務(一)
|
課程英文名稱 |
Computer Programming for Problem Solving and Applications (I)
|
學分數 |
2.0
|
必選修 |
選修
|
開課班級 |
四技資工四甲,四技資工四乙
|
任課教師 |
林泓宏
|
上課教室(時間) |
週四
|
第3節
|
(C304)
|
週四
|
第4節
|
(C304)
|
|
課程時數 |
2
|
實習時數 |
0
|
授課語言 |
1.華語
|
輔導考證 |
無
|
課程概述 |
以輔導同學通過資工系「程式設計能力檢定」畢業門檻為目標。從基礎的 C/C++ 程式語言複習開始,引導同學逐步熟悉程式設計思維、程式設計技巧、資料結構等主題,並透過如 ITSA 之程式競賽解題輔導,以及程式專題製作,強化程式設計之實務解題能力。
|
先修科目或預備能力 |
|
課程學習目標與核心能力之對應
|
編號 | 中文課程學習目標 | 英文課程學習目標 | 對應系指標 |
1
|
能熟悉 C/C++ 程式設計語法
|
|
1 工程知識
|
2
|
能了解程式設計技巧與基本資料結構
|
|
3 實務能力
|
3
|
能構思求解初階程式競賽之考題
|
|
4 規劃整合
|
4
|
能養成良好程式撰寫習慣
|
|
7 職業倫理
|
|
就業力培養目標 |
|
校指標 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
專業知識 |
實務技能 |
資訊能力 |
整合創新 |
外語能力 |
熱誠抗壓 |
表達溝通 |
敬業合群 |
人文素養 |
服務關懷 |
|
30% |
30% |
0% |
30% |
0% |
0% |
0% |
0% |
0% |
10% |
|
系指標 |
1 |
3 |
2 |
4 |
|
|
5 |
6 |
8 |
7 |
|
工程知識 |
實務能力 |
資訊能力 |
規劃整合 |
|
|
表達溝通 |
管理合作 |
社會人文 |
職業倫理 |
|
30% |
30% |
0% |
30% |
|
|
0% |
0% |
0% |
10% |
|
中文課程大綱 |
1. C 程式語言回顧 2. C++ 程式語言回顧 3. 結構化程式設計思維引導 4. 物件導向程式設計思維引導 5. 基本資料結構回顧 6. 資料結構程式設計實務 7. 程式競賽考題之實務解題 8. 程式應用專題製作
|
英/日文課程大綱 |
1.Review of C programming language 2.Review of C++ programming language 3.Computational thinking in structural programming 4.Computational thinking in object-oriented programming 5.Review of basic data structures 6.Practices of basic data structures 7.Programming problem solving 8.Programming projects
|
課程進度表 |
1. 課程主題介紹與課程評量規範 2. 程式設計回顧與基本資料型態 Basic Data Types ==> "char": symbol and value / array / null-terminated string ==> ITSA 31 Problem 1 鍵盤壞了: 練習字元符號與數值之間的轉換 ==> ITSA 18 Problem 3 英文字母 Histogram 3. 迴圈 Loops ==> 分別用 for / while / do-while 實作九九乘法表; 說明何為起始條件, 停止條件, 反覆條件. ==> 1D/2D Array, Pointer, Indices; 二維陣列索引表示練習 ==> ITSA 33 Problem 4 圈圈叉叉 ==> ITSA 28 Problem 5 Wu-Zi-Qi (五子棋) ==> ITSA 26 Problem 3 迴文判別 ==> ITSA 31 Problem 4 迴文字串 ==> ITSA 27 Problem 3 判斷數字 N 出現在另一個數字 M 中的次數 ==> ITSA 27 Problem 5 Maximum Consecutive Sum ==> ITSA 19 Problem 4 分兩份 (20131025 期中考題 5) ==> ITSA 24 Problem 1 最少派車數 ==> ITSA 26 Problem 4 約瑟夫問題 4. (彈性週) 5. 基本輸入輸出 Basic I/O ==> printf / scanf / cout / cin ==> 1D 動態記憶體配置與刪除 ==> ITSA 32 Problem 2 尋找並取代字 ==> 1. 每列 3 個數字, 讀入多列的數字輸入, 直到讀不到任何輸入為止 (Ctrl+D). 輸出: 判斷每列的數字是否構成一個三角形. 2. 讀入一列的數字輸入, 該列中有不定個數的數字, 存在一陣列裡頭, 直到遇到 Enter 為止. 輸出: 印出該列數字的個數 ==> 建構 n 個 double 數值的動態陣列 arrNum[],以 n=103 為例,使得 arrNum[0] = 0.0; arrNum[1] = 1.1; ...; arrNum[10] = 10.10; ...; arrNum[103] = 103.103; ==> ITSA 22 Problem 5 Maximum Sub-sequence Product ==> 2D 動態記憶體配置與刪除 ==> ITSA 30 Problem 1 平面魔方 ==> (意外處理) 6. 函數與結構化程式設計 Functions and Structural Programming ==> 函數的通用形式; 回傳數值型態一致性 ==> 參數傳遞 Call by value/address/reference ==> 模組化函數設計: ITSA 21 Problem 4 和與積相等 ==> 遞迴函數: N! 的計算 - 迴圈與遞迴形式比較 ==> ITSA 31 Problem 3 Minimum Steps ==> ITSA 20 Problem 4 填空的方式: C^n_r ==> ITSA 29 Problem 1 帕斯卡三角形 ==> ITSA 20 Problem 3 整數集合之交集與聯集 7. 結構、類別與排序 Struct, Class and Sorting ==> 結構與類別 ==> ITSA 21 Problem 5 Closest Pair Problem ==> ITSA 23 Problem 1 學生資料搜尋程式 ==> 排序方法介紹 ==> ITSA 24 Problem 4 誰是MVP ==> ITSA 28 Problem 1 藝人選秀 ==> ITSA 25 Problem 1 判斷序列是否經過排序 ==> ITSA 22 Problem 1 Min-Heap 8. 期中上機考 9. 期中考週停課 10. 期中考解答與資料結構程式實作 ==> 如何自行設計 List/Queue/Stack/Tree 11. 基本資料結構 Basic Data Structures ==> C++ STL - Vector / List / Queue / Stack / Iterator ==> C++ STL Algorithm - Sorting ==> ITSA 33 Problem 3 Postfix Expressions (Stack) ==> ITSA 17 Problem 4 奇怪的算式 (前序轉中序) ==> ITSA 20 Problem 1 還是要中序 ==> ITSA 33 Problem 5 Maximum Product (List) ==> ITSA 27 Problem 1 沙漠綠洲 (Vector and Recursion) 12. 基本數學問題求解 ==> 礦石加熱問題 ==> ITSA 26 Problem 2 Body Adiposity Index (BAI) ==> 輾轉相除法 Euclidean Algorithm; GCD / LCM ==> ITSA 30 Problem 4 堆積木: GCD / LCM ==> ITSA 21 Problem 3 不同基底整數轉換 ==> ITSA 27 Problem 2 Matching Points in the Plane (Recursion) ==> ITSA 21 Problem 1 坑洞路面 ==> ITSA 23 Problem 5 Recurring Decimal (循環小數) 13. 經由遞迴產生列舉結果 Enumerations by Recursion ==> Power set and coding ==> ITSA 27 Problem 4 列印包含特定元素的子集合 ==> ITSA 33 Problem 2 字典排序 ==> ITSA 24 Problem 2 Computing the Permutations of Elements in the Subsets of a Set 14. 動態規劃, Dynamic Programming ==> All Pairs Shortest Paths ==> ITSA 33 Problem 1 排隊購票 ==> ITSA 31 Problem 5 Pairing with leader ==> ITSA 15 Problem 4 Group without direct leaders ==> ITSA 18 Problem 5 How many leaders? ==> ITSA 19 Problem 5 Recursive LCS 15. (彈性週) 16. (彈性週 or 期末考前複習) 17. 期末上機考 18. 期末考週停課
|
課程融入SDGs |
|
期考調查 |
期中考(第9週)考試方式 |
|
期末考(第18週)考試方式 |
|
其他週考試考試週次與方式 |
|
|
教學方式與評量方式 |
課程學習目標 | 教學方式 | 評量方式 |
能熟悉 C/C++ 程式設計語法 |
課堂講授
|
作業
(
平時
)
|
能了解程式設計技巧與基本資料結構 |
課堂講授
|
口頭報告
(
平時
)
作業
(
平時
)
|
能構思求解初階程式競賽之考題 |
課堂講授
其他
-分組上台作解題講演
|
實作
(
期中
)
實作
(
期末
)
|
能養成良好程式撰寫習慣 |
實作演練
|
日常表現
(
平時
)
|
|
指定用書 |
書名 |
大學程式能力檢定 CPE 祕笈
|
作者 |
林盈達、黃世昆、楊昌彪、葉正聖、謝育平
|
書局 |
美商麥格羅‧希爾 (McGraw Hill)
|
年份 |
2013
|
國際標準書號(ISBN) |
978-986-157-941-2
|
版本 |
初版一刷
|
請同學尊重智慧財產權,使用正版教科書,不得非法影印,以免觸犯智慧財產權相關法令
。 |
參考書籍 |
大學程式能力檢定 CPE 祕笈, 林盈達、黃世昆、楊昌彪、葉正聖、謝育平, 美商麥格羅‧希爾 McGraw Hill.
|
教學軟體 |
Dev C++; Microsoft Visual C++
|
課程規範 |
|