胡俐蕊 陽建中 陳國斌
摘 要:建構(gòu)主義認(rèn)為,學(xué)習(xí)是學(xué)生在原有知識經(jīng)驗的基礎(chǔ)上對新信息進(jìn)行主動構(gòu)建的過程,教學(xué)要以學(xué)生為中心、設(shè)計教學(xué)環(huán)境、為學(xué)生自主建構(gòu)知識的意義提供各種信息條件。針對軟件工程課程的特點及其實踐教學(xué)的不足,依據(jù)建構(gòu)主義理論,提出軟件工程課程的案例教學(xué)法。該方法從精選案例、案例分析、案例總結(jié)、案例教學(xué)效果評價四方面,給出軟件工程課程案例教學(xué)的基本過程;同時,指出案例教學(xué)是在傳統(tǒng)理論教學(xué)基礎(chǔ)上實施的,以及案例教學(xué)過程中應(yīng)該注意的問題;最后,給出案例教學(xué)效果的評價方法。教學(xué)實踐表明,該方法有助于學(xué)生理解和掌握軟件工程的基本原理和方法,提高軟件分析與設(shè)計的能力。
關(guān)鍵詞:建構(gòu)主義;軟件工程;案例教學(xué)法
中圖分類號:TP311.5 文獻(xiàn)標(biāo)識碼:A
Abstract:Constructivism believes that learning is a process which the students actively construct new information based on their original knowledge and experience,and teaching should take the students as the center,design teaching environment,and provide various information for them to construct their own knowledge of the significance.According to the characteristics of software engineering course and the deficiency of practical teaching in this course,the case teaching method of software engineering course is proposed based on the constructivism theory in this paper.The basic process of software engineering case teaching is given in the method from the following four aspects:case selection,case analysis,case summary,case teaching assessment.At the same time,in the process of case teaching,the case teaching is implemented on the basis of the traditional theory teaching,and the problems that should be noticed are pointed.Finally,the method of case teaching assessment is given.Teaching practice shows that this method is helpful for students to understand and master the basic principles and methods of software engineering, and to improve the ability of software analysis and design.
Keywords:constructivism;software engineering;case teaching method
1 引言(Introduction)
從學(xué)生學(xué)習(xí)和教師教學(xué)兩方面來看,建構(gòu)主義理論強(qiáng)調(diào):知識是動態(tài)的,學(xué)生的經(jīng)驗世界具有差異性,學(xué)生學(xué)習(xí)具有情景性、互動性和主動建構(gòu)性。學(xué)生學(xué)習(xí)不是被動地接收信息,不是由老師強(qiáng)迫性地灌輸,而是學(xué)生根據(jù)自己已有的知識背景,主動地選擇、加工和處理外部信息,獲得新知識。學(xué)生學(xué)習(xí)知識是一個主動建構(gòu)的過程,學(xué)生是學(xué)習(xí)的主體[1]。教師要根據(jù)學(xué)生建構(gòu)知識的過程,設(shè)計理想的學(xué)習(xí)情景,幫助學(xué)生主動建構(gòu)知識。教師在學(xué)生學(xué)習(xí)過程中起主導(dǎo)作用。
案例教學(xué)法于1910年在美國哈佛商學(xué)院最早被使用,20世紀(jì)80年代初傳入我國。案例教學(xué)法是在學(xué)生掌握一定理論知識的基礎(chǔ)上,由教師精心選擇案例,案例往往是真實的、典型的、具有代表性的[2]。通過案例情景教學(xué),激發(fā)學(xué)生的學(xué)習(xí)興趣,調(diào)動學(xué)生的主動性,讓學(xué)生獨立思考、集體協(xié)作地分析問題解決問題,得出可靠的結(jié)論,使學(xué)生在主動學(xué)習(xí)的過程中掌握課程的原理和方法,提高學(xué)生分析和解決問題的能力,激發(fā)學(xué)生的創(chuàng)造力,同時培養(yǎng)學(xué)生的溝通協(xié)作能力,對學(xué)生今后發(fā)展是十分有利的。
軟件工程是計算機(jī)相關(guān)專業(yè)十分重要的專業(yè)核心課程,其理論性和實踐性非常強(qiáng)。單純的理論教學(xué)往往會使學(xué)生感到枯燥乏味,失去學(xué)習(xí)的主動性。軟件工程的理論來源于實踐,是實踐的理論化和升華[3],因此,只有將具體軟件工程實踐引入課程教學(xué),才能使教學(xué)生動具體,才有利于學(xué)生理解和掌握相關(guān)知識。
2 軟件工程案例教學(xué)的必要性(The necessity of
case teaching in software engineering)
目前,軟件工程的課程教學(xué)大多采用理論教學(xué)為主實驗教學(xué)為輔的教學(xué)手段,理論教學(xué)課時數(shù)所占比例較大,實驗教學(xué)內(nèi)容簡單,教學(xué)中很少采用案例教學(xué)甚至沒有案例教學(xué),學(xué)生普遍感到理論知識難以弄懂,即使似乎能夠聽懂,也是似懂非懂,不能將所學(xué)知識應(yīng)用到具體的軟件開發(fā)項目中。顯然,這種教學(xué)方法在一定程度上忽略了軟件工程課程實踐性強(qiáng)的特點,忽略了培養(yǎng)學(xué)生分析問題解決問題的能力,忽略了學(xué)生的主動性、參與性和創(chuàng)造性,忽略了學(xué)生是學(xué)習(xí)的主體,根據(jù)建構(gòu)主義的知識觀、學(xué)習(xí)觀、教學(xué)觀,這樣的教學(xué)方法難以收到好的教學(xué)效果[4]。
案例教學(xué)法是以學(xué)生為主體教師為主導(dǎo)的教學(xué)方法,通過對案例的分析,激發(fā)學(xué)生的求知欲,調(diào)動學(xué)生的主觀能動性,使學(xué)生主動學(xué)習(xí),掌握課程涉及的原理和方法,是理論聯(lián)系實際的教學(xué)方法[5],是符合建構(gòu)主義理論學(xué)習(xí)觀、教學(xué)觀的教學(xué)方法。因此,有必要在軟件工程的課程中采用案例教學(xué)方法,通過來源于實踐的真實軟件工程案例,使學(xué)生在學(xué)習(xí)案例的過程中深刻理解掌握軟件工程的基本原理和基本方法[6,7],并能夠?qū)⑺鶎W(xué)知識靈活運用到今后的軟件開發(fā)中,解決實際問題。
3 精講軟件工程理論(Speaking precisely the theory
of software engineering)
建構(gòu)主義理論強(qiáng)調(diào)學(xué)生是在自身已有的知識背景下構(gòu)建新的知識,而軟件工程課程內(nèi)容在其前面已開的課程中幾乎沒有涉及,因此,教師在利用案例講解前,必須給學(xué)生講解一些基本概念和基本方法,讓學(xué)生有一個概貌性的了解、感性的認(rèn)識,以便在今后利用案例講解時學(xué)生能夠結(jié)合已有知識來理解案例,從而更深刻理解和掌握所學(xué)知識。所以,在實施軟件工程案例教學(xué)之前,精講軟件工程理論是必要的。
講授理論知識時,教師是知識的呈現(xiàn)者,是知識的傳授者,對軟件工程課程涉及的內(nèi)容要抓住重點、難點和關(guān)鍵點,精講軟件工程的基本原理和基本方法,盡可能使學(xué)生對軟件工程的原理和方法有一個基本的認(rèn)識,為下一步的案例教學(xué)做好準(zhǔn)備。教師在傳授知識時,可以充分利用多媒體課件,采用一些傳統(tǒng)的教學(xué)方法,比如:講授式、啟發(fā)式、對比式、小結(jié)式等方法進(jìn)行教學(xué)。
4 軟件工程案例教學(xué)法(The method of software
engineering case teaching)
建構(gòu)主義的學(xué)習(xí)理論認(rèn)為,學(xué)生學(xué)習(xí)的動力來自生存環(huán)境的壓力;學(xué)習(xí)的過程是學(xué)生自己在頭腦中,對知識的意義進(jìn)行建構(gòu)的過程;知識不是由教師傳授的,而是學(xué)生自己在一定的“情景”中,借助他人的幫助,使用必要的工具和資料,通過“意義建構(gòu)”的方法獲得的。
依據(jù)建構(gòu)主義的學(xué)習(xí)理論,用案例建立“情景”,提出一個任務(wù),讓學(xué)生明白本課程的學(xué)習(xí)目標(biāo);再建立“協(xié)作”,讓學(xué)生成為實現(xiàn)“情景”的主體,自己動手做,必要時,教師和同學(xué)之間互助與合作。然后,建立“會話”,綜合所有課程的知識點,進(jìn)行綜合練習(xí),提出學(xué)習(xí)過程中的問題,學(xué)生之間商討、交流彼此的意見與學(xué)習(xí)成果,共同完成規(guī)定的學(xué)習(xí)任務(wù);最后,學(xué)生實現(xiàn)“意義建構(gòu)”,掌握所學(xué)知識。
4.1 精選案例
案例是建立學(xué)習(xí)“情景”的關(guān)鍵,一個好的案例才能夠引發(fā)學(xué)生思考和探索,才能有效地進(jìn)行案例教學(xué)[8]。目前,軟件工程中不乏成功案例,但對于具體的教學(xué)來說,還要注意由簡到繁、粗細(xì)結(jié)合等教學(xué)規(guī)律,精選若干個符合學(xué)生水平、真實的小案例和1—2個綜合案例。小案例側(cè)重于重要知識點的講解,綜合案例則貫穿課程始終,使學(xué)生全面理解掌握實際軟件開發(fā)中涉及的任務(wù)、方法、技術(shù)和工具。精選案例時需要注意幾個方面:
(1)目的性。軟件工程課程的教學(xué)目標(biāo)就是要使學(xué)生掌握軟件開發(fā)過程及其規(guī)范,掌握軟件開發(fā)、管理、維護(hù)的方法、技術(shù)及其工具。因此,在選取案例時,必須圍繞這一目標(biāo),使得每個小案例都能很好地幫助學(xué)生理解軟件工程涉及的各個重要知識點,綜合案例則能幫助學(xué)生理解整個軟件的開發(fā)過程,切實提高學(xué)生分析問題、解決問題的能力,從而提高學(xué)生軟件開發(fā)、管理和維護(hù)的能力。
(2)真實性。案例必須來源于現(xiàn)實中的真實軟件項目,這樣才能使學(xué)生真正感受到軟件開發(fā)需要解決的問題,才能更好地理解軟件開發(fā)、管理、維護(hù)的過程。
(3)代表性。案例所涉及的軟件規(guī)模大小、內(nèi)容、方法、工具等都必須具有代表性,以便學(xué)生更好地理解軟件工程,今后能夠舉一反三地解決實際問題。
(4)啟發(fā)性。案例本身蘊含的問題必須具有啟發(fā)性,學(xué)生通過解決問題,能夠獲得啟發(fā),能夠更好地理解掌握所學(xué)知識。
(5)生動性。案例本身必須是生動具體的,這樣才可能激發(fā)學(xué)生的學(xué)習(xí)興趣和求知欲,進(jìn)而積極地解決問題。
另外,精選案例時,教師還要考慮案例涉及的關(guān)鍵信息、疑難問題、解決疑難問題的方法、各種可能的解決方案以及對解決方案的恰當(dāng)評價等。
4.2 案例分析
教師在精心準(zhǔn)備好案例后,就要在課堂上進(jìn)行案例的討論分析了。在這一過程中,教師要充當(dāng)一個與學(xué)生同樣地位的人,不要認(rèn)為自己就是權(quán)威,要把自己當(dāng)成學(xué)生中的一員,與學(xué)生共同探討。這樣,也能營造一個自由輕松的氛圍,讓學(xué)生放松心情、積極思考、各抒己見。教師要認(rèn)真傾聽、適時肯定和鼓勵,并及時做出相應(yīng)的評價。當(dāng)學(xué)生沒有思路時,教師要進(jìn)行必要的引導(dǎo),使學(xué)生圍繞案例涉及的問題逐個地討論、分析、解決,實質(zhì)上學(xué)生在不知不覺中就完成了“協(xié)作”“會話”和“意義建構(gòu)”。總之,通過案例的分析講解,教師要讓學(xué)生真正體會到弄懂了軟件工程的相關(guān)知識點,也知道如何將軟件工程的原理和方法應(yīng)用到具體的軟件開發(fā)、管理和維護(hù)中去。
軟件問題答案往往不是唯一的。比如,數(shù)據(jù)流圖、算法設(shè)計、軟件結(jié)構(gòu)設(shè)計、類圖等等在軟件開發(fā)中就可以有多種設(shè)計方案。因此,軟件工程課程中的案例分析更注重分析過程,而不要過多地強(qiáng)調(diào)結(jié)果。事實上,在這樣的案例分析過程中,學(xué)生更需要認(rèn)真研究教材內(nèi)容、相互討論研究,才可能在發(fā)言中有理有據(jù)、邏輯清晰、頭頭是道??傊灰獙W(xué)生在分析過程中,能夠應(yīng)用軟件工程的原理和方法,有邏輯地分析問題和解決問題,這樣的案例分析課就是成功的。
4.3 案例總結(jié)
當(dāng)一個案例討論分析結(jié)束后,教師要及時總結(jié)。軟件工程涉及的案例往往有不同的答案,教師要對各種答案進(jìn)行有效的優(yōu)缺點分析,在充分肯定學(xué)生獨立思考的前提下,還要肯定學(xué)生分析的亮點和獨到的見解,同時委婉地指出分析中的不足。在總結(jié)過程中,尤其要注意問題的本質(zhì),結(jié)合具體實際,給出恰如其分的評價;案例是用來說明原理和方法的,最終都要歸結(jié)到總結(jié)案例所涉及的軟件工程基本概念、基本原理和基本方法。只有這樣,才能發(fā)揮案例分析的作用。
在案例總結(jié)的基礎(chǔ)上,進(jìn)一步要求學(xué)生重新審視案例、總結(jié)歸納、消化提升,寫出高質(zhì)量的案例分析報告書。通過這一過程,不僅可以鍛煉學(xué)生的書面表達(dá)能力和系統(tǒng)分析能力,而且可以使學(xué)生更系統(tǒng)更深刻地理解軟件工程的基本原理和基本方法,為學(xué)生真正實現(xiàn)“意義建構(gòu)”打下堅實的基礎(chǔ)。
4.4 案例教學(xué)效果評價
案例教學(xué)是否能夠收到預(yù)期的效果,可以采用以下兩種方法進(jìn)行檢查。
(1)學(xué)生個人的自我評價。通過案例教學(xué)后,學(xué)生對所學(xué)知識的掌握情況可能會有一個比較清醒的認(rèn)識,比如:對相關(guān)知識是弄懂了還是模糊不清,對解決問題的方法是有思路了還是不知從何處入手,對軟件開發(fā)過程是有了清楚的認(rèn)識還是不知所措等等。
(2)有針對性的練習(xí)題。有時,案例教學(xué)后,學(xué)生還是不能準(zhǔn)確評價自己。事實上,僅有學(xué)生自身的評價也是不夠的。這時,教師有必要出一些有針對性的練習(xí)題,讓學(xué)生進(jìn)行自我測試,檢查學(xué)生的完成情況,從而更準(zhǔn)確地判斷學(xué)生對軟件工程的基本思想、概念、原理、方法和技能等的理解和掌握情況。
總之,教師通過學(xué)生的自我評價,以及學(xué)生完成作業(yè)的情況,基本可以判斷案例教學(xué)效果,從而能進(jìn)一步改進(jìn)案例教學(xué)法。
5 結(jié)論(Conclusion)
在建構(gòu)主義知識觀、學(xué)習(xí)觀和教學(xué)觀的指導(dǎo)下,構(gòu)建軟件工程的案例教學(xué)法。一般來說,先使用傳統(tǒng)教學(xué)法講授軟件工程的基本原理和方法,再在此基礎(chǔ)上,進(jìn)行案例教學(xué)。通過案例分析使學(xué)生進(jìn)一步理解和掌握所學(xué)的原理和方法,達(dá)到理論與實踐相結(jié)合的統(tǒng)一。該方法不僅可以激發(fā)學(xué)生的求知欲、提高學(xué)習(xí)興趣,而且學(xué)生在案例的討論、分析、歸納、總結(jié)過程中進(jìn)一步理解和掌握了軟件工程的基本思想、概念、方法和技術(shù),有助于提高學(xué)生分析問題、解決問題、相互溝通、相互合作的能力,對學(xué)生今后從事軟件開發(fā)、管理與維護(hù)有一定的指導(dǎo)意義。同時,該方法也要求教師本身的知識水平、教學(xué)組織能力、口頭表達(dá)能力、綜合素質(zhì)較好,并具有一定的軟件開發(fā)、管理與維護(hù)的能力,這樣才能夠較好地控制教學(xué)過程,實施有效的案例教學(xué)活動。我院計算機(jī)相關(guān)專業(yè)的軟件工程課程教學(xué)過程中,案例教學(xué)法已被實施,并取得較好的教學(xué)效果。
參考文獻(xiàn)(References)
[1] Sánchez Gómez P J.Students' Ideas and Radical Constructivism[J].Science & Education,2016(25):1-22.
[2] Eid M I M,Al-Jabri I M.Social networking, knowledge sharing,and student learning:The case of university students[J].Computers & Education,2016 (99):14-27.
[3] Marshall L,et al.Exploration of Participation in Student Software Engineering Teams[J].Acm Transactions on Computing Education,2016,16(02):967-973.
[4] 袁維新.建構(gòu)主義理論運用于科學(xué)教學(xué)的15條原則[J].教育理論與實踐,2004,24(10):57-62.
[5] 張家軍,靳玉樂.論案例教學(xué)的本質(zhì)與特點[J].中國教育學(xué)刊,2004(01):48-50.
[6] 張霞,謝桂芳,李盛欣.“軟件工程”課程教學(xué)改革的研究[J].軟件工程師,2014,17(05):31-32.
[7] 毛燕琴.軟件工程專業(yè)案例啟發(fā)式教學(xué)實踐框架研究[J].計算機(jī)教育,2015(07):22-24.
[8] 岑琴.案例教學(xué)法在計算機(jī)專業(yè)教學(xué)中的應(yīng)用——以《軟件工程》為例[J].電腦知識與技術(shù),2014,10(32):7657-7658;7669.
作者簡介:
胡俐蕊(1966-),男,博士,副教授.研究領(lǐng)域:嵌入式系統(tǒng),圖像識別,機(jī)器學(xué)習(xí).
陽建中(1984-),男,碩士,講師.研究領(lǐng)域:圖像處理與模式識別,機(jī)器學(xué)習(xí).
陳國斌(1975-),男,碩士,高級工程師.研究領(lǐng)域:數(shù)據(jù)庫,機(jī)器學(xué)習(xí).