賈金芳,王曉英,劉志強,杜正君
(青海大學 計算機技術(shù)與應用系,青海 西寧 810016)
程序設(shè)計基礎(chǔ)I(C語言)課程作為計算機專業(yè)大一新生的第一門編程課程,其主要以用計算機編程語言解決實際問題的基本技能為立足點,逐步培養(yǎng)學生獨立進行編程和算法設(shè)計的能力。隨著對專業(yè)IT開發(fā)人員的需求越來越多,對計算機程序設(shè)計教學的要求也越來越高。然而,在程序設(shè)計類課程專業(yè)教學中,仍存在以下幾方面共性問題[1-3]。
(1)課程知識點瑣碎、繁多、分散,傳統(tǒng)教學中理論知識的講解幾乎占據(jù)了所有有限的課堂時間,存在“重語法、輕程序”現(xiàn)象,學生對重難點知識不能深刻理解,理解不了編程思想,體會不到編程的樂趣,久而久之,越來越多的困難逐漸降低了學生對課程的學習興趣及積極性。
(2)目前課堂教學中普遍存在“教師是課堂的主導者,學生是被動的接受者”等現(xiàn)象,課堂缺乏活躍的互動氛圍,這導致學生基本沒有自主學習的能力和自主研究、探索的精神。
(3)教學資源、方法太單一,教師無法從多渠道獲取學生學習情況反饋;另外,每個學生的計算機基礎(chǔ)差異較大,對知識的掌握及對知識的渴求也有所不同,單一的教學模式及方法不能做到因材施教。
(4)沒有階段性評價,只有期末紙質(zhì)測試,不注重過程性考核,并且考試以理論知識為主,忽略了程序設(shè)計課程的本質(zhì),學生考前只要認真突擊復習就可以得到高分,而動手編程和實踐創(chuàng)新能力并沒有任何提升。
基于以上各種問題,我們借鑒翻轉(zhuǎn)課堂教學理念,基于中國大學MOOC程序設(shè)計課程SPOC平臺,翻轉(zhuǎn)“教師—學生”的主體作用,改革傳統(tǒng)教學模式,培養(yǎng)學生的學習主動性;注重過程提升,變革教學結(jié)果,提高教學質(zhì)量及教學效果。
MOOC(Massive Open Online Course,大規(guī)模在線開放課程)自被提出以來,在全球激起一股教育熱流。2012年“MOOC元年”后[4], MOOC本身的大規(guī)模、開放等特點使其面臨很多困難與挑戰(zhàn),但其超越傳統(tǒng)教學的優(yōu)勢仍不能完全替代面授課程,因此需結(jié)合二者優(yōu)勢,取長補短。為此,加州大學伯克分校計算機科學教授、MOOCLab課程主任阿曼多·??怂梗ˋrmando Fox)于2013年首次提出小規(guī)模私有在線課程SPOC(Small Private Online Course)概念[5]。研究認為,SPOC是對MOOC的繼承與完善,它可以高效結(jié)合優(yōu)質(zhì)MOOC資源與課堂面授的優(yōu)勢,實現(xiàn)對教學的重構(gòu)與創(chuàng)新[6]。
針對如何打破傳統(tǒng)教學中學生被動接受知識,培養(yǎng)學生主動、自主學習能力等問題,美國研究者率先提出一種新的教學模式——“翻轉(zhuǎn)課堂(Flipped Classroom)”,實踐證明,基于這種新模式的教學成效超出了人們的預想[7]。翻轉(zhuǎn)課堂其核心理念是翻轉(zhuǎn)了傳統(tǒng)教學模式,學生在課前自主學習教師提供的視頻或相關(guān)資料,完成相關(guān)測試、練習;課堂時間則用來討論、解決問題,并進行知識深化[8-9]。這種模式將各種學習資源“時間最大化”,完全不同于單一的網(wǎng)絡(luò)視頻課程。
自2011年翻轉(zhuǎn)課堂進入我國后,MOOC及SPOC的興起為高校教師開展翻轉(zhuǎn)課堂提供了優(yōu)質(zhì)的線上教學資源,進一步推動了混合式教學的發(fā)展,越來越多的教師逐漸開始嘗試翻轉(zhuǎn)課堂實踐。SPOC的“小規(guī)模”和“私有”特性也決定了其更適合開展翻轉(zhuǎn)課堂教學[10]。
課程線上學習資源依托于中國大學MOOC聯(lián)盟、北京理工大學李鳳霞老師的C語言程序設(shè)計課程同步SPOC專區(qū),教師可以根據(jù)教學需求自行補充教學資源,學生可以課前進行視頻學習、單元練習測試、問題討論及課后復習,教師通過后臺可隨時掌握學生學習動態(tài)。除此之外,也充分利用青海大學教育在線平臺及時發(fā)布教學資料、學習素材、課后作業(yè)等,學生可實時通過平臺自主下載資料、提交作業(yè)、查看作業(yè)批改反饋,改善了作業(yè)拷貝、不能集中管理的復雜性,完全實現(xiàn)電子化辦公,既便利了學生學習,又方便教師統(tǒng)一管理。
課堂面授作為線下教學手段,通過“線上+線下”混合模式,應主要展開以下教學實踐。
1)通過翻轉(zhuǎn)課堂教學,強化學生主體作用,培養(yǎng)學生的學習主動性。
(1)教師在上課前一周通過學校教育在線平臺或課程學習交流QQ群,發(fā)布下節(jié)課所需知識點、學習資料、要求及討論題目。
(2)學生課下以小組為單位進行討論,并形成各自討論結(jié)果或講稿,在課前發(fā)給任課教師,任課教師可以提前通過討論結(jié)果掌握學生學習情況,提前準備課堂需重點強化內(nèi)容。其中,將33人左右的一個單班劃分成5~6人/組的多個小組,以“好帶差,小組幫扶制”為原則,學生自由組合,并推選出組長。
(3)課堂上教師在每組隨機抽一名同學對討論結(jié)果進行詳細講解,其他學生進行現(xiàn)場提問,由學生進行答疑,同時教師做好問題及答題情況記錄。
(4)教師當場打分(講者的成績代表小組最終成績),對學生講解、答疑情況進行點評及總結(jié),并將重、難點問題圍繞“程序設(shè)計思想”進行舉例、深入講解。
教師重點講解知識點的過程中,可開展啟發(fā)式教學、案例式教學等模式,使每一位學生積極參與課堂活動,活躍課堂氛圍,培養(yǎng)他們的思考、自學能力。①啟發(fā)式教學:如引入數(shù)組前,通過求全班同學平均成績的例子,讓學生先通過之前已經(jīng)學過的單個變量的方法求解,然后發(fā)現(xiàn)這樣編寫出來的程序存在復雜性和不易擴展性等問題,啟發(fā)學生考慮如何一次性存儲多個數(shù)據(jù),提出使用數(shù)組的必要性和便捷性。②案例式教學:如在講授二維數(shù)組時,引入一款經(jīng)典的益智游戲“推箱子游戲”,逐步引導學生如何標記并找到一條暢通的路徑將箱子從某個位置移動到目的地,這樣的游戲案例不僅激發(fā)了學生的興趣,同時也有助于理解二維數(shù)組的使用方法。
2)通過階段性測試,評測學生階段學習效果,分析學情。
在開展教學內(nèi)容及方法改革的同時,建立有效的評價反饋機制是衡量教學效果和質(zhì)量的常用手段。課程除了通過SPOC平臺、實驗課堂練習分析學生學習情況之外,還引入了階段性測試,其更能反映學生個體對階段性學習知識的掌握、應用情況。
學期中共設(shè)置3次測試,考試題型主要以程序設(shè)計題目為主,判題方式采用與各類競賽模式相對應的測試用例方式,充分考察學生的創(chuàng)造性思維和獨立解決問題的能力,同時也改善傳統(tǒng)評測中只要寫出部分程序即可得分的現(xiàn)象,測試平臺則使用SPOC平臺和OJ平臺,OJ測試平臺如圖1所示。
圖1 OJ測試平臺
這種評測方式,既可發(fā)現(xiàn)學生階段性學情;也可通過分析每類題型的答題情況,發(fā)現(xiàn)部分學生仍存在的困難或知識難點;進一步調(diào)動教師教學的積極性和主動性,不斷深化教學內(nèi)容和改進教學方法,提高教學質(zhì)量。
3)通過學期學習,鼓勵學生完成實踐題目、參加學科競賽,鍛煉學生的動手編程能力。
動手編程能力在程序設(shè)計課程中具有不可替代的重要地位,是培養(yǎng)、提高學生綜合素質(zhì)和創(chuàng)新能力的重要組成部分。只有將課程理論教學與實踐教學相結(jié)合,課內(nèi)教學和課外實踐相結(jié)合,才能扎實掌握一門編程語言。
在學期結(jié)束前兩周,教師發(fā)布難度級別不同的多個實踐題目供學生選擇,如模擬火車購票、萬年歷、簡易計算器、消滅星星游戲等,要求一般難度和中等難度的題目每組1~2人,較高難度的題目每組1~3人。學生自由分組并選擇一個題目,組內(nèi)合理分工,最后提交實現(xiàn)源碼及實踐報告。通過完整的實踐設(shè)計,使學生親身體驗一個完整的軟件開發(fā)流程及注意事項,培養(yǎng)學生自主學習、實踐探索、編程解決實際問題的能力,提高團隊協(xié)作能力及其他各種綜合素質(zhì)。
此外,本著“程序設(shè)計類課程是學生參加各類程序設(shè)計競賽的基礎(chǔ),程序設(shè)計競賽是學生學好該類課程的有效補充”[11]原則,鼓勵學生參加各類程序設(shè)計競賽,如CSP、藍橋杯等,進一步培養(yǎng)學生的綜合素養(yǎng),將學到的課堂知識進行整合、分析和應用,提出解決實際問題的具體方案并實踐驗證[12]。
以上教學實踐模式使得學生的專業(yè)技能在入門階段得到大幅度提升,能深入體驗專業(yè)學習樂趣,推動了課程教學效果的提高,同時也為計算機專業(yè)創(chuàng)新、應用型人才培養(yǎng)奠定了前期基礎(chǔ)。
課程注重過程化考核,采取過程性評估和終結(jié)性評估相結(jié)合的課程考核方式,由平時成績和期末考試成績組成最終成績。具體成績計算見表1。
(1)學生學習成績明顯提高。分析近3年來實施教學改革前、后學生期末考試成績,如圖2所示??梢钥闯?,從16級開始翻轉(zhuǎn)課堂嘗試后,學生的成績較之前有很大提升。其中17級學生改用測試用例測評方式,如果程序可以編譯運行,但沒有通過任一測試用例,則不得分,所以成績相對關(guān)鍵詞評分要偏低。
(2)學生開發(fā)能力和程序設(shè)計競賽能力提高。學生在學期末完成的實踐題目從最初的幾行到幾百行,實現(xiàn)了很大的飛躍,個別同學有效實現(xiàn)代碼達750行左右,具備了初步專業(yè)技術(shù)水平。從學生參加2017年12月份的CSP考試結(jié)果來看,成績達到200分及以上的同學中,16、17級學生人數(shù)占75%,并有1名17級學生獲得2017年CCF大學生計算機系統(tǒng)與程序設(shè)計競賽(CCSP)銅獎,不管是邏輯思維及創(chuàng)新能力,還是實踐應用能力,都值得肯定。
表1 課程過程化考核體系
圖2 程序設(shè)計基礎(chǔ)I歷年考試成績
基于SPOC平臺的程序設(shè)計基礎(chǔ)I翻轉(zhuǎn)課堂教學嘗試,突出了學生的主體作用,提高了學生的主動學習動力、團隊協(xié)作能力,培養(yǎng)了學生的邏輯思維和工程實踐能力;強調(diào)了教師的引導作用,進一步提高了教師的信息化素養(yǎng);對課程后期多元化改革與發(fā)展起到了積極推動作用。在此基礎(chǔ)上,還需要不斷提升教師自身素養(yǎng),同時深入研究、改進和完善課程改革實施方案。