電腦效能應用與安全研究室 Performance, Applications and Security Lab


我們的研究範圍很廣,從嵌入式系統、手機應用、一直到雲端計算、商務應用、資訊安全都有做。
我們的合作研究夥伴很多,包括聯發科、IBM、中研院、資策會,還有和台大、清大、交大的教授合組研發團隊
,包括高階應用處理器架構研究、虛擬化技術、異質計算、系統軟體等重要技術的研究與創新,我們很關切台灣人才與產業的未來。

2013年10月9日 星期三

學生來信問修習嵌入式系統

學生來信 (2013.10.08):

老師您好 我是醫學院(醫技三)的學生
但是因為對於電機資工領域相當有興趣 所以有在資工系做專題
主題是醫學影像處理
只是說
在寫程式之餘 也對於硬體是如何運作也漸漸產生興趣
所以想說先從嵌入式系統著手 想了解一點基本架構
我買了一本入門書自修 他是用組合語言
我對於嵌入式系統的應用也只想到可以來做生醫訊號處理(因為我的未來發展是想走生醫工程)
不知道這樣的切入點是否正確?
我打算先從硬體結構下手 再去學程式設計 或是利用Keil 等等的工具可以利用C來寫嵌入式系統
(我現在的語言是C++)
不知道是否方便請教您一些有關於嵌入式系統的知識呢?
畢竟自己念書還是會遇到一些問題 或是一些瓶頸

我的回覆:

關於您的問題,我的想法如下,請參考:
- 醫學影像處理未必一定要用嵌入式系統去做,因為嵌入式系統能做的事情有限,複雜的醫學影像處理做不來,有其侷限性。
- 目前我們實驗室在研究醫學影像處理的時候,主要看的是如何用平行處理的方式提升醫學影像處理的速度,這個需要平行處理的知識和技能。
- 我們實驗室另外也有博士班學生研究開發專門的硬體電路來提高效率,這個需要有些邏輯設計的基礎。
- 如果對於嵌入式系統有興趣的話,組合語言不是重點,C語言是必須的,但也不是重點。嵌入式系統的重點在於對於系統的了解,這需要包括計算機結構、作業系統 等科目的基礎。

如果朋友們有好的建議,不妨在此留言,我可以轉給這位學生。

醫技系學生來信之二 (2013.10.09):

老師我了解了
所以說如果就算未來我是去唸了生醫電資所
因為我是非資工系背景 那我是否應該在研究所把這些基礎科目補齊 修課?
我自己研究過 應該是作業系統 計算機結構 系統程式 資料結構與演算法(我現在只有基礎c++能力)
之後也比較容易切入這些領域
如果就算念的不是純資工所 在老師您的眼裡 如果具備了這些知識
也可以算是資工背景嗎?
另外 老師我想在請問 以我的狀況 您認為研究所應該是要往一個主題去深入探討 還是在行有餘力去多修資工系大學部的課程? 雖然說之後如果念生醫電資所 應該是會主修影像處理 但是我也不想讓之後發展侷限在影像處理
(其實現在很掙扎是否要去念生醫電資所還是去考電信所 因為我是醫學院背景 所以我想在研究所獲得工程的能力 剛好我也很喜歡寫程式 所以打算往這方面發展)
當然 相信其他人也會有這些問題 很歡迎老師把這些問題PO在網路上
也麻煩老師要看我這麼雜亂的問題了
謝謝老師

我的回覆:

您的問題,我沒有很好的答案,但是讓我聯想到一些事情,所以我就把我的想法記錄下來,給您做參考。

在學校,學生們通常會思考的問題:

對甚麼有興趣?
未來想做甚麼?
該學些甚麼?

想清楚「對甚麼有興趣」,以及想清楚「未來想做甚麼」,這兩件事情通常是有相關性的,但也可能無關,興趣和工作未必要一致,這因人而異。如果早點想清楚的話,或許會少一些雜亂 -- 對於不喜歡雜亂的人來說,是件好事吧? 對於喜歡順著流走的人,大概不怎麼在意。您既然會來信,大概屬於前者

至於「該學些甚麼」這個問題,如果有明確目標,應該可以擬訂出一套學習程序的,不是嗎? 可是,在進步極快的電腦科技領域中,要設定目標,有時候是相當困難的。

我將您的問題以及我的回覆放在我的facebook網頁上,撇開一些酸溜溜的意見,不少朋友提出了不錯的建議。(訊息是公開的,所以您到我的網頁上就看得到。) 不過呢,這些從個人經驗為出發點的意見或建議,包括我的在內,酌量參考就好,因為大家都還不了解你。

看看這些五花八門建議,其實所謂的【嵌入式系統】【資工背景】【醫學工程】的領域,每一個都包含很多的內容。要學些甚麼,不只要看您的興趣,還要看您的興趣有多濃厚;或者是看您未來想做的事情的種類,是想要研究某項學術,還是利用某項技術,還是「體」「用」兼備的學問?

您既然說對嵌入式系統有興趣,就先修一修基礎的課程,如果修過後興趣更濃厚了,再進一步去多修一些進階的課程,這是比較「踏實」的作法。至於進階的課程有哪些?基礎課程裡面應該有講。

當然,有些人半路出家,也能闖出一番事業,所以您也未必要按規矩來,只要有認真在學東西,一路好好學下去,應該會不會有太大的問題。如果您已有一些計算機結構、作業系統、資料結構的基礎,關於嵌入式系統,線上資源很多,可以自學,甚至還有一些佛心來著的專家,例如我的朋友Jim Huang (jserv) 提供免費的暑期課程(http://wiki.csie.ncku.edu.tw/embedded/summer2013)。

我個人覺得,有機會學習個人有興趣的課程,是一項福氣;學的東西能夠好好用在事業上,也是一項福氣;兩項福氣都有,那是難得的,但往往得比一般人更用功努力。因為,學的多,自然學到有興趣的東西的機率多一些,在工作上派得上用場的機會也多,不是嗎?

您既然說「想在研究所獲得工程的能力 」,我建議您先了解「工程」的本質是什麼。我正好利用這機會來談談我現在很有興趣的工程教育,

目前大學教育的「工程」,來自於英文的engineering。美國的一個工程教育認證組織ABET將engineering定義為"The creative application of scientific principles to design or develop structures, machines, apparatus, or manufacturing processes, or works utilizing them singly or in combination; or to construct or operate the same with full cognizance of their design; or to forecast their behavior under specific operating conditions; all as respects an intended function, economics of operation or safety to life and property".

注意到,工程應該是「有創造性的應用」科學原理 (creative application of scientific principles),在根據某些規格和條件下(as respects an intended function, economics of operation or safety to life and property),去從事以下事項:
- 「設計」或「發展」結構、機器、工具、製造方法等 (to design or develop structures,...)
- 在「完全理解」某工程物件的設計的狀況下,去「建構」或「操作」上述工程物件 (to construct or operate the same with full cognizance of their design)
- 「預測」某些工程物件在特定運作條件之下的行為(to forecast their behavior under specific operating conditions)

所以,嚴格來說,要當個好的工程師不容易。根據這定義,如果只是照本宣科,沒有將科學原理做「有創造性的應用」,例如重複、仿造人家做過的東西,就不是上面說的工程;如果不能動手做設計和發展的話,也不算說是在做工程;只會用東西,但不完全理解所使用的東西,也不算在做工程;至於要能夠預測行為,通常要考慮很多複雜的因素,也不容易。

想獲得工程的能力,可能不是光修修課就行的,要動手做些東西。有工程的能力,到了與工程相關的業界,學習做什麼都快。在學校沒獲得工程的能力,到業界再學,也不是不可能,只是怕沒有時間好好地學 -- 趕進度的時候,很多人就知其然,卻不知其所以然,恐怕搞幾年下來,工程觀念和能力越來越薄弱,只能靠經驗,換個領域重新開始就慘了。

至於選擇研究所這件事情,我就不詳細回答了,因為這牽扯到每個學校、系所和教授的特色,最好親自去挖掘資料、尋找答案。

沒有留言:

張貼留言