文章編號:1672-5913(2008)10-0079-03
摘要:本文以建構(gòu)主義理論為基礎(chǔ),探討了如何設(shè)計以建構(gòu)主義的學(xué)習(xí)理論為指導(dǎo)的軟件工程教學(xué)模式和教學(xué)方法,并對建構(gòu)主義教學(xué)模式下的軟件工程教學(xué)提出了若干應(yīng)注意的問題。
關(guān)鍵詞:建構(gòu)主義;軟件工程;教學(xué)方法
中圖分類號:G642
文獻標(biāo)識碼:B
軟件工程是高等學(xué)校計算機專業(yè)教學(xué)計劃中的一門核心課程,工程實踐性非常強,要求學(xué)生不僅具有良好的軟件開發(fā)能力,而且要具備軟件項目的整體管理概念和團隊合作精神。為了讓學(xué)生充分認識到軟件工程課程的重要性,需要任課教師不斷探索、改進教學(xué)方法,改變“以教師為中心”的傳統(tǒng)教學(xué)模式,使學(xué)生從被動學(xué)習(xí)變?yōu)橹鲃訉W(xué)習(xí),為學(xué)生自主學(xué)習(xí)提供豐富的學(xué)習(xí)資源,從而取得較好的教學(xué)效果。這正是現(xiàn)代教學(xué)理論——建構(gòu)主義學(xué)習(xí)理論所倡導(dǎo)的。
1建構(gòu)主義理論概述
建構(gòu)主義理論的核心內(nèi)容是:以學(xué)生為中心,強調(diào)學(xué)生對知識的主動探索,主動發(fā)現(xiàn)和對所學(xué)知識意義的主動建構(gòu)。建構(gòu)主義教學(xué)理論認為,知識主要不是通過教師傳授得到,而是學(xué)習(xí)者在一定的情景及社會文化背景下,借助他人(包括教師和學(xué)習(xí)伙伴)的幫助,利用必要的學(xué)習(xí)資源,通過意義建構(gòu)的方式而獲得的;學(xué)習(xí)是學(xué)習(xí)者主動建構(gòu)內(nèi)部心理表征的過程,它不僅包括結(jié)構(gòu)性的知識,而且包括大量的非結(jié)構(gòu)性的經(jīng)驗背景;學(xué)生是信息加工的主體,是意義的主動建構(gòu)者,而不是外部刺激的被動接受者和被灌輸?shù)膶ο?;教師是意義建構(gòu)的幫助者、促進者,而不是知識的傳播者和灌輸者;“情境”、“協(xié)作”、“會話”、和“意義建構(gòu)”是學(xué)習(xí)環(huán)境的四大要素。
與建構(gòu)主義學(xué)習(xí)理論以及建構(gòu)主義學(xué)習(xí)環(huán)境相適應(yīng)的教學(xué)模式概括為:“以學(xué)生為中心,在整個教學(xué)過程中由教師起組織者、指導(dǎo)者、幫助者和促進者的作用,利用情境、協(xié)作、會話等學(xué)習(xí)環(huán)境要素充分發(fā)揮學(xué)生的主動性、積極性和首創(chuàng)精神,最終達到使學(xué)生有效地實現(xiàn)對當(dāng)前所學(xué)知識的意義建構(gòu)的目的。在這種模式中,學(xué)生是知識意義的主動建構(gòu)者;教師是教學(xué)過程的組織者、指導(dǎo)者、意義建構(gòu)的幫助者和促進者;教材所提供的知識不再是教師傳授的內(nèi)容,而是學(xué)生主動建構(gòu)意義的對象;媒體也不再是幫助教師傳授知識的手段、方法,而是用來創(chuàng)設(shè)情境、進行協(xié)作學(xué)習(xí)和會話交流,即作為學(xué)生主動學(xué)習(xí)、協(xié)作式探索的認知工具。
在建構(gòu)主義的教學(xué)模式下,比較成熟的教學(xué)方法主要有支架式教學(xué)、拋錨式教學(xué)和隨機進入教學(xué)等。
2建構(gòu)主義學(xué)習(xí)環(huán)境下軟件工程課程教學(xué)設(shè)計
在建構(gòu)主義學(xué)習(xí)環(huán)境下,軟件工程課程教學(xué)設(shè)計內(nèi)容如下:
(1) 教學(xué)內(nèi)容設(shè)計
了解軟件工程這門學(xué)科的形成和發(fā)展;掌握與大型軟件系統(tǒng)相關(guān)的規(guī)劃、分析、設(shè)計、實現(xiàn)、測試與維護等概念、原理、方法、工具與過程;掌握軟件工程各階段的主要工作,注意吸取教訓(xùn);訓(xùn)練實際軟件工程動手的能力,培養(yǎng)綜合應(yīng)用能力。
通過學(xué)生的個性化學(xué)習(xí),增強學(xué)生的自信心和意志力。通過教師與學(xué)生之間、學(xué)生與學(xué)生之間的合作學(xué)習(xí),增強學(xué)生的團隊協(xié)作能力。
(2) 情景創(chuàng)設(shè)
情景創(chuàng)設(shè)是指創(chuàng)設(shè)與當(dāng)前學(xué)習(xí)主題相關(guān)的、盡可能真實的情景。在開始理論教學(xué)同時,通過案例研究,向?qū)W生提供一個引起典型的軟件案例。由學(xué)生根據(jù)自己的興趣自由選擇題目,組成項目團隊,一個項目組由5~7名學(xué)生組成,分別擔(dān)任項目經(jīng)理、客戶、上級經(jīng)理、系統(tǒng)分析員,程序員和測試員等角色。由教師為其提供一個虛擬的項目情景和要求。項目組根據(jù)項目需求,制定項目計劃,進行分析、設(shè)計、編碼和測試,運用學(xué)到的知識,分工協(xié)同,想辦法,查資料,探尋問題的解決方案,進入實習(xí)階段,學(xué)生則能夠進行實際軟件項目演練。要求是讓學(xué)生體驗軟件工程各階段的主要工作,特別注意吸取教訓(xùn);并且學(xué)會與他人合作,培養(yǎng)團隊精神,單干戶將得不到成績。從項目實踐開始,學(xué)生體驗到的是真實情景,根據(jù)項目要求,學(xué)生要自己搜集相關(guān)資料,使得學(xué)習(xí)者可以根據(jù)自己的學(xué)習(xí)需要、學(xué)習(xí)興趣去主動發(fā)現(xiàn)、主動探索要掌握的知識。
(3) 信息資源設(shè)計
確定學(xué)習(xí)本課程的每個主題所需的信息資源的種類以及每種資源在主題學(xué)習(xí)過程中所起的作用。經(jīng)過分析綜合,為本課程設(shè)計了具有不同作用的信息資源:課件和資料;校園網(wǎng)課程教學(xué)網(wǎng)站上的學(xué)習(xí)指導(dǎo)、常見問題解答、參考資料、參考習(xí)題等,用于學(xué)生的學(xué)習(xí)或查閱;課程教學(xué)網(wǎng)站上的作業(yè)系統(tǒng)、答疑系統(tǒng),用于學(xué)生交流和反饋。
此外,教科組成員充分交流教學(xué)體會和相關(guān)教學(xué)資料,參考大量國內(nèi)外先進的軟件工程理論和應(yīng)用實例,對教學(xué)內(nèi)容進行了必要的補充和刪改,增加了軟件工程學(xué)科發(fā)展動向的介紹,加強了包括項目管理、版本控制、建模工具和調(diào)試工具在內(nèi)的各種現(xiàn)代軟件工程開發(fā)工具的使用介紹。
(4) 學(xué)習(xí)效果評價設(shè)計
評價包括項目團隊對項目組成員的評價和學(xué)生個人的自我評價。此外,在軟件工程教學(xué)網(wǎng)站設(shè)計了“自測練習(xí)系統(tǒng)”,自測練習(xí)的內(nèi)容精心挑選,使之能有效地測試學(xué)生對基本概念、基本原理、基本方法的理解和掌握。
3建構(gòu)主義指導(dǎo)下的軟件工程教學(xué)方法
建構(gòu)主義學(xué)習(xí)理論強調(diào)學(xué)習(xí)者是認知主體,是意義的主動建構(gòu)者;同時又不能忽視教師的主導(dǎo)作用,認為教師是意義建構(gòu)的幫助者、指導(dǎo)者、促進者。
因此,在教學(xué)過程中應(yīng)采取既要發(fā)揮學(xué)生的主體作用,又要發(fā)揮教師的主導(dǎo)作用的策略。在教師的指導(dǎo)下,學(xué)生進行主動的思考與探索;教師的主要任務(wù)是激發(fā)學(xué)生的學(xué)習(xí)興趣,幫助學(xué)生形成學(xué)習(xí)動機,創(chuàng)設(shè)符合教學(xué)內(nèi)容需要的多種情景,提示新舊知識之間的聯(lián)系,幫助學(xué)生進行知識的遷移,組織協(xié)作學(xué)習(xí),把學(xué)生的學(xué)習(xí)引向深入,并適時給予引導(dǎo)和幫助。
在建構(gòu)主義教學(xué)模式下,我們對軟件工程教學(xué)采用了支架式、拋錨式、隨機進入式教學(xué)。實踐表明,這些教學(xué)方法的運用,大大激發(fā)了學(xué)生的學(xué)習(xí)興趣,使學(xué)生在教師為其創(chuàng)設(shè)的情境中,并在教師的引導(dǎo)下,一步步主動完成知識的意義建構(gòu)。
(1) 支架式教學(xué)
學(xué)生獨立解決問題時的發(fā)展水平與在教師指導(dǎo)下解決問題時的潛在發(fā)展水平之間的差異稱為“最鄰近發(fā)展區(qū)”。圍繞所學(xué)習(xí)的主題,按照“最鄰近發(fā)展區(qū)”的要求,建立概念框架,然后引導(dǎo)學(xué)生進入一定的問題情景,讓學(xué)生獨立探索,并通過小組協(xié)商,最終完成對所學(xué)知識的意義建構(gòu)。
首先,組建項目小組。按不同的知識程度和能力水平來搭配小組成員,也可按學(xué)習(xí)者的興趣愛好自由組合。每小組應(yīng)選定一名小組長,負責(zé)項目活動的分配、安排以及小組與教師的通信。
第二,各小組選定項目任務(wù)。各小組可根據(jù)自己的興趣和知識背景選定一個軟件開發(fā)項目.教師也可為學(xué)生準(zhǔn)備一些軟件項目,便于學(xué)生選擇。例如,圖書管理系統(tǒng)、游戲軟件、文書編輯系統(tǒng)等,都可以作為小組項目。為掌握軟件開發(fā)各個階段的方法,小組任務(wù)一般不止一個,從需求分析、系統(tǒng)設(shè)計到編碼測試都需完成,同時可以選用結(jié)構(gòu)化開發(fā)方法,也可以選用面向?qū)ο蟮拈_發(fā)方法。
第三,分配小組成員任務(wù)。確定每個人在小組中完成什么樣的責(zé)任,其實施原則是:責(zé)任到人,即每個人除了對自己的任務(wù)外,同時也要和小組成員合作,對于個人來說,這種任務(wù)是相對獨立的。在軟件開發(fā)的不同階段,由小組長對組員分配任務(wù)。例如,在可行性研究階段,在具體對一個方案進行可行性研究時,可分配成員進行經(jīng)濟可行性研究、技術(shù)可行性研究等任務(wù);在需求分析階段,可分配成員做數(shù)據(jù)流圖、做數(shù)據(jù)字典、寫需求規(guī)格說明書等等,組長在進行分配任務(wù)時要盡可能使小組成員都得到全面充分的鍛煉。
第四,開展探究學(xué)習(xí)。實際執(zhí)行課題探究計劃是難點,教師應(yīng)盡力督促每個小組如期完成計劃。采取小組定期匯報完成任務(wù)情況,或上交小組階段性報告的方式來督促任務(wù)的具體完成。當(dāng)然,由于時間的原因,不可能要求每個小組都能實現(xiàn)所選項目的所有功能,但至少要按照軟件工程的指導(dǎo)思想,完成項目的部分工作。
第五,總結(jié)報告。將小組項目成員的工作綜合成一個整體,向全班匯報,每組在規(guī)定的時間內(nèi)簡短地匯報自己的任務(wù)完成情況,并演示自己的軟件。通過匯報,不僅可使教師清楚地了解各小組的任務(wù)完成情況,還可督促各小組按時高質(zhì)量地完成任務(wù)。同時,小組之間可通過這種方式相互學(xué)習(xí),共同提高,教師應(yīng)鼓勵學(xué)生盡可能地實現(xiàn)任務(wù),以增強學(xué)生的興趣和信心。
(2) 拋錨式教學(xué)
拋錨式教學(xué)也稱“基于問題的教學(xué)”。實際情境中的真實事件或真實問題的確定稱為“拋錨”。這些問題要能引出與所學(xué)主題密切相關(guān)的基本概念、基本原理,能激發(fā)學(xué)生的學(xué)習(xí)動機,激起他們探索、學(xué)習(xí)的興趣。在解決問題的過程中逐步訓(xùn)練學(xué)生的抽象思維能力和邏輯思維能力。
“模塊化”是軟件工程的重點和難點,學(xué)生普遍反映概念抽象、難學(xué)。為此,在教學(xué)過程中采用“拋錨式教學(xué)”,讓學(xué)生在真實的問題情境中體會模塊化軟件開發(fā)的思想,學(xué)會用“模塊”來解決規(guī)模較大、復(fù)雜的問題。
教師在講解模塊設(shè)計原則之前,提出如下實際問題:圖書館管理系統(tǒng)的系統(tǒng)模塊設(shè)計。圖書館管理系統(tǒng)的主要功能有:圖書的入庫、圖書借閱與歸還、圖書信息查詢、讀者借閱信息查詢、工作人員權(quán)限設(shè)置、圖書預(yù)約等。為了完成這些功能,實現(xiàn)圖書館的數(shù)字化,要求學(xué)生結(jié)合實際情況,先把圖書館管理系統(tǒng)分成五個模塊:讀者信息管理模塊、書籍信息管理模塊、借閱信息管理模塊、書籍歸還模塊和用戶管理模塊。然后再讓學(xué)生根據(jù)功能要求逐步細分各個模塊的子模塊,比如讀者管理模塊,可以將該模塊分為讀者信息錄入子模塊和讀者信息更新子模塊,進一步分析各子模塊的具體實現(xiàn),這樣把復(fù)雜的問題采用“分而治之”的方法逐步解決。最后,在計算機上給出完整的程序代碼,并演示程序的運行過程和運行結(jié)果。
整個教學(xué)過程圍繞建構(gòu)主義情境、協(xié)作、會話和意義建構(gòu)這幾個認知環(huán)節(jié)自然展開,學(xué)生通過對真實問題的感受、體驗,以及所學(xué)知識的意義建構(gòu),深刻理解了模塊的概念、原理以及自頂向下的模塊化軟件開發(fā)的思想。
(3) 隨機進入式教學(xué)
軟件測試是也是軟件開發(fā)的重點之一。本部分教學(xué)內(nèi)容采用隨機進入式教學(xué)法幫助學(xué)生對軟件測試進行多方面的認識與理解。
以白盒測試為例,采用多種測試覆蓋法對圖1的程序流程圖的內(nèi)容進行測試。
圖1 程序流程圖
語句覆蓋
1) 主要特點:語句覆蓋是最起碼的結(jié)構(gòu)覆蓋要求,語句覆蓋要求設(shè)計足夠多的測試用例,使得程序中每條語句至少被執(zhí)行一次。
2) 用例設(shè)計(如果此時將A路徑上的語句1—〉T去掉,那么用例如下):
X Y 路徑
1 50 50 OBDE
2 90 70 OBCE
3) 優(yōu)點:可以很直觀地從源代碼得到測試用例,無須細分每條判定表達式。
4) 缺點:由于這種測試方法僅僅針對程序邏輯中顯式存在的語句,對于隱藏的條件和可能到達的隱式邏輯分支無法測試。在本例中去掉了語句1—〉T去掉,那么就少了一條測試路徑。在if結(jié)構(gòu)中若源代碼沒有給出else后面的執(zhí)行分支,語句覆蓋測試就不會考慮這種情況。但是我們不能排除這種以外的分支不會被執(zhí)行,而這種錯誤往往會經(jīng)常出現(xiàn)。再如,在Do-While結(jié)構(gòu)中,語句覆蓋執(zhí)行其中某一個條件分支。顯然,語句覆蓋對于多分支的邏輯運算是無法全面反映的,它只在乎運行一次,而不考慮其他情況。
判定覆蓋
1) 主要特點:判定覆蓋又稱為分支覆蓋,它要求設(shè)計足夠多的測試用例,使得程序中每個判定至少有一次為真值,有一次為假值,即:程序中的每個分支至少執(zhí)行一次。
2) 用例設(shè)計:
X Y 路徑
1 90 90 OAE
2 50 50 OBDE
3 90 70 OBCE
3) 優(yōu)點:判定覆蓋比語句覆蓋要多幾乎一倍的測試路徑,具有比語句覆蓋更強的測試能力。判定覆蓋和語句覆蓋一樣較為簡單,無須細分每個判定就可以得到測試用例。
4) 缺點:往往大部分的判定語句是由多個邏輯條件組合而成(如判定語句中包含AND、OR、CASE),若僅僅判斷其整個最終結(jié)果,而忽略每個條件的取值情況,必然會遺漏部分測試路徑。
組合覆蓋
1) 主要特點:要求設(shè)計足夠多的測試用例,使得每個判定中條件結(jié)果的所有可能組合至少出現(xiàn)一次。
2) 用例設(shè)計:
X Y 路徑
1 90 90 OAE
2 90 70 OBCE
3 90 30 OBDE
4 70 90 OBCE
5 30 90 OBDE
6 70 70 OBDE
7 50 50 OBDE
3) 優(yōu)點:多重條件覆蓋準(zhǔn)則滿判定/條件覆蓋準(zhǔn)則。更改的判定/條件覆蓋要求設(shè)計足夠多的測試用例,使得判定中每個條件的所有可能結(jié)果至少出現(xiàn)一次,每個判定本身的所有可能結(jié)果也至少出現(xiàn)一次。并且每個條件都顯示能單獨影響判定結(jié)果。
4) 缺點:線性地增加了測試用例的數(shù)量。
此外還有條件覆蓋、路徑覆蓋等方法,這些覆蓋方法都涉及到的白盒測試開發(fā)的共性問題:如何發(fā)現(xiàn)算法中的重復(fù)性動作,覆蓋方法中涉及哪些路徑,白盒測試路徑的如何確定?什么情況下覆蓋方法應(yīng)該繼續(xù)或中止?或者選用哪個覆蓋方法來實現(xiàn)測試等。無論學(xué)生選擇哪一個情境去學(xué)習(xí),都能達到發(fā)現(xiàn)問題——解決問題——意義建構(gòu)的目的。
4 建構(gòu)主義教學(xué)模式下的軟件開發(fā)教學(xué)中應(yīng)注意的問題
(1) 綜合運用多種教學(xué)方法。每一種教學(xué)方法有其局限性,如拋錨式教學(xué)以問題為中心,使用不當(dāng),會影響學(xué)生系統(tǒng)的掌握知識。在實際教學(xué)中,不一定采用某種單一的教學(xué)方法,針對具體教學(xué)任務(wù),可以將兩種以上的方法結(jié)合在一起,靈活運用。
(2) 不要片面強調(diào)學(xué)生的中心地位,而忽視了教師的主導(dǎo)作用。
(3) 加強學(xué)習(xí)資源的建設(shè)。
參考文獻
[1] 何克抗. 建構(gòu)主義學(xué)習(xí)理論與建構(gòu)主義學(xué)習(xí)環(huán)境[J]. 教育傳播與技術(shù),1996,(3).
[2] 陳琦,張建偉. 建構(gòu)主義與教學(xué)改革[J]. 教育研究與實驗,1998,(3).
[3] 薛國鳳,王亞暉. 當(dāng)代西方建構(gòu)主義教學(xué)理論評析[J]. 高等教育研究,2003,(1).
[4] 沈備軍,顧春華. 軟件工程教學(xué)模式的研究和實踐[J]. 計算機教育,2005,(1).