石春 陳煥東 梁平元 何書前
摘要:軟件工程專業(yè)課程強調(diào)理論和實踐緊密結合的特性,如何在教學過程中加強實踐教學活動是難題。針對偏重理論和偏重實踐的不同專業(yè)課程,從團隊組建、問題解決方式、溝通技巧和學生認知體系建立等方面進行分析和探討,提出一些可行的專業(yè)課程“工作坊”實踐教學設計方案。經(jīng)實際教學過程檢驗,達到比較好的教學效果。
關鍵詞:工作坊;教學改革;軟件工程;實踐教學
中圖分類號:G40 文獻標識碼:A 文章編號:1009-3044(2014)07-1427-03
大學課堂是高校教學活動、學生學習的重要場所,是大學生獲取知識的主要途徑。課堂教學的好壞直接影響課程效益,最終影響到人才培養(yǎng)質(zhì)量,同時也體現(xiàn)了高等教育的辦學理念。根據(jù)教學活動圍繞的中心,可以將課堂教學分為“教師中心式”和“學生中心式”兩種類型[1]。在以教師為中心的課堂教學活動中,教師是課堂的焦點,在整個教學過程中起到主導地位;教師一般采用強制性的教導方法,將知識與技能傳授給學生,基本是單向廣播模式。以學生為中心的課堂教學活動中,往往學生處于教學活動的中心,教師以平等的身份與學生進行互動;教學過程強調(diào)了學生的主動學習以及對學習主題的深層理解;此時,教師通常扮演咨詢者、輔導者和學習動機激發(fā)者的角色?,F(xiàn)代教學活動通常強調(diào)師生之間的互動,從而在課堂教學活動中更有效地進行知識傳授,在此過程中,教師需要以一種好的方式和態(tài)度輔助學生建立自己的認知體系。因此,在課堂教學活動中,教師的“教”和學生的“學”是不可分割的重要部分,如何以一種好的教學方式調(diào)動學生的積極性是完成一堂優(yōu)質(zhì)課堂教學的關鍵。
軟件工程本科專業(yè)的特色主要體現(xiàn)在:實踐性、工程性、系統(tǒng)性、綜合性和復合型,注重學生的數(shù)理邏輯基礎、工程實踐能力、軟件作品與溝通技巧等核心能力培養(yǎng)。在本科學習階段,由于受到計算機學科的迅速發(fā)展和相關領域知識不熟悉的雙重困擾,學生學習的積極主動性受到約束。同時,學生通常沒有建立自己的認知體系,程序設計的經(jīng)驗嚴重不足,這些都約束了學生的動手能力和口頭表達能力,很明顯的表現(xiàn)在于課堂教學過程中不活躍,和教師的互動積極性不高,甚至出現(xiàn)課堂上的消極沉默現(xiàn)象[2][3][4]。
結合“工作坊”實踐教學模式和軟件工程專業(yè)課程要求,通過對課堂教學活動進行思考、探索和設計,在有限的課堂教學中加強對學生的引導,可以明顯增強學生主動學習的積極性,提高口頭表達能力和溝通技巧,并進一步培養(yǎng)學生的程序思維能力和團隊合作精神。
1 “工作坊”實踐教學
“工作坊”,也稱為專題研習工作坊,起源于歐洲的Bauhaus學院,發(fā)展至今逐漸演變?yōu)橐环N實踐教學模式。Bauhaus學院提倡的教育理念是“技術與藝術并重”,學習過程有如“工廠學徒制”,學生身份是“學徒工”。在教學過程中,擔任藝術形式課程的教師稱為“形式導師”,教授其理論課程,并引導學生專業(yè)的發(fā)展;而擔任技術、手工藝制作課程的教師稱為“工作室?guī)煾怠?,負責輔導指導其實踐教學。Bauhaus學院所形成的教學方式,形成了教學、研究、實踐三位一體的現(xiàn)代設計教育模式:教學為研究和實踐服務;研究為教學和實踐提供理論指導;實踐為教學和研究提供驗證。工作坊教學模式所創(chuàng)建的知識與技術并重,理論與實踐同步的方式,為學生提供一個能夠將其所學理論知識進行融會貫通的全過程。
“工作坊”實踐教學模式強調(diào)以學生為中心,關注學生的需要、內(nèi)在動機,并充分發(fā)揮學生學習的自主性,注重培養(yǎng)學生發(fā)現(xiàn)和解決問題以及知識和技能的應用能力;同時,該教學模式強調(diào)以多元化的方式來分享和呈現(xiàn)理論聯(lián)系實際的成果,是一種既注重過程又重視結果的學習方式。一般而言,“工作坊”實踐教學模式是在一名核心的主講人引導下,多個小團體通過活動、討論、短講等多種方式,共同探討某個話題?!肮ぷ鞣弧睂嵺`教學模式的本質(zhì)是促進學生“從做中學”,符合“實踐-認識-再實踐”的認識規(guī)律,作為一種教學途徑,能促進教師和學生之間的互動,增強學生在課堂教學中的參與積極性[5]。
2 軟件工程專業(yè)課程“工作坊”實踐教學設計
針對軟件工程本科專業(yè)課程,從偏重理論教學到偏重實驗教學的角度,選擇“算法設計與分析”、“Oracle數(shù)據(jù)庫”和“軟件設計模式”課程,從“工作坊”教學模式的團隊構建方式和相應教學方法進行了一系列的思考、探索和設計。
2.1 “算法設計與分析”課程“工作坊”實踐教學設計
“算法設計與分析”[6]課程是計算機和軟件工程專業(yè)的重要專業(yè)課,介紹軟件開發(fā)中的典型非數(shù)值計算問題的解法,要求學生掌握算法的基本原理思想、方法與技術。如何在有限的教學時間內(nèi)讓學生掌握算法的特點以及算法之間的內(nèi)在關聯(lián)性是教學重點。以背包問題和0-1背包問題[7]為例,探討“工作坊”實踐教學設計的具體內(nèi)容。
背包問題和0-1背包問題要求學生區(qū)分二者算法差別以及在程序設計上的約束。因此,可以確定核心知識點:1)背包問題和0-1背包問題的異同,以及問題轉換條件;2)二個問題在程序設計上的差異和轉變。在教學過程中,要求學生以團隊方式圍繞核心知識點準備材料并在課堂上進行講解。具體教學過程如下:
首先,組織學習小團隊。采用學生自愿組合的方式,約束每組4到5個人,有組長和發(fā)言人各一人,要求組長和發(fā)言人不能是同一個人。要求組長負責任務的分工等事務工作,而發(fā)言人需要匯總材料,準備內(nèi)容講解的邏輯順序。團隊分工的目的一方面是鍛煉學生的合作精神,另一方面是減輕新內(nèi)容備課的壓力;
其次,多組準備同一個專題。讓2到3組針對同一個專題組織材料并進行講解。雖然知識點會類似,但是,不同的團隊組織材料的側重點會稍有差異,表達方式也會有不同。采用這種方式,一方面可以讓更多學生有機會鍛煉組織能力、口頭表達能力和邏輯思維能力;另一方面,不同團隊講解的內(nèi)容差異性會讓學生進一步加深對問題的全面理解;
最后,教師點評。這也是關鍵的教學環(huán)節(jié),教師需要對學生的材料準備和課堂講解情況進行總結??偨Y內(nèi)容一方面需要覆蓋知識點的完整性,另一方面也要對每組講解問題的方式進行有限的點評,更多要讓學生參與進行評判。教師點評的目的是引導學生合理正確的分析和解決問題。
由于合理運用了“工作坊”模式,取得比較理想的課堂教學效果。比如,經(jīng)過學生團隊之間激烈的討論,認為回溯法解決0-1背包問題的程序是錯誤的。因為該程序采用分割物品來計算背包容積的上限,這種計算方式混淆了背包問題的算法程序。相比較教師講解的方式,正是由于學生的積極參與和探討,才會使得學生進一步加深對算法和程序設計實現(xiàn)方面更好的理解,也增加了學生學習的興趣和良好的團隊合作精神。
在采用工作坊實踐教學活動中,團隊人數(shù)以及同一專題討論組的數(shù)量不能太多。團隊人數(shù)太多,部分同學會完全依賴其他同學而不參與相關專題的討論;針對相同的問題,一般安排2到3個團隊討論比較適宜,從而可以在一節(jié)課的時間內(nèi)完成全部介紹、討論和點評工作。
2.2 “Oracle數(shù)據(jù)庫”課程“工作坊”實踐教學設計
“Oracle數(shù)據(jù)庫”是軟件工程開設的專業(yè)課程,SQL語言的運用是該課程的一個重點。在教學過程中設計兩個任務:1)編寫SQL程序讀取文本文件中的數(shù)據(jù)信息并寫入數(shù)據(jù)庫相應表格中,主要強化學生對于SQL語句,以及函數(shù)、過程和觸發(fā)器等內(nèi)容的熟練掌握程度;2)撰寫實驗報告,要求具備系統(tǒng)開發(fā)的需求分析、程序分析設計、實現(xiàn)和結果顯示等內(nèi)容。
根據(jù)教學計劃進度安排,完成實驗和撰寫報告的時間約為一周(課堂教學課時是10節(jié)課)。在此時間內(nèi),學生需要熟悉軟件環(huán)境、完成SQL程序編寫并撰寫格式規(guī)范符合要求的實驗報告,具有一定的難度。因此,在教學過程中,對“工作坊”實踐教學模式進行了有針對性的設計,具體內(nèi)容如下:
首先,組織小團隊。采用學生自主組隊的方式,不約束團隊成員人數(shù),最終團隊成員人數(shù)最少的有4個人,最多的有9個人。由于對匯報方式?jīng)]有特定要求,每組只設置組長一人,方便教師了解團隊分工合作的情況以及任務完成情況;
其次,問題解決。在實踐教學過程中,對于學生提出的相關問題,教師并不直接給出答案,而是指導學生如何通過網(wǎng)絡查找相應的解決方案,并要求以團隊內(nèi)部互相討論的方式確定最終可行的方案。針對具體問題,鼓勵團隊成員課后繼續(xù)完善解決方案;
然后,過程檢查。通過和不同團隊的交流,教師需要了解每組具體實施情況,挑選在實現(xiàn)內(nèi)容上有特色的團隊,不定期安排團隊成員進行課堂講解,介紹其團隊分工、實現(xiàn)程序過程和撰寫報告的思路,并展示相關的成果信息。比如,針對讀取文本文件和解析數(shù)據(jù)信息這兩個功能方面,安排學生介紹團隊討論確定的程序實現(xiàn)內(nèi)容,并演示初步達到的效果等;
最后,教師點評。教師一方面需要總結學生的實現(xiàn)情況,進一步明確實驗內(nèi)容和要求;另一方面,教師需要結合軟件工程發(fā)展要求,建議學生今后繼續(xù)努力的方向。
綜合課程教學完成情況,學生分組形成團隊的方式對實踐教學活動提供一定的借鑒意義。組建團隊需要考慮具體的任務難度和組長領導能力。當任務不是特別重的情況下,每個團隊的人數(shù)不能太多。在此次實踐教學活動中,人數(shù)較少的團隊(比如,4個人組成的團隊)組織能力比較強,編寫程序和撰寫文檔分工都比較明確,合作效果比較好。而部分人數(shù)較多的團隊(9個人組成的團隊),組長曾抱怨說,什么都是一個人做,其他同學根本不參與。針對這種情況,教師需要及時了解團隊在教學活動中的反饋信息,當出現(xiàn)人員配合程度不高的情況,應該解散該團隊,重新組隊完成任務。
在實踐教學活動中,針對具體問題,教師可以指導學生掌握解決問題的方法,然后,通過學生演示的方式有效推廣具體問題的解決方案。該方式一方面可以加強學生良好的溝通和交流技巧,培養(yǎng)團隊精神;另一方面也能極大提高學生的學習熱情,促使學生能快速掌握相關知識內(nèi)容。
2.3 “軟件設計模式”課程“工作坊”實踐教學設計
隨著對軟件人才要求的提高,本科教學階段開設“軟件設計模式”課程已經(jīng)是趨勢[8]?!败浖O計模式”課程內(nèi)容具有高度的抽象性,即使是計算機或軟件工程專業(yè)的高年級本科學生,由于缺乏相應的項目編程經(jīng)驗,也沒有積累相應的代碼數(shù)量,對于課程內(nèi)容的接受也是一個很困難的過程。在課堂講解過程中,即使采用了生動的案例,教師一旦開始對象構成和類結構的理論分析,大部分學生就已經(jīng)不在學習狀態(tài)中。學生提意見說,模式內(nèi)容太抽象,很難理解。針對這種情況,對該課程進行“工作坊”實踐教學設計,教師調(diào)整了相應的教學方案和授課方式,具體如下:
首先,知識引導。介紹面向對象的基本內(nèi)容,并深入對軟件設計原則進行講解。因為這部分內(nèi)容和高級語言程序設計課程結合的比較緊密,學生接受程度還是比較好的;
其次,建立概念。對于具體的軟件設計模式,教師介紹一些特點和運用場景,通過解釋相應的類結構關系,讓學生初步建立相應的概念模型;
然后,強化運用。提供計算機專業(yè)的畢業(yè)論文題目,讓學生選擇比較熟悉的題目,針對部分模塊進行程序的分析和設計,并完成設計模式實驗報告。該實驗報告作為課程分數(shù)的主要依據(jù),要求學生構造出相應的類結構圖,并說明使用的設計原則和設計模式;
最后,學生講解和教師點評。通過了解學生的實驗情況,教師選擇適當?shù)膶嶒瀳蟾妫寣W生進行設計過程和思路的講解。教師則對講解內(nèi)容進行合理引導,對學生構建的設計模式進行分析,從而可以讓學生深入掌握設計原則和設計模式的運用和構建過程。
綜合課程實踐教學過程,通過讓學生先思考,然后再引導學生的方式,提高了學生對授課內(nèi)容的關注度,也加深了對設計模式中對象構建和類結構模型的理解。單純采用案例教學的效果并不是很理想,可能存在的原因之一是所選擇的案例和學生自身的關聯(lián)性不高,學生的關注度不會長久集中;原因之二是案例內(nèi)容過于狹窄,學生幾乎不需要思考就知道怎么劃分相應的對象并構建類結構,從而降低了學習的興趣。
“工作坊”課堂實踐教學并不是一成不變,而是需要根據(jù)教學內(nèi)容和不同學生的接受情況進行調(diào)整和設計。即使同一門課程,學生接受能力不同,實際教學方式還是需要進行相應地調(diào)整和設計優(yōu)化。在學生進行課程講解的過程中,也是教師學習的過程。通過觀察學生準備的材料、課件風格以及知識點的表達方式,教師可以在一定程度上了解學生對類似問題的掌握程度,也對學生接受方式有一定了解,從而在后續(xù)的備課中更有側重點。同時,采用多個小組討論同一問題,從學生關注的側重點和表達的理論深度,教師也可以了解學生的自學能力和對相關知識點的熟悉程度,可以更全面了解學生的整體素質(zhì)。通過“工作坊”教學活動中獲取的學生反饋信息是調(diào)整相應教學方案的重要依據(jù),也是檢驗教師課堂實踐教學活動的標準之一。
3 結束語
郭沫若說:“教學的目的是培養(yǎng)學生自己學習,自己研究,用自己的頭腦來想,用自己的眼睛看,用自己的手來做這種精神。”
為了提高學生參與教學活動的積極性,也為了更好進行實踐教學,針對軟件工程專業(yè)課程的特點,分析探討了“工作坊”實踐教學模式,提出一些可行的專業(yè)課程“工作坊”實踐教學設計方案。設計方案分析了學習團隊的構建以及運用于團隊精神的培養(yǎng),其中成員人數(shù)和組長領導能力是組建團隊需要考慮的因素;引導建立學生掌握解決問題的方法并討論確定解決方案的方式,鍛煉學生邏輯思維能力,提高溝通技巧;采用讓學生先思考和練習,教師再引導的方式來加強學生對知識點的理解和掌握,可以有效培養(yǎng)和建立學生自己的認知體系;通過多個學習團隊討論同一個專題的方式,教師了解學生的學習情況,并依據(jù)反饋信息調(diào)整相應的教學設計方案。教學效果表明,良好的“工作坊”實踐教學設計方案可以有效培養(yǎng)學生創(chuàng)造性的思維和良好的口頭表達能力,在增強團隊合作精神的同時也進一步加強學生的觀察、分析和解決問題的能力。
參考文獻:
[1] 課堂教學模式分類[EB/OL]. http://wenku.baidu.com/view/0acdb692daef5ef7ba0d3c45.html. May, 2013.
[2] 魏平.對大學課堂教學的思考[J].科技信息,2010(30): 396.
[3] 李學,胡石其,李炳煌.大學課堂教學研究十年: 進展與反思[J].湖南科技大學學報,社會科學版,2012, 15(3).
[4] 王健,張靜.大學英語課堂沉默現(xiàn)象的解析與對策[J].中國大學教學, 2008(1): 81-84.
[5] 肖紅. “翻譯作坊” 在翻譯教學中的運用[J]. 四川外語學院學報,2005, 21(1): 139-142.
[6] 鄭紅,邵志清,符海波. “算法設計與分析” 課程教學改革初探[J].計算機教育, 2008 (014): 29-30.
[7] 王曉東.計算機算法設計與分析[M]. 3版.北京:電子工業(yè)出版社, 2007.
[8] 張利軍.開設設計模式課程的探討[J].計算機教育, 2010(4): 66-68.