科號:11120CS 135601
授課老師:郭柏志教授
學分數:3
資工系:必修,電機系:必修(抵免電機計算機程式設計要修資工的程設一、二)
加簽:全簽
建議先修:計算機程式設計一(必要)
程設一跟程設二其實有些許不一樣,程設二包含的內容很廣,從基礎資料結構、基礎計算機結構、C++語法教學(多型、繼承、函式重載)到搜尋問題。整體上課步調還不錯。教授有強調兩個程設班的考試難度會差不多(確實)。所以其實沒啥好挑的。
評分標準:
- 上機小考(8%):隔週二小考一次,範圍為前一次作業(通常是一題作業題一題變化題,變化題時易時難),作業本身不算分也不檢查,但建議要寫。
- 兩次期中考(各15%):跟程設一一樣會有專門的練習題,考試時間為週二12:50~15:10,通常是一題作業題、一題變化題以及一題全新的問題。全對的人分別為7人與3人。難度很高
- 期末考(25%):考試時間為週二12:30~15:10,有專門的練習題,但只有考一題,其餘3題都是演算法的題目,靠硬爆只能拿一些分數,全對的只有1個人。
- 紙筆測驗(10%):會給練習題,只要好好練應該就可以拿到不錯的分數,其中計算機結構的部分真的是有背有分。
- Project1(9%):主題與Assembly有關,用C寫parser,助教會給模板code,只要好好寫跟debug就可以完成,評分方式為上機考(週日9:00~12:00)。一樣使用judge評分,會提供完整到可以運行的模板,你如果把他的模版直接丟到judge就可以有50分了。考試寫出指定的運算子功能就可以拿到95分,最後5分為register在直接parse不夠用時的處理,如果作業有練習到應該也是幾分鐘就可以寫出來的,但很多同學覺得只有5分所以直接離場了。最後助教會將所有滿分的code進行cycle比較,cycle越低的可以拿到bonus 2分,其餘依照比例給分。
- Project2(9%):主題為用 C++ 與Allegro寫塔防遊戲。其實跟程設一很像,但加上 C++ 物件導向之後遊戲可以做的跟複雜。一樣有黑客松,不過是採加分制,在黑客松當日成功給助教demo基礎部分的可以得到加分1.5分(原本是1分,後來教授多送0.5分),不過如果在project截止日完成基礎部分還是可以拿到該部分的分數只是沒有另外加分。9分裡面有1分是創意分數,不過蠻吃運氣的,很多做的還不錯的沒有拿到滿分,但某些人做的普普卻有拿到滿分,就要看demo的助教的心情了。
- Project3(9%):主題為寫出一台AI對戰迷你西洋棋,模板都有提供。配分為寫出State value function 1分、Minimax 2分、Alpha-Beta Purning 1分、與四個baseline對戰輪流先後手,取得一贏一和以上戰績者每個baseline 1分,以八勝完勝baseline取得最後一分。不過因爲整題成績跟baseline 4太強,所以規則修改為贏一場或是全平手就可以取得baseline成績,0敗就可以取得最後一分。加分部分為GitHub有push三次就加1分。寫出MCTS加1分、NNUE加2分(原本要求要打贏前三個baseline才算,但實際不可行就放過了)。最後會把所有baseline滿分的同學互相比賽,最贏的加2分,並依照排名比例加分。 所以整體project滿分是15分。
- 有微調成績,但不確定調多少
班級成績:
班平均/標準差(等級制):2.70/1.09
最後成績(本人):
上機小考 (8%) |
一段 (15%) |
二段 (15%) |
期末考 (25%) |
紙筆測驗 (10%) |
Project1 (9%) |
Project2 (9%) |
Project3 (9%) |
總成績 |
88.89 |
100 |
66.67 |
70.17 |
87.5 |
9.4/9 |
10.5/9 |
12.7/9 |
92(A+) |
T分數:64.68