張墨華 萬金梁
軟件工程專業綜合能力培養研究與實踐
張墨華萬金梁
(河南財經政法大學計算機與信息工程學院,河南 鄭州 450046)
文章針對軟件工程專業學生綜合能力培養中存在的問題,通過調查IT企業的非技術個人素質要求,分析軟件開發人員的綜合素質要求,提出軟件工程學生能力培養指標體系。基于學科競賽的程序設計能力的培養模式,重構程序設計能力的培養目標,從課程、教學、實驗室、學科競賽驅動等多方提出優化舉措,結合目前高校軟件工程專業學生素質培養體系的不足,開展“五位一體”的融合培養的綜合能力培養實踐。
程序設計能力;個人綜合素質;綜合能力培養;能力培養指標;學科競賽
隨著高等教育改革的不斷深入,學生綜合能力的培養已經成為高等教育的首要任務[1]。有學生反映,雖然學習成績不錯,但是表達能力和溝通能力差,不夠自信,所以在面試時非常被動。從河南財經政法大學計算機與信息工程學院生源上看,來自農村的孩子居多。目前中小學教育仍然是以應試教育為主,綜合素質的培養基本上被束之高閣,所以到了大學之后,大學教育依然面臨著一個素質教育的嚴峻現實[2]。
從師資構成上看,絕大多數任課老師是從校園畢業后直接進入工作崗位的,在學校時從事的也多是理論性的研究工作,入職后也缺乏如何做好教學的培訓,而且多數老師也是從這種模式下培養出來的,導致大學的綜合素質教育在課堂上也沒有得到很好的貫徹執行[3]。另外,高校師資缺乏對企業特別是IT企業招聘、用人和管理的深入了解,導致對學生的教育無法做到針對性。從學生管理工作來看,由于專職輔導員人數少,且上級部門的任務和活動多,導致和普通學生的接觸少,學生被動參與活動,活動效果很難奏效。部分班級凝聚力不夠,無法組織有效的活動,學生集體感不強。
軟件工程專業學生的綜合能力內涵很多,通過對IT企業的非技術個人素質要求的分析,得出軟件開發人員的綜合素質要求,提出軟件工程學生能力培養指標體系。本文將其分為個人能力、職業能力和人際交往能力,通過對這些能力的構成和培養模式進行探討,并對河南財經政法大學計算機與信息工程學院目前培養模式存在的問題進行了分析并提出改進措施。
通過搜集并分析一線IT公司的招聘要求,得出這些要求基本可以分為兩類:技術條件和個人素質。例如,百度公司某開發崗位的要求是“優秀的分析問題和解決問題的能力,勇于解決難題;強烈的上進心和求知欲,較強的學習能力和溝通能力,具備良好的團隊合作精神”。阿里巴巴某開發崗位的要求是“有很強的分析問題和解決問題的能力,有強烈的責任心;有團隊精神,良好的抗壓能力,心態積極,能主動融入團隊;技術視野開闊,學習能力好,對業界新技術敏感,喜歡鉆研,具有良好的學習能力并注重團隊合作”。在這些一流IT企業的招聘要求中,創新意識、學習能力、溝通和表達能力、團隊協作能力、責任心、抗壓等詞語頻頻出現,反映了IT行業對員工應當具備的素質具有某些共同的期望。眾所周知,IT行業的技術發展日新月異,因此對于員工的學習能力是非常高的,而且IT企業的工作壓力很大,因此,能夠承受壓力也成了大多IT企業對員工的一項要求。
軟件工程本科專業的培養目標是培養能夠分析、設計、開發、維護軟件領域相關工程問題的專用人才,通過培養畢業生的綜合能力,使學生具備利用信息技術的理論和方法解決軟件工程中復雜的專業任務或實際問題的能力,學生能夠評估和考慮影響專業活動領域的經濟、社會、技術和環境因素[4]。
軟件開發人員成為行業專家的必備素養中,抽象思維(理論分析)、分析思維、集中注意力的能力、表達能力(向他人表達自己的想法的能力)、可視化能力(思維建模)等是最重要的素養。具體來說,軟件工程專家應該具有包括質疑、驗證、假設、推理等推理能力和批判性思維;具有質量意識和追求卓越的態度;掌握基本的數學研究、工程研究、設計研究和社會科學研究的方法;具有自我接納、自我調節、自我意識、自我提升的認知能力;對社會、環境、道德、倫理、可持續發展等問題具有敏感性;具有使命感、毅力、承諾、自我激勵、奉獻等精神;還應具備適應性、靈活性、思想開放及多任務處理能力[5]。
社會需求的設計能力指的是利用各種信息科學和技術來應對社會需求,包括提取和定義需求、問題分析與建模、系統實施和評估等。在具體軟件設計實踐中,其包括概念化想法,識別并制定問題,綜合運用各種學科和技術,從公共衛生和安全、文化、經濟、環境、倫理等角度識別問題,等等。并在這些約束條件下找到問題的求解方案,驗證結果,用圖畫、數學公式、程序等方式來展示想法,按計劃不斷規劃和實施,并期望以整體方式執行任務。
由于軟件工程師的專業活動會涉及收集、傳輸、處理、存儲信息,可以說其所有專業活動都具有交際色彩,軟件開發人員需要將他們的困難和愿景傳達給客戶、管理層、同事和最終用戶,此外還需要準備技術文檔和最終用戶的使用文檔。軟件開發人員需要讓自己站在最終用戶的角度,才能提供有用的產品。專業交流能力是在交流領域的知識、能力和技能的基礎上建立有效、集中的專業互動能力。軟件開發人員的專業溝通素質包括有目的地組織溝通的能力、以理解的方式傾聽他人意見的能力、以積極的情緒討論尖銳問題的能力,以及對相互沖突的個人之間進行調解的能力等,這些能力可以保證軟件開發人員應對職業活動過程中的各種交流情況。
能夠搜索、處理和分析多種來源信息的能力是程序開發人員必備的一項非常重要的技能,這一能力涉及到認知技能(使用符號的能力、使用廣義結構的能力、建立問題求解過程動態模型的能力等)和進行自我調節的元認知技能(將心理行為轉移到新條件下并設定新目標和提出新想法的能力、識別認知活動困難的能力、自我控制能力等)。這類能力可以通過以下過程進行訓練:熟練使用各種軟件工具;確定收集和處理信息的有效方法;開發自己的算法來求解問題;證明程序的正確性;評估軟件產品的效率;制定實驗計劃并處理實驗數據等。
與其他工程行業相比,軟件行業更加重視團隊合作。大型多場點、多文化的全球團隊同時在世界不同地區工作,以滿足不同文化背景客戶的需求。工程師在軟件行業的大部分時間都花在與其他程序員一起工作上。團隊合作能力與軟件工程專家的專業交際能力密切相關,其基礎是交際知識和交際技術。交際知識是關于交流的類型、階段、方法和技術;交際技巧涉及掌握心理和實踐活動,能夠根據對象的交際知識和能力,有目的地調節其交際活動,例如:以適當的形式形成信息文本的能力、演講技巧的能力、接收反饋的能力、克服各種溝通障礙的能力等。
軟件開發人員的職業道德與其他領域的專業人士并沒有太大區別,是從業人員的必備素養,其職業道德意識包括:專業活動對社會和自然的影響、技術與社會及自然之間的關系、對版權及信息安全的理解等。
軟件工程人才的專業能力也要對人類的安全、健康和福祉、環境保護做出貢獻。技術與環境存在雙重關系性。一方面,技術(例如:納米計算會對降低能耗和降低碳排放發揮前所未有的巨大作用)可以幫助解決環境問題;另一方面,技術本身也是造成重大環境退化的原因,例如:用于制造產品的工程過程會消耗能源量等。技術的這種雙重性意味著技術的發展需要構建更符合可持續發展的流程,同時還要生產出對更可持續發展社會做出貢獻的產品。培養學生對環境的道德責任也體現了新時代可持續發展理念下的育人思想。
通過上節對軟件工程開發人員綜合素質的分析,結合IT企業對學生的素質要求,表1為軟件工程專業學生綜合素質指標。本文將軟件工程專業學生綜合素質分為三個一級能力指標、八個二級能力指標,并給出每個二級能力指標的具體要求。

表1 軟件工程專業學生綜合素質指標
根據上述關于軟件工程學生能力培養指標的研究,河南財經政法大學計算機與信息工程學院分別從技術素養和個人素質兩個方面開展了相關的培養實踐。
程序設計能力是軟件工程專業人才培養中技術素養中的核心能力,也一直是教學的重點,但從目前來看,教學效果不是很理想。結合近幾年河南財經政法大學計算機與信息工程學院《C語言程序設計》《數據結構》《算法設計與分析》相關課程的開設和考試情況,以及參加有關競賽的情況,對學院的程序設計教學中存在的問題進行分析。
4.1.1程序設計能力的培養目標
在分析學院程序設計能力教學效果之前,首先需要明確程序設計能力到底是什么。眾所周知,“程序=數據結構+算法”,它點出了程序設計能力培養的本質。以下列出了程序設計能力的主要指標。
(1)用特定編程語言實現已知算法的能力,可以用完成所用的時間和代碼質量來衡量。
(2)在復雜環境下對算法進行優化的能力。
(3)對實際問題進行邏輯抽象的能力。
(4)對已知問題進行數據結構和算法的設計能力。
(5)代碼安排和組織的能力,也即具體設計的能力,可以用代碼規模來衡量。
(6)精通一種面向對象的語言,理解其實現機制,包括對語言的優勢劣勢的理解,能夠深入達到底層編程水平。
(7)具有良好的編程風格的意識。
(8)為已知任務選擇正確的語言工具的能力。
(9)具有進行單元測試和快速排錯的能力。
(10)能夠快速學習一門新語言的能力。
以上這些指標是一個優秀程序開發人員應當具備的主要技術能力,應當始終貫穿在學院程序設計課程教學中。
4.1.2現有程序設計教學能力培養的不足
在河南財經政法大學計算機與信息工程學院,《C語言程序設計》《面向對象程序設計(C++)》《數據結構》《算法設計與分析》是程序設計能力主要的培養課程,與綜合性院校相比,課時安排比較適中。
從能力培養的要求來看,《C語言程序設計》課程的教學目標對學生的要求較為初級,教學目標會涉及初步的計算思維的培養、算法設計與分析的能力、積累編程經驗、程序設計風格等。但是仔細分析,其教學目標依然存在缺陷,主要體現在缺乏和實際關聯。目前,學院的程序設計類課程教學普遍存在如下問題。
(1)以傳授教材知識為主,學生學習缺乏自主性和主動性,導致大量課時放在了語法或算法的講解上,而不是應用上。例如《C語言程序設計》,由于偏重于知識傳授,會導致更加重要的數據結構、指針、函數、文件等內容的教學沒有時間保證,往往以介紹性為主,學生甚至難有實驗的機會。
(2)實驗主要是驗證性教學為主,難以達到培養學生自主解決問題能力的目標。
(3)教學缺乏分層培養的考慮,無法照顧到學有余力的部分學生,課程考核標準較低,只保證了教學要求的最低標準。
(4)課程教學和實踐脫節,學生的實踐教學只是驗證學過的內容,而不知如何應用到實踐中,從而導致學生缺乏深入學習的興趣。
4.1.3基于學科競賽,加強專業能力培養
根據前述問題的分析可以看出,程序設計教學中存在的問題更多的是教學組織和方法的問題,需要進行扭轉[6]。具體舉措如下。
(1)課程建設方面:加強數學課的相關教學;按照程序設計能力培養的目標,重新修訂教學大綱和實驗大綱;構建服務于《C語言程序設計》《數據結構》《算法分析與設計》等課程的題庫,采用OJ平臺作為平時的教學和競賽,滿足多層次教學的需要。
(2)師資培養和團隊建設方面:將《C語言程序設計》《數據結構》和《算法設計與分析》的老師組成教學團隊,統一教學目標,明確分工,實行共同備課;組建ACM競賽教練團隊。
(3)教學模式方面:徹底拋棄以知識傳授為主的教學模式,采用基于問題解決的教學模式,積極采用翻轉課堂、小組討論、競賽等多種方式組織教學,活躍課堂氣氛,發揮學生學習的主動性和創造性,讓老師真正成為學生學習的引導者。
(4)實驗室開放方面:拿出多個機房作為常規開放實驗室,不安排課程使用,滿足學生們隨時到實驗室實驗使用。
(5)建立競賽體系,濃郁學院學習氣氛、強化程序設計能力的培養:學院組織ACM校內競賽及選拔,優秀者可以給予創新學分;競賽所取得成績可以作為相應課程的平時成績,其成績達到某種水準可以取得課程免試的資格。
(6)組建高水平創新人才培養實驗班:創建高水平創新人才培養實驗班,其生源從對應年級中選拔,動態管理,可進可出。以參加高水平學科競賽驅動高水平創新人才的培養,通過這種特殊發展形式,形成突破,引領學院整體教學水平的提高[7]。
在軟件工程專業學生非技術的個人素質培養方面,要做到教師、學生、學生管理人員、教學管理人員、企業“五位一體”的融合培養機制。
以河南財經政法大學計算機與信息工程學院為例,學院按照學校課程教學范式改革的要求,重新設計新的教學方案,嘗試新的教學模式,貫徹以能力培養為目標的教學要求,所有課程均要有意識地發展學生的人文精神和交流技能;完善學業指導辦公室的值班制度,要求教研室主任定時值班接待學生進行咨詢,時間表應在每學期開學時工作給所有同學;規范任課教師辦公時間,要求每位任課教師針對自己所教班級,選擇合適的辦公時間用于接待學生,進行面對面的溝通;加強網絡課堂的應用,形成老師和學生積極在網上溝通的習慣;加強《文獻檢索和科技論文寫作》課程的教學,將這門課和《學科前沿》相結合,注重培養學生自主學習、總結、寫作、表述的能力;集中實踐是一個很好的綜合培養學生能力的機會,充分發揮集中實踐的作用,將培養學生團隊協作、溝通交流、寫作、表達等能力充分地融入實踐教學中;提高教師對綜合素質培養的認識水平,加強教師在此方面的能力;從學生管理角度,結合課堂教學在能力培養上的不足,重點組織一些不同形式的系列活動,特別是小規模組織的活動,面向所有學生,加強綜合能力的培養。例如,充分利用課前十分鐘鍛煉學生的演講能力,可以通過班級運動會提高同學們的歸屬感和集體榮譽感等;加強各類社團和俱樂部的建設,在合規的情況下,鼓勵其自由發展和活動組織;加強班干部的培養,建立一個品學兼優、踏實肯干、具有領導力的骨干團隊,凝造一個積極向上的班級氛圍;加強就業指導課程和專業結合的深度,與專門的企業進行合作。
本文以提升軟件工程本科學生職業綜合能力培養為聚焦點,通過對專業能力培養(以程序設計能力為主)存在問題的分析,給出以競賽驅動程序設計能力培養模式;非技術個人素質的培養,通過“五位一體”融合培養的綜合能力培養體系,以學生個人綜合素質能力為主線,環環相扣、螺旋進階、持續優化,形成了軟件工程專業學生職業綜合能力培養的特色。
[1]彭家駿. 試析計算機應用型人才培養模式的探索與實踐[J]. 河北農機,2021(5): 101-102.
[2]張燕. 大數據時代背景下應用型高校大學生綜合素質評價體系研究[J]. 山西能源學院學報,2021,34(1): 34-36.
[3]紀嘉宜. 試論計算機科學與技術專業學生應具備的專業能力和綜合素質[J]. 電腦知識與技術,2020,16(31): 122-123,125.
[4]王元成. 新形勢下的計算機應用技術創新分析[J]. 中國新通信,2021,23(5): 100-101.
[5]畢瑤家. 高校學生能力評價模型的研究及應用[D]. 青島: 青島科技大學,2020.
[6]劉冬冬,丁正祁. 基于學科競賽的計算機專業學生創新能力培養[J]. 黑河學院學報,2020,11(6): 110-112.
[7]王宇蒙. 以競賽育人探索設計學計算機實踐創新型教學[J]. 創新創業理論研究與實踐,2021,4(8): 175-177.
Research and Practice on the Cultivation of Comprehensive Ability of Software Engineering Specialty
Aiming at the problems existing in the comprehensive ability training of software engineering students, this paper investigates the non-technical personal quality requirements of IT enterprises, analyzes the comprehensive quality requirements of software developers, and puts forward the ability training index system of software engineering students. Based on the training mode of programming ability of subject competition, reconstruct the training objectives of programming ability, put forward optimization measures from curriculum, teaching, laboratory and subject competition drive. Combined with the shortcomings of the current quality training system for software engineering students in colleges and universities, we carry out the practice of comprehensive ability training through the "five in one" integration training.
programming ability; personal comprehensive quality; comprehensive ability training; ability training indicators; discipline competition
G462
A
1008-1151(2022)01-0143-04
2021-09-28
河南省新工科研究與實踐項目“財經院校計算機類專業復合型實踐教學資源體系探索與實踐”(2020JGLX043);教育部產學合作協同育人項目“復雜工程背景下的軟件工程專業實踐教學體系的改革與實踐”(202002273021);教育部產學合作協同育人項目“產教融合校企協同的軟件工程專業新工科培養體系探索與實踐”;教育部產學合作協同育人項目“基于創新創業能力導向的軟件工程專業教學改革與實踐研究”(202002240034)。
張墨華(1979-),男,河南財經政法大學計算機與信息工程學院副教授,博士,研究方向為機器學習、圖像處理。