專業學生軟體開發能力培養研究論文

專業學生軟體開發能力培養研究論文

  摘 要:應用型普通本科院校計算機科學與技術專業把培養軟體人才作為一個主要目標。軟體人才應具備的軟體開發能力表現在多個方面,是一種綜合能力。當前該專業培養的學生的軟體開發能力普遍不強。本文在分析具體原因的基礎上,提出了學生軟體開發能力的培養策略。該策略包括構建相應的課程體系、加強主幹課教學、利用應用型案例指導實踐教學和專業導師制四個方面。

  IT產業已成為擁有最大產業規模和最具廣闊前景的新型產業之一,軟體人才短缺是一個不爭的事實。近年來,應用型普通本科院校計算機科學與技術專業的培養方向主要定位於軟體人才的培養上,培養具有軟體開發能力的軟體人才是該專業的一個主要目標。目前,國家正在推行“網際網路+”戰略和“創新創業”戰略,這為計算機科學與技術專業的發展提供了前所未有的機遇,同時也為該專業的人才培養方式提出了挑戰。

  一、軟體開發能力的含義

  軟體開發能力是軟體人才的核心能力[1]。從軟體崗位的專業特性分析,由於軟體專案具有邏輯性強、不可見性、多樣性、複雜性等特點,決定了軟體開發的從業人員要具有較高的軟體開發能力。軟體開發能力是一種綜合能力,主要表現在以下幾個方面:

  (1)具有紮實的專業基礎知識和英語閱讀能力。掌握高階程式設計語言、資料結構、資料庫原理、軟體工程等專業課程知識是軟體開發人員必須具備的專業基礎知識[2]。英語閱讀能力非常關鍵,學習技術和開發軟體都需要查閱外文資料,是軟體開發人員必須具備的能力之一。

  (2)至少熟練掌握一種開發語言。開發語言是軟體開發人員的工具,不能熟練掌握一種開發語言,也就談不上具有軟體開發能力。

  (3)具有較高的軟體設計能力。能以軟體工程為指導,完成軟體各階段的設計,能為所設計的軟體選擇合適的模型和結構[3]。

  (4)具有豐富的開發經驗。軟體開發經驗非常重要,具有軟體開發能力的人員,經驗是不可缺少的。

  (5)具有較強的溝通能力和團隊協作能力。軟體開發是一種團隊活動,開發人員應具備一定的溝通能力和團隊協作能力。

  (6)具有創新能力。軟體人才的創新主要體現在技術創新方面,是軟體人才必須具備的能力之一。

  二、學生軟體開發能力不強的原因

  每年來自全國各類高等院校的計算機科學與技術專業的畢業生數量很多,但許多畢業生不能勝任軟體開發工作,這就是導致該專業畢業生就業困難,而軟體企業招不到人才這一兩難現象的出現。畢業生軟體開發能力不強,不能適應市場需求的主要原因在於高等院校計算機科學與技術專業人才培養方式上存在問題,如何培養合格的軟體開發人才,是該專業急需解決的問題。

  很多高等院校計算機科學與技術專業人才培養方式還沒有很好的適應社會的發展需求,主要表現在以下幾個方面:

  (1)課程體系不適合培養學生軟體開發能力。很多院校計算機科學與技術專業的課程體系還停留在“研究型”培養模式上,這種培養模式顯然不適應應用型人才培養,不適應培養學生的軟體開發能力。

  (2)仍然是應試教育。目前,高等院校對學生學業的評價仍然以期末考試為主,不注重學習過程的監控。學生學習目的也主要是為了考試。這種教育與學習方式顯然不適合培養學生的軟體開發能力,直接導致學生專業基礎知識不紮實,不能熟練掌握開發語言。雖然很多高等院校注意到了這種現象,進行了一系列的改革,但成效不大。

  (3)實踐實訓教學不足。對計算機科學與技術專業的實踐教學,各類課程主要還是以上機為主,缺少綜合性實驗,不能培養學生綜合利用該課程的知識點來解決問題的能力。缺少設計性實驗教學,不能培養學生利用所學知識宏觀地、創造性的'解決問題的能力。軟體開發的專向實訓環節缺失或不成熟,不能積累學生的開發經驗,不能培養學生的溝通能力、團隊協作能力和創新能力,顯然也不能培養學生的軟體開發能力。

  (4)教師的軟體開發能力不強,教學方法不高。大部分的高等院校的教師沒有參加過軟體開發專案,自身不具備或很少具備軟體開發能力,這方面的教學方法很糟糕,很難培養學生的軟體開發能力,使學生比較迷惘,最終失去興趣與信心。

  三、學生軟體開發能力的培養策略

  1.構建適應培養學生軟體開發能力的課程體系

  培養學生的軟體開發能力應從三個方面著手:一是培養學生的基礎程式設計能力;二是使學生掌握軟體開發的相關理論;三是培養學生軟體開發的工程能力。因此,要從這三方面出發來構建課程體系。經多年的教學實踐,提出了有助於培養學生軟體開發能力的課程體系。主幹課的課程體系如表1所示。

  在軟體開發方向上,透過該課程體系,能使學生具有紮實的基礎知識,能熟練掌握一種開發工具,能培養學生的軟體開發能,能使學生積累開發經驗,能培養學生的團隊協作能力和創新能力。

  2.加強主幹課教學

  計算機科學與技術專業主幹課可分為三類:一類是程式設計課程、另一類是理論課程、最後一類是工程應用課程。這三類課程都非常重要,是提高學生軟體開發能力的基礎。在教學過程中,要改變應試教育模式,加強學生學習過程監控,最終達到教學目標。

  對於程式設計類課程,如C/C++程式設計、C++面向物件程式設計、Java程式設計、.NET程式設計等課程,在使學生掌握基礎知識的同時,主要培養學生的程式設計能力。在教學過程中,要使學生掌握基本的演算法,著重培養學生模組化程式設計思想、複用的思想,培養學生對程式設計的興趣,培養學生解決問題的能力,最終達到培養程式設計能力的目標。在教學過程中,透過測試、競賽、綜合性實驗等環節,監控學生的學習過程,並且每個環節都要有成績,作為最終結課成績的組成部分,改變期末考試一張卷的評價模式。endprint

  對於理論類課程,如資料結構、資料庫原理等,在使學生掌握基礎知識基本理論的同時,要與應用相結合。例如資料結構課程,在使學生掌握基礎知識基本理論的同時,要用學到的知識解決具體問題,比如講解完連結串列後,要求學生用連結串列作為資料結構來解決學生的通訊錄管理問題;講解完棧後,要求學生用棧來解決字尾表示式的計算問題;講解完佇列後,要求學生用佇列來解決舞伴問題等。這樣不但能加深學生對基本理論的理解,同時也培養了學生解決問題的能力,最終提高了學生程式設計能力和應用能力。另外,在這些理論課中要安排相關的綜合實驗,透過這些綜合實驗來了解和監控學生的學習過程。

  對於工程應用類課程,如六、七學期的工程應用專案實訓類課程,主要培養學生軟體開發過程中的工程專案能力、協作能力和創新能力,最終培養學生的軟體開發能力。這類課程要以軟體工程為指導,模擬公司軟體開發過程。這類課程的任課教師要有軟體工程專案的實際經驗,自身必須具備軟體開發能力。課程內容及專案選擇上必須與實際應用接軌,一般地,可以將教師的實際工程專案進行整理、改編,從而適合教學。教學過程中,教師講解的是模板,是技術的關鍵點,學生同時要完成自己的專案。學生分組來完成專案,每個學生在每個工程環節都要承擔一定的任務,組內組織各種討論。結課時,要組織相關教師來對學生專案完成情況進行驗收,主要以答辯的形式來完成。透過這些年的實踐,這類課程很受學生歡迎,調動了學生學習的積極性,培養了學生的軟體開發能力,提高了學生的就業質量。

  3.利用應用型案例指導實踐教學

  計算機科學與技術專業的實踐教學包括上機、綜合性實驗和設計性實驗三部分。上機是基礎實驗,來驗證或設計基本問題,目的是使學生掌握知識點和解決基本問題;綜合性實驗是學生經過一個階段的學習後,在具有一定基本知識和基本技能的基礎上,運用一門課程或多門課程的知識,對實驗技能和方法進行綜合訓練的實驗[4],目的是培養學生綜合運用知識解決問題的能力;設計性實驗一般是獨立於具體課程教學而進行的一種探索實驗,目的是培養學生的實際應用能力和創新能力。

  在綜合性實驗和設計性實驗的實施過程中,教師要透過應用型案例來指導學生。這裡所說的應用型案例指的是能完整地解決具體的問題,具有模板性的案例。應用型案例一定要強調完整性和模板性,技術和解決方案的選擇要與當前軟體公司實際開發相接軌。另外,案例選擇上還應本著大小適中、便於需求的原則。

  在綜合性實驗過程中,教師首先要設計或整理教學用應用型案例,然後可以講解該案例,留出部分功能讓學生去完成的實驗模式,也可以講解全部案例,讓學生完成類似題目的實驗模式。

  在設計性實驗過程中,教師也要設計教學用應用型案例,然後宏觀簡要地講解該案例,最後讓學生自己設計實驗題目,獨立完成整個實驗。

  把應用型案例應用於實踐教學,能縮短實驗時間,能有效提高學生實驗的質量,提高學生的應用能力和軟體開發能力。

  4.透過專業導師制,培養學生軟體開發能力

  導師帶學生是培養學生軟體開發能力的又一條重要途徑。導師必須具備軟體開發能力,參加過實際的軟體工程專案,並且導師的研究方向應和學生的培養方向一致或相近。一個導師一般帶4到6個學生比較合適。導師要制定指導計劃,組織活動,實施專案。在指導過程中,把自己的經驗體會介紹給學生,使學生更好、更快地融入到專案中,並且能收穫到成就感,從而增加對軟體開發行業的熱愛,進一步調動學生的積極性,增強主動探索能力,從而培養學生的軟體開發能力。

最近訪問