王娟,孔宇彥,黃培泉,譚明超
(1.廣東工貿(mào)職業(yè)技術(shù)學院,計算機與信息工程學院,廣州510510;2.中國人民解放軍75839部隊,廣州)
《程序設(shè)計基礎(chǔ)》是面向高職院校計算機軟件專業(yè)的大一新生開設(shè)的專業(yè)基礎(chǔ)課程,主要用以培養(yǎng)學生程序設(shè)計能力,為后續(xù)的專業(yè)課程和以后的軟件開發(fā)奠定基礎(chǔ)。在引入數(shù)字化教學平臺之前,課程教學模式是傳統(tǒng)的以老師為中心進行教學內(nèi)容講授和實驗教學指導相結(jié)合的方式,這種模式以教師為主體,學生處于被動地位,忽視了學生學習的主動性、積極性和創(chuàng)造性,與高職院校對人才培養(yǎng)要求中學生應具備獨立自學能力和較強的創(chuàng)新能力的要求是不相符合的,因此,改變傳統(tǒng)教學模式,在教學過程中突出學生主體地位,激發(fā)學生的學習積極性,以有效提高課程教學效果,達到人才培養(yǎng)目標就變得十分必要。
《程序設(shè)計基礎(chǔ)》課程采用C語言作為教學語言,教學過程中主要存在以下問題:
(1)教學內(nèi)容多與課時不夠的矛盾。程序設(shè)計是理論和實踐相結(jié)合的課程,C語言本身涵蓋知識內(nèi)容多,基本語法知識包含了豐富的數(shù)據(jù)類型、運算符和表達式,程序結(jié)構(gòu)中的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)又分別對應了多種實現(xiàn)語句,而數(shù)組、函數(shù)、指針等內(nèi)容的難度對于高職的大一新生難度較大,但是總課時數(shù)只有60學時,這樣便導致授課內(nèi)容的深度和難度受到很大限制,課堂教學中僅能講授重點知識,學生不能深入全面地完成課程理論知識的學習。
(2)學生計算機基礎(chǔ)知識薄弱。課程面向剛?cè)雽W的大一新生,高中階段的信息技術(shù)課往往被主課擠占,多數(shù)學生信息技術(shù)基礎(chǔ)薄弱,計算機基礎(chǔ)理論知識(如:計算機中數(shù)據(jù)的表示、存儲等方面的知識)普遍缺乏,學生的知識儲備不能滿足程序設(shè)計課程先導知識需要,如果在有限的學時中再補充這些知識,將嚴重影響教學的進度。
(3)學生學習水平差異大。高職學生生源種類多,既有普通高中畢業(yè)生又有中職學生,學生的入學基礎(chǔ)和學習能力差異很大,有的吃不飽,有的消化不了,統(tǒng)一的授課模式很難兼顧到每一個學生的需要,必然影響教學效果。
(4)學生的主動思考和創(chuàng)新能力差。傳統(tǒng)教學模式中,學生往往被動接受知識,缺乏自主學習和主動思考的機會,對知識往往死記硬背,不能將知識轉(zhuǎn)換為自己的能力,沒有達到教學的最終目標。
混合式教學是要把傳統(tǒng)學習方式的優(yōu)勢和數(shù)字化或網(wǎng)絡(luò)化學習的優(yōu)勢結(jié)合起來;也就是說,既要發(fā)揮教師引導、啟發(fā)、監(jiān)控教學過程的主導作用,又要充分體現(xiàn)學生作為學習過程主體的主動性、積極性與創(chuàng)造性[1]。
本著以“教師為主導、學生為主體”的教學理念,利用數(shù)字化在線課程平臺,程序設(shè)計基礎(chǔ)課程采取線下課堂教學和線上教學相結(jié)合的新型教學模式,重新規(guī)劃教學單元、確定教學目標、教學內(nèi)容、教學資源,細化每一個教學單元的課前、課中和課后教師的教學活動和學生的學習活動,并對教學效果進行評價反饋,及時調(diào)整教學方式方法,以獲取最佳的教學效果。
課程采用“課前(線上)—課中(線下)—課后(線上)”混合教學模式,如圖1所示。學生課前通過在線導學設(shè)計文檔、思維學習導圖、微視頻、教學PPT等方式自主學習先導知識、預習本單元內(nèi)容,課中通過提問、案例教學、隨堂練習、學生試講、實驗指導等方式學習掌握本單元知識,課后通過提交作業(yè)、在線測試、論壇討論、單元小結(jié)、拓展提高環(huán)節(jié)對知識掌握情況進行檢測、分析、總結(jié)和提高。
圖1 程序設(shè)計基礎(chǔ)混合教學模式
教學單元1程序設(shè)計和C語言導學設(shè)計
課內(nèi)外學時分配:
課內(nèi)(線下:課堂+實驗):3學時
課外(線上):0.5學時
課前教學視頻:
【視頻】C程序的輸入、編輯和運行
自主學習任務單設(shè)計:
(1)子單元1:什么是計算機程序
達成目標1:通過教師提出問題、學生思考回答問題、教師點評分析的方式,學生理解計算機的概念、計算機程序的作用,能夠用自己的語言解釋什么是計算機程序。
學習形式:
【討論1】什么是計算機?
【討論2】什么是計算機程序?
(2)子單元2:什么是計算機語言
學習任務:
【PPT課件】計算機語言的發(fā)展
【PPT課件】編譯程序
達成目標1:通過學習在線教學課件,學生了解計算機語言的發(fā)展階段,能夠區(qū)分機器語言、符號語言和高級語言。
達成目標2:通過學習在線教學課件,學生理解源程序、編譯程序和目標程序的關(guān)系,能夠用自己的語言解釋編譯程序的作用。
學習形式:
【討論3】高級語言與低級語言的區(qū)別?
【測試1】選擇題和判斷題若干
(3)子單元3:C語言的發(fā)展
學習任務:
【資料1】C語言的發(fā)展過程
達成目標1:通過在線學習平臺中的相關(guān)文檔資料,學生了解C語言的發(fā)展過程,能夠大致介紹C語言的來源和發(fā)展變化過程。
(4)子單元4:最簡單的C語言程序
達成目標1:通過教師課堂的案例教學,學生熟悉簡單C語言程序的基本結(jié)構(gòu),能夠閱讀并大致解釋簡單C語言程序的功能。
達成目標2:通過教師課堂的案例教學,學生熟悉C語言程序結(jié)構(gòu)的特點,能夠描述一個C語言程序的執(zhí)行過程及各個組成部分的含義。
學習形式:
【案例1】用C程序輸出:This is a C program
【案例2】用C程序求兩個整數(shù)之和。
【案例3】用函數(shù)實現(xiàn)求兩個整數(shù)中的較大者。
【任務1】分析給定C程序的功能
(5)子單元5:運行C程序的步驟與方法
學習任務:
【視頻】C程序的輸入、編輯和運行
達成目標1:通過觀看教師課堂上的演示操作,學生掌握C程序的編譯和運行過程,能夠?qū)嶋H操作完成簡單C程序的編譯和執(zhí)行。
學習形式:
【案例4】輸入并運行一個簡單的、正確的C程序。
【任務2】輸入并運行一個自己編寫的C程序。
【作業(yè)1】輸入并運行教材中給定程序,并分析程序運行結(jié)果。
【作業(yè)2】運行一個自己編寫的程序,輸入3個數(shù),輸出其中的最大值。
3.2.1 提問式教學
當理論課堂上講授的內(nèi)容比較繁雜和枯燥的時候,學生很容易走神或犯困,這時候可以適當?shù)赝ㄟ^課堂提問的方式,將走神的學生拉回課堂,集中精力認真聽課,同時能讓學生由被動學習變主動思考,積極參與到課堂教學活動中。而且通過學生的回答了解學生的知識掌握情況,特別是在答錯的時候,要引導學生找到錯誤的原因,這樣能對這一知識點和與之相關(guān)的知識點理解地更透徹,掌握地更牢固。
比如,在介紹到scanf函數(shù)的使用時,對于數(shù)值型數(shù)據(jù)的輸入和字符型數(shù)據(jù)的輸入很容易混淆,通過操作演示scanf(”%c%c%c”,&c1,&c2,&c3);和scanf(”%d%d%d”,&c1,&c2,&c3);對比,學生知道字符輸入不可以有空格回車等字符,數(shù)值輸入則需要通過空格回車等字符來分隔。了解到這個知識后,學生并不一定能真正理解并正確使用,此時再引入綜合性的例子scanf("%d%c%f%c",&a,&b,&c,&d);。講解前,先向?qū)W生提問:“如果輸入1234a123o.26,會如何賦值?”a學生回答:“1234賦值給d,后面不知道”,老師提示:“接下來是字符a,對應的格式聲明符是c,該如何賦值?”接著b同學回答:“1234賦值給變量a,字符a賦值給變量b,123賦值給變量c,o賦值給變量d”。這樣便解決了賦值的問題,接著還可以在此基礎(chǔ)上復習printf函數(shù)的輸出格式。繼續(xù)提問:“那如果執(zhí)行printf("%d%c%f%c",a,b,c,d);會輸出什么結(jié)果?和輸入一致嗎?”,c學生回答:“應該一致吧”,繼續(xù)提示“注意格式聲 明 符,d、c、f的 區(qū) 別”,老 師 演 示 輸 出1234a123.000000o,再提問:“哪里不一致?為什么?”,此時大部分學生都能意識到浮點型數(shù)字輸出時要規(guī)定小數(shù)部分應該是6位。這樣既解決了scanf字符和數(shù)值輸入的問題,又鞏固了printf中的格式聲明符的區(qū)別。最后,還可以在此基礎(chǔ)上留課后作業(yè),進一步加強理解和鞏固。
3.2.2 案例教學
程序設(shè)計基礎(chǔ)課程涉及到的程序語法知識非常多且不易理解,采用案例教學即可將很多的理論知識融入的案例中,又有趣味能激發(fā)學生的學習興趣。本課程大部分的理論知識都是通過案例來講授的,特別是一些經(jīng)典的、有趣的或者實用的案例比如猴子吃桃、百錢白雞、素數(shù)的判斷、密碼的翻譯、各種排序算法等等。
3.2.3 任務驅(qū)動
在教學的過程中針對學生的實際水平和教學內(nèi)容,給學生布置一些熟悉的相對容易一點的題目,把知識點融入到任務中,比如完成圓的周長和面積計算的任務既展示了程序的順序結(jié)構(gòu)又包含了符號常量和變量的定義使用、表達式的計算。通過完成相關(guān)任務,學生就很容易入門,不但掌握了相關(guān)的知識,還可以繼續(xù)擴展到求平方的函數(shù)的使用、輸入函數(shù)和輸出函數(shù)的使用,由淺入深,層層推進學生也獲得了滿足感和成就感。
3.2.4 學生試講
在教學過程中選取部分非難點的重點內(nèi)容,對學生來說比較容易理解又能夠表達出來的知識點或者案例布置給學生,讓學生提前預習,自己制作PPT,到講臺上當一回老師,也就是“教中學”,接受其他同學的提問和評分,最后老師進行點評。這個方法比較適用于一些基礎(chǔ)較好,善于表達的學生,他們通常比較踴躍;而對于基礎(chǔ)差一些,不太愿意表達的學生,則以引導鼓勵為主,不必強迫。這種教學形式鍛煉學生的語言組織表達能力和應變能力的同時也加深了學生對知識的理解和掌握。
3.3.1 在線作業(yè)
結(jié)合每個學習單元的教學內(nèi)容,布置在線作業(yè)以加強對知識的理解、鞏固和運用,每次的作業(yè)都會評出優(yōu)秀作業(yè)供大家參考學習,起到激勵學生的作用。
3.3.2 在線測試題
通過在線測試測試本單元學生掌握知識的情況,測試完針對學生存在問題及時進行講解,使學生發(fā)現(xiàn)問題所在,及時更正并掌握一些重點難點的問題。
3.3.3 論壇討論
每個學習單元圍繞某個知識點發(fā)布討論話題,大家通過發(fā)表不同的觀點看法,互相交流的過程中更好的理解和掌握相關(guān)知識點。
3.3.4 單元小結(jié)
每一單元結(jié)束,都給出本單元的知識總結(jié),歸納總結(jié)所學知識,便于學生理順思路,抓住重點,使知識系統(tǒng)化。
3.3.5 拓展知識
課后拓展一方面是補充一些與課程相關(guān)的作為了解的知識,例如C語言的發(fā)展歷史;另一方面是有限的課堂時間不可能講解地很詳細很完備的知識,例如算法的表示、printf()函數(shù)輸出格式詳解等。這些拓展知識主要是有利于學有余力的同學進一步拓寬知識面,進行更深入的學習。
程序設(shè)計基礎(chǔ)課程混合教學改革在2019級新生進行了試行,結(jié)合“課前(線上)—課中(線下)—課后(線上)”各個教學環(huán)節(jié)要求和課程總體教學目標,確定學生的課程考核成績組成情況為:自主學習情況10%+在線測試20%+在線作業(yè)20%+期末閉卷機考50%。其中,自主學習情況根據(jù)學生在平臺上參與論壇討論、文檔閱讀、PPT預覽、觀看微課視頻、在線學習時長的綜合情況給分。與傳統(tǒng)教學模式課程考核成績組成(平時成績30%+期末閉卷機考70%)相比較,混合式教學考核方式多樣,改變了主要依據(jù)最后期末考試成績進行評定的方式,要求學生從課程伊始就要積極參與線上線下的教學活動,認真完成每一次測試和作業(yè),體現(xiàn)了學習過程和學習結(jié)果同等重要的理念[2]。
從19級學生的課堂教學表現(xiàn)來看,靈活多變的教學方式吸引了更多的學生積極主動地參與到課堂教學活動中,而在線教學平臺中豐富的教學資源能滿足不同層次學生的學習需要,對提高學生的自主學習能力有一定的促進作用。混合式教學方式方法的滿意度調(diào)查結(jié)果顯示:滿意占35.54%、基本滿意占35.19%、中立占29.27%、不滿意占3.83%。在混合式教學的初次探索和實踐過程中,得到了大多數(shù)同學的肯定和認可,當然還有部分同學未能很好地適應新的教學模式,這需要在接下來的教學中,進一步完善教學方式方法,細化教學內(nèi)容,劃分不同層次以更好地適應不同學生的需求,取得更好的教學效果。