顧青
摘 要:《面向對象程序設計》是應用型本科軟件工程專業(yè)的一門重要專業(yè)基礎課程,培養(yǎng)學生的計算思維能力和程序設計能力是課程教學的核心任務。文章針對軟件工程專業(yè)應用型人才培養(yǎng)目標,分析課程教學中存在的主要問題,融入計算思維能力培養(yǎng),制定課程教學目標,并對課程的理論課教學和實踐教學進行改革探索,以提高課程的教學質(zhì)量。
關鍵詞:應用型;面向對象程序設計;計算思維;教學改革
《面向對象程序設計》課程以闡述面向對象程序設計方法為中心,面向對象集抽象性、封裝性、繼承性和多態(tài)性于一體,已成為軟件項目開發(fā)中廣泛使用的編程思想與方法,更是軟件工程專業(yè)人才必須具備的一種基本素質(zhì)與能力。
在國家積極推進地方普通本科高校向應用技術型高校轉型發(fā)展的大背景下,上海電機學院(以下簡稱“我?!保┑能浖こ虒I(yè)在2016年成為了上海市應用型本科試點專業(yè),其人才培養(yǎng)目標確定為:培養(yǎng)具有良好的軟件工程技術能力、人文綜合素養(yǎng)和發(fā)展?jié)摿?,能夠在軟件工程及信息技術應用領域,從事軟件系統(tǒng)分析與設計、開發(fā)及測試、項目管理與運維的高等技術應用型人才。
《面向對象程序設計》是我校軟件工程專業(yè)的一門核心課程,為了提高學生運用面向對象程序設計技術的計算思維能力和實際編程能力,實現(xiàn)應用型人才的培養(yǎng)目標,對課程進行教學改革是非常必要的。
一、《面向對象程序設計》課程教學存在的問題
在課程教學中,主要存在以下幾方面的問題:(1)在課程教學目標中不能充分體現(xiàn)應用型軟件工程人才的特點,未能突出對學生的計算思維能力的培養(yǎng)。(2)在理論課教學中,缺乏對如何運用計算思維進行問題求解的整體教學設計。(3)在實踐教學中,針對單個章節(jié)的實驗較多,缺少綜合性、連貫性實驗;未能進行分層次教學,對學習困難學生關注不夠,未能有效提高學有余力學生的知識水平和創(chuàng)新能力。
二、《面向對象程序設計》課程教學改革與實踐
(一)融入計算思維能力培養(yǎng),制定課程目標
2006年,美國卡內(nèi)基·梅隆大學的Jeannette M. Wing 教授首次提出了計算思維的概念:計算思維是運用計算機科學的基礎概念進行問題求解、系統(tǒng)設計以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動?!睹嫦驅ο蟪绦蛟O計》課程中的面向對象是一種計算思維,面向對象程序設計思想和方法具有強大地描述復雜數(shù)據(jù)和構建復雜系統(tǒng)的能力。
根據(jù)我校軟件工程專業(yè)應用型人才培養(yǎng)目標,制定課程目標:(1)通過學習面向對象的編程思想和Java程序設計語言,使學生能夠運用Java語言作為一種計算思維工具,具備用面向對象程序設計思想分析、解決實際問題的軟件開發(fā)技能。(2)使學生能夠遵循編碼規(guī)范完成編碼。(3)掌握軟件開發(fā)過程中所使用的工具和方法。(4)引導學生樹立科學的世界觀,激發(fā)學生的求知熱情、啟發(fā)學生的創(chuàng)新意識。
(二)理論課教學改革
在理論課教學中,強調(diào)面向問題求解的計算思維能力的培養(yǎng),主要采用案例教學法,通過對實用案例的分析、研究及拓展,培養(yǎng)學生的計算思維能力和編程能力。
1.面向對象特性
計算思維內(nèi)容:面向對象特性部分包括了類、對象、抽象、封裝、繼承、多態(tài)等知識,在進行面向對象程序設計時,一般將一個復雜問題分解成一組可以相互協(xié)作的類,將數(shù)據(jù)與對數(shù)據(jù)的操作結合在一起,抽象出一種新的數(shù)據(jù)類型。
主要案例設計:例如,當設計銀行賬戶Account類時,引導學生思考怎樣對所有用戶的賬戶信息進行分析、抽象,可以抽取賬號、姓名、余額等數(shù)據(jù)(類的屬性),還可以抽取存錢、取錢、轉賬、查賬戶余額等行為(類的方法)。通過數(shù)據(jù)抽象和行為抽象,可以描述銀行賬戶這類對象共有的屬性和行為,用類將數(shù)據(jù)和行為封裝在一起,形成一種特殊的數(shù)據(jù)結構Account類,以此表示銀行賬戶這類事物。為了避免在類外部的程序直接修改類的屬性,將類的屬性隱藏(使用private修飾符將類的屬性聲明為私有),通過該類提供的方法實現(xiàn)對private數(shù)據(jù)的操作和訪問。這樣,一個用戶的銀行賬戶就是Account 類的一個對象,它具有accID、name、balance等屬性,還具有deposit( )、withdraw( )、transfer( )等方法。
案例拓展設計:例如,模擬一個銀行的1000個用戶賬戶,教師提出問題:怎么存儲這些對象數(shù)據(jù)呢?引導學生進行分析、討論,引出并解釋當需要存放批量數(shù)據(jù)時,數(shù)組是一種有效的存儲方式。要求學生在課后獨立完成以下操作:創(chuàng)建一些Account 類的數(shù)組對象、從數(shù)組中檢索對象、遍歷數(shù)組中的對象以及選擇處理數(shù)組中對象。
2.圖形用戶界面與事件驅動
計算思維內(nèi)容:這類程序,由于用戶的操作順序并未事先預知,程序的執(zhí)行過程取決于用戶在圖形界面上的操作順序(事件順序)。這部分教學的主要目標是培養(yǎng)學生理解和掌握計算思維中事件驅動的思維方式。
主要案例設計:例如,首先以用戶界面友好為設計原則,設計一個銀行ATM機的圖形用戶界面,引導學生思考標簽、文本框、密碼框、按鈕等組件的界面布局,并編寫事件處理程序,使得用戶在通過圖形界面輸入數(shù)據(jù)信息或者操作界面組件時,能控制程序執(zhí)行相應的任務,并將執(zhí)行結果顯示在圖形界面上。用戶需要通過某種交互事件來告訴程序應該如何操作數(shù)據(jù)(查余額、存錢、取錢、轉賬)。教師通過程序運行演示,讓學生理解事件是程序運行中出現(xiàn)的行為和動作的反映,當用戶和圖形界面進行交互通信時產(chǎn)生事件,繼而觸發(fā)事件處理程序。
(三)實踐教學改革
1.課內(nèi)實驗
為了更好地激發(fā)學生的學習興趣,教師可以選擇將一個實際應用項目進行修改并分解成各個子項目,使之符合課程教學目標,子項目的內(nèi)容對應了課程教學中的一個階段的知識、能力要求。例如,將“學生信息管理系統(tǒng)”項目拆分成8個實驗子項目,通過不斷遞增式地完成子項目,最終可實現(xiàn)一個完整的項目。
在指導學生做實驗時,教師要啟發(fā)引導學生掌握調(diào)試程序的技能、自己找到程序出錯時的問題所在。要求學生在實驗報告中,記錄程序調(diào)試及運行中出現(xiàn)的錯誤、分析出錯原因、以及解決辦法,鼓勵學生嘗試以不同的方式設計程序求解問題,并加以分析比較,得出結論。
2.課外實踐
為更好地開展個性化教育,創(chuàng)建課程學習QQ群,在群里發(fā)布一定量的課外編程題和微課視頻,給教師與學生、學生與學生的課后互動交流提供在線學習平臺。更加關注學習困難的學生,充分利用任課教師每周一次的晚自習輔導時間,將這些學生召集到實驗室,面對面地詳細了解其學習上的疑難,進行答疑解惑,幫助學生建立起學習的自信心,使其能夠最大可能的獲得知識和技能。組織和培訓部分學生參加軟件類的學科競賽,例如藍橋杯大賽、互聯(lián)網(wǎng)+大賽等,培養(yǎng)學生的學習興趣,激發(fā)學生創(chuàng)新能力。
三、結語
教學改革的實踐證明,在《面向對象程序設計》課程的教學中融入計算思維的理念,學生通過一學期的理論課學習、設計一個完整的實驗項目以及分層次的課外編程實踐,提升了學習興趣和自主學習能力,取得了良好的學習效果,培養(yǎng)了學生運用面向對象的思維分析問題、解決問題的計算思維能力,以及使用Java語言實施解決方案的程序設計能力,從而提高了軟件工程專業(yè)應用型人才的培養(yǎng)質(zhì)量。
參考文獻:
[1] Jeannette M.Wing.Computational Thinking[J].Communications of ACM,2006,49(3):33-35.
[2] 徐利軍,馮國富,葛艷,等.面向計算思維能力培養(yǎng)的程序設計課程教學方法探索[J].教育教學論壇,2017(17):132-133.
[3] 彭秀芬,陸克中.新工科背景下面向對象程序設計教學改革探討[J].電腦知識與技術,2018(21):186-188.