張堯學
摘 要:軟件是計算機學科的核心,具有科學性、藝術性、工程性、交叉性、靈動性五大根本屬性。在分析當前軟件工程教育面臨的問題基礎上,結合國家示范性軟件學院建設的成功經驗,對建設一流軟件專業、培養一流軟件人才提出建議。
關鍵詞:軟件;軟件教育;示范性軟件學院;新工科
一、軟件:計算機的大腦與靈魂
新時代,新計算。隨著移動互聯網、人工智能、云計算、5G、芯片、網絡安全、區塊鏈等技術的蓬勃發展,計算機學科迎來了新的歷史發展機遇期。在這一時期我們更應該深刻認識“新”在哪里,計算機的初心是什么。就像這幾年大家討論較多的芯片問題,的確是一項非常具有難度的工作。但是芯片最難的無非三樣東西:一是材料,二是工藝,三是設計。如果說有了新的材料,有了好的工藝,但是沒有好的設計,還是做不出芯片。設計的核心還是軟件。我認為,新計算之“新”的核心是軟件。如果我們的軟件沒有學好,沒有教育好,我們很難出新的思想、新的大師。
我國計算機信息產業發展非常快,2018年軟件產業GDP已經達到6.3萬億元,大概占整個GDP的7%,在國民經濟中占據了舉足輕重的地位。同時,我國計算機相關論文數量在國際不同機構的評估中都有很高的排位,位居國際前列。比如ESI,突破千分之一的學校中國有10所,這個成績是很了不起的。但是反過來看,在有這么多量的情況下,質的東西在哪里?在世界計算機界,說是中國創造的可能很少或者沒有。其中一個原因,可能在于對軟件理解得不夠。
軟件具有5個根本屬性。一是科學性。軟件是一門科學,要基于科學依據,符合客觀標準。二是藝術性。完成同一件事情,不同的人寫的代碼是不一樣的,有很多藝術性的成分在里面。這一點在我們的教學中并沒有得到充分的體現。三是工程性。我們現在講軟件工程,可能對它的工程性強調得比較多,就是研究怎樣才能夠大規模生產,然后不同的人可以去維護,去發現漏洞提高安全性等問題,工程性與藝術性存在區別與差異,但并不矛盾。四是交叉性。軟件用于各行各業,學科交叉很普遍。現在計算機已經成為人類社會必不可少的一種工具,但是其最核心的還是軟件,軟件無論在哪個領域、哪個行業都有深度參與,計算機軟件在各個行業中都發揮著重要作用。五是靈動性。有時候真的很奇怪,很多優秀的軟件給使用者的感覺好像是“活”的,是有“思想”的,這種“思想”當然是我們的編程人員賦予的。所以,優秀的編程人員一定會對自己的成果非常
珍視。
新時代呼喚新軟件。我們需要充分認識軟件的核心作用,理解軟件的根本屬性,真正支撐起計算機學科的飛速發展。
二、軟件工程的教育
1.當前軟件工程教育面臨的問題
現在教育部正在大力推進新工科建設,這是很有意義的一項工作。具體到軟件工程本身,同樣需要尋找自身存在的問題,努力適應時代發展要求。
當前軟件工程教育存在的最大問題是學生的價值觀問題——精致的利己主義。這不只是教育系統本身造成的問題,應該說是整個社會都存在的普遍問題,但是可能在軟件乃至計算機行業里面表現得更為突出。在20世紀末至21世紀初,印度的大街小巷印滿了“要發財學軟件”的廣告,平時工作跳槽最多的也是軟件行業的,只要另外一個公司開的價高,馬上就走了。企業不得不用各種辦法來防止軟件行業的畢業生跳槽。很多人并沒有一個比較長期的為企業發展服務、和大家共同前進的理念與想法,往往只顧眼前利益,忽視長期利益。如何為學生樹立正確的價值觀,應當成為軟件教育的首要任務。
另外,我們的大學教育和市場需求是脫節的。我可以舉一個例子,現在網上有一些從業者開設的編程類課程受到了熱烈追捧,有的課程甚至有數萬人愿意付費學習。由于我們的課程教學不到位,“水課”太多,我們的畢業生到公司以后,還需要重新選修這種編程課。當然現在高校教師也在陸續開出這樣的網絡課程,但還是有一定差距。為什么我們培養出來的學生還要通過二次學習,去學編程的工具、方法,經過培訓以后才能在公司里站得住腳?就是因為我們的書本知識與實際應用相脫節,課程體系設置與培養目標制訂和實際需求相脫節,并且老師的教學能力和水平本身也有一定的問題,不能滿足社會需要。學校和軟件企業合作較少,管理方法和手段不符合軟件人才培養需要。特別是由于我們在軟件領域的自主創新遠遠不夠,這有可能導致我們的軟件工程教育成為“中國身體、美國思想”,培養的人才缺乏創新意識和創新能力。
2.對國家示范性軟件學院建設的重溫
2001年12月,教育部、國家計委聯合發布了《關于批準有關高等學校試辦示范性軟件學院的通知》(教高〔2001〕6號),正式開始建設國家示范性軟件學院。當時設立37所示范性軟件學院,目的就是要辦一件大事——創建一個教育特區。
一是管理權下放。示范性軟件學院的招生指標由所在學校自主確定,國家不安排招生計劃數,考試和錄取標準也由各學校自己決定;創新辦學體制機制,拉動社會資金投入,也可以使用政府的其他資金;用人權與收費權更加社會化,可以聘請國內外知名教授和軟件專家授課,原則上允許其按辦學成本制定學費標準,報當地物價部門審批即可;允許軟件學院根據市場需求自主設置專業。
二是人才培養模式創新。主動推進國際合作辦學與校企合作辦學,教師隊伍一定要“雙師”結構,使用雙語授課的課程要占50%以上,要有50%的時間到企業去學習,把企業和我們的學生緊密結合起來。另外,下放轉專業權利。其他專業的學生只要申請就能轉到示范性軟件學院。
三是培養目標明確。我們的培養目標不僅僅是適應國家和地方需要,還要適應家庭的需要、就業的需要,適應學生個人發展需求。
18年來,軟件專業培養了大批優秀人才,本科生人數達到60萬以上,碩士生達到20萬以上。從軟件學院有第一屆畢業生算起,就業率、平均工資連續15年排在全國各專業之首,至今未被打破。37所示范性軟件學院創辦之后,很多大學和高職都設立了軟件學院,示范性軟件學院及其后成立的各類軟件學院與中國軟件產業同步發展,為我國經濟與社會發展作出了巨大貢獻。設立軟件學院之初,我國的軟件出口額才20億美元,這對于我們這樣一個大國來說是非常欠缺的。就在設立示范性軟件學院之后,中國的軟件產業開始起步、騰飛。中軟、東軟、華為、騰訊、阿里等中國大型軟件企業中都活躍著大批軟件學院的畢業生。目前我國軟件出口遠遠超過印度,2018年軟件產業的產值已經達到6.3萬億元,軟件出口額554億美元。沒有哪一個專業能夠這么緊密地和國民經濟的發展結合,幾乎是同步發展甚至稍微領先。國家示范性軟件學院是一種教育體制改革的示范,一種人才培養模式改革的示范,同時也是一種產學結合適應國家地方需求的示范。
3.如何進一步建設一流軟件專業、培養一流人才?
我們現在面臨著一個很大的問題,就是一流專業建設和一流人才培養。什么是一流軟件專業?我認為必須具備四個方面的特質。首先是有先進的辦學理念和育人思想。每所學校都有自己的特色特點以及具體情況,要根據自己的特色特點提出適合自己學校的方法。其次是要有以人為本的管理模式和方法。學校和老師應該真誠對待學生,以學生發展為根本,倡導先進的管理模式與方法。再次是要有傳授一流軟件研發知識的“雙師”型結構的隊伍。強調“雙師”型結構的隊伍,不是要求專業一定要招多少教師進來,而是要把企業里最優秀的人才、最優秀的工程師請到學校里來,把軟件的設計思想、軟件的理念、軟件實際的開發過程傳遞給學生,教會學生方法。最后,就是一流的軟件專業一定要能夠培養出滿足國家和地方需求、充滿競爭力的一流軟件人才。
什么是一流軟件人才?軟件人才面向設計、架構、編程等各個方面,針對不同的人會有不同的培養方法,因此對一流軟件人才的評價標準要分類對待。但總體來講,一流軟件人才需要具備以下幾個特征。一是思考力要強。一流軟件人才需要具備解決問題、表達問題的能力和方法,遇到問題能夠真正深入思考如何解決,這就要求學生應該具有網絡思維、計算思維、軟件思維、批判性思維,但這一點我們做得還不夠,在教學過程的各個環節還沒有充分重視培養學生思考力。二是動手能力要強。軟件是一門需要真正動手操作的科學,因此一流的軟件人才要具備設計能力、編程能力、文檔能力、項目管理能力、交流能力。三是要具有淵博的知識。如果能夠培養大量這樣的軟件人才,我國的軟件產業一定會再上一個臺階。
因此,我們在進一步建設一流軟件專業、培養一流軟件人才時,可以從以下幾個方面著力。
一是教育要改革。軟件專業改革與人才培養要真正適應科技進步的需要,真正把教育改革落到實處。國家示范性軟件學院的辦學經驗也證明了好東西要堅持,不好的要完善,政府和學校要共同發力。
二是國家、地方、學校要支持。現在人工智能、大數據、區塊鏈等是大家討論的熱點,但這些畢竟還是軟件及計算機學科的新分支,不能一研究區塊鏈就把計算機給丟掉了,一研究芯片就把軟件丟掉了。我們還是要回到軟件的初心,回到計算機的初心,要“喜新不厭舊”。國家、地方、學校要大力支持軟件專業發展,重視其基礎性作用與關鍵性地位。
三是中央和地方的軟件專業學生應實施分類指導。“985工程”高校如何培養軟件人才?地方院校和高職院校應該怎樣分門別類培養軟件人才?肯定要根據學校自身的類型與特色區別對待、分類指導,科學設計適合其自身要求的課程體系、教學資源以及實踐實習。這樣才能辦出水平、辦出特色。
四是把“價值塑造”放在人才培養的首位,特別要注重思考力和軟件思維的培養。應該把“價值塑造”放在人才培養的全過程,讓學生樹立正確的價值標準、價值判斷、價值選擇。有了價值標準,學生才能夠知道哪些是該做的,哪些是不該做的,這樣才能學會判斷、學會選擇,這樣的人才是今后中國特色社會主義發展所需要的人。
五是加強實踐和英語教學,加強個性化培養。
[責任編輯:余大品]