李建伏 沈中林 衡紅軍
摘要:面向對象程序設計的傳統(tǒng)教育模式使得學生與企業(yè)真實需求之間存在巨大差異。案例教學法理論上能在一定程度上解決理論與實際銜接的問題,但其實施效果卻取決于所采用的案例。結合我校的行業(yè)背景,從構思實際民航信息系統(tǒng)中涉及的工程問題出發(fā),研究案例教學法在面向對象程序設計課程中的應用,并分析了其存在的問題。
關鍵詞:面向對象程序設計;案例教學法;民航特色
中圖分類號:TP311 文獻標識碼:A DOI:10.3969/j.issn.1003-6970.2015.03.010
本文著錄格式:李建伏,沈中林,衡紅軍,案例教學法在面向對象程序設計課程中的應用[J],軟件,2015,36(3):48-51
0.引言
面向對象程序設計語言c++具有更高的代碼可重用性、可擴充性和易維護等特點,是開發(fā)大型軟件的主流方法。市場對c++高級應用人才的需求也是非常強勁。從國際發(fā)展情況下,中國從事計算機軟件開發(fā)的人才遠遠低于發(fā)達國家,而近幾年難就業(yè)一直籠罩著計算機專業(yè)。一面是就業(yè)難,一面又是企業(yè)招人難,出現(xiàn)這種矛盾的一個重要原因是傳統(tǒng)教育模式與企業(yè)真實需求之間存在巨大差異。
面向對象程序設計的學習是非常需要挑戰(zhàn)性的,需要學生將所學理論知識內(nèi)化為實際的編程處理問題的能力。加上面向對象的程序設計方法與人們?nèi)粘G蠼鈫栴}所采取的思路不同,其中涉及的感念晦澀難懂。因此,傳統(tǒng)教學中往往花費大量的時間通過一個個短小精悍的例子來讓學生體會每個知識點的用法。傳統(tǒng)教學法過分強調(diào)每個知識點的用法,卻忽略了學生思維方式的培養(yǎng)。而思維方式的培養(yǎng)相對于零散知識點的用法要重要的多。因此,傳統(tǒng)的這種本末倒置的教學方法導致的最終結果就是產(chǎn)生了精通每個知識點,但不知道如何運用這些知識點求解問題的“溫室里的學生”。如何根據(jù)面向對象程序設計課程的特點,設計相應的教學方法以培養(yǎng)學生的面向對象的思維方式和提高學生的實踐工程能力是面向對象程序課程教學的一個難題。
目前各高校對面向對象程序設計課程進行了大量的改革,一般的思路是加強實踐教學環(huán)節(jié)建設,如近年來倡導的案例教學。理論上案例教學法能在一定程度上解決理論與實際銜接的問題,但是其實施效果取決于案例的選擇。
案例的選擇要考慮學生的需求,只有滿足學生需求的案例才能真正激發(fā)學生的學習熱情從而達到教學效果。隨著民航業(yè)信息化進程的不斷推進,民航業(yè)對軟件開發(fā)人員的需求也在逐年增加。作為民航大學的計算機學院的學生,將來會有大部分進入民航行業(yè)。所以,學生渴望了解民航,了解自己專業(yè)在民航領域所起的作用。而目前課程上的教學案例都是通用的案例,與民航行業(yè)脫節(jié)。
因此,針對我院的行業(yè)背景,根據(jù)實際民航信息系統(tǒng)中涉及的工程問題構造案例,采用案例教學法組織教學以提高面向對象程序設計課程的教學質(zhì)量和提升學生工程實踐能力。
1.改革措施
1.1案例的選擇
近年來,隨著計算機和網(wǎng)絡技術的廣泛應用,人們的衣食住行都離不開網(wǎng)絡。城市交通網(wǎng)絡的不斷完善,使得從出發(fā)地到目得地有多種公交換乘方案可供選擇,為人們出行帶來了便利。另一方面,選擇多了,人們往往不知道該選擇哪一種換乘方案。因此需要希望由計算機能自動計算出滿足出行者需要的換乘方案。因此,出現(xiàn)了各種地圖服務網(wǎng)站,如百度地圖。各種地圖服務網(wǎng)站給人們帶來了巨大的便利,使得出行者無論到城市的哪里都能做到心中有數(shù)。地圖導航已經(jīng)是人們離不開的工具了,學生也不例外,不管他們是外出還是在本市出行,都會不自覺地到地圖服務網(wǎng)站查看一下。在國內(nèi),鐵路總公司也在他們的12306網(wǎng)站上提供了國內(nèi)到各個地方的乘坐火車的換乘方案。隨著近年來民航業(yè)的快速發(fā)展,航線網(wǎng)絡也得到了快速發(fā)展。人們乘坐飛機出行也會有多種可行方案。但是,現(xiàn)在航班換乘方案查不到。由于航班是由各個獨立的航空公司自行經(jīng)營,同行是冤家,沒有一個航空公司會將其競爭對手的換乘方案提供給旅客。因此,在航空公司網(wǎng)站查到的只是某個航空公司的航班換乘。因此,應該由一個第三方中立機構來提供基于航班換乘的地圖服務。但是目前,我國還沒有這樣的機構來開發(fā)出這樣的航線推薦系統(tǒng)。正是目前國內(nèi)民航研究的一個熱點問題。作為中國民航大學的計算機專業(yè)的學生,有義務來開發(fā)這樣的系統(tǒng)。如果學生真的開發(fā)出了這樣的系統(tǒng),他們該有多么自豪。
因此,我們選擇的案例為基于航線網(wǎng)絡的出行方案推薦系統(tǒng)設計。
1.2案例的構造
根據(jù)課程的知識點分布情況,首先將基于航線網(wǎng)絡的出行方案推薦系統(tǒng)的設計簡化為一個簡單的問題,然后運用新的知識點逐漸豐富系統(tǒng)功能,直至達到系統(tǒng)目標。具體如下。
面向對象程序設計整體課程主要包括類的三大特性,即封裝性、繼承性和多態(tài)性。在介紹類的封裝性時主要涉及類的定義,類的成員函數(shù)的寫法,構造函數(shù)、析構函數(shù)等知識點,類的繼承性包括派生類的定義,派生類訪問規(guī)則、賦值兼容規(guī)則等知識點,類的多態(tài)性(運算符重載、虛函數(shù))。
在介紹類的封裝性時以航線網(wǎng)絡的定義及使用為案例,即案例一。為了簡單起見,此時的航線網(wǎng)絡只包括機場的物理位置,不體現(xiàn)航班的時刻表信息,即如果兩個城市之間有直達的航班,則與兩個城市對應的節(jié)點上存在一條邊。通過此類的設計,可以讓學生體會類的定義。當在main函數(shù)中,通過調(diào)用該類某對象的path函數(shù)得到是兩個機場之間的路徑,而不是具體的航班換乘方案。因此,進一步將問題細化。
當課程進行到類的繼承性時,在案例一中定義的一般航線網(wǎng)絡的基礎上派生出一個特殊類,即增加航班的出發(fā)時刻,以及到下一個城市所經(jīng)歷的時間(案例二)。進而,以path函數(shù)為例說明虛函數(shù)的用法,以運算符“<<”的重載函數(shù)為例說明運算符重載函數(shù)的用法。
1.3組織實施
(1)在介紹完面向對象的基本概念之后,首先由教師提出設計任務——基于航線網(wǎng)絡的出行方案推薦系統(tǒng)設計。仔細介紹本項研究的目的意義,以及實現(xiàn)目標。并向學生演示具有類似功能的網(wǎng)站。在這個內(nèi)容實施時,除了把設計目標介紹清楚外,還應該多用一些“鼓動”性的話,促使學生產(chǎn)生躍躍欲試、摩拳擦掌的熱情。
(2)教師由簡單到容易,逐步分解任務,將整體任務劃分為一個個體現(xiàn)面向對象程序設計方法中知識點的小任務,通過介紹這些小任務的完成方案來介紹其中的每個知識點。這樣整個任務就是一串珍珠項鏈,其中的每個知識點就是其中的每個珍珠。比如在定義一般航線網(wǎng)絡的定義時,首先問同學一個航線網(wǎng)絡該有什么特征,然后介紹怎么定義類來體現(xiàn)航線網(wǎng)絡的這些特征。通過這種方式,學生學到的不再是枯燥的語法知識,而更重要的是在面臨具體問題時怎么設計類。
(3)由于課堂上的時間有限,由于課堂上除了介紹知識點之外,還需要花費很多時間來完成實際任務的求解。因此,將一些不太影響全局的知識留給同學課下通過看書、上網(wǎng)查閱資料來完成。如成員函數(shù)的各種定義方法等。
(4)如果只是在課堂上老師幫助設計,沒有學生的實際參與,隨著時間的流逝,學生的設計熱情就會下降。因此,課下鼓勵同學自己來豐富類,給類增添一些必要的屬性及功能。等到學期末時,通過評比,選出一些功能完善、可用性強、輸出美化的作品,發(fā)布到本課程的教學管理平臺上展出。
2.實施效果評價
通過采用上述案例教學方法,取得的效果較為明顯,主要包括以下幾方面:
(1)班級不及格率下降。在采用上述教學法之后,班級不及格率明顯下降,由原來的20%下降到15%;
(2)學生的學習主動性、學習的熱情提高了。經(jīng)常有學生與教師探討他們在網(wǎng)上發(fā)現(xiàn)的、而課本上沒有的知識點,這說明學生不再是純粹的接受知識。
(3)學生的工程能力能夠得到一定的鍛煉。通過這樣一個工程性的教學案例,學生學到的不在是一個個孤立的知識點,而是面對實際問題時的設計思路。
3.存在的問題
在面向對象程序課程中實施案例教學法時遇到了下列問題:
(1)基礎差的同學容易自暴自棄。面向對象程序設計課程是建立在上一學期程序設計基礎課程之上的而第二個學期的面向對成程序設計是建立在第一學期學習的基礎之上的。相對于傳統(tǒng)的教學方法,案例教學法對程序設計基本理論的介紹要少得多。如果第一學期學生的基礎差,則這些同學就容易放棄。
(2)花費更多的時間。在采用案例教學法時需要花費一定的時間介紹案例、分析案例。因此會花費更多的時間。
(3)考試不合理。目前的考試更多的是對知識點的考核,并沒有體現(xiàn)學生的設計能力。因此,考試結果不能很好的體現(xiàn)學生的學習效果。
(4)案例需要與時俱進。只有滿足時代特征的案例才能吸引學生。因此,需要教師了解學術領域的前沿,不斷地設計新的教學案例。
4.結束語
本文針對我校的行業(yè)背景,從構思實際民航信息系統(tǒng)中涉及的工程問題出發(fā),設計相應的案例,研究案例教學法在面向對象程序設計課程的應用。實踐證明,該教學方法能有效激發(fā)學習者的學習興趣和實踐積極性,在較短的學時內(nèi)能完成原定的教學任務,顯著提高課程的教學效果和質(zhì)量。