覃科
【摘 要】本文針對面向對象程序設計類課程目前在教學過程中出現的問題,根據面向對象程序設計類課程的特點提出工程化的教學模式,并從教學內容、教學方式、實踐教學、產學研及考核方式五個方面進行工程化教學的實踐,有效提高了面向對象程序設計類課程的教學質量及學生的工程實踐水平。
【關鍵詞】面向對象程序設計 工程化教學 教學改革
【中圖分類號】G 【文獻標識碼】A
【文章編號】0450-9889(2017)02C-0153-03
面向對象的程序設計方法已經成為應用程序的業界開發主流。面向對象程序設計類課程在整個專業課程體系中占有重要的地位,其教學目標是讓學生了解面向對象的概念并培養學生使用面向對象技術進行程序設計和編寫的能力。面向對象程序設計類課程主要包括“C++面向對象程序設計”和“Java程序設計”。面向對象所涉及的抽象概念繁多、實踐性強,特別是C++語言語法復雜,Java語言內容廣泛。如果采用傳統重視理論知識的教學方式,在極其有限的課堂教學中,學生難以領會面向對象的精髓,甚至只能學到一點皮毛,無法學以致用。本文分析面向對象程序設計類課程教學中存在的問題,提出工程化教學模式并付諸教學實踐,進行了多元化的教學改革,取得了良好的效果。
一、面向對象程序設計類課程教學中存在的問題
面向對象程序設計類課程的教學過程應該注重理論與實踐的緊密結合,注重提高學生的工程實踐能力。然而,有不少學生在學完相關課程后,只明白一些語法規則,無法看懂程序,也不清楚這門語言到底有什么作用,更無法使用面向對象的思想去設計程序。
(一)教學模式無法適應工程需求。目前,大多數教師在講授相關課程時仍然采用以傳授學科知識為主的傳統教學模式。教師在教學過程中注重語法、語句和基本概念的講解而忽視培養學生程序編寫的能力。大部分實驗、實訓作業只是單純地對所學知識進行驗證和模仿,與實際的工程任務脫節,從而造成學生知識遷徙能力及動手實踐能力較差。在整個教學過程中只注重具體技術的實現而忽視了工程化思想培養,與市場需求脫節,導致學生感覺課程枯燥無味,學習積極性不高。這種教師演示、學生模仿的教學模式并不符合人的認知規律,無法培養學生的創新能力。
(二)教學內容與實際工程情景脫節。傳統的面向對象程序設計類課程教材往往以介紹編程語言為主線,一般都是先給出相關的概念和定義,然后使用簡單的程序進行闡明,缺乏工程中典型的實例介紹。通過課堂的講授,學生雖然掌握了相應的知識點,但無法形成系統的知識體系。教學內容的安排只注重系統性,缺乏實用性,與實際工作場景有相當差距,無法為學生引入工程中所使用的新方法、新技術。這樣,學生總覺得相關知識與技能“學過了,但不會做”,或者“什么都會一點,但是具體工作都不會做”,走向工作崗位的時候發現所學的內容并不能完全勝任所擔負的工作。
(三)考核方式單一。在考核方式上仍然以分數為主要激勵手段,雖然綜合了考勤、作業、平時表現和卷面成績幾方面的因素,但無法真實評價學生的學習過程及實踐能力。特別在卷面考察中,程序設計類題目的評閱一般按步驟給分,但實際情況是即使一個關鍵字有錯,整個程序也無法運行。單一的考核方式使得學生只關心與考試成績相關的學習內容,不重視多元化知識的積累及實踐操作,而在課堂上學習到的內容其實只是工程實踐中最基礎的知識,往往與實際工程的要求相差甚遠。
二、工程化教育的含義
從以上分析我們可以看到,傳統的面向對象程序設計類課程的教學把重心放在具體技術的實現細節上,沒有從實際工程需求出發,忽視了工程化思想培養,從而影響了課程教學的實用性。
面向工程化的教學則是提高學生工程實踐能力的有效方法之一。工程化教學是高等工程教育的一種教育理念,其內涵是在培養高級工程人才的全過程中,從培養目標、業務規格設計到教學環節安排、教學內容選擇、教學方法選用,從教育決策到教育實施再到教育模式,充分考慮工程的本質、工程工作的要求,體現工程教育的工程特色。就世界發達國家來看,德國應用技術大學、澳大利亞科技大學、日本技術科技大學、法國專業技術學院等都是工程化教育的代表。現代工程教育思想已經逐步從“專業化”轉向“工程化”,面向工程化的教育已經成為當前國際高等工程教育的發展趨勢。
在面向對象程序設計類課程的教學體系中,采用工程化教學模式,引導學生通過真實工程項目來掌握整個課程的主要知識和技能,是培養學生的工程實踐和創新能力、增強學生對未來工作的適應性的重要手段。
三、工程化教學的實踐
(一)教學內容的選擇。工程化教學目的是使得學生在學習期間就具備職業所必需的實際工作能力,因此,教學內容的設置必須服從于企業需要、崗位需要和工作需要。在進行課程教學之前,首先進行社會需求調查,對企業所需的崗位職業技能進行分析,并結合學生的學習心理特點和認知能力水平來確定學生所應該具有的知識結構及職業能力,從而確定教學內容的設計方案。而且設計方案還需要由學校、行業專家、企業技術專家三方共同論證,以確保能夠在有限的課堂時間內有效開展工程化教學。值得注意的是,在工程化教學中,語言細節已經不再是課程的重點。因此,教學內容要進行取舍,應該貼近工程應用的實際,保持教學內容的時代性與前瞻性。
學生在學習面向對象程序設計之前,已經學習過C語言程序設計,對于語言的語句及語法細節已經有所掌握,因此,在課堂上要抓住面向對象的程序設計思想的特征,圍繞面向對象的抽象、繼承、封裝和多態這四大特點展開教學。C++語言是半結構化半面向對象的語言,而Java是純粹的面向對象語言。考慮到學生已經學習過C語言程序設計,因此我們會先開設C++面向對象程序設計課程。這樣學生會體會到結構化的程序設計和面向對象程序設計之間的本質區別。在學習過C++語言中的面向對象概念以后,再開設Java程序設計課程,就會水到渠成,學生會越學越輕松,越來越有興趣。
在實踐教學過程中,還需要注意根據企業需求對軟件開發平臺進行選擇。比如C++應用程序的開發,在教學中一般使用VC++6.0,但在企業開發過程中,一般使用VS版本或QT、wxWidget平臺。因此要注意教學過程貼近工程現狀,使學生盡可能了解工程開發中的情況。
(二)教學方式的選擇。教學內容確定后,需要根據教學內容來選擇具體的工程實踐項目,將面向對象程序設計類課程的知識點融合在具體的工程實例中。工程實例相互之間應該具有一定的相關性和連貫性,從而理順課程知識點間的關系,使之相互銜接,形成系統的知識結構,使得整個相關課程的教學體系具有整體性、系統性和框架感。
在C++的教學過程中,我們將一個小型項目“圖書管理系統”的設計和開發過程貫穿于整個教學中。將圖書管理系統的模塊進行拆分,每次課程解決一部分內容,從類的設計到類的繼承和派生,從對象到對象數組,從靜態多態到動態多態,循序漸進,從簡單到復雜。教學過程完成以后,學生對于使用面向對象的概念來開發類似的管理系統就有了一個具體的認知過程。在Java語言的教學中,考慮到學生已經掌握面向對象的概念和含義,采用較為復雜的“網絡聊天程序”作為工程教學案例,該案例不僅涉及Java語言的使用和面向對象的思想,還涉及網絡協議的理解和B/S程序的設計,能夠進一步拓寬學生視野。
在教學方式上,采用項目教學法將“工程項目”引入到教學中。教師在課前即將相關PPT交予學生,由學生自學基本概念。在課堂上,教師引入工程項目,將需要解決的問題以項目的形式交給學生,對該項目所涉及的重要思想和概念進行講解和強調。在講解過程中,采用問題驅動的教學方式啟發學生,從而充分發揮學生在學習過程中的主動性。之后由學生自己按照實際工作的程序制訂解決方案,進而完成整個項目,從而培養學生解決實際問題的能力。在以學生為主體的教學模式中,教師是項目實施的引導者、技術總監和項目經理。教師需要嚴格把關學生給出的任務解決方案并給出專業意見。在任務完成過程中,教師應該適度給予專業知識及操作技巧的指導。任務完成后,教師對任務的完成情況進行點評,并根據評價針對性地對學生進行輔導。同時,學生之間也相互進行點評,揚長避短。
(三)實踐教學的開展。面向對象程序設計類課程的實踐教學是培養學生工程實踐能力的重要環節。針對相關課程的特點,設置了三個層次的實踐教學內容:基礎性實踐、綜合性實踐、設計性與探索研究性實踐。在課堂教學中,根據需要靈活融合實踐教學,摒棄傳統教學中理論課和實踐課嚴格區分的模式。
基礎性實踐主要作用在于鞏固學生對于知識點的掌握,由學生獨自完成。綜合性實踐在課程完結后開設,以課程設計為主要表現形式。綜合性實踐需要根據學生情況選擇難度適中的真實工程項目作為開發任務,將學生分為項目小組進行程序開發,完成項目的構思、設計、實現、運作四個環節,培養學生團隊合作能力,并幫助學生進一步積累相關的行業知識和項目實踐經驗。課程的課時極為有限,而面向對象程序開發需要大量的實踐才能達到效果,因此在課外開設設計性與探索研究性實踐。設計性與探索研究性實踐可以由相關的學生社團發起,也可以由教師組織興趣小組進行學習。設計性與探索研究性實踐將重點放在應用上,而不拘泥于具體的實現語言,讓學生接觸到本專業最新的研究領域,從而拓寬學生的視野,實現與企業的“零距離”對接。這樣就形成了一個有梯度、有層次、有階段性的實踐教學體系。
(四)產學研的開展。教師要實施工程化教學,必須自身具備相當的工程素質,因此只有積極開展校企合作,專業教師進入合作企業,參與企業生產、科研、產品推廣、服務等各個實踐環節,才能克服在教學過程中理論和實踐相脫離的弊端。教師依據企業需求和真實的工作過程及時調整面向對象程序設計類課程的內容和教學模式,進而提高自身的學術水平和教學質量。同時,聘請企業的技術人員和主管人員到學校開設相關技術講座,將企業前沿應用介紹給學生,從而激發學生的興趣,樹立學習目標。在學生開展設計性與探索研究性實踐的過程中,聘請企業技術人員作為指導老師,與專業教師一起承擔項目運作的指導和監督職責,使學生的程序開發過程符合企業規范,并為優秀的學生創造條件,使其能夠參與到企業的相關工作中。同時,加強實驗實訓基地的建設,開設相關課程的針對性企業實習,為學生創建優良的實習環境,參與真實的企業工程實踐。
(五)全面的考核制度。將學生的工程實踐能力引入評價體系,并加大工程實踐能力在評分中的比重(30%以上)。在團隊合作的課程中引入團隊評分制,將系統實現、任務分工及合作情況、項目答辯等作為學生的考核指標,對同一開發小組的成員要有明確的個人評價,而不是對小組整體開發情況進行籠統的考核和評價,讓學生體會到(下轉第172頁)(上接第154頁)有付出就有收獲,避免個別學生渾水摸魚。同時,將學生實習企業的反饋計入考核體系,通過收集企業和學生的反饋來指導課程的教學。對學生參與的相關社團活動和興趣小組的工作進行激勵,有條件的予以經費支持或計入獎學金評定。
總之,面向對象程序設計類課程的工程化教學實施取得了一些明顯的效果,學生不僅掌握了相關的語言,更對企業中面向對象的程序開發流程有了實質的認識,能夠用面向對象的思想來解決相關問題。同時,興趣小組和編程社團的活動也步入正規,學生參與競賽的熱情高,學習主動,也取得了一些成績。教學中,教師在得到學生的主動回應后,積極性更高,責任心更強。從實施過程和結果來看,工程化教學方式是符合面向對象程序設計類課程的特點的,是行之有效的。
【參考文獻】
[1]胡善風,汪茜,程靜靜.地方應用型本科院校的課程考核改革探索與實踐——以德國應用技術大學為例[J].國家教育行政學院學報,2016(1)
[2]吳薇,朱樂平.澳大利亞科技大學聯盟教師發展中心特色探析[J].大學教育科學,2015(4)
[3]張春江.計算機網絡專業工程化教學改革實踐[J].管理學家,2014(19)
[4]楊文君.軟件工程實踐教學改革探討[J].計算機工程與科學,2011(S1)
[5]游明英,彭軍,楊治明.培養應用型軟件人才的工程化實踐教學體系探索[J].計算機教育,2009(22)
[6]潘天紅,陳權,宋余慶等.工科類專業實踐教學改革和創新能力培養探索——依托創新工程設計國際化教學(SPIED)[J].教育與教學研究,2016(9)
【基金項目】桂林航天工業學院教學改革研究項目(2013JB05);廣西高等教育教學改革工程項目(2015JGA383)
【作者簡介】覃 科(1979— ),女,湖北松滋人,桂林航天工業學院計算機工程系講師,碩士,研究方向:模式識別,數據挖掘。
(責編 黎 原)