2012年5月14日 星期一

專家呼籲:學生們把C學好吧!


在大學院校的電腦科學體系中,持續缺乏對嵌入式系統編程關注的情況,可能會讓分散的情況日趨嚴重。事實上,美國的工程教育越來越趨向於集中在某些特定領域,這也日益突顯出了當地大學的電腦科學教育在嵌入式系統編程方面的不足之處。

然而,問題在於,嵌入式系統開發安全、可靠、關鍵任務系統的基礎,而這些系統通常會用在從醫療到商用客機在內等許多大型開發專案中,因而使問題顯得更加突出。

許多批評的聲浪都認為,造成嵌入式編程領域產生落差的原因,是由於大學的電腦科學系所越來越偏向如Java這類時髦的程式語言,但付出的代價卻是犧牲了教導學生如何去設計及分析演算法和資料結構等基礎。紐約大學榮譽教授暨軟體工具供應商Adacore公司 CEO Robert Dewar 最近發表一篇文章,探討嵌入式領域的落差情況,他認為,許多大學都必須重新思考他們的程式課程規劃。


“說穿了,”Dewar寫道,“用Java來取代傳統程式入門課程中使用的語言,像是Pascal, Ada, C或是C++等──無異是讓整體教學的水準往後退了一大步。許多大學轉向Java的理由只是因為學生畢業後好找工作,但諷刺的是,這些學校培養出了僅具備膚淺技能的程式設計人才,他們正在失去與來自各個不同國家,具備更多技能與深度知識的人才競爭的能力。”

一些嵌入式編程專家則認為,Dewar還低估了嵌入式領域編程落差的嚴重性。該領域的專家之一Michael Barr,則是採取更具體的行動──他舉辦了為期一週的「嵌入式軟體研習營」(Embedded Software Boot Camp)──希望藉由面對面的教學,彌合所謂的嵌入式編程落差。這個研習營的重點集中在培養某些技能,如用C或C++來做硬體控制、撰寫更多設備驅動程式等,而Barr的結論是:美國的大學並沒有做好韌體開發培訓。



Michael Barr

“我發現,這些參加研習營的人都有一個共同點,就是他們在課堂上的表現通常都不是很好,除非他們都知道C語言,”Barr說。“我並不是說他們必須很懂C,但他們起碼要知道基本的C語法。”

那些一開始就從Java開始的電腦科學或工程系畢業生“根本無法觸及問題核心,”他說。“這就是我覺得情況變糟的主要原因。”

危機迫在眉睫?

Barr的專長是醫療設備和其他嵌入式系統設計,他指出,自他舉辦研習營以來,他已經看到了解決嵌入式編程人才短缺問題的一線曙光,像IEEE等團體也開始關注這個問題了。下一次的研習營將在今年五月初於美國馬里蘭州舉行,屆時除了美國本土,還將有來自比利時、加拿大、墨西哥和土耳其的參加者。Barr認為,目前在做的事,正是彌補美國大學的電腦科學課程缺乏嵌入式編程訓練的最好方法。

Barr表示,這個研習營的參與者對課程內容的反應包羅萬象,像是有人會說:“你幫我把我以前曾經學過,但卻從來不知如何使用的知識整合起來了”;也有人說:“為什麼二十年前沒有人教我這些?”

嵌入式傳道者Michael Barr用以下這張Venn圖來說明目前電腦工程領域的嵌入式軟體編程現況,以及為何我們總是缺乏良好的韌體開發培訓。




這解釋了為何大學的電腦科學系所不再強調以C為基礎的嵌入式語言教學。除了Java熱潮興起外,觀察家們認為,追求研究補助金也是讓資深工程師和電腦科學教授們從課堂上消失的主要原因。另一個事實則是嵌入式編程團隊規模一般比較小,如通常由一個硬體工程師和幾個軟體工程師組成,因此,這個領域也無法產生讓畢業生嚮往的大量就業機會。

另一方面,在航空等產業中,一些大型的嵌入式專案通常都沿用較舊的技術。“這種保守、過程導向的工作環境,通常會讓許多軟體工程師卻步,”Barr說。

觀察家們對於嵌入式編程語言如C之中的指令若持續落後,是否會帶來危機一事意見並不相同。一位工程師對嵌入式軟體專家Dewar的文章做出了如下回覆:“能解決問題才是關鍵。至於專門的程式語言知識並不重要。工程師可以學習。在這個產業中,任何一種特定的知識,壽命其實都不長。”

但Barr憂心之處在於缺乏C語言課程,還有大多數熟悉傳統程式語言的軟體工程師年紀都偏高了,“某種程度來說,這也是一種危機。”他進一步表示,嵌入式軟體涉及的層面非常廣泛,從冰箱到汽車到智慧手機以及醫療設備,全都包含在內。

編譯: Joy Teng

(參考原文: Struggle continues to plug embedded programming gap,by George Leopold)

reference link :
鱼C工作室C语言程序设计视频

麻省理工学院开放课程 机电工程及计算机科学系 6.172 软件系统性能工程

国际名校公开课

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。