精華區beta NTUcourse 關於我們 聯絡資訊
※ 本文是否可提供臺大同學轉作其他非營利用途?(須保留原作者 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)
Aweather:大推XD 01/30 17:55