[摘 要]對信科專業面向對象程序設計課程的特點進行深入探討,可看出該課程教學效果的不足。應該結合多年科研及教學實踐經驗,從改革課堂教學模式、調整教學內容、優化案例教學、加強實踐教學等方面入手,采取具有針對性的教學改革和實踐措施。
[關鍵詞]信科專業 面向對象程序設計 教學模式 案例教學 實踐教學
[中圖分類號] G642.0 [文獻標識碼] A [文章編號] 2095-3437(2013)02-0104-02
隨著1998年信息與計算科學專業(以下簡稱信科專業)開設以來,各院校都在探索該專業人才培養模式的改革。[1-3]一般本科院校普遍將培養應用型人才作為專業定位。在專業課程設置方面,除了繼承傳統開設許多數學類課程外,還開設了大量計算機課程。這使學生具有良好的數學基礎,熟練的計算機技能,能掌握信息和計算科學的基礎理論、方法,具備較強的信息處理分析和軟件開發能力,能夠解決信息分析處理、應用系統開發等實際問題。
面向對象程序設計課程作為面向對象程序設計的基礎課,在應用型人才培養過程中顯得尤為重要。[4]筆者所在高校的信科專業一直開設該課程。此課程主要是通過全面、系統地介紹面向對象程序設計的基本概念、分析方法、設計方法、基本語法和編程方法,培養學生計算機應用與開發能力,同時深化學生對其他相關專業課程的理解和應用。
筆者在多年教學實踐與科研活動的基礎上,總結了一套較為適合本課程的教學經驗和方法,取得了較好的教學效果。
一、課程存在的問題
(一)面向對象概念理解不透徹,缺乏對面向對象設計方法的全面認識
面向對象程序設計中涉及許多概念,如抽象、封裝、多態、類、對象等。對這些概念的透徹理解對于本課程的學習至關重要。但從實際情況來看,學生對這些概念的理解非常不透徹,缺乏學習興趣和信心。
導致這些問題的主要原因,一是隨著招生規模的擴大,學生的基礎和學習積極性都產生了很大變化,一些學生很難適應面向對象程序設計課程的教學要求,這給課程的教學帶來了一定困難,使課堂教學效果打了折扣。二是傳統三部曲灌輸型教學法(羅列概念語法、編程舉例講解、練習驗證鞏固)容易使學生從一開始就感覺面向對象既抽象又龐雜,易產生畏懼心理,而且在教學過程中沒有將這些概念作為一個重點來講解,使學生難以體會到面向對象程序設計方法的本質。三是現有教材對這些概念表述不透徹。基本都是在前面部分給出這些概念的簡單定義和簡單的實例,而在后述章節中重點講解C++語言的語法知識,與面向對象程序設計的概念聯系不夠緊密。如許多教材在講述完抽象概念后,就直接介紹如何定義類,但對如何利用抽象概念來設計之類的知識并沒有介紹,使得學生不能很好地理解抽象概念。再如前面講了封裝技術,但后面只講訪問權限問題,沒有與封裝緊密聯系在一起。對于類中成員的存儲機制基本沒有詳細介紹,使得學生很難理解“為什么不同對象調用的是同一代碼,而訪問的數據不同”等。
(二)理論與實踐相脫節,缺乏對實踐能力的培養
盡管講授了面向對象程序設計的概念及方法,但學生很難用所學知識來解決實際問題,存在理論與實踐脫節的情況。如學生掌握了類的定義、對象調用的語法,但無法設計相應的類及成員,尤其是涉及多類繼承時,不能用抽象的方法來設計類;知道派生類的調用機制,但很難根據實際需求設計合理的構造函數和析構函數。
導致理論與實踐相脫節的原因很多,其中主要包括:1.面向對象程序設計方法對程序員的系統思維、全局思維要求高,而且在面向對象的程序設計過程中,對團隊協作配合能力要求較高。但是從現有的教材體系來看,基本都是按照知識點分章節來按部就班地組織學習內容,各章節的實例不連貫,且很多例子與實際求解問題無關,僅僅是為了說明某個知識點或者原理而設計的代碼。2.傳統的學習和講授有許多缺點,它偏重知識的灌輸,重理論輕實踐,以教師為中心,以單項講授為主。教學內容存在理論與實踐相脫節現象,課堂教學空洞、呆板缺乏吸引力,束縛學生的思維發展且不能發揮學習者的潛力。3.面向對象程序設計課程的教學內容通常分為程序設計語言和程序設計方法兩部分。很多教師花了大量時間詳細講解語法、語句,忽視了對程序設計方法的傳授。從而導致學生一拿到任務后,首先琢磨怎么定義變量、用什么語句,卻不知如何分析問題、設計算法直至最后實現。
二、教學改革與實踐
(一)改革課堂教學模式
傳統教學模式一般為介紹新知識—驗證、演示新知識。首先介紹新知識的概念、基本語法,然后通過幾個例子解釋新知識,最后通過編程實驗來驗證新知識。在傳統教學模式下,學生被動地接受教師所灌輸的新知識,雖然理解知識的使用方法,但很難靈活運用新知識點解決實際問題,缺乏啟發性。為了讓學生全面理解新知識和新概念,更深入地掌握其用法,應采用新的教學模式,即提出問題—分析問題—引入新知識—利用新知識解決問題。下面以講授靜態成員為例,詳細闡述新教學模式的具體過程。
1.提出問題。對于學生管理系統,如果需要在注冊學生時,學生的學號按注冊先后順序自動編號,后一個注冊的學生學號是在前一個學生學號的基礎上加1,即前一個學號為1001,則后一個學號為1002。
2.分析問題。針對上述問題,引導學生回顧一下如何利用以前學的方法來解決此問題。雖然可以采用定義全局變量的方法來解決,但比較麻煩,且不是采用面向對象程序設計的思想。
3.引入新知識。為了用面向對象程序設計的思想來解決上述問題,告訴學生要用靜態成員變量來解決問題。要詳細講授靜態成員變量的定義,初始化、賦值、存儲機制的語法知識。
4.解決問題。通過對靜態成員變量的詳細講解,然后利用靜態成員變量的知識,編寫程序解決上述問題,最后回顧總結。
通過此模式的教學,學生不但能很好理解靜態成員變量的概念、用法,而且能深刻理會靜態變量的作用,同時也能提高學生的學習興趣,培養學生分析問題、解決問題的能力。
(二)改革教學內容
面向對象程序設計課程所涉及的教學內容比較多,在目前教學課時不充足的情況下,要全部講授完教材內容是比較困難的。因此需根據教學目的調整教學內容。信科專業課程的主要目的是通過C++語言掌握面向對象程序設計的思想和方法,為后續課程打下堅實的基礎。因此應把握好課程的知識結構,重點講授C++的基本語法、類與對象、繼承與派生,多態性與虛函數、文件、模板等,而不必把過多精力放在講授C++特有的技術,如Visual C++編程技巧、運算符重載、多重繼承下的構造函數調用等問題上。
(三)優化案例教學
為了讓學生加深對理論知識的理解,以及培養解決問題的意識,應采用案例教學方法。[5]但在傳統的案例教學方法中,各章節所采用的案例是孤立的,缺乏聯系。從而使知識體系結構不連貫、缺乏系統性。針對類與對象、繼承、多態性問題,我們可以設計“員工工資管理系統”來貫穿各章節的講授,需求由簡單到復雜,由單個類到多個類繼承、由單個對象到對象數組、由普通成員變量到靜態成員變量、由單繼承到多繼承、由一般繼承到虛繼承,到各章節講授完后,這個案例也實現了。
(四)加強實踐教學環節
以課內實驗進行基本能力的培養,用于鞏固學生在課內學到的基礎理論、知識和方法,培養基本的實踐能力。以課程設計培養獨立分析問題和解決問題的能力,以及應用開發能力。課程設計給學生以自由選題、自行設計開發的空間,培養學生獨立分析問題和解決問題的能力、獨立開發的能力、團隊合作的能力。
課程設計要求學生能綜合運用所學知識、按照軟件開發的過程,分析、解決實際問題。為了達到預期教學效果,提高學生的學習興趣,課程設計指導教師應精心設計題目,供學生選擇。要求學生在1-2周時間內,通過小組討論完成方案設計、文檔撰寫、程序開發、系統測試等,最后通過答辯取得成績。在設計過程中,指導教師隨時給予答疑和指導。課程設計一方面培養了學生發現問題、分析問題、解決問題的能力,培育了學生創新精神;另一方面,通過限制同時選相同題目的數量、自行設計、參與答辯等個性化的環節,杜絕了抄襲、槍手等現象,培養了學生講誠信的品格。這樣一種課堂理論、課內實驗、課程設計綜合實踐相結合的教學方式取得了很好的效果,受到了學生的好評。
總之,只要抓住了課程特點、信科專業的發展要求及市場需求,明確教學目標,不斷改進和提高教學方法,通過多種途徑培養學生興趣,增加實際動手的機會,增強學生的自信,就能達到預期的教學效果。
[ 參 考 文 獻 ]
[1] 岑仲迪,奚李峰.信息與計算科學專業建設的探索與實踐[J].大學數學,2009,25(3):1-4.
[2] 姚喜妍,王寶麗.關于信息與計算科學專業課程建設的探討[J].數學研究,2009,32(4):53-56.
[3] 謝祥云,胡林,李渭清.探索信息與計算科學專業實踐教學的新思路[J].大學數學,2008,24(4):5-9.
[4] 丁智國,錢婕.面向對象程序設計課程教學改革[J].計算機教育,2011,(9):9-11.
[5] 葉俊民,余傳生,王敬華等.以培養創新型IT人才為目標的案例教學模式[J].計算機教育,2012,(14):87-90.
[6] 葉春梅.高職實訓任務驅動教學法探索與實踐[J].大學教育,2012,(1):68.
[責任編輯:劉鳳華]