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