劉坤 包瓊
摘? 要:從創(chuàng)新能力培養(yǎng)的角度,基于常見的“項目案例驅(qū)動法”,提出了一種“開發(fā)式案例教學(xué)法”,在軟件工程的教學(xué)過程中主張以學(xué)生為中心,在系統(tǒng)選題、開發(fā)和解決問題的過程中發(fā)揮自主能動性,突出“打破常規(guī)思維”的思考方式。該教學(xué)法能減少學(xué)生學(xué)習過程中對于教師的依賴度,在實踐中發(fā)現(xiàn)能夠激發(fā)學(xué)生的思維活躍度,促使學(xué)生主動地將課程中所學(xué)到的理論知識應(yīng)用到實際中。
關(guān)鍵詞:軟件工程;創(chuàng)新思維;教學(xué)法
中圖分類號:G640 文獻標志碼:A? ? ? ? ?文章編號:2096-000X(2020)34-0037-04
Abstract: From the perspective of innovative thinking training, based on the common project case driven method, this paper puts forward an "open case teaching method". In the teaching process of software engineering, it advocates taking students as the center, playing its own initiative in the process of topic selection, development and problem solving, and highlighting breaking conventional thinking. This teaching method can reduce the dependence of students on teachers in the process of learning. In practice, it is found that it can stimulate students' thinking activeness, and make students actively apply the theoretical knowledge learned in the course to practice.
Keywords: software engineering; innovative thinking; teaching method
前言
軟件工程本身是從軟件開發(fā)的實踐中通過經(jīng)驗總結(jié)理論升華出來的一門學(xué)科,無論是“教”還是“學(xué)”,都非常注重實踐[1-2],強調(diào)將所學(xué)到的理論知識與實際相結(jié)合。近年來國家提出了根據(jù)經(jīng)濟發(fā)展形勢,提倡了“大眾創(chuàng)業(yè)、萬眾創(chuàng)新”發(fā)展戰(zhàn)略,創(chuàng)新創(chuàng)業(yè)教育成為了高校當今本科教學(xué)改革中的一項重要內(nèi)容[3]。
在這個背景下,本文從創(chuàng)新思維培養(yǎng)的角度對《軟件工程》的實踐教學(xué)環(huán)節(jié)提出了一種“開放式案例教學(xué)法”。該方法對吸收了“項目案例驅(qū)動法”注重案例與實踐的優(yōu)點,同時將開放式的案例教學(xué)法融入其中,在開發(fā)式案例的設(shè)計中注重創(chuàng)新思維的培養(yǎng)。多輪《軟件工程》課程的教學(xué)實踐表明,該方法可以很好的激發(fā)學(xué)生的創(chuàng)新思維活躍度,學(xué)生從被動接受軟件工程的理論訓(xùn)練到主動應(yīng)用軟件工程的理論知識去解決問題。
一、軟件工程實踐教學(xué)存在的問題
《軟件工程》作為一門軟件工程等專業(yè)的核心課程,學(xué)生在學(xué)習過程中普遍覺得理論抽象,而實際動手又無從下手,因此在教學(xué)中多采用“項目案例驅(qū)動式”教學(xué)法[4]。項目所采用的案例是一個成熟的解決方案,涵括了軟件工程所要求的需求、設(shè)計、編碼和測試等環(huán)節(jié)。這些都以文檔或源碼的形式提供,任課教師通過教學(xué)環(huán)節(jié)的設(shè)計引導(dǎo)學(xué)生學(xué)習這些內(nèi)容,從而讓學(xué)生獲得完整的項目開發(fā)的整體訓(xùn)練。從實際教學(xué)效果看,“項目驅(qū)動法”很好地解決了學(xué)生在學(xué)習中感覺理論抽象的難題,通過具體可動手操作的案例,學(xué)生通過模仿案例的實施過程獲得理論認知,通過案例所提供的動手練習的訓(xùn)練鍛煉編程技能,從而在理論知識和實踐能力兩方面都獲得了很大的提升。
但在多年的教學(xué)過程中也發(fā)現(xiàn)了該方法存在的一些不足:
1. 由于案例成熟,資料相對豐富完整,學(xué)生能夠獲得實在的專業(yè)能力訓(xùn)練,但思維也容易被案例所提供的方法和文檔所限制,從而形成一種固化思維,一旦脫離原有案例,學(xué)生無法有效地將所學(xué)的知識遷移到其他場景,存在“生搬硬套”的情況。同時如果所設(shè)計的案例的質(zhì)量還會影響到培養(yǎng)效果,一旦所設(shè)計的案例存在不遵守軟件工程規(guī)范的情況,還會起到反作用。
2. 案例設(shè)計周期較長,教師往往花費較長的時間準備。一旦設(shè)計完成,教師缺乏足夠的動力對案例進行持續(xù)改進。存在一個案例使用若干年的情況,所使用的技術(shù)與時代脫節(jié)。
3. 教學(xué)過程的實施與推進是由教師主導(dǎo)的,學(xué)生跟隨教師的指令完成各個子任務(wù)。學(xué)生的主動性在這一過程中是受限的,自我思考空間有限。
二、創(chuàng)新教育的內(nèi)涵
(一)提高對創(chuàng)新教育的認識
對于工科教育,學(xué)生不僅要學(xué)習理論知識,還需要加強動手實際操作,鍛煉基于理論知識解決實際問題的能力,即常說的“實踐能力”。對于《軟件工程》而言,“項目案例驅(qū)動法”便是這一理念的產(chǎn)物。但實踐能力與創(chuàng)新能力并不完全等同。呂薇[5]指出創(chuàng)新能力應(yīng)該是對實踐能力的進一步發(fā)展與提升。從大學(xué)本科教育看,實踐能力首先來源于學(xué)校實踐教學(xué)環(huán)節(jié)所要求的標準,包括實驗、課程設(shè)計、實訓(xùn)等。當學(xué)生達到這些標準的合格水平時,可以認為便具備了本專業(yè)對學(xué)生所要求的基本實踐能力。創(chuàng)新教育在這個基礎(chǔ)上側(cè)重于創(chuàng)新能力的培養(yǎng)。
高校實踐教學(xué)環(huán)節(jié)是與理論教學(xué)緊密相連的,在各大高校都屬于培養(yǎng)方案與課程體系的組成部分,同屬教育質(zhì)量的監(jiān)控范圍。而創(chuàng)新教育則一般依托第二課堂比如競賽,企業(yè)實訓(xùn)等展開,各個高校在實施過程中所具備的條件如時間實習基地,經(jīng)費等存在很大差異,導(dǎo)致實施方式也存在很大的差別。
但核心差異還是來源于對于第一課堂和第二課堂之間關(guān)系的認識。從前述調(diào)研結(jié)果可見,高校本科在校生大部分的學(xué)習時間仍然是針對第一課堂所要求的學(xué)習任務(wù)的。一者工科課程知識大多難度較大,知識體系也相對嚴謹,學(xué)生理解和掌握要花費大量的時間。比如軟件工程專業(yè)學(xué)生要在編程語言方面做大量的編程訓(xùn)練才能熟悉該門語言,達到基本實踐要求。再者教師對第一課堂容易掌控,管理部門也容易對第一課堂進行管理,其教學(xué)效果也易于評價。
有調(diào)研結(jié)果顯示[6],本科生在第一課堂所花的學(xué)習時間占全部實際學(xué)習時間的比例平均高達91.65%。這表明,能夠提高創(chuàng)新能力培養(yǎng)的第二課堂,本科生能夠分配出來的時間非常有限,大部分時間仍然被繁重的學(xué)習任務(wù)所占用。因此,在不能夠大幅度提高第二課堂時間占比的情況下,積極改進第一課堂的教學(xué),并在這一主陣地融入創(chuàng)新教育,顯得非常有必要。
(二)創(chuàng)新教育理念探討
第一課堂的“實踐教學(xué)環(huán)節(jié)”由于有教師的示例與示范,學(xué)生依葫蘆畫瓢完成任務(wù),其學(xué)習活動本質(zhì)上并不具備培養(yǎng)創(chuàng)造力的要素。AHP和ANP的發(fā)明人托馬斯L.薩蒂教授就培養(yǎng)創(chuàng)造力這一話題在其關(guān)于創(chuàng)造性思維的著作[7]中做出了許多有益的探討,提出了不少真知灼見。受此著作啟發(fā),本文所討論的“開放式案例教學(xué)法”提出了如下設(shè)計理念:
1. 要引入新的問題
心理學(xué)家研究指出,新的問題提供新的場景,從而刺激人的大腦積極思考問題,提出具有創(chuàng)新性想法的概率也會增大。而科研活動一般也強調(diào)“用新的方法解決已有的問題”,或者“用舊的方法解決新的問題”,或者“用新的方法解決新的問題”。對于本科在校生而言,受其知識儲備影響,“提出新的方法”這一要求不具備普遍性。因此引入新的問題促使學(xué)生去解決之,則更具可行性。
2. 提倡“打破常規(guī)”的思考方式
教育很容易陷入“知識復(fù)刻”的泥潭,即知識只是在不同的人之間為完成了記憶的復(fù)制[7]。人們試著去解決問題時,往往從已習得的知識和經(jīng)驗中尋求解決方案。因循守舊,固守成規(guī)是人類思維的慣性,而這與創(chuàng)造能力的培養(yǎng)是格格不入的。創(chuàng)造教育應(yīng)該強調(diào)“打破常規(guī)”的思考方式,突破已有解決方案存在的一些限制,也要突破個人思維上存在的一些束縛。
3. 鼓勵“試錯”
已有的知識和經(jīng)驗給人帶來安全感,新的問題或突破常規(guī)則會讓人面對未知,這種境遇給人的心理上帶來畏懼情緒,導(dǎo)致退回到已有的或現(xiàn)存的解決方法的思考狀態(tài)中去,不敢去驗證新的想法。而鼓勵“試錯”則是鼓勵一種冒險精神,也是鼓勵一種不怕麻煩,不畏困難的精神。創(chuàng)造力是個人智力、品格等各方面能力的綜合反映。創(chuàng)新教育也是對人的良好品格塑造的一個過程。
三、開放式案例教學(xué)法
(一)教學(xué)法的設(shè)計
所謂“開放式案例教學(xué)法”,指在教學(xué)過程中以能力培養(yǎng)為導(dǎo)向,在強調(diào)軟件工程理論原理和規(guī)范的基礎(chǔ)上,不提供統(tǒng)一答案與解決方案,讓學(xué)生在教師的指導(dǎo)下獨立或分組完成軟件系統(tǒng)的設(shè)計與開發(fā)。
將現(xiàn)有的實踐教學(xué)環(huán)節(jié)分為兩個階段,在第一階段仍然采用“項目案例驅(qū)動法”,配合課堂的理論教學(xué)部分。在第二個階段采用“開發(fā)案例教學(xué)法”,側(cè)重于創(chuàng)造能力的培養(yǎng)。
《軟件工程》本身的理論知識體系已然成形,必備的軟件開發(fā)過程相關(guān)知識仍然對軟件開發(fā)有指導(dǎo)作用。而這些知識的教學(xué)要將理論知識傳授與實踐教學(xué)結(jié)合起來,才能擺脫抽象與枯燥的理論知識給學(xué)生帶來的不適應(yīng)。這個階段的任務(wù)是要讓學(xué)生對軟件開發(fā)過程有一個整體上的把握,從需求分析,到系統(tǒng)的設(shè)計,再到編碼和測試,學(xué)生通過這些練習這些步驟最后能得到一個基本可用的系統(tǒng)。這個階段對于軟件工程專業(yè)的學(xué)生而言是非常有必要的,而且是不能逾越的。
而在第二階段則以學(xué)生自選題目開始,圍繞軟件系統(tǒng)的設(shè)計與實現(xiàn),教師可以將該階段的任務(wù)劃分為若干個小階段。教師對每個小階段布置階段性任務(wù),對學(xué)生做出的結(jié)果做出評價與改進意見。整個教學(xué)過程以最后得到軟件系統(tǒng)為結(jié)果導(dǎo)向,對結(jié)果驗收標準做出明確要求,其他都如開發(fā)進度,技術(shù)選型,開發(fā)工具等等都不做具體要求,每個小階段也不預(yù)設(shè)標準答案,給予學(xué)生充分的自主權(quán),促使學(xué)生通過探究式學(xué)習完成任務(wù)。
(二)設(shè)計要點
1. 選題要針對實際問題,不能采用陳舊或脫離生活經(jīng)驗的題目
選題是“開放式案例教學(xué)法”的第一步,也是很重要的一步。它決定了后續(xù)學(xué)生學(xué)習的關(guān)注點。但學(xué)生對于選題要么企求教師給定參考題目,自己做選擇,或是缺乏調(diào)研,想當然的選擇題目。
比如根據(jù)學(xué)生現(xiàn)有的生活經(jīng)驗,選擇類似“機票銷售”“酒店管理”的題目都是不太合適的。這樣選題就明顯不符合學(xué)生既有的生活體驗。這樣的選題,教師在選題之初就應(yīng)該直接否定。
從創(chuàng)新角度看,教師要鼓勵或半強制性的要求學(xué)生自己去發(fā)現(xiàn)問題,從以往的解決方案中尋找能改進的地方,并通過與教師商量,自己擬定項目的題目。在這個過程中,學(xué)生的思維得到充分的釋放,教師只是給出指導(dǎo)意見,評價學(xué)生選取的角度是否合適,問題的難度是否在學(xué)生所具備的解決能力范圍內(nèi)。
2. 遇到問題時,要扔掉“老師”這根拐杖,強調(diào)自主性
學(xué)生要學(xué)會自己去網(wǎng)絡(luò)查找解決方案,尤其是一些技術(shù)問題。而教師在遇到學(xué)生提問題時,也要注意一定引導(dǎo)性,指出查找解決方案的方向。在這個交互過程中,既要杜絕直接把答案告訴學(xué)生,也要防止對學(xué)生的提問不管不問,完全放手。
在解決問題的過程中,要鼓勵學(xué)生敢于試驗自己的想法,這是創(chuàng)新能力中難能可貴的個性品質(zhì)。高校學(xué)生正值人生思維活躍,精力旺盛的黃金時期,但面對挫折與困難時容易打退堂鼓,此時外界的鼓勵會激發(fā)學(xué)生戰(zhàn)勝困難的斗志。因此教師要適時了解學(xué)生的學(xué)習進展情況,幫助分析所遇到的問題,更重要的是從精神源頭予以鼓勵。
3. 注重思考方式的引導(dǎo)
學(xué)生在解決問題的過程中,很容易受到現(xiàn)有軟件中的已有方案的影響。比如一遇系統(tǒng)中有支付需求,就想用接入支付寶或微信;一遇到系統(tǒng)內(nèi)用戶之間有溝通或聊天的需求,就想到創(chuàng)建聊天室等等。借用現(xiàn)有的解決方案能快速地應(yīng)用于問題的解決,但同時也會固化思維,這對于未來從事軟件開發(fā)的學(xué)生而言是不利的。在評價學(xué)生的這些解決方案時要合理地否定學(xué)生所做出的選擇,引導(dǎo)學(xué)生以發(fā)散性思維去尋找其他方案。
這是本教學(xué)法中很重要的一環(huán)。軟件系統(tǒng)設(shè)計與開發(fā)是依賴解決方案的不斷完善逐步往前推進的。對學(xué)生提出的解決方案予以一定程度的否定,實際上是在學(xué)習上給予一定的極限施壓,在一定的壓力下讓學(xué)生充分調(diào)用所學(xué)習的知識去思考問題,甚至于主動去學(xué)習一些新知。
(三)案例探討
下面以教學(xué)改革過程中所產(chǎn)生的幾個案例為例來闡述這一方法。
案例1:在系統(tǒng)選題階段,學(xué)生設(shè)想了一個名為“聽曲識歌”的題目,想法是當人們聽到一段曲子時,如果很感興趣,就可以利用這個系統(tǒng)找到對應(yīng)的歌曲。這個想法很明顯來源于生活,當聽到了某段音樂特別喜歡時非常傾向于知道跟這段音樂相關(guān)的東西,如歌名、歌手等信息。這應(yīng)該說是一個比較有創(chuàng)意的一個想法。但經(jīng)過教師的評估后,覺得根據(jù)學(xué)生在音頻處理方面所具備的技術(shù)水平還不足以支持完成這個項目,建議學(xué)生予以更換。
案例2:學(xué)生提出了設(shè)計與開發(fā)一個“樹洞”快應(yīng)用的想法,開始之初學(xué)生的想法是想為那些心理抑郁的患者提供一個社交應(yīng)用,在上面能夠吐露自己的一些話語,也能夠用漂流瓶的方式交友。人們還可以在上面發(fā)表跟心理相關(guān)的文章,幫助人們解決心理的一些問題。應(yīng)該說學(xué)生選擇這一題目的角度還是很有應(yīng)用價值的,當今社會發(fā)展迅速,壓力倍增,卻鮮有從心理輔導(dǎo)的角度來進行社交的,這一想法有創(chuàng)新性。
經(jīng)過與學(xué)生的多輪討論后,做了如下修改:第一,砍掉漂流瓶功能,對比QQ中所提供的這一功能發(fā)現(xiàn)實際用途不大,因此QQ在新版本中已經(jīng)去掉了這一功能。建議砍掉該功能以聚焦核心功能。第二,簡化發(fā)文章的功能,以免形成“心靈雞湯”之類的水文影響閱讀質(zhì)量。同樣也是為了聚焦核心功能。第三將心理輔導(dǎo)不局限于“心理抑郁”患者。如果真是這樣的患者,出于個人隱私考慮,也許并不會使用這款應(yīng)用,同時也牽扯到一些道德倫理問題。于是建議將系統(tǒng)功能的切入點換作提供“心理壓力發(fā)泄”的一個渠道,這樣對任何心理正常的普通人都可以使用。因為普通人生活中都會有一些委屈、不滿等負面情緒,需要通過一個渠道發(fā)泄出來,這樣“樹洞”僅是一個具有“心理疏導(dǎo)”功能的小應(yīng)用。雖然功能單一,但面對的用戶群體比較大,能發(fā)揮比較重要的作用,在技術(shù)上學(xué)生也容易實現(xiàn)。在實現(xiàn)過程中,學(xué)生還比較有創(chuàng)意的給所開發(fā)的功能取名為“留存”“花泥”等,很形象地表達了系統(tǒng)的功能,也給人耳目一新的感覺。在這個過程中,學(xué)生通過與教師的討論、醞釀和碰撞,提出了很多想法,所呈現(xiàn)的思維狀態(tài)非?;钴S,達到了本教學(xué)法的目的。
四、反思
“開放式案例教學(xué)法”由于在軟件開發(fā)的許多環(huán)節(jié)都強調(diào)學(xué)生的自立與主動,而不是按照教師規(guī)劃的路徑往前走,因此學(xué)生在初期是不太適應(yīng)這種教學(xué)方式的,遇到問題時總希望從教師這里得到直接的答案。但在教學(xué)后期學(xué)生能主動地去網(wǎng)絡(luò)搜尋資料,學(xué)習新的技術(shù)來解決問題,學(xué)習方式發(fā)生了很大的轉(zhuǎn)變。
而這種教學(xué)法對于教師也提出了較高的要求。教師要學(xué)習一些創(chuàng)造教育知識,經(jīng)過一些較系統(tǒng)的創(chuàng)造力訓(xùn)練,這樣對學(xué)生的“創(chuàng)造能力”培養(yǎng)才能做出有效的指導(dǎo)。
“開放式案例教學(xué)法”并不是完全放任學(xué)生不管,它是在一定的框架范圍內(nèi)給予學(xué)生學(xué)習上的自主權(quán)。而這個框架范圍就是軟件系統(tǒng)設(shè)計與開發(fā)原理與規(guī)范。教師僅對學(xué)生是否遵守了原理與規(guī)范做出明確評判,而在該教學(xué)法的其他活動中都是“旁觀者”或是“參與者”的身份,以用戶的視角去看待學(xué)生開發(fā)的系統(tǒng)。
五、結(jié)束語
本文以《軟件工程》課程教學(xué)中常見的“項目案例教學(xué)法”為參照對象,從創(chuàng)新思維培養(yǎng)的角度提出了一種“開發(fā)式案例教學(xué)法”,該方法在軟件開發(fā)的各個環(huán)節(jié)中融入創(chuàng)新意識,逐步培養(yǎng)學(xué)生“打破常規(guī)”的創(chuàng)新思維,在實踐中取得了一定的效果。在今后的教學(xué)改革中,將逐步完善該教學(xué)法的內(nèi)涵,豐富相應(yīng)教學(xué)手段,發(fā)掘其與“項目案例教學(xué)法”的協(xié)同作用,提高其適用范圍。
參考文獻:
[1]趙軍霞,焦鉻,張劍.新工科背景下的軟件工程實踐課程教學(xué)改革[J].計算機教育,2019(11):69-72.
[2]祁鑫,宋會英,崔浩.新工科背景下“軟件工程”課程教學(xué)改革的研究與探索[J].中國石油大學(xué)勝利學(xué)院學(xué)報,2018(4):65-68.
[3]陳志剛,夏旭,師雷宏,等.“雙創(chuàng)”視域下軟件工程專業(yè)人才培養(yǎng)模式探析[J].中國大學(xué)教學(xué),2017(11):119-22.
[4]汪克峰,梁洪峰,范洪輝.基于項目模式的軟件工程專業(yè)實踐教學(xué)的研究[J].江蘇理工學(xué)院學(xué)報,2017(6):89-94.
[5]呂薇,韓晴,黃波,等.大學(xué)生創(chuàng)新能力的培養(yǎng)模式及機制的淺談[J].高教學(xué)刊, 2019(1):32-34.
[6]楊風開,李紅斌,尹仕.工科專業(yè)教育融合創(chuàng)新創(chuàng)業(yè)教育的教學(xué)模式[J].高教學(xué)刊,2019(13):25-27.
[7]托馬斯L.薩蒂.創(chuàng)造性思維(第一版)[M].北京:機械工業(yè)出版社,2018:6.
*基金項目:湖北經(jīng)濟學(xué)院法商學(xué)院教學(xué)研究項目“新工科背景下融入創(chuàng)新訓(xùn)練的軟件工程課程教學(xué)研究”(編號:2019J18)
作者簡介:劉坤(1979-),男,漢族,湖北荊州人,博士,副教授,研究方向:軟件工程,深度學(xué)習等。