秦俊平 壽永熙
摘要:本文介紹作者多年來對計算機專業實踐能力培養方法的研究與探索,提出優化理論教學、規范實踐環節、制定系統化的培養目標等一系列提高綜合實踐能力的方法。
關鍵詞:理論教學;實踐能力;系統化
中圖分類號:G642 文獻標識碼:B
我院現有計算機科學與技術、軟件工程兩個計算機本科專業。從這兩個專業畢業生的就業情況來看,從事計算機應用的最多,從事工程開發的次之,從事科學研究的比例最低。如何提高計算機人才所必須的實踐能力,是各所高校所面臨的共同課題,我院對此進行了有益的探索,目標是培養具有扎實理論基礎和處理實際問題能力的計算機專業人才。
1課題背景
面對就業形勢日趨嚴峻的現狀,如何培養出符合用人單位要求的計算機專業人才,是我院多年來一直思考的問題,需要解決的問題主要有:
(1) 計算機類專業同質化嚴重,基本上現在每所高校都有計算機專業,培養方案大同小異,作為一所地方普通高校,我們的特色在哪里?
(2) 用人單位在招聘時特別強調實際工作經驗,即到單位就基本可以勝任工作,這正是應屆大學畢業生應聘時的最大弱項,我們能否通過合適的教學安排彌補這一不足?
(3) 傳統的教學仍然是重知識輕技術,這一思想在教學過程中、教學考核環節處處體現出來,如何進行改進?
針對以上問題,以“傳授知識、培養能力”為目標,我們進行了計算機專業實踐能力培養方法的研究與實踐,通過師生的共同努力,取得了一定的成績,項目的主要內容包括:
(1) 優化理論教學;
(2) 規范實踐環節;
(3) 系統化的培養目標,提高綜合能力。
2優化理論教學
與其它專業一樣,計算機專業理論知識是多年積累下來的寶貴財富,行業的每一次進步,都是在理論的指導下取得的。從數據庫理論的提出到數據庫的廣泛應用,從網絡、分布式計算理論到云存儲、云計算無不如此。堅實的理論知識的掌握對于科研能力的培養,對一個人的長遠發展是至關重要的。恰當的教學計劃的制定與有效執行,是扎實掌握理論知識的關鍵。
(1) 核心知識體系是我院計算機教育的基本要求。我院制定了在一定時期內相對穩定并不斷改進的教學大綱,大綱一定要覆蓋核心知識體系。一個人的精力總是有限的,既博且精往往很難做到,教學計劃的制定要側重基礎內容,對擴展內容做出適當取舍,且要及時調整,適應形勢發展。如2009年的計算機專業碩士研究生入學考試改為全國統考,我們根據考試大綱及時調整了專業的教學大綱,為同學們參加研究生入學考試奠定扎實基礎。
(2) 授課方式上除對大綱規定的內容精心講解外,每部分再選中一個知識點,作為有代表性的實例,透徹講解。舉例來說,數據結構中樹與二叉樹部分,我們不僅僅從邏輯上對于樹、二叉樹進行講解,還把創建二叉樹與二叉樹遍歷算法的實現代碼放在開發環境下,在執行過程中進行分析講解,其中既有數據元素在內存中如何描述,又有數據元素之間關系在內存中的描述,在調試狀態下還可查看存儲空間的動態分配與釋放過程,給同學們以最直觀地感受。
(3) 課后作業的安排盡量面向實際,即使是一些理論性非常強的課程,也進行了這方面的努力。我們認為根據理論知識,找到現實的對應物,并對其加以分析,比機械地、教條地學習,感受更為直觀,收獲更大。舉例來說,操作系統中講述進程控制塊PCB是進程存在的唯一標識,而PCB作為一種數據結構組織方法有唯一編號。我們布置作業要求在具體操作系統環境下,將某一時刻所有進程的信息列出,其中包括PID信息,并對結果進行分析,從而通過實踐映證理論。
通過理論學習、實例分析和課后作業的相互配合,同學們可深刻地理解理論知識。同學們學習的不僅僅是枯燥的理論,更重要的是啟迪他們的思維,引導他們逐步地、由表及里地認識計算機的軟硬件協同工作原理。
3規范實踐環節
作為實踐性極強的專業,能力是通過解決問題來體現的。這既包括軟硬件故障的排除,也包括某個項目從需求分析直至拿出解決方案的全過程。能力是知識的應用,如果說知識是來源于間接經驗的話,這種實踐能力主要是在日復一日的親自參與的實踐活動中積累起來的。完善、規范的實踐教學環節是培養這種能力的關鍵。此處規范主要指科學地制定培養方案和嚴格地把握培養環節,強調過程與效果。實踐環節的規范應考慮以下幾個方面:
(1) 題目的趣味性。實踐環節包括課后的編程練習、課程實驗、綜合設計及畢業設計。對于初學者來說,重要的是興趣的培養,在學習完理論知識后,完成一些饒有趣味的題目,對于同學們今后進入程序設計大門大有裨益。為了發揮師生的主觀能動性,在編寫教學大綱時,實驗部分只規定知識點,具體實驗內容,由師生確定,這樣既可以根據學生情況區別對待,也可以不斷吸收好的想法到教學中來。對較復雜的綜合設計題目,可以由教師擬定,也可以由同學們提出,工作任務按照“總體—部分—總體”的方式一步步推進,由簡單到復雜,并不斷總結,即后一步的任務是在前面已完成的經過驗收的階段性成果的基礎上的進一步完善、擴充,避免同學們產生畏難情緒。鼓勵同學們積極參與國際大學生程序設計競賽(簡稱ACM/ICPC)等比賽活動,通過參賽樹立學生的榜樣以帶動其他同學,進而創造良好的學習氛圍。
(2) 程序設計量的保證。在哲學上講“量變是質變的基礎,質變是量變積累到一定程度的必然結果”。我們認為程序設計能力與日常編程訓練就是這樣一種質與量的關系。試想一下,從來沒寫過程序或只寫過很少程序的人能設計出高質量的代碼嗎?哪個系統分析師不是從程序員、程序設計師一步步走過來的?程序設計的能力就是通過在大量的實踐中不斷地解決問題、感悟積累的結果。我院多年實踐表明,學生在校編程訓練達到5000行以上,是可以做到的。
(3) 平臺的建設。以前的實踐環節主要通過教師面對面的輔導、評定來進行,對于課程實驗環節,這樣的安排也利于師生交流,隨著學生人數的增加,基于Internet提供更方便的自學平臺,是更有效率的實施方法。為此,我們建設了在線測試平臺,為同學們創造更多的自主學習機會,而且在平臺上進行每位同學程序設計量的統計,程序設計內容的相似度評估等內容。
(4) 組織方式。較簡單題目,個人完成;比較復雜的題目,以小組為開發單位,結對編程。無論題目的難易程度,基本的文檔和測試用例必須齊備。一方面在學習中培養同學們的合作意識,另一方面,制訂嚴格、細致的實驗大綱,設計合理的實驗題目,要求學生完成規范的實驗報告,培養同學們用軟件工程的思想分析問題,提出方案直至實現并驗收。
(5) 將實踐內容引入考試環節。在高校擴招后,基本都以大班形式進行授課,如何有效地督促同學學習,除了題目完成后答辯等傳統方法外,我們采用在Internet在線教學平臺上引入相似度評估的技術方法進行檢查,在考試環節增設機試部分,多種方法保證每位同學自己完成一定量的實踐任務。
4設定系統化的培養目標,提高綜合能力
在校期間各門課程由淺入深,循序漸進的安排,符合認知規律,但在以前的實施過程中,由于各門課程由不同教師講授,內容的前后銜接,與課程對應的實踐任務的安排,缺乏系統性。我院現在實行的是責任教授負責制,各門課程教學計劃的制定,要召集相關的授課教師統一協商,針對實踐環節存在的問題也不斷改進,經過幾年的發展,擬定了一個系統化的行得通的培養方案。該方案既考慮了知識面的完整性,也兼顧了要豐富實際工作經驗的社會需求。方案主要包括以下幾個方面:
(1) 實踐任務難度不斷深入。制定任務時,盡量將重復性任務去掉,使每個任務都有所收獲,并兼顧不同課程之間的交叉。如在剛入學時開設的高級程序設計語言中,從基本的程序語句,到選擇結構、循環結構程序的設計,再到文件的訪問,作為最基礎內容,通過實踐環節全部覆蓋。而此部分內容在其它課程中,要求同學們直接使用而不再單獨布置實踐題目,確保學生在有限的課時內學習盡可能多的知識。
(2) 實踐任務的完整性。當相關理論知識學習后,安排一個工作量、難度適宜的完整任務。如在程序設計與數據結構學習完成之后,要求同學們完成一個成績管理系統,從初始的數據輸入,數據處理到結果顯示,同學們設計方案并予以實現。要求既可以在屏幕上以表格形式顯示結果,也可以打印輸出,還可以使用文件方式保存表格。通過這樣的學習,同學們既對軟件有了直觀感受,又擴展了知識面,任務完成之后,我們又組織師生進行總結,尋找不足,為下屆學生學習做好準備。
(3) 系統知識的培養。不同課程之間內在關聯很緊密,在授課時如何把握,是淺嘗輒止還是深入探究,對教師是一種挑戰。同樣的教學內容,不同的授課安排,同學們的收獲差別非常大。舉例來說,如果在講授操作系統時,能就某一部分內容對其內部實現以一種直觀、易于理解的形式進行展示,要比簡單地復述教材上的理論總結效果好得多。把不同課程之間的線索理出來,在授課過程中把脈絡傳授給學生,將知識形成體系,對培養綜合能力大有益處。
(4) 畢業設計題目盡量來自工程實踐或科研項目。作為在校期間的最后一項教學活動,要有難度,有飽滿的工作量,教師應盡量選擇來自于工程實踐或科研項目的題目,讓同學們經歷軟件工程的全過程,并且具備收集文獻資料的能力。
總體來說,系統化強調的是各門課程之間的銜接,培養的是綜合能力。這一環節加深了同學們的專業素養,體現計算機專業與非專業的區別。
5總結
程序設計能力是計算機專業學生的基本功,理論知識的深刻掌握需要扎實的實踐能力作為支撐,反過來,學習理論知識并應用到實踐環節,又能極大地增強實踐能力。經過每個學期不間斷的、系統的、大量的鍛煉,到畢業前,每位同學已經歷了一定數量的、各個層次的編程培養。從最基本的編程題目,到利用各類數據結構、數據庫技術的較復雜題目,再到具備完善界面的小型軟件,從使用數據庫技術組織數據,再到多進程、多線程編程,組件編程,由基本理論到新技術,在校期間都有所嘗試,這樣的教學安排可部分滿足用人單位的工作實際要求。
計算機作為一門實踐性非常強的學科,從學生被動接受知識,到積極參與實踐鍛煉,在這一過程中教師引導同學不斷領悟,逐步提高學生的編程、設計能力。這一過程的各個環節如何協調、內容如何取舍,都要不斷研究。在這方面我院通過實施一些教改項目、教學研究項目,取得了一定的成果,我們也積極借鑒國內外同行的有益經驗,為培養出真正社會所需要的人才而不斷努力。
注:本研究得到內蒙古工業大學教學研究項目“ACM/ICPC開放式訓練平臺的研究與實踐”資助。
參考文獻:
[1] 教育部高等學校計算機科學與技術教學指導委員會. 高等學校計算機科學與技術專業發展戰略研究報告暨專業規范(試行)[M]. 北京:高等教育出版社,2006:254-255,264-265.
[2] 蔣宗禮. 推進規范辦學,培養合格本科畢業生[J]. 計算機教育,2008(7):7-10.
[3] 陳朔鷹,趙小林. 建立軟件實踐課程體系,全面培養工程型人才[J]. 計算機教育,2008(7):14-18.
[4] 秦俊平,壽永熙,馬志強,等. 操作系統課程實例與實踐教學方法的研究與實踐[J]. 計算機教育,2009(2):30-31.