推 Aweather:大推XD 01/30 17:55
※ 本文是否可提供臺大同學轉作其他非營利用途?(須保留原作者 ID)
(是/否/其他條件):是
哪一學年度修課:
九十五學年度第一學期
ψ 授課教師 (若為多人合授請寫開課教師,以方便收錄)
黃鐘揚
δ 課程大概內容
以資料結構為基礎,訓練大家運用這些資料結構以及 C++ 提供的各項工具寫
出高效率、高擴充性的程式,進而體驗軟體工程的奧義
另外使用的平台是 Linux,所以也會教 Linux下程式設計環境的使用方法。
Ω 私心推薦指數(以五分計) ★★★★★
五顆 XD
η 上課用書(影印講義或是指定教科書)
無,但是建議可以拿一些資料結構以及程式設計的書當參考資料
有完整的上課slide可以下載
μ 上課方式(投影片、團體討論、老師教學風格)
老師自己親手做的 slides,講課為主,老師的教學風格很難描述,要自己體
會比較準 XD 只是一點特別的是:老師非常好找
課程在ptt有討論版,可以po版問老師或同學問題
σ 評分方式(給分甜嗎?是紮實分?)
這個學期分數非常高,平均85,一半上九十,但是請勿把它當成通識計概一
樣看待,這是八十位電機系同學和老師助教一起燃燒小宇宙得來的結果 |||
基本上這可能是電機系大學部課程當中,實驗之外前三操的課。
ρ 考題型式、作業方式
無期中期末考
作業是六個(本學期因為課程進度只有五個)
程式作業的形式都是老師寫好reference code,但是code裡面有很多東西被
拿掉了,請同學看懂程式並把它完成(也讓大家看看什麼叫做可擴充性高和
可讀性高的程式)。
第一個作業算是 no brainer,請大家找一個自己可以寫程式的 Linux環境,
稍微敘述一下這個環境,另外有一些練習使用的題目,再來就是一些基本的
Linux 環境下debugging的練習(Linux下並沒有VC/.Net等環境下那麼方便一
個一個變數排給你看的debug tool)
第二個作業是做一個command parser,就是一般純文字介面下輸入指令的東
西,我們要做到能夠確實的吃指令,同時還可以回顧過去的輸入紀錄、在輸
入時游標可以自由亂動並從中間插入字元等等
第三個作業是一個 modulus calculator(隨便舉個例 modulus 7時,-3 = 4
5 + 6 = 4 像是這樣),也是用純文字介面輸入的,另外還要能自由assign
變數名稱等等
第四個作業是一個memory manager,用程式來有效率的執行記憶體的取得和
回收不用的空間以加速程式效能,這個作業是最難的
第五個作業是實作三種list資料結構:array、doubly linked list和singly
linked list,這是寫程式的作業中相對來說最簡單的
第六個作業(我們這次沒有)是一個circuit parser,讀一個電路檔,然後存
進一個設計好的資料結構中,然後我們可以很容易的知道包括:這個電路的
輸入、輸出是哪些點、某個邏輯閘(這是一個boolean circuit)的輸出入是
哪些點等等。
期末專題是重頭戲,這個學期的期末專題是實作 Binary Decision Diagram,
一種電路合成和驗證中非常常見的邏輯表示法(細節請見wikipedia,不是很好
解釋),但是它的計算時間複雜度不低,所以需要搭配hash table等等其他的
資料結構來做cache以減少計算量,另外有非常多的指令(所有程式通通都是文
字式的輸入介面,這些輸入介面還要能handle不同的參數順序以及指令名稱部
分不完整)和功能要做,除了可以自己一個邏輯閘一個邏輯閘輸入以外,也要
可以從電路檔讀取,之後還要有各式的功能,像是輸入test pattern(0與1)然
後輸出結果是0還是1,甚至要能輸出某種可以圖形化的結果,可以用別的程式
把這結果作成圖之類的......有點難講解,但是非常有挑戰性,大概要寫上兩
千行以上,due day是期末考週結束後的星期一早上,所以假如沒有好好計畫
會很趕。
ω 其它(是否注重出席率?如果為外系選修,需先有什麼基礎較好嗎?老師個性?
加簽習慣?嚴禁遲到等…)
不點名,本課程為電機系二選三複選必修之一,基礎應該是計算機程式
(學C++的)。
今年會簽,可是老師今年改期末專題改得超級累,他覺得學生太多了(本來希望
可以讓大家上去報告自己做的東西,可是八十個人.....XD),明年不清楚
另外期末專題今年在同學們小宇宙爆發的情況下被嚴重破台(有一半以上的人
做到老師表示「過去最高分大概做到這裡」的程度),明年有可能會改更難的題
目(circuit satisfiability solver之類的......)
Ψ 總結
1. 本課程以程式設計為主,資料結構為輔,想學資料結構請修電機系顏嗣鈞教
授或資工系呂學一教授的課
2. 無誠勿試 無時間勿試的好課
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.41.154
※ 編輯: Parhelia 來自: 61.228.41.154 (01/27 22:35)
※ 編輯: Parhelia 來自: 61.228.41.154 (01/27 22:38)
※ 編輯: Parhelia 來自: 61.228.41.154 (01/27 22:39)