呂俊+陸淑娟
摘 要:為了培養(yǎng)學(xué)生的計算思維能力,提出在C語言程序設(shè)計教學(xué)中推進任務(wù)驅(qū)動和遞進式教學(xué)模式,引入微課、翻轉(zhuǎn)課堂和討論群等多樣化教學(xué)手段,改革課程評價方式,主動、有意識地將計算思維培養(yǎng)融入教學(xué),達到提升學(xué)生信息素養(yǎng)和創(chuàng)新實踐能力的目的。
關(guān)鍵詞關(guān)鍵詞:計算思維;C語言程序設(shè)計;翻轉(zhuǎn)課堂;微課;課程評價
DOIDOI:10.11907/rjdk.161471
中圖分類號:G433
文獻標識碼:A 文章編號:1672-7800(2016)008-0213-03
0 引言
《C語言程序設(shè)計》是計算機類公共基礎(chǔ)課程,培養(yǎng)非計算機專業(yè)學(xué)生在計算環(huán)境下進行問題求解的思路、方法,使學(xué)生能用計算機學(xué)科獨特的思維方式來解決專業(yè)領(lǐng)域和實際生活中碰到的各種問題,為將來創(chuàng)新性解決專業(yè)問題奠定基礎(chǔ)。本課程教學(xué)中,學(xué)生普遍感覺課程難于理解,導(dǎo)致教學(xué)效果欠佳,主要體現(xiàn)在以下幾個方面:
(1)課程教學(xué)側(cè)重于語法規(guī)則,忽視了計算思維的培養(yǎng)與訓(xùn)練。學(xué)生即使掌握了所有語句規(guī)則,在解決實際問題時仍會感到茫然,無從下手,沒有達到課程設(shè)置的目的和要求。
(2)傳統(tǒng)教師講學(xué)生聽的授課方式,整個學(xué)習(xí)過程中學(xué)生處于被動接受的狀態(tài),學(xué)習(xí)積極性不高。聽完課后按照教師設(shè)定的模式完成上機實驗,導(dǎo)致解決問題獨立思考能力不強。
(3)過度強化等級考試。為提高考試通過率,會以考點作為教學(xué)目標,通過大量習(xí)題鞏固,導(dǎo)致學(xué)習(xí)思路狹窄,學(xué)完課程后不知道如何用程序設(shè)計方法解決專業(yè)問題。
(4)在高校教學(xué)改革的大趨勢下,計算機類課程課時普遍都在壓縮,要在規(guī)定的課時內(nèi)完成相同的教學(xué)任務(wù),往往會加大學(xué)時信息量,學(xué)生在課堂上囫圇吞棗,根本來不及消化所學(xué)內(nèi)容。
(5)由于地域差別,入校時學(xué)生的計算機基礎(chǔ)參差不齊。傳統(tǒng)的教學(xué)組織無法顧及學(xué)生個體差異,往往導(dǎo)致基礎(chǔ)好的學(xué)生沒吃飽,基礎(chǔ)差的學(xué)生沒吃到。
1 教學(xué)組織
計算思維是指運用計算機科學(xué)的基礎(chǔ)概念進行問題求解、系統(tǒng)設(shè)計以及人類行為理解等涵蓋計算機科學(xué)之廣度的系列思維活動[1]。在信息社會中,計算思維是人類進行問題求解的有效工具,每個人都應(yīng)該掌握并學(xué)會使用。同濟大學(xué)的龔沛曾教授等[2]將計算思維培養(yǎng)進一步細分為計算思維意識、計算思維方法和計算思維能力3個維度,為程序設(shè)計課程教學(xué)提供了更為明確的指導(dǎo)。
筆者學(xué)校C語言課程教學(xué)改革從計算思維培養(yǎng)的角度出發(fā),以應(yīng)用為背景,通過對實際案例的思考分析,借助任務(wù)驅(qū)動模式和遞進式教學(xué)法將知識點串接起來,形成邏輯清晰的脈絡(luò)和主線,加深對C語言的理解和駕馭能力,提升分析問題和解決問題的能力。課程重點是培養(yǎng)學(xué)生從計算機的角度去抽象問題,思考解決問題的方法和步驟,主動用計算思維去解決問題,有意識地應(yīng)用在專業(yè)問題中。
在教學(xué)組織上,采取漸進式分層次教學(xué)法,整個課程教學(xué)分為3個階段:①建立程序設(shè)計思想:學(xué)生能從計算思維的角度分析解決問題的方法,并轉(zhuǎn)化為程序;②強化程序設(shè)計方法:通過大量閱讀、分析程序,熟悉語法細節(jié),明確編程意圖,使學(xué)生熟練掌握常用的算法和程序設(shè)計方法;③應(yīng)用能力拓展:通過對問題的分析構(gòu)建算法,使學(xué)生具備一定的獨立解決問題能力,并根據(jù)實際要求在多種方法中找出較優(yōu)解決途徑。
2 教學(xué)內(nèi)容設(shè)計
2.1 理論教學(xué)設(shè)計
生活中的計算思維無處不在,但人們的計算思維活動是無意識的。在C語言程序設(shè)計教學(xué)中,要注意將無意識的計算思維變成有意識的、系統(tǒng)的計算思維,將知識傳授轉(zhuǎn)變?yōu)榛谥R的思維傳授[3]。C語言程序設(shè)計課程雖然從一開始就涉及到大量的語法規(guī)則細節(jié),但在具體講解時應(yīng)將生活中的活動和現(xiàn)象作為切入點,通過案例分析,積極引導(dǎo)學(xué)生思考解決問題的辦法。程序設(shè)計教學(xué)應(yīng)以發(fā)現(xiàn)問題→分析問題→尋求多種解決方案→各種解決方案對比→實現(xiàn)解決方案作為授課思路,讓學(xué)生成為問題的解決者而不僅僅是程序設(shè)計員[4]。
在C語言課程教學(xué)中,以任務(wù)驅(qū)動進行教學(xué)是培養(yǎng)學(xué)生計算思維能力的有效手段。根據(jù)計算思維培養(yǎng)的3個層次,可分為入門、鞏固、提高和創(chuàng)新4個階段[5],教師通過階梯式引導(dǎo)教學(xué),學(xué)習(xí)者根據(jù)問題解決思路進行學(xué)習(xí)、鞏固和提高,實現(xiàn)由簡單到復(fù)雜的自然過渡。如講到循環(huán)時,可以設(shè)計這樣幾個問題逐步引導(dǎo)學(xué)生理解循環(huán)結(jié)構(gòu)的使用:
①5+5+5+5+5;②1+2+3+4+5;③1*2*3*4*5(5?。?;④1!+2!+3!+4!+5!
在由單重循環(huán)過渡到多重循環(huán)的教學(xué)內(nèi)容中,可以引導(dǎo)學(xué)生按照圖1順序逐步打印圖形:
通過以上方法,不僅使學(xué)生在完成任務(wù)的互動中掌握了語法結(jié)構(gòu),而且通過思考的方式讓學(xué)生明確問題的分析過程和處理問題的計算思維方式,培養(yǎng)解決問題的能力。
2.2 實驗教學(xué)設(shè)計
C語言是一門實踐性很強的課程,實驗教學(xué)在整個教學(xué)過程中占有重要地位。通過實驗教學(xué)可以培養(yǎng)學(xué)生將理論學(xué)習(xí)中形成的解決問題思路轉(zhuǎn)化為機器實現(xiàn),逐步養(yǎng)成計算思維能力。上機之前,要求學(xué)生寫下求解問題的步驟并畫出關(guān)鍵算法的流程圖,不僅可以幫助學(xué)生明確解決問題的思路,而且可以在編寫程序時不會出現(xiàn)邏輯混亂和大的結(jié)構(gòu)性錯誤。在確定解題思路的基礎(chǔ)上再由C語言的語法規(guī)則對應(yīng)到具體的實現(xiàn)語句上,形成最終上機調(diào)試程序。程序設(shè)計語言是一種確定性的符號系統(tǒng),學(xué)生在編程中產(chǎn)生的任何問題都會在編譯、鏈接和運行的過程中表現(xiàn)出來,根據(jù)錯誤現(xiàn)象找到導(dǎo)致錯誤的原因可以使學(xué)生逐步形成理性的邏輯思維、嚴謹?shù)膶W(xué)習(xí)習(xí)慣和科學(xué)的實證精神。
綜合程序設(shè)計實踐環(huán)節(jié),選取與日常生活相關(guān)的ATM取款機、班級通訊錄和大數(shù)據(jù)計算等問題,由學(xué)生在兩周時間內(nèi)根據(jù)自己的興趣任選一設(shè)計程序,既可以鞏固C語言語法知識,又鍛煉了綜合運用C語言程序解決問題的能力。
3 基于微課的翻轉(zhuǎn)課堂教學(xué)法
翻轉(zhuǎn)課堂是在信息技術(shù)支持下,將課堂教學(xué)和課下作業(yè)的內(nèi)容、形式和目的進行翻轉(zhuǎn)。教師將教學(xué)內(nèi)容錄制為教學(xué)視頻,輔助學(xué)生在課下完成預(yù)習(xí)、學(xué)習(xí)和復(fù)習(xí)。課堂則變?yōu)榻處焸€別輔導(dǎo)、師生互動討論和解決問題的場所[6]。
C程序設(shè)計知識點繁雜、概念抽象,因此微課教學(xué)和翻轉(zhuǎn)課堂非常適合C程序設(shè)計教學(xué)。學(xué)習(xí)視頻中不僅要有預(yù)習(xí)的課程內(nèi)容,還要將C語言中難于理解的語法、程序構(gòu)建和程序分步執(zhí)行過程錄制成視頻,便于學(xué)生反復(fù)觀看。視頻可以采用真人授課或PPT播放課件,也可以采用Prezi等簡報軟件制作動態(tài)教學(xué)演示。錄制視頻可以按片段化呈現(xiàn)方式,將教學(xué)單元按照一個知識點或一個問題進行分解,時間一般控制在8分鐘以內(nèi)。學(xué)生可以利用碎片時間進行學(xué)習(xí),從任一起點反復(fù)觀看,更好地做到分層次教學(xué)。教學(xué)視頻后面緊跟4~5個小問題,幫助學(xué)生及時進行檢測,對學(xué)習(xí)情況作出判斷[7]。
翻轉(zhuǎn)課堂從以教師為中心轉(zhuǎn)變?yōu)橐詫W(xué)生為中心,學(xué)生可以完全按照自己的節(jié)奏學(xué)習(xí),其效果遠優(yōu)于傳統(tǒng)教學(xué)。翻轉(zhuǎn)教學(xué)這種主動學(xué)習(xí)的方式有利于計算思維的訓(xùn)練與形成,是培養(yǎng)計算思維很好的教學(xué)方式。
4 開展線上和課內(nèi)討論
為了在教學(xué)過程中實時進行輔導(dǎo)和組織預(yù)習(xí),跟蹤學(xué)習(xí)進程,鼓勵學(xué)生提出學(xué)習(xí)中遇到的問題。筆者組織學(xué)生建立了C語言課程QQ群,將所授班級學(xué)生加入群內(nèi)進行課程討論,作為課堂教學(xué)的有效補充。學(xué)生不僅可以利用生活中的碎片時間觀看微課視頻,還可以將學(xué)習(xí)中產(chǎn)生的問題隨時進行討論。以往只有答疑課才能得到解決的問題,在群里就可以得到老師或同學(xué)的快速響應(yīng),真正成為學(xué)生手邊的24小時課堂。筆者篩選出一些與程序設(shè)計以及目前計算機熱點技術(shù)相關(guān)的知識在群里分享,學(xué)生可以有選擇地閱讀。
為了讓大部分學(xué)生都能參與到討論中,將學(xué)生在群內(nèi)討論的活躍程度體現(xiàn)在平時成績中,通過這種方式大大增強了學(xué)生自主學(xué)習(xí)能力和探究意識,持續(xù)提升學(xué)生學(xué)習(xí)計算機和C語言的興趣,提高學(xué)生的信息素養(yǎng)。
開展小組討論是活躍課堂氣氛,提高學(xué)生課堂參與度的重要手段。討論小組一般根據(jù)學(xué)生上課時的座位隨機劃分,一般以相鄰或前后座位的3~5名同學(xué)作為一個小組,選出一位組長負責(zé)討論活動的組織和討論結(jié)果的提交。C語言中關(guān)于選擇、循環(huán)結(jié)構(gòu)程序的設(shè)計、遞歸函數(shù)的調(diào)用執(zhí)行過程以及結(jié)構(gòu)體的定義、鏈表的插入和刪除等內(nèi)容都可以組織學(xué)生進行討論。在實驗教學(xué)中也可以采取分組的教學(xué)形式,以3~4位同學(xué)組成一個實驗小組,就實驗中的解題方法和調(diào)試問題進行討論和互助,鼓勵學(xué)生盡量自己解決問題。
5 注重課程評價方式
以往的C語言課程只在期末進行統(tǒng)一考試,這種形式不利于學(xué)生持續(xù)穩(wěn)定的學(xué)習(xí)。我們對C語言的課程評價在學(xué)習(xí)的不同階段以不同形式進行考核,增加了平時成績的比重,使平時成績和期末考試成績各占總評成績的50%。具體做法是保留原來的期中和期末考試,增加單元測驗、隨堂測驗、課堂討論和網(wǎng)上討論成績。單元測驗一般采用上機考核形式,測驗內(nèi)容為基本語法規(guī)則的應(yīng)用、程序調(diào)試和小程序的編寫,考核學(xué)生對基礎(chǔ)知識的掌握情況。隨堂測驗要求學(xué)生課前指定的時間內(nèi)按要求編寫程序,經(jīng)過批改評分,逐一指出程序中的語法和邏輯錯誤,強化程序設(shè)計能力。教師根據(jù)檢查結(jié)果及時調(diào)整教學(xué)計劃和教學(xué)方法。討論則根據(jù)課堂討論和線上討論的活躍度評定成績。完成課程教學(xué)內(nèi)容后,還增加了對問題求解能力的綜合編程考核,要求學(xué)生在規(guī)定的時間內(nèi),給出求解思路,并編寫程序解決給定的問題。學(xué)生最終成績由上述成績綜合評定,客觀地反映學(xué)生的學(xué)習(xí)過程和學(xué)習(xí)效果。
6 結(jié)語
在《C語言程序設(shè)計》課程中,通過理論教學(xué)和實驗教學(xué)改革,引入微課、翻轉(zhuǎn)課堂和討論群等多元化的教學(xué)手段,以及課程評價方式的改革等舉措,提升教學(xué)效果。筆者所授課程班級連續(xù)兩年該門課程通過率100%,并有部分學(xué)生在全國或江蘇省計算機等級考試中取得了優(yōu)秀成績。在學(xué)期末的綜合程序設(shè)計中,大部分學(xué)生都游刃有余地完成了設(shè)計任務(wù),并嘗試在程序界面、系統(tǒng)運行效率和算法上進行改進和提高。實踐證明,通過主動、有意識地將計算思維培養(yǎng)融入到教學(xué)的各個環(huán)節(jié),不僅有利于學(xué)生理解程序設(shè)計的方式和方法,還有利于學(xué)生運用計算機學(xué)科的獨特思維來求解專業(yè)問題,對提高學(xué)生的信息素養(yǎng)和創(chuàng)造性地解決問題起到了積極作用。
參考文獻:
[1]WING J M.Computational thinking[J].Communication of the ACM,2006,49(3):33-35.
[2]龔沛曾,楊志強.大學(xué)計算機基礎(chǔ)教學(xué)中的計算思維培養(yǎng)[J].中國大學(xué)教學(xué),2012(5):51-54.
[3]朱鳴華,趙銘偉,趙晶,等.計算機基礎(chǔ)教學(xué)中計算思維能力培養(yǎng)的探討[J].中國大學(xué)教學(xué),2012(3):33-35.
[4]呂俊.大學(xué)計算機基礎(chǔ)教學(xué)中的計算思維養(yǎng)成[J].計算機教育,2013(5):44-46.
[5]鮑宇,孟凡榮,張艷群.“階梯式”引導(dǎo)的計算思維自主養(yǎng)成模式[J].電化教育研究, 2015(6):88-92.
[6]曾貞.翻轉(zhuǎn)教學(xué)的特征、實踐及問題[J].中國電化教育,2012(7):114-115.
[7]趙興龍.翻轉(zhuǎn)教學(xué)的先進性與局限性[J].中國教育學(xué)刊,2013(4):65-68.
(責(zé)任編輯:杜能鋼)