李瑞生
(甘肅政法大學(xué)<公安技術(shù)學(xué)院>,甘肅 蘭州 730070)
教育部高教司吳巖司長提出了“兩性一度”的“金課”建設(shè)標(biāo)準(zhǔn),即高階性、創(chuàng)新性和挑戰(zhàn)度。其中,高階性就是知識、能力、素質(zhì)有機融合,培養(yǎng)學(xué)生解決復(fù)雜問題的綜合能力和高級思維。創(chuàng)新性體現(xiàn)在課程內(nèi)容有前沿性和時代性; 教學(xué)形式體現(xiàn)先進(jìn)性和互動性,不是滿堂灌;學(xué)習(xí)結(jié)果具有探究性和個性化。 挑戰(zhàn)度是指課程一定要有一定難度, 需要學(xué)生和老師一起,跳一跳才能夠得著[1]。
程序設(shè)計類課程是高等院校工科類專業(yè),尤其是計算機和信息類相關(guān)專業(yè)課程的重要組成部分。在人工智能、大數(shù)據(jù)、云計算等快速發(fā)展和深度普及應(yīng)用的背景下,程序設(shè)計類課程在工科類專業(yè)人才培養(yǎng)中的地位和作用更加重要。 對照“金課”標(biāo)準(zhǔn),程序設(shè)計類課程教學(xué)中需改進(jìn)的方面:(1) 課程體系設(shè)計中對學(xué)生職業(yè)能力需求考慮不充分,或不能及時跟蹤產(chǎn)業(yè)新需求、 編程技術(shù)和應(yīng)用領(lǐng)域的新變化調(diào)整課程設(shè)置。(2)按照教材章節(jié)化的編排線性地組織教學(xué)內(nèi)容,教學(xué)中的問題(案例)往往僅為驗證編程語法而設(shè)計,題目較簡單,與實際應(yīng)用結(jié)合不夠,而且大都具有“良構(gòu)性”,而源于實際的應(yīng)用問題往往具有“非良構(gòu)性”。當(dāng)學(xué)生在遇到新問題時,不能夠有效綜合所學(xué)程序設(shè)計知識和技能創(chuàng)新性地解決問題。 (3)教學(xué)方法上還未徹底實現(xiàn)從“教得好”到“學(xué)得好”的轉(zhuǎn)變。 對學(xué)生“拔高性”的創(chuàng)新能力培養(yǎng)不夠。 長期以來,導(dǎo)致學(xué)生學(xué)習(xí)積極性、主動性不高和教學(xué)質(zhì)量降低。近年來,運用基于學(xué)習(xí)產(chǎn)出的教育(Outcomes-Based Education ,OBE) 理念、 基于問題或案例學(xué)習(xí) (Problem-Based learning 或 Project -Based Learning ,PBL)方法的教育教學(xué)改革研究和實踐成為熱點[2-3]。
運用OBE 理念和PBL 方法, 從程序設(shè)計類課程體系構(gòu)建、教學(xué)方法、學(xué)生創(chuàng)新能力培養(yǎng)、教學(xué)保障與教學(xué)效果評價等方面展開論述,以期建設(shè)程序設(shè)計類“金課”。
OBE 教育理念自20 世紀(jì)80 年代初由美國學(xué)者Spady 率先提出后, 很快為教育學(xué)界所高度重視和普遍認(rèn)可[3-4]。OBE 理念倡導(dǎo)結(jié)果導(dǎo)向的人才培養(yǎng)。 其中的“結(jié)果”應(yīng)以學(xué)生學(xué)習(xí)課程后對該專業(yè)人才培養(yǎng)目標(biāo)的達(dá)成度和對學(xué)生職業(yè)能力的貢獻(xiàn)度來衡量。
對于程序設(shè)計類課程體系構(gòu)建,學(xué)校要深入不同專業(yè)的用人單位做深入調(diào)研,考察該專業(yè)實務(wù)領(lǐng)域?qū)W(xué)生程序設(shè)計和軟件開發(fā)相關(guān)的職業(yè)能力具體需求和典型應(yīng)用場景,來逆向決定課程體系組成、各課程占比、側(cè)重點、課程間的前后銜接關(guān)系等;在持續(xù)調(diào)研中, 逐漸積累和形成具體課程的實際應(yīng)用案例庫,便于PBL 教學(xué)實施。
2018 年1 月 《普通高等學(xué)校本科專業(yè)類教學(xué)質(zhì)量國家標(biāo)準(zhǔn)》頒布,程序設(shè)計類課程體系與課程內(nèi)容側(cè)重點設(shè)置應(yīng)在遵循《國標(biāo)》的基礎(chǔ)上,由學(xué)生就業(yè)實務(wù)部門專家如資深的軟件研發(fā)工程師、專業(yè)教學(xué)指導(dǎo)委員會專家、資深教師團隊、已就業(yè)并具備工作經(jīng)驗的學(xué)生(反饋已學(xué)的課程體系能否滿足職業(yè)需求并提出改進(jìn)意見)共同商定,切實實現(xiàn)課程體系的職業(yè)目標(biāo)導(dǎo)向和關(guān)注學(xué)生學(xué)習(xí)訴求, 讓課程體系設(shè)置科學(xué)、合理、面向應(yīng)用實際。
程序設(shè)計類課程的設(shè)置應(yīng)緊隨應(yīng)用需求變化而不斷拓展更新、靈活調(diào)整,充分體現(xiàn)先進(jìn)性和前沿性。根據(jù)不同專業(yè)學(xué)生職業(yè)能力需求和學(xué)生就業(yè)意向,在針對高年級學(xué)生開設(shè)的專業(yè)拓展課和方向課中靈活增加如嵌入式開發(fā)、Android 應(yīng)用開發(fā)、Python 程序設(shè)計、R 語言數(shù)據(jù)分析、MATLAB 科學(xué)計算與程序設(shè)計、安全編程技術(shù)等,滿足學(xué)生多層次、多領(lǐng)域的程序設(shè)計和軟件開發(fā)學(xué)習(xí)需求。
課程設(shè)置中還應(yīng)考慮課程的體系性,并給學(xué)生呈現(xiàn)清晰的學(xué)習(xí)路線如按“C——>Java SE——>Java EE(或 Java ME 或 Android 開發(fā))” 的路線深入學(xué)習(xí)某一個系列的程序設(shè)計和軟件開發(fā)方法。在課程教學(xué)大綱和教學(xué)實施過程中,應(yīng)該向?qū)W生介紹“這是一門怎樣的課程,它在專業(yè)中處于什么樣的地位,通過這門課程學(xué)習(xí),能夠?qū)W到什么和用在什么地方”等。對某門課程的前導(dǎo)、后繼課程做出詳細(xì)說明[5]。
PBL 教學(xué)就是要緊緊圍繞學(xué)生職業(yè)能力需求中的實際問題 (案例) 組織教學(xué)內(nèi)容和開展教學(xué)活動。PBL 的關(guān)鍵在于問題或案例的質(zhì)量,PBL 中的問題或案例需要具備真實性、復(fù)雜性、非良構(gòu)性等特點[6-7]。PBL 中的問題或案例不是傳統(tǒng)意義上為驗證理論知識點的例題,而是源于學(xué)生職業(yè)能力需求中的實際應(yīng)用問題及其被分解后得到的子問題?;诟哔|(zhì)量的問題(案例)驅(qū)動,有利于讓教學(xué)內(nèi)容“實起來”;非良構(gòu)性的實際應(yīng)用問題和能夠緊密聯(lián)系產(chǎn)業(yè)前沿的問題具有難度、深度和挑戰(zhàn)度。 以這些問題的解決方法探索和實踐開展教學(xué)活動,會促使師生雙方都付出更大努力,讓教師“強起來”,學(xué)生“忙起來”;在解決這些問題的過程中,會讓學(xué)生具有成就感和頂峰體驗,也更有利于學(xué)生創(chuàng)新思維和能力的培養(yǎng);PBL 中的案例源于學(xué)生職業(yè)實務(wù)中, 從而使得學(xué)生更加明確就業(yè)方向,充分激發(fā)學(xué)生學(xué)習(xí)興趣,調(diào)動學(xué)生學(xué)習(xí)自主性和內(nèi)驅(qū)力,提高就業(yè)競爭力。
程序設(shè)計類課程旨在系統(tǒng)培養(yǎng)學(xué)生的計算思維能力,能夠進(jìn)行問題分析、問題抽象與建模、算法設(shè)計、編程解決問題的能力等。從軟件工程的角度看,軟件系統(tǒng)開發(fā)需要經(jīng)過“需求分析、系統(tǒng)概要和詳細(xì)設(shè)計、系統(tǒng)實現(xiàn)、系統(tǒng)測試與維護”等環(huán)節(jié);從程序設(shè)計方法來看,復(fù)雜問題的求解應(yīng)采用“化整為零,分而治之”的模塊化思想。借鑒軟件工程和程序設(shè)計的“模塊化”思想,在教學(xué)設(shè)計和實施過程中, 將典型的實際軟件應(yīng)用系統(tǒng)分解為模塊。按照模塊組織所需的知識點和技能點,形成PBL 學(xué)習(xí)和編程實踐單元。 由于每個模塊的解決都會涉及多個知識點和技能點, 且這些知識點和技能點不是按照傳統(tǒng)的教材章節(jié)次序編排的, 因此有利于學(xué)生以問題解決為中心, 將所學(xué)程序設(shè)計知識和技能網(wǎng)絡(luò)化。隨著課程推進(jìn),將已經(jīng)完成的各個軟件模塊逐漸進(jìn)行組裝,形成完整的軟件應(yīng)用系統(tǒng)。
翻轉(zhuǎn)課堂教學(xué)模式有利于學(xué)生由被動學(xué)習(xí)轉(zhuǎn)為主動學(xué)習(xí),克服傳統(tǒng)教學(xué)“滿堂灌”,以及學(xué)生由于缺乏充分預(yù)習(xí)而與教師在課堂上思維不同步等的缺陷。將學(xué)生按3~5 人結(jié)為一個學(xué)習(xí)小組,便于課堂上開展討論和實現(xiàn)互助學(xué)習(xí),小組成員輪流擔(dān)任組長,協(xié)助教師督查小組成員學(xué)習(xí)進(jìn)度和匯總學(xué)習(xí)難點等。
課程資源建設(shè)是翻轉(zhuǎn)課堂實施的前提。這些資源包括基于學(xué)生程序與軟件設(shè)計職業(yè)能力需求分析的教學(xué)案例庫、 以PBL 組織的知識和技能單元學(xué)習(xí)素材、教學(xué)短視頻(包括案例導(dǎo)入、知識點講解、編程演示)、學(xué)習(xí)任務(wù)書等。學(xué)生按照教師布置的學(xué)習(xí)任務(wù)在課前自主學(xué)習(xí)和完成編程實踐任務(wù)。各小組組長匯總本小組成員學(xué)習(xí)和實踐中的難點, 教師梳理這些難點;課堂上,教師針對普遍難點問題進(jìn)行重點講解和編程演示,對于個別難點,則通過學(xué)習(xí)小組內(nèi)或小組間交流和互相講解、操作演示的方法解決。 教師對學(xué)生課前學(xué)習(xí)和實踐任務(wù)完成情況進(jìn)行檢查、點評和總結(jié),提出復(fù)雜度略高于本節(jié)學(xué)習(xí)任務(wù)的問題(如源于程序設(shè)計競賽的問題),學(xué)生以學(xué)習(xí)小組為單位,在教師啟發(fā)下分析該問題、開展討論、得出解決方案并進(jìn)行編程實現(xiàn);課后,學(xué)生繼續(xù)完成課堂上的較難問題的編程實現(xiàn)及教師布置的其他編程實踐任務(wù),完成下一個學(xué)習(xí)和實踐任務(wù)等。每個PBL 單元學(xué)習(xí)任務(wù)結(jié)束后,需要對學(xué)生進(jìn)行PBL 單元考核。
實驗教學(xué)中,學(xué)生根據(jù)實驗任務(wù)書要求,在每次實驗課前獨立(或小組協(xié)作)完成所有實驗內(nèi)容,記錄實驗過程和結(jié)果,記錄難點問題;實驗課堂上,教師進(jìn)行普遍實驗難點演示和講解,對于個別難點,教師進(jìn)行個別輔導(dǎo),學(xué)生繼續(xù)完成實驗難點部分并做詳細(xì)的實驗記錄;實驗課后,學(xué)生分析和總結(jié)本次實驗,提出改進(jìn)方法,撰寫實驗報告。
美國學(xué)者埃德加.戴爾(Edgar Dale)提出的“學(xué)習(xí)金字塔”(Cone of Learning)理論顯示了采用不同的學(xué)習(xí)方式,學(xué)習(xí)者在兩周以后還能記住內(nèi)容的多少(平均學(xué)習(xí)保持率)。在該理論中,“討論”、“實踐”和“教授給他人”的學(xué)習(xí)方式被認(rèn)為是主動學(xué)習(xí)方式[9],其平均學(xué)習(xí)保持率高于被動學(xué)習(xí)方式。 其中,“教授給他人”的學(xué)習(xí)方式平均學(xué)習(xí)保持率為90%。在翻轉(zhuǎn)課堂模式下,更有利于在課堂中預(yù)留出更多時間讓學(xué)生進(jìn)行討論和講解。如教師安排不同學(xué)習(xí)小組成員分別演示講解對同一問題的不同程序設(shè)計與實現(xiàn)方法,以程序?qū)崿F(xiàn)中的難點、算法效率、是否采用了某種面向?qū)ο缶幊棠J健?是否運用了編程思想 (如MVC、ORMapping等)、是否考慮了編程中的安全因素等為主題,組織學(xué)生展開討論并得出結(jié)論。
一方面,PBL 教學(xué)案例源于實際應(yīng)用問題, 這些問題的解決本身具有挑戰(zhàn)性。 教師在教學(xué)活動中,引導(dǎo)學(xué)生查閱和學(xué)習(xí)大量的產(chǎn)業(yè)、學(xué)科前沿研究成果和技術(shù),通過師生共同研討、學(xué)生獨立或協(xié)作實踐,不斷解決新問題、攻克難問題,可以在課程教學(xué)過程中幫助學(xué)生逐漸形成創(chuàng)新意識、思維和方法。
另一方面,還需通過軟件項目開發(fā)與學(xué)科競賽等“拔高性”教學(xué)環(huán)節(jié),持續(xù)推動在育人的全過程、全環(huán)節(jié)中提升學(xué)生創(chuàng)新能力的不斷提升[9]。
遵循OBE 理念,以學(xué)生未來職業(yè)能力、探索研究能力和創(chuàng)新能力培養(yǎng)為目標(biāo),在教師團隊和聘請的軟件研發(fā)企業(yè)工程師(兼任教師)的指導(dǎo)下,組建學(xué)生軟件開發(fā)團隊。項目來源可以是教師指導(dǎo)團隊負(fù)責(zé)承接的軟件開發(fā)項目,教師和研究生科研課題的軟件設(shè)計任務(wù), 參與協(xié)同育人的軟件研發(fā)企業(yè)提供的項目,大學(xué)生創(chuàng)新創(chuàng)業(yè)項目子問題,大學(xué)生程序與軟件設(shè)計競賽作品, 開源軟件資源的二次開發(fā)如MATLAB 中各類工具箱、各類智能算法工具包的二次開發(fā)等。 項目來源的多樣性可以促進(jìn)學(xué)生進(jìn)行跨學(xué)科和專業(yè)知識的融合學(xué)習(xí),進(jìn)行多層次(純軟件系統(tǒng)開發(fā)、科學(xué)計算、結(jié)合人工智能、大數(shù)據(jù)分析、云計算等新應(yīng)用領(lǐng)域)的程序或軟件開發(fā),為學(xué)生將來就業(yè)或深造提供更好的編程和軟件開發(fā)能力支持。
在軟件項目實施中,給學(xué)生劃分角色,如“項目經(jīng)理”“系統(tǒng)架構(gòu)師”“系統(tǒng)分析師”“程序員”等。 按照軟件工程方法,讓學(xué)生團隊從軟件項目的開發(fā)背景和需求分析起,完成項目概要與詳細(xì)設(shè)計、算法設(shè)計、安全編程設(shè)計、數(shù)據(jù)庫設(shè)計、編程實現(xiàn)、系統(tǒng)測試與文檔編寫、系統(tǒng)維護與優(yōu)化等軟件全生命周期的任務(wù)。
由教師團隊和聘請的軟件研發(fā)企業(yè)工程師定期以項目開發(fā)培訓(xùn)和專題報告形式輔導(dǎo)學(xué)生;形成研究生、高年級學(xué)生帶動低年級學(xué)生的“傳、幫、帶”機制。團隊成員中高年級學(xué)生給低年級學(xué)生進(jìn)行成果講解展示和項目開發(fā)培訓(xùn)。
通過軟件項目開發(fā)訓(xùn)練和實施,教師團隊引導(dǎo)學(xué)生追蹤軟件研發(fā)領(lǐng)域新需求、新成果、新技術(shù),鍛煉學(xué)生發(fā)現(xiàn)、分析和解決新問題的能力,提升學(xué)生團隊協(xié)作、溝通組織能力、創(chuàng)新思維和實踐能力。
目前, 程序與軟件設(shè)計類競賽包括ACM 國際大學(xué)生程序設(shè)計競賽、“中國軟件杯”大學(xué)生軟件設(shè)計大賽、“藍(lán)橋杯” 全國軟件和信息技術(shù)專業(yè)人才大賽等;大學(xué)生創(chuàng)新創(chuàng)業(yè)類競賽如“互聯(lián)網(wǎng)+”大學(xué)生創(chuàng)新創(chuàng)業(yè)大賽、“‘創(chuàng)青春’全國大學(xué)生創(chuàng)業(yè)大賽”“挑戰(zhàn)杯”全國大學(xué)生課外學(xué)術(shù)科技作品競賽等;綜合類競賽如全國大學(xué)生數(shù)學(xué)建模競賽、機器人競賽、信息安全競賽等。各類競賽共同特點是題目背景源于生產(chǎn)生活實際,具有“前沿性、綜合性、復(fù)雜性”特點。通過組織學(xué)生進(jìn)行這些競賽的籌備、訓(xùn)練、參賽和競賽成果推廣等活動,可以進(jìn)一步拓展學(xué)生學(xué)科視野及提升創(chuàng)新能力。近年來,我校學(xué)生在此類競賽中獲得較好成績。
將學(xué)生軟件項目開發(fā)以及學(xué)科競賽中取得的成果進(jìn)行整理和系統(tǒng)化,形成案例庫,并將這些案例進(jìn)行分解和模塊化,融入課程教學(xué)內(nèi)容中,促進(jìn)了創(chuàng)新創(chuàng)業(yè)與專業(yè)課程教育教學(xué)的融合。
鼓勵學(xué)生用“路演”方式推廣開發(fā)成果。讓學(xué)生在校園、校外、網(wǎng)絡(luò)平臺對團隊或自己的軟件開發(fā)及創(chuàng)新實踐成果進(jìn)行演示、推介,或開展相關(guān)經(jīng)驗分享及科普活動等。 一方面,可以鍛煉學(xué)生表達(dá)、推介能力;另一方面,有利于學(xué)生以后開展相關(guān)創(chuàng)業(yè)活動。
高校與知名軟件研發(fā)及教育培訓(xùn)企業(yè)建立長期協(xié)同育人合作關(guān)系,是程序類設(shè)計課程能夠?qū)嵤㎡BE和PBL 教學(xué)的基礎(chǔ)保障條件。 第一,高校通過在企業(yè)開展調(diào)研,才能夠準(zhǔn)確把握軟件產(chǎn)業(yè)前沿發(fā)展現(xiàn)狀和趨勢,確保對學(xué)生職業(yè)能力的準(zhǔn)確研判。 第二,“走出去”和“請進(jìn)來”是提高師資質(zhì)量的辦法。 “走出去”就是要求目前承擔(dān)專業(yè)教學(xué)任務(wù)的教師到有合作關(guān)系的軟件研發(fā)企業(yè)、用人單位調(diào)研和掛職,參與軟件研發(fā)等任務(wù),獲取最新地對學(xué)生職業(yè)能力的需求和提升教學(xué)水平;“請進(jìn)來” 就是要改革現(xiàn)有師資隊伍組成,聘請軟件工程師和實務(wù)人員作為兼職教師,承擔(dān)某門課程中部分知識單元的講授和實踐教學(xué)任務(wù),定期開展講座,指導(dǎo)學(xué)生課外實踐。 第三,遵循《普通高等學(xué)校本科專業(yè)類教學(xué)質(zhì)量國家標(biāo)準(zhǔn)》, 在專業(yè)教學(xué)指導(dǎo)委員會指導(dǎo)下,由資深專業(yè)教師和軟件研發(fā)企業(yè)工程師聯(lián)合編寫滿足OBE 和PBL 實施的高質(zhì)量教材——緊緊圍繞學(xué)生職業(yè)能力培養(yǎng)需求,體現(xiàn)問題(案例)驅(qū)動并定期更新, 最大限度地解決學(xué)生所學(xué)內(nèi)容陳舊、與實際需求脫節(jié)的問題。 第四,在企業(yè)中建立學(xué)生專業(yè)見習(xí)、實習(xí)基地。學(xué)生通過專業(yè)見習(xí)和實習(xí),可以進(jìn)一步提升職業(yè)素養(yǎng)和能力。
近年來,教育部產(chǎn)學(xué)合作協(xié)同育人項目中的實踐條件和實踐基地建設(shè)、 教學(xué)內(nèi)容和課程體系改革、創(chuàng)新創(chuàng)業(yè)教育改革項目等子項目的實施,給高校與企業(yè)合作與聯(lián)合培養(yǎng)人才提供了便利和保障。在改善實驗條件和平臺方面,借助企業(yè)技術(shù)優(yōu)勢,引進(jìn)或聯(lián)合開發(fā)程序設(shè)計和軟件開發(fā)教學(xué)案例庫、在線編程測試系統(tǒng)、程序設(shè)計訓(xùn)練系統(tǒng)等。
程序設(shè)計類課程考核由學(xué)生課程學(xué)習(xí)與編程實踐(課前、課中、課后)表現(xiàn)情況+PBL 學(xué)習(xí)單元考核+期末課程設(shè)計考核 (源于OBE 學(xué)生職業(yè)能力需求分析的、具有實際應(yīng)用背景的程序或軟件設(shè)計題目)+學(xué)生創(chuàng)新實踐(參與課程相關(guān)的軟件項目開發(fā)、專業(yè)學(xué)科競賽、職業(yè)資格認(rèn)證)等部分組成,合理確定各部分的成績占比,使得課程考核更具信度和效度,對學(xué)生學(xué)習(xí)質(zhì)量評價更全面和準(zhǔn)確。
以學(xué)生課程考核中反映出的問題, 學(xué)生的反饋(在校學(xué)生和畢業(yè)生對課程的滿意度及建議)、用人單位對人才的滿意度及建議為依據(jù), 形成 “評價—反饋—改進(jìn)”的閉環(huán),持續(xù)提高課程教學(xué)質(zhì)量。
不斷促進(jìn)教學(xué)和人才培養(yǎng)質(zhì)量提高是教學(xué)改革的永恒主題, 課程教學(xué)改革則是實現(xiàn)這一目標(biāo)的基礎(chǔ)。 在信息化和智能化高度發(fā)展和深度應(yīng)用的今天,程序設(shè)計類課程在工科專業(yè)人才培養(yǎng)課程體系中的地位和作用更加重要。 緊密結(jié)合學(xué)生職業(yè)能力需求,運用適合程序設(shè)計類課程特點的先進(jìn)教育教學(xué)理念和方法,將其貫徹落實到課程教學(xué)和人才培養(yǎng)的全過程、全環(huán)節(jié)中并持續(xù)改進(jìn),建成“金課”和一流課程,為促進(jìn)建成一流專業(yè)和培養(yǎng)一流人才做出應(yīng)有的貢獻(xiàn)。