王 勇,王忠群,謝曉東
(安徽工程大學 計算機與信息學院,安徽 蕪湖 241000)
面向軟件方向課程群的《面向對象程序設計》教學研究
王 勇,王忠群,謝曉東
(安徽工程大學 計算機與信息學院,安徽 蕪湖 241000)
針對目前課程教學中存在的問題,結合軟件方向課程群的教學內容,將《面向對象程序設計》的教學深度融合課程群的教學中。采用項目驅動的教學方法,將案例貫穿于課程教學乃至課程群的教學中。教學實踐證明,該教學方法能提高學生的學習興趣,增強學生的應用能力。
軟件方向課程群;面向對象程序設計;項目驅動
《面向對象程序設計》與《數據庫原理及應用》、《數據結構及算法》、《操作系統(tǒng)》、《編譯原理》、《軟件工程》、《分布式計算》、《計算機網絡》等軟件方向專業(yè)主干課程緊密相關,自成體系,形成軟件方向課程群。近年來,關于軟件方向課程群的教學研究,已引起廣泛的關注。面向對象程序設計作為目前的程序設計的主流技術,在整個軟件方向課程群的體系中占有舉足輕重的地位。但學生的程序設計水平不高卻是不爭的事實。教學實踐證明,編程水平直接決定學生的應用能力,也是其他后續(xù)專業(yè)課程學習的基礎。因此,我們認為如何提高學生的學習興趣、如何使得《面向對象程序設計》課程與軟件方向課程一體化培養(yǎng)目標是保證教學效果提高的關鍵。針對目前課程教學中存在的問題,結合課程群的教學內容,將《面向對象程序設計》的教學內容深度融合課程群的教學中。采用項目驅動的教學方法,將案例貫穿于課程教學乃至課程群的教學中,以培養(yǎng)滿足社會需求的計算機相關行業(yè)的高級專門人才。
《面向對象程序設計》作為一門專業(yè)基礎課,其重要性可想而知。但一直以來,課時數較少,課堂教學只能涉及語言的語法層次,很多有應用價值的教學內容很難擴展。經過2008年的新一輪培養(yǎng)計劃修訂,這種情況有了一定的改觀(在培養(yǎng)計劃修訂中,我們提前了《面向對象程序設計》的開課時間,增加了課時數),但依然存在問題。我們認為語言的學習,應該是循序漸進。利用一學期的時間不可能將一門語言學透,語言課的學習應該滲透到其他專業(yè)課的學習中。
現有的課程設置大多依據本課程的教學要求,未能從課程群角度考慮課程教學內容的選擇,課程之間的聯系未能深度挖掘。課程內容的設置往往都是孤立的,課程之間孤立容易形成學生理解的單一。學生學習某門課程只知道掌握該門課程的內容而不知其與其它知識的應用,學習體系差,不能觸類旁通。
作為一所工科院校,我們需要培養(yǎng)適應21世紀社會主義現代化建設需要,德智體全面發(fā)展、基礎扎實、知識面寬、能力強、素質高、富有創(chuàng)新意識的專門性高級人才。工程項目實踐是培養(yǎng)目標完成的重要保證,缺少工程實踐會使得學生缺少競爭力。但目前我們的課程設置所涉及的有工程背景的實踐環(huán)節(jié)較少,實踐內容相對較為陳舊單調,學生參與科研的機會少。
專業(yè)特色是一個專業(yè)賴以生存與發(fā)展的基礎,課程的設置有是特色形成的必要條件。如何設置課程才能顯現特色,一直未能引起足夠的重視。
軟件方向課程群包括《C語言程序設計》、《面向對象程序設計》、《操作系統(tǒng)》、《數據庫原理及應用》、《計算機網絡》、《軟件工程》等專業(yè)主干課程及專業(yè)特色課程等。其課程群課程配置圖如圖1所示。
圖1 課程群課程配置圖
在整個課程群體系中,《面向對象程序設計》是專業(yè)基礎課程,其與其他專業(yè)課程的關系最為緊密。面向對象語言如java語言,其教授的章節(jié)可以其他主干課程的教學內容進行映射。如Java語言中的線程的教學直接對應操作系統(tǒng)的進程管理與線程管理等內容。按照教學安排《操作系統(tǒng)》是《面向對象程序設計的后續(xù)課程。學生在學習《面向對象程序設計》時無法利用操作系統(tǒng)的相關知識。因此,這也為Java語言程序設計的教學帶來了難度。我們對《Java語言程序設計》課程的教學內容進行梳理,其與其他課程的關系如表1所示。
表1 Java語言與其他課程的關系
課程結構體系是指單個課程之間既相對獨立、又相互連結的有機整體,是按學生的認知規(guī)律、能力培養(yǎng)規(guī)律和素質形成規(guī)律科學地組合在一起形成的富有專業(yè)特色的課程系統(tǒng)。合理的、科學的課程體系是實現培養(yǎng)目標、保證教學質量的重要保證。它直接影響學生知識面的廣度和創(chuàng)新能力的培養(yǎng)。針對計算機相關專業(yè)的特點,深入研究計算機軟件課程群的課程體系是很有必要的。軟件方向課程之間關系緊密,我們應該充分研究各門課程的內容及其彼此之間的關系,采用以面向對象程序設計為驅動,構建合理的課程體系。
針對課程教學中存在“課時較少,教學內容很難擴展”的問題,我們采用分級教學法。將《面向程序設計》的基本內容如基本語法、gui編程、面向對象的核心知識點在第二學期精講。將多線程、網絡編程、數據庫編程等高級主題分散在專業(yè)主干課中以選修課中精講。同時,我們積極向學校申請將《面向對象程序設計》課程提升與《大學英語》同等重要的地位。也就是說,將《面向對象程序》課程一分為四,分別為《面向對象程序設計Ⅰ,ⅡⅢ,Ⅳ》,在第六學期進行編程認證考試,考試成績與學位掛鉤。從而,提高學生學習計算機語言的重視程度,培養(yǎng)學生的應用能力。
面向對象程序設計又是一門實踐性很強的課程,必須通過不斷的實踐才能真正掌握面向對象的核心思想和靈活多變的編程技巧。因此在進行理論教學改革的同時,必須加強實踐環(huán)節(jié)的管理與改革,發(fā)揮學生學習的主觀能動性,培養(yǎng)出具有分析問題、解決問題能力和富有創(chuàng)新精神的學生,真正適應小型軟件開發(fā)甚至是大型軟件開發(fā)的需要。我們認真分析軟件方向課程群的實踐要求,凝煉以前多門主干課程所開的課程設計的教學要求,合并課程設計內容,精華實踐內容。提出以軟件方向課程群的培養(yǎng)目標為導向的課程群設計內容。采用層層遞進,分層教學,從而使學生獲得實際項目經驗。
以項目驅動的教學能提高學生的學習興趣與應用能力,已受到到廣泛關注,并取得實際成效。但項目驅動教學的關鍵在于項目的遴選和項目教學的持續(xù)型。由于單門課程項目驅動持續(xù)的時間較短,很難擴展項目內容,通常是淺嘗輒止。很難給學生留下深刻印象,實際效果較差。實踐證明,單門課程的項目驅動的效果遠不如堅持多門課程采用同一個項目的驅動。所以我們遴選項目需符合下列條件:(1)符合當前主流軟件的發(fā)展方向,具有一定的實用性。(2)符合軟件方向課程群的整體教學要求。(3)項目應該具有專業(yè)特色要求。例如,我們選擇改進經典案例“petstore”作為項目案例之一,其應用程序的主界面如圖2所示。
圖2 pet store的主界面
如何有效的面向軟件方向課程群將項目驅動應用于《面向對象程序設計》的教學中,激發(fā)學生學習興趣?我們認為可按以下步驟實施:
(1)精講核心知識。當前,在IT企業(yè)中,越來越多人開始使用Java,但是他們大多數人沒有做好足夠的思想準備(沒有接受核心的面向思想的核心概念),以致不能很好駕馭Java項目,甚至導致開發(fā)后的Java系統(tǒng)性能緩慢甚至經常當機。很多人覺得這是Java復雜導致,其實根本原因在于:我們起初在學習面向對象語言中對核心概念未能理解透或產生理解誤區(qū)。
所以,在項目案例相關內容講解之前,需要對課程核心知識精講。對課堂上精講的內容要求教師備課要充分,求精、求深,這樣才能讓學生把握講解內容的來龍去脈,講解才能夠起到以一當十、舉一反三的教學效果。如關于面向對象的基本思想可以結合面向結構化程序設計的缺點引入,利用大量實例子講解類、對象、封裝、繼承與多態(tài)等基本概念。只有核心概念理解透徹才能夠把握項目的核心點。
(2)項目引入。在講解核心時,可以很自然穿插講解項目的部分內容。如對面向對象類得講解中,可以穿插講解“petstore”項目的類pet等。在主干課程《數據結構》的講解中,可以“petstore”項目中的list類及購物車等。
(3)總結知識點、串聯項目。對項目進行分析和講解。歸納、分析項目中涉及的知識點、難點及重點。同時要對學生的學習情況進行分析,聽取他們的反饋意見,以便今后對該項目教學進行改進。還要對項目進行歸納總結,探索認識問題的方法和解決問題的途徑,舉一反三,達到事半功倍的效果。
(4)項目實現與優(yōu)化。因為面向對象程序設計所遴選的項目具有良好的擴展型,并貫穿于軟件方向課程群。所以我們設計綜合性的面向課程群的課程設計,對我們講解案例設計并實現系統(tǒng)原型。由于學生經歷對該項目已具有較長時間的理解,可以更多的關注課題的高級技術,如并發(fā)處理、系統(tǒng)架構等。這樣可以減少多門課程開設多門課程設計的內容重復,提高學生的學習興趣。
構建應用型本科應用人才的培養(yǎng)新模式,是高校人才培養(yǎng)改革的關鍵。針對計算機應用型人才的培養(yǎng),我們面向軟件方向課程群的《面向對象程序設計》教學研究。從實施到現在,經歷了三年,成效顯著。2010年,我院參加安徽省大學程序設計大三獲得一等獎、畢昇杯大賽獲全國一等獎1個、二等獎3個。軟件方向課程群的教師有一名獲安徽省教壇新秀,主持安徽教育廳自然基金4項、蕪湖市自然科學基金3項,企業(yè)產學研項目多項。借助項目支撐,大大提高了教師工程應用能力。更重要的是,學生的學習興趣充分激活,綜合能力得到了顯著提高。
[1]張永,江澤濤,蔡虹.面向對象程序設計的教學研究[J].電腦知識與技術,2006(2):227-228.
[2]朱清華.面向對象程序設計的教學改革[J].教書育人,2005(11):43-44.
[3]符蘊芳,趙英豪.面向對象程序設計教學改革與實踐[J].中國成人教育,2010(11):184-185.
[4]王文冰,李輝.以實例貫穿課堂的面向對象程序設計課程教學改革[J].計算機教育,2011(1):91-93.
[5]陳優(yōu)良,李恒凱,徐昌榮.案例教學法在《面向對象程序設計》課程中的應用探討[J].新課程研究,2010(4):54-55.
Research on the Teaching of Object-oriented Programming Course Oriented to Software Curriculum Group
WANGYong,WANG Zhong-qun,XIE Xiao-dong
(School of Computer and Information,Anhui Polytechnic University,Wuhu 241000,China)
Aiming at the problems existing in teaching,combining with the teaching contents of software curriculum group,this article integrates the depth of Object-oriented Programming Course into curriculum group teaching,which adopts the project-driven method,running cases through curriculum teaching and curriculum group teaching.Our experience indicates that the means can improve students'learning interest and enhance their application ability.
software curriculum group;object-oriented programming;project-driven
G642
A
1009-3907(2012)04-0498-04
2011-09-28
安徽省精品課程建設項目,安徽教育廳教學研究項目(20100732);安徽高校省級優(yōu)秀青年人才基金(2011SQR L076);安徽工程大學教學研究項目(2009xjy24)
王勇(1979-),男,安徽舒城人,講師,碩士,主要從事分布式計算、軟件工程方面研究;
王忠群(1965-),男,安徽蕪湖人,教授,主要從事軟件工程方面研究。
責任編輯:劉 琳