ETH官方钱包

切換
舊版
前往
大廳
主題

資工系在學什麼?

鍋貼企鵝 | 2015-11-25 13:04:46 | 巴幣 23 | 人氣 1419

同步發(fā)表在新 blog:資工系在學什麼?

感覺蠻多人不知道什麼是資工的,或是資工在做什麼的,我在這邊簡單說一下好了。 讓想進去,或是對著裡面有幻想的孩子們有認知,對選科系或許會有幫助。
曾經(jīng)有個笑話是電腦壞掉了,然後讀資工的小明不會修電腦,被人家嘲諷說:不是讀資工的?
從上面或許可以看出普羅大眾對於資工的認知或許是修電腦?其實這完全是錯誤的。
資工從一開始就會進行程式訓練,通常會是C或C++。 進階一點會開始建立物件導向的觀念,這時候通常會教C++或JAVA。
並且會訓練邏輯,所以會有離散數(shù)學等課。 然後,為了未來的實用會加入一些大一大二乍看之下沒用的線性代數(shù)跟機率之類的課程。
有了基礎程式觀念之後,會開始講解作業(yè)系統(tǒng),我們寫出來的程式,是如何被執(zhí)行的,OS怎樣保護硬體,如何分配資源可以更有效率。
並且會輔以計算機組織來更加了解細節(jié),計算機組織會有電腦基本概念,比方說電腦如何表示正負號,浮點數(shù)的IEEE754是怎樣,並且講解一個程式,如何轉換成電腦看得懂的機器語言,並且CPU如何運用 pipeline 快速的去執(zhí)行他,最後講解如何運用快取來讓電腦以為有一個超大又超快的記憶體空間使用。
有了OS跟計算機組織的觀念,可以幫助程式寫得更好,比方說知道有 new 就要有 delete,運用快取的特性去讀陣列,可以更快,並透過減少I/O或是用 buffer 來做I/O等提升效率,理解為什麼浮點數(shù)會有精確度問題等。
程式每個人都可以學,但我相信這些學的比較好的人,寫出來的程式會相對比較有效率。
在學習系統(tǒng)層面的同時,也會更精進程式能力,這邊就會加上資料結構跟演算法,裡面會提出問題,並且討論如何用演算法(程式)解決。比方說問題可能是如何讓電腦計算最短距離,然後說明這問題的必要性,以例子來說,求最短距離在近乎所有RPG都有在用到,甚至 Google Map 我猜測也有用到其的變形,最後加上解決方法,如 Dijkstra, Bellman 等。
這些都學完基本上我個人覺得就可以是一個合格的資工畢業(yè)生。 但有些人會想更進一步想看看更厲害的東西,比方說臉部偵測,如何寫一個程式讓電腦偵測人臉在哪,這在現(xiàn)在相機都有的功能,背後可能是 Adaboost 等想法,這時候看起來很像沒用的線性代數(shù)跟機率就會帶進來,透過數(shù)學分析,找出一個好的模型來表示這個問題並解決,再加上之前會的演算法跟資料結構時做出這個程式,並且此程式合乎作業(yè)系統(tǒng)的設計等,可以有效率的執(zhí)行,最後就能得到我們相機上看到的成果。
這樣或許對資工有一個比較概括的了解?
有問題歡迎提出。 :D

創(chuàng)作回應

萬里磁鐵貓
2015-11-25 14:07:55
Hello
我也是資工系學生~但我必須說這篇內(nèi)容
對非資工系學生應該會完全看不懂,然後不知道要問甚麼問題XD
2015-12-01 23:39:14
鍋貼企鵝
或許最後變成是學完資工系之後的一個回顧?把整個資工系必修串起來的一篇文章XD
2015-12-02 01:43:09

更多創(chuàng)作