Re: [心得] 台大/資工/哲學/學習心得

作者: sitos (麥子)   2016-05-15 01:26:33
接著來寫資工系的部份。
因為我也只有讀過台大的資工系,而且是在 2000 年左右就讀的,
所以原則上我所講述的狀況,是在 2000 年之後幾年內,我對台大資工的理解。
不能代表其它學校的資工系,也不能代表現在的台大資工系,而且只是我的個人看法。
不過,雖然資工的熱門領域一直在變化,且不斷有新的發展,但大致上涵蓋的範圍,
我認為並沒有太多的變動,只是因應著整個產業的變化,在課程安排上會不斷調整。
課程
在略為參考先前板上對資工系的介紹文以後,我想我可以大致沿用類似的架構,
提出我對各個項目的看法。而課程的內容,或者更簡白地說,資工系教什麼,
確實應該擺在介紹這個系的首位。畢竟一個系某種程度而言,是被其核心課程所定義。
但基本上不太可能一門一門介紹資工系的必修課與選修課,可能不得不粗略分類以後,
大致講一下各類課程在教的東西。但如果要分類資工系的課程,其實也不容易。
一方面是資工本來就是一個相對非常應用的科系,因此很多課程都是綜合的知識。
另一方面,分類也有很多不同的分法,不管用哪一種方式去分,好像都會漏掉一些東西。
第一種分類方式以科目的本質去分類,大致上可以分成數學與科學(理科)與工程(工科),
前者會偏向理論或觀察的結果,而後者則是偏向將既有的知識用於解決特定的問題。
前者例如:
線性代數:我自己學得不好,沒真的弄得很懂過,主要跟矩陣運算相關。
離散數學:我也學得不好,主要和集合論相關。
機率統計:就是字面上的機率與統計的課程。
自動機與形式語言、計算理論:
討論「計算」的數學模型,討論什麼是「計算」的定義,
什麼樣的問題可以「計算」,什麼的問題不行。
圖論:我沒修過,主要是研究由頂點與邊組成的「圖」的一些特性。
大部份是數學課程。數位電子學的前面講解半導體特性的部份,可能也可以算在內。
但由於理科部份,相對離應用的領域比較遠,比較常被當作相關應用科目的先修課程。
如果要以這些理科的科目為主要的專業領域,後續的職涯發展可能會偏向學術研究。
*數位電子學:算是電子學的一個分支,主要探討數位應用領域的電子學,
也就是如何建構處理數位訊號的電子元件。
而工科的科目相對就五花八門。比較基礎的是一些基本的程式設計課程,
例如:
組合語言:僅比機器語言高階一點,以最基本的指令寫程式。
計算機程式設計:基本的程式設計課程,通常以 C/C++/Java 等常見語言入門。
物件導向程式設計:呃... 就是,物件導向的程式怎麼寫。
演算法與資料結構:簡單講就是介紹如何設計有效率的程式。
這部份的課程在講述程式設計的基本概念。
而系統方面的課程,主要的有:
計算機結構:怎麼樣用基本的電路元件組出一台可執行程式的電腦。
作業系統:怎麼樣管理與分配電腦的硬體資源,來執行程式。
編譯器:怎麼樣將寫給人看的程式碼,轉換成寫給電腦看的機器語言。
簡言之,編譯器將程式編譯,轉換成可執行檔,然後由作業系統分配資源給可執行檔,
最後在硬體上執行。對系統的知識,可以視為是對應用程式開發的基礎課程,
但系統的設計本身,也是一門應用的知識,也有不少人的專業領域,
是在開發與改進上述的系統。
再更上層一點的科目,則大致上包括各種不同的應用領域,
這部份常與教授的專業有關。學校教授有哪些專業,可能就會開跟自身專業相關的課程。
與影像相關的例如:
圖學:用電腦把圖畫出來,例如卡通化與 3D 繪圖等等。
電腦視覺:用電腦看影像,從影像中擷取有用的資訊。
人工智慧相關的例如:
人工智慧:我當時學的是比較舊的概念,比如教電腦怎麼玩遊戲或下棋。
機器學習、機器發明、類神經網路:
如何讓電腦從既有的資料中學習特定的知識。
還有通訊網路相關的課程,包括網路的基本運作方式,網路如何進行最佳化等等。
資料庫相關課程,講述資料庫系統的特殊需求,以及軟硬體設計上如何最佳化。
平行計算相關課程,如何撰寫平行化的程式,如何減少相依性,如何減少通訊量等等。
以電腦運作的軟體幾乎都可以包含在內。但除了必修課以外,
有沒有教授開相關的選修課,則常是以教授們的專業為主。
不過基本上相對比較熱門的領域,各校應該都有開課,不太需要擔心上不到相關課程。
工科的部份如果再作一些分類,可以藉由探討的對象,由底層往上層分類。
最底層的課程可能是數位邏輯設計和超大型積體電路,主要是教怎麼用簡單的邏輯閘,
建構出一個大型且功能複雜的電路。再往上一點是計算機組織或計算機結構,
主要是教怎麼樣透過各種不同功能的電路元件,組合成可以執行複雜程式的硬體系統。
再往上則是作業系統、資料庫等系統軟體,主要是教怎麼樣分配硬體的資源,
讓軟體可以更有效率地利用硬體資源。再往上則是編譯器,上面有提過了。
再往上則是基礎的程式設計課程,前面也提過了。再往上就是各式的應用領域。
基本上多數的課程都會有一些基礎的課,也會有一些相對進階的課,
因此在修完基礎的課程後,如果對該領域有興趣,通常會有分支更細的進階課程可以學。
除了必修課以外,要開什麼課通常都是教授自行決定的。因此有時候有開,有時候沒開。
但我認為不必太過擔心自己想要修的課程沒有教授開,或者因故修不到。
基本上現在線上的開放課程很多,資訊流通也很發達,如果真的自己系沒有開,
通常也都找得到相關的資訊來自修。介紹課程主要是想要讓大家感受一下,
資工系到底在學什麼,以及資工領域現在有哪些常見的應用。
因為今天寫得有點累了,暫時先在這邊打住,接下來我會寫我個人的修課心得,
也包括為什麼我認為不用太執著於修特定一門課。
同樣地,如果上述的內容有誤或有缺漏,也請大家不吝指正。謝謝。
作者: ingridpan123 (方吉教教主)   2016-05-15 10:24:00

Links booklink

Contact Us: admin [ a t ] ucptt.com