顧國民 葉陽 侯向輝 陳琦 王小號 張旭東
摘要:本文通過模擬軟件公司的軟件研發的組織管理方式,構建階梯性的研發團隊,并以模塊化的方式分解軟件項目來設計一種適合高校計算機本科學生的實驗教育模式,降低開發難度,激發學生的興趣,在實踐中及時消化理論知識。教學方案在實踐指導過程中取得了有效的成果。
關鍵詞:軟件工程;模塊化;程序設計;實驗
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2016)04-0262-02
一、前言
對于計算機專業的學生來說,具備良好的編程能力是重要的基本功,通過編程鍛煉學生的動手能力,通過編程培養學生的專業邏輯思維能力。
當前學校的培養方案更重視通過課堂的理論授課把計算機的基本理論知識系統的教給學生,而滿足學生在卷面考試中取得較好的成績的欲望。實驗教學只是作為一種補充,其重要性被低估,學生從實驗課程中更多的是獲得一種初步的感性認識。這種方式遠遠沒有達到社會對我們大學生的要求,造成了學校培養和社會需求的脫節。
為了彌補二者之間造成的鴻溝,出現了社會上的軟件開發培訓公司,雖然培訓費用昂貴,但還是受到了學生的追捧。它們承擔了部分本該由高校完成的培養學生的責任。這種顯現值得我們高校的專業教師反思。
總的來說,高校計算機專業應該在講授基礎理論知識的同時,進一步加強實驗教學,從而幫助學生更好的完成從理論到實際的轉化,更能適應社會的選擇。
二、當前程序設計實驗現狀分析
為了幫助學生提高程序設計的水平,高校設計多個層次的程序設計實驗教學,幫助學生成長。
按照教學大綱,每個程序設計課程都安排了一定的實驗課,這些課程在及時鞏固課程所學的理論知識方面起到了積極的作用。課堂的實驗課主要是把實驗書上的練習題在計算機上實現,通過簡單的算法實現完成一個題目。但是也因為只是作業,而大學的學生并沒有中學的升學壓力,從心理上來說學生對待“作業”會打一定的折扣。
一年級的學習之后安排大型實驗,讓學生幾個人組成一個小組完成一個簡單的較為實用的項目。一般來說這類項目沒有實際的應用價值,如“圖書管理系統”等,因為大型實驗并沒有實際的需求,不能引起學生足夠的重視,往往有一種“交差就好”的心理,而且是教師一對多的教學結構,很難做到在做項目的過程中對每個人進行悉心的指導,又會讓學生錯過一個良好進步的機會。同時,學校也鼓勵有興趣的學生參加程序設計的競賽培訓。當前較為流行的有ACM競賽,雖然其形式較為簡單和看似枯燥,就是編程的題海戰,卻因為題目本身具有挑戰性和良好的積分機制,反而激發起部分學生的積極性,很好的培養了學生的邏輯思維能力和編程能力。但是類似的競賽培訓也存在一定的片面性:其培養的是學生單打獨斗的能力,而現在社會對程序開發的需求往往是團隊合作,現在任何一個實用的軟件項目是靠一兩個人完成的,而此類的競賽卻會給人一種“算法就是一切”的假象。
從以上的程序設計實驗的現狀,我們試著分析理想中需要的程序設計的實驗應該具有怎樣的特點:(1)能讓學生在實驗過程中體會到成就感。(2)以團隊的形式去完成一個應用項目,體會合作的樂趣。(3)真正了解和體會一個項目的真實過程,更加注重細節。
三、模塊化程序設計實驗教學方案設計
借鑒公司軟件項目開發的過程和經驗,為了滿足對不同層次的學生的程序設計能力的培養,模塊化程序設計的實驗教學的方案需要考慮設計一個實驗項目管理平臺,在此基礎上形成一種師生之間的互助機制,并設計實驗教學用的應用項目,營造實際項目研發的環境。
(一)項目開發管理平臺建設
項目管理平臺的功能主要是進行項目研發過程中的管理以及對學生成績的評估和統計。
引入軟件工程項目管理的一些成熟工具軟件搭建真實項目開發環境。利用SVN工具進行項目源碼的管理。SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統,是時下比較流行的開發版本控制工具。
為每個參與的學生開設獨立的帳號,在開發過程中將自己的代碼提交到服務端,實現版本的控制,同時教師也可以通過該工具下載最新的代碼檢查學生的開發成果。
利用Trac進行文檔的管理,Trac是一個為軟件開發項目需要而集成了Wiki和問題跟蹤管理系統的應用平臺,Trac以簡單的方式建立了一個軟件項目管理的Web應用,以幫助開發人員更好地寫出高質量的軟件。
(二)項目基礎培訓
基礎的程序設計實驗一般只是在較簡單的實驗環境下進行的,學生對如何參與實際的軟件研發項目存在一定的向往卻不知從何下手。需要指導學生了解團隊合作研發項目過程中必須要掌握的知識,包括項目工程的概念、動態鏈接庫的概念和開發、利用SVN進行代碼的管理等知識。對于基礎培訓最初由教師完成,對于項目進行過程中新加入的學生的培訓由熟練的學生負責,發揮層級團隊的傳幫帶作用。
(三)項目設計
對于實驗項目的設計,注重模塊化。從項目的選型上選擇具有清晰模塊需求的項目。從設計的角度將系統設計成為模塊松耦合的組織方式。目標是將一個完整的項目分解成相對獨立的模塊,每個模塊配合相對較完整的接口說明書,基礎較好的學生能夠獨立完成一個模塊的開發,而集成的學生則負責對每個模塊的驗收和最終搭建成為一個系統。
(四)層級團隊建設
公司的項目研發團隊一定是由不同層次的軟件研發人員組成,如架構師、模塊設計師、基礎軟件研發、測試等。如果學校的實驗中對于建立如此完整的團隊結構有一定的難度,可以以此為目標,由教師在項目提出階段先行完成架構師、模塊設計師的任務。學生最初可以做好模塊的軟件研發及測試工作,但對于有能力的學生可以在職位上得到晉升。該實驗的項目設計需要跨越多個年級,讓不同能力的學生在一起參與一個項目,形成學生之間的互助合作的機制。
在項目的開展中,逐步有意識的去培養高年級有能力的學生向上發展,形成梯隊,承擔起帶領信任的重要任務。
在整個項目開展的過程中,指導教師的重要任務是建立團隊和直接指導有較高層次的學生,也就是高層次的學生能夠更多的得到教師的親自指導,這也是學生積極向上發展的動力之一。
(五)項目的開展
指導教師根據不同的項目情況以項目經理或者用戶的角色參與項目,指導學生進行項目需求文檔、概要設計等的撰寫,控制項目進度和質量,等等。或者扮演用戶與學生代表的項目經理進行溝通、提需求并驗收項目等,積極參與到項目中去。
(六)管理及考核機制
通過制度上的保障,讓教師提出建立程序設計實驗項目的申請,進行項目開發的模塊化設計,提出項目達到的目標,在程序設計教研組通過審核之后,由實驗指導教師具體負責實驗的指導。
目前有些學院為了培養學生的能力設立了“創新分”的機制,要求學生在大學階段完成一定的創新分,用于基本要求及能力考核的重要指標。可以將本實驗平臺的學生成績與創新分進行對接,同時將學生在這個實驗平臺中獲得的創新分也與教師的年終考核進行掛鉤,讓學生與教師的成績都得到認可。
四、結語
本文提出的以模塊化的引導式的程序設計的實驗方案,在學校構建一種類似公司項目研發的實驗指導體系。用類真實的軟件研發環境來刺激學生,發揮學生的主動性。
在近兩年的教學過程中,學生基于該實驗方案進行設計開發,師生普遍反映對學生研發能力的提高有很大的幫助,畢業后能更容易得到社會的認可。
參考文獻:
[1]全成斌,鄭寧漢,楊士強,等.計算機一體化實驗教學改革與探索[J].中國大學教學,2014,(6).
[2]彭志強.基于云計算的計算機與軟件實驗資源管理[J].數字技術與應用,2014,(7).
[3]許德武.項目分解法在計算機實驗和理論教學中的應用[J].實驗室研究與探索,2013,32(1).
[4]翟艷紅.開放式計算機實驗實訓教學分析[J].科技創新導報,2014,(22).
[5]楊晉平.新局勢下提升計算機實驗教學效率的方法之芻議[J].課程教育研究(新教師教學),2014,(36).
[6]趙愛玲,崔朝軍.構建計算機實驗教學平臺的探索與實踐[J].中國高校科技,2012,(5).
[7]逯暉.開放式計算機實驗實訓教學淺談[J].重慶科技學院學報:社會科學版,2012,(14).
Abstract:College Student computer development capabilities is not meeting the current social need,The main reason is the lack of development projects of the students in school learning theory during exercise in the process of learning theory. This paper,design an experimental educational model for college student. By simulating the software developing management of company,and decomposing software project into modules,to reduce the difficulty of developing,and rouse students' interest. The teaching programs achieve effective results in the process of experiment.
Key words:software engineer;software module;experiment