Re: [建議] 資工系之光榮燒肉之路

看板NTUST-ECE作者 (Peefly)時間13年前 (2011/06/16 16:06), 編輯推噓11(1107)
留言18則, 10人參與, 最新討論串4/4 (看更多)
來講一下資工系課程到底是可以拿來幹麻好了,也算是修課心得 學弟妹修起來也比較有目標,比較知道哪些部分往後可能會用到 --- (以我B96的必修課程表以及年級作區分) <<<<<<<<<<<<<<<<<<<<<<< 大一 >>>>>>>>>>>>>>>>>>>>>> 大一的科目大多是學院共同必修,這部分算是充實一般理論基礎,大二以後的課程 有不少都會用到這些理論 微積分: 這個大部分人應該都知道很多地方都會用到,之後在大三機率與統計中的連續型機率 會用到一些簡單的微積分概念;另外,以資工系的角度來看除了學基本的方法以外 還可以在多想想"在電腦中要怎麼做出對應的功能" 例如說 要怎麼寫程式讓電腦去做積分、微分等等動作 畢竟在一些模擬狀況中(如遊戲引擎的物理模擬)就得對各種玩家做出、無法預先計算 的動作做即時的微分、積分計算 物理、生物、化學: 類似前面的說法,物理也是在許多模擬狀況下都會用的到。另外,在資工領域中有些方 法其實是從自然理論中激發出來的,像是在人工智慧領域中的機器學習方法,其中一種 改善方法就是引用物理動量的概念,來降低大量輸入狀況中部分雜訊的影響性,讓整體 系統能夠更穩定,不會因為少部分的雜訊就瞬間讓系統造成大幅度的改變。另外還有搜 尋演算法中基因演算法,就是取材自生物中適者生存的法則,適應性較佳的結果能有較 高的機率交配/突變出更新更好的結果。了解自然界的道理並應用在適合的狀況下,納入 我們所設計的系統裡,在資工領域研究過程中其實並不少見。 國文、英文、程式設計: 這三個簡單來說就是溝通工具:對華語系人/歪果人/電腦 學好才有辦法了解別人的想法、表達自己的看法,或是要求電腦照著自己的意願做事 講話講得好溝通/執行效率就高,才有更多的時間去玩(誤 計算機概論: 電腦是資工系的主要工具之一,了解一下他的身體構造應該滿正常的(茶) 當電腦某天吐出個錯誤訊息裡面包含各種專有名詞才看得懂,也比較能了解大概能朝 哪個方向作修正。(EX:當電腦顯示記憶體不足時請不要以為刪除硬碟裡的檔案可以解決..) <<<<<<<<<<<<<<<<<<<<< 大二 >>>>>>>>>>>>>>>>>>>>>> 大二課程我認為算是專業理論基礎課程,比較不像大一的課程那麼一般性,但仍算是 基礎課程,有些科目甚至會彼此互相重疊、交互應用。專業理論學得好可以減少往後 應用時還得翻出來重新複習理解的時間 工程數學(一)/微分方程: 這部分就我修過三次(>///<)的心得,電子、電機系開的工數和資工系開的工數其實方向 不太一樣。電子電機的工數著重微分方程的計算,資工的工數則較偏數值計算方法 若以實用性來講資工開的工數可能會比較有用,像是在電腦中方程式的求解的方法、 直接求根本求不出來的微分方程的數值趨近求解方法等等 那些電路模擬軟體作的積分微分求參數其實都是靠這些數值方法得出來的 (我修的那次資工開的是謝仁偉老師教的,我不確定會不會換老師就變方向之類的) 離散數學: 離散數學講的主要有組合學、圖論等等,主要是因為電腦裡所有資料都以離散形式表示 所以才會有這看起來很雜的科目。組合學(排列組合)能夠輔助列出所有可能狀況,考量 各種狀態的個數,而不用靠程式窮舉才能知道所有排列。圖論其實和之後演算法提到的 搜尋方法有關,主要講如何表示各個資料間的連通性等其他性質,演算法中也會再提一次 圖論內容,並加以延伸。 線性代數: 線代表面上講的是矩陣、向量的運算概念,但實際上講的是資料以向量表示時的各種 應用性質。例如顯示卡中的GPU處理的就全部是矩陣運算,要怎麼把方程式轉成矩陣 丟進顯示卡GPU作大量平行化求解時就用的到線代勒~ 數位邏輯設計: 這門課比較偏硬體部分,主要會用到的時候應該是在資源有限的系統中做最大的應用 那一堆0101010001的邏輯運算在嵌入式系統或網路傳輸時都會用到。例如有電子 系的強者在寫微算機時程式太大塞不進IC裡,都可以用學到的概念幫忙讓程式減肥、 最小化 資料結構、演算法: 這兩門課算是資工系的重點核心課程之一,資料結構講的是資料如何在電腦記憶體中擺放 ,演算法是講如何對資料進行最有效率的基本操作。這兩門課在大三的編譯器設計、作業 系統都會大量用到(compiler中的symbol table完全用linklist+陣列建成,也有人用hash table作;OS的中的page table也是)。學校在這兩門課教的算是非常粗淺,但是只教這 些修課的人就已經死那麼多了(尤其是演算法),所以老師考量到學生程度自然也沒辦法講 太多。 這裡要幫演算法的鮑老師說一下話,老師其實人很nice,只是他不知道有時候說出來的話 學生聽起來會很抖而已。(EX: 我第二次修演算法時學期中要教新章節時他說 「今年來教點不一樣的好了,這樣重修的人來上課才不會太無聊」@O@|| <<<<<<<<<<<<<<<<<<<<<<<<<<< 大三 >>>>>>>>>>>>>>>>>>>>>>>>>>> 大三的課程算是整合性課程,整合了許多主要的大二的科目。演算法、資料結構學得 紮不紮實在大三下的OS、compiler就能見真章 計算機網路概論: 這們課當作講網路的計算機概論就可以了,也都是講個大概,畢竟範圍還是太廣了 主要名詞懂就差不多,瀏覽器吐出錯誤訊息時也比較知道能幹嘛。 (別再說"碼的我PPS、foxy、BT都掛著沒在抓東西怎麼也會爆流量?!") 喔對了,聽說宿網被停權的話,可以用一個老師上課有提到的技術繞路出去繼續上網.. 計算機組織: 進階版的計算機概論,而且是很硬體的計算機概論。一開始會先講MIPS組合語言,之後主 要延伸了計概提過的各種數值表示方法,另外還有電腦中的主要元件以及運作方式,像是 數值運算在硬體中是怎麼運作的。除此之外還有衡量CPU執行效能的計算方法、各種裝置 間的訊號傳遞過程等等。這部分對以後有興趣走硬體方面的同學可能比較有用。 機率與統計: 對這門課比較苦手的應該是那些高職上來的資工系同學們,就我們這屆的經驗這科高職生 和高中生落差滿大的。機統主要應用在系統評估與模擬,像是一個網路無線AP要怎麼估計 最大負載量、buffer要開多大才夠等等。生活中的應用大概就是玩牌時比較會算牌的出現 機率,這大家應該都知道 作業系統、編譯器設計: 兩門應用型的整合課程,主要是都要作project: OS是去增強簡易作業系統Nachos的功能 會用到學校沒教的C++以及trace大量的程式;compiler則是要寫出自己的一個編譯器, 通常是將簡易的pascal或java轉換成java assembly code,再透過老師提供的java assembler轉換成可在java virtual machine中執行的程式。這兩個程式的自由度都非常 大,設計適合的資料結構及演算法就變得非常重要(無論是撰寫還是debug)。作業系統主 要學的是資源分配與優先順序問題,其中資源包括了記憶體空間、CPU時間等等;另外還 有一部分的是在講硬碟存取方法。OS本身就是許多理論實際應用的例子了,要是要再說其 他應用的話,一對多的server在處理多個client時的負載平衡會用到類似排程的概念,而 硬碟的存取方式最有名的應該就是電梯載人該怎麼跑的演算法了。 而compiler應用到的就更多了,對於較複雜、具有結構性的文字檔都能用上課教的lex (flex)和yacc(bison)做處理,會非常方便,像是瀏覽器、進階文件編輯器(Word)等等 都是對文字檔進行處理,應用廣度自然不在話下。 <<<<<<<<<<<<<<<<<<<<< 大四 >>>>>>>>>>>>>>>>>>>>> 就~~都選修啦 如果你要過爽爽,可以都修通識。如果想充實自己的話甚至可以去修研究所的課!! ==================================================== 另外,如果碰到某一科不知道學了要幹麻的話 可以直接問老師,老師應該也能舉例子說明的 這樣學起來可能會更有動力、更清楚哪些是重點 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.170

06/16 16:17, , 1F
112....0.0 好完整的解析 聽的彷彿自己也學會資工了XD
06/16 16:17, 1F

06/16 16:35, , 2F
我們這屆的資結...科科
06/16 16:35, 2F

06/16 16:38, , 3F
人家可是IEEE fellow呢(茶)
06/16 16:38, 3F

06/16 20:37, , 4F
補充一下編譯器我們這屆是寫Pascal,應該是每年用輪的
06/16 20:37, 4F

06/16 20:38, , 5F
樓上..是python不是pascal...
06/16 20:38, 5F

06/16 21:00, , 6F
這篇可以M了 當選課心得
06/16 21:00, 6F

06/16 21:38, , 7F
是Pascal吧= =
06/16 21:38, 7F

06/16 21:38, , 8F
python是你修的科學計算機程式吧= =
06/16 21:38, 8F

06/16 22:46, , 9F
是pascal沒錯XD 福賴大神都跳出來說話了~大家瞭了沒
06/16 22:46, 9F

06/16 22:54, , 10F
這不推不行 太詳細了QQ
06/16 22:54, 10F

06/16 22:59, , 11F
用心推
06/16 22:59, 11F

06/16 23:46, , 12F
分析精闢入理! 不愧是程式設計高手!
06/16 23:46, 12F

06/17 00:29, , 13F
修正了compiler作的其實是pascal而不是python的部分,OS部
06/17 00:29, 13F

06/17 00:29, , 14F
分也重寫一段。另外加入了之前漏掉的計算機組織
06/17 00:29, 14F
※ 編輯: peefly 來自: 122.120.0.148 (06/17 00:40)

06/17 16:59, , 15F
推. 有沒有IEEE Fellow沒有講座的八卦?!
06/17 16:59, 15F

06/19 16:25, , 16F
有沒有compiler考古題阿~~~
06/19 16:25, 16F

06/19 17:40, , 17F
樓上不貫徹名言 一學期放掉一科嗎
06/19 17:40, 17F

06/19 19:36, , 18F
要給下學期留點希望
06/19 19:36, 18F
文章代碼(AID): #1D-Rc0zZ (NTUST-ECE)
文章代碼(AID): #1D-Rc0zZ (NTUST-ECE)