陸淑娟+呂俊
摘 要:以C語言課程為例,闡述了基于計算思維的目標確定以及釋疑啟讀,探討了在C語言教學(xué)中引入目標導(dǎo)學(xué)模式的方法和策略,旨在實現(xiàn)學(xué)生計算思維能力和創(chuàng)新實踐能力提升。
關(guān)鍵詞:計算思維;目標導(dǎo)學(xué);C語言教學(xué)
DOIDOI:10.11907/rjdk.171301
中圖分類號:G433
文獻標識碼:A 文章編號文章編號:1672-7800(2017)008-0214-02
0 引言
作為計算機基礎(chǔ)教學(xué)中的一門重要課程,C語言在很多高等院校都作為理工科學(xué)生的必修課。計算機語言課程的目的在于培養(yǎng)學(xué)生分析問題和解決問題的能力。而在實際教學(xué)中,有很多教師對于課堂教學(xué)隨意性強,教學(xué)效果不甚理想,對學(xué)生的要求也只注重程序編寫而忽略了思維能力的培養(yǎng)。同時,學(xué)生往往也會因為繁瑣的語法和對算法的不甚理解最終失去學(xué)習(xí)興趣。
在教學(xué)中引入目標導(dǎo)學(xué)模式,可以將傳統(tǒng)的“講授—聽課”關(guān)系轉(zhuǎn)變成“引導(dǎo)—參與”模式,通過以計算思維的培養(yǎng)來設(shè)定目標,實現(xiàn)以教師為主導(dǎo)、學(xué)生為主體的“雙主教學(xué)”來激發(fā)學(xué)生的學(xué)習(xí)動機,從而達到提升學(xué)生計算思維能力和創(chuàng)新實踐能力的目的。
1 目標導(dǎo)學(xué)模式內(nèi)涵
美國著名的心理學(xué)家,教育家布魯姆在20世紀中期發(fā)表了著作《教育目標分類學(xué)》和《掌握學(xué)習(xí)理論導(dǎo)言》,而目標導(dǎo)學(xué)正是在“目標分類”和“掌握學(xué)習(xí)”這兩大理論基礎(chǔ)上發(fā)展出來的一種教學(xué)模式,它是一種以教學(xué)目標為核心和主線實施課堂教學(xué)的方式。這種模式下,教師作為主導(dǎo),以教學(xué)目標為導(dǎo)向引領(lǐng)、指導(dǎo)學(xué)生圍繞目標展開一系列的教學(xué)活動,最終完成教學(xué)任務(wù)。學(xué)有目標,則更能激發(fā)學(xué)生的學(xué)習(xí)興趣和主動性;目的明確,學(xué)生的積極性被充分調(diào)動,在教師的引導(dǎo)下真正成為學(xué)習(xí)的主體。相比其它教學(xué)法,目標導(dǎo)學(xué)更注重教學(xué)的過程和效果,而學(xué)生也能在較短的時間內(nèi)獲得達標后的喜悅感和成就感,從而形成良性循環(huán),促使學(xué)生更加努力地想要完成下一個目標。
2 計算思維能力要義
計算思維概念的提出,起源于美國麻省理工學(xué)院西蒙·帕佩特(Seymour Papert)教授,而美國卡內(nèi)基梅隆大學(xué)周以真教授則對其進行了系統(tǒng)闡述和推廣。周以真教授將計算思維定義為:“計算思維涉及運用計算機科學(xué)的基礎(chǔ)概念去求解問題、設(shè)計系統(tǒng)和理解人類的行為。計算思維涵蓋了反映計算機科學(xué)之廣泛性的一系列思維活動?!彼J為,計算思維可以通過約簡、嵌入、轉(zhuǎn)化和仿真等方法把一個看起來困難的問題重新闡述成一個大家知道怎樣解決的問題。計算思維代表著一種普遍的認識和一類普適的技能,每一個人都應(yīng)熱心于它的學(xué)習(xí)和運用[1]。隨著國外計算思維的興起,國內(nèi)計算機教育界也對計算思維進行了探索和研究,哈爾濱工業(yè)大學(xué)戰(zhàn)德臣教授等[2]用“計算之樹”給出了計算思維多維度的表述框架,認為“0 和1”、“程序”、“遞歸”三大思維最為重要。而九校聯(lián)盟[3]在《計算機基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略聯(lián)合聲明》中也強調(diào)要把培養(yǎng)學(xué)生的計算思維能力作為計算機基礎(chǔ)教學(xué)的核心任務(wù)。
3 目標導(dǎo)向模式在C語言中的教學(xué)組織
當前,如何將計算思維理念融入到計算機語言教學(xué)中,培養(yǎng)學(xué)生的計算思維能力,成為計算機教學(xué)研究的焦點,國內(nèi)外的探索也取得了一定的成果,但尚未形成一套完整有效的教學(xué)模式。通過在教學(xué)中的不斷摸索,發(fā)現(xiàn)在計算機語言教學(xué)中非常適合融入計算思維。以C語言為例,首先教學(xué)目的是為了讓學(xué)生學(xué)習(xí)計算機分析、解決問題的思路和方法,培養(yǎng)學(xué)生運用計算機技術(shù)去解決問題的能力,這正是計算思維的一個方面;其次,語言課程的內(nèi)容也非常好地體現(xiàn)了語言級問題的求解方法,這也是計算思維能力培養(yǎng)的重要內(nèi)容。與此同時,也發(fā)現(xiàn)C語言中很多生動有趣的案例都可以和語法結(jié)合起來設(shè)置成一個個學(xué)習(xí)目標。因此,圍繞學(xué)生計算思維能力培養(yǎng)這一核心任務(wù),在C語言教學(xué)中構(gòu)建目標導(dǎo)學(xué)模式,可以達到事半功倍的教學(xué)效果。
3.1 教學(xué)目標設(shè)計
將目標導(dǎo)學(xué)運用到C語言教學(xué)中,首先要示標,通過出示教學(xué)目標,喚起學(xué)生的參與意識,產(chǎn)生學(xué)習(xí)動機,并對學(xué)習(xí)起到引導(dǎo)和激勵的作用。教學(xué)目標是每堂課的出發(fā)點也是最終的歸宿,它應(yīng)該有明確的教學(xué)內(nèi)容和要求,一個好的教學(xué)目標應(yīng)該不過于簡單也不過于難,能讓學(xué)生在積極思考后體會達成目標的快樂,這樣才能充分激發(fā)學(xué)生的學(xué)習(xí)興趣[4]。同時,目標還應(yīng)該具有啟發(fā)性,培養(yǎng)學(xué)生的創(chuàng)造性,激發(fā)學(xué)生的探究性,從而培養(yǎng)學(xué)生的思維能力。因此,目標確定非常重要。設(shè)計目標時應(yīng)遵循以下原則:
(1)以計算思維培養(yǎng)為目標。傳統(tǒng)的程序設(shè)計教學(xué)普遍重視編程能力的培養(yǎng),對計算思維的本質(zhì)“抽象和自動化”關(guān)注較少。抽象過程就是對問題系統(tǒng)進行建模的過程,是從現(xiàn)實世界——信息世界——機器世界的轉(zhuǎn)變。而自動化則是指“機械式”地按照步驟自動執(zhí)行,所以對問題的求解要有精確的算法描述和嚴格的符號表示。因此,在設(shè)定目標時,可以選擇一些生活化的案例,讓學(xué)生體會如何用計算機解決問題的方法來解決實際生活中的問題,這個過程恰恰就是計算思維培養(yǎng)的過程。例如在分支選擇部分選擇超市打折問題、稅率計算問題等。學(xué)生在完成目標時,首先要對現(xiàn)實問題建立模型,寫出對應(yīng)的分段函數(shù),然后再轉(zhuǎn)變成C語言的算法描述,并且嚴格地定義符號表示每個需要計算的量,也即變量,根據(jù)算法描述運用if—else—else if—和switch結(jié)構(gòu)分別寫出對應(yīng)的代碼,最終完成多分支選擇結(jié)構(gòu)的學(xué)習(xí)目標,在整個過程中,引導(dǎo)學(xué)生逐步理解并使用抽象化和自動化的方法,慢慢提升計算思維能力。
(2)目標要具有層次性。由于地域的差異,學(xué)生的基礎(chǔ)水平參差不齊,傳統(tǒng)的教學(xué)組織方式無法照顧到所有學(xué)生,很容易造成“優(yōu)生吃不飽,差生吃不到”的情況。因此,在設(shè)定目標時要充分考慮群體的層次性,可以設(shè)定基本性、提高性、拓展性等不同目標,學(xué)生可以根據(jù)目標層次循序漸進地學(xué)習(xí),這樣也就做到了讓差生學(xué)有所獲,讓中等生學(xué)得踏實,也能讓優(yōu)等生吃得飽。例如,在講述循環(huán)時,同一個問題“分解一個整數(shù)的各位數(shù)”,就可以讓不同層次的學(xué)生用不同的方法求解,從而完成不同的學(xué)習(xí)目標?;A(chǔ)較弱的學(xué)生可以采用百、十、個位數(shù)分別分解的方法如“a=x/100;b=(x-a*100)/10;c=x%10”來完成,這里的學(xué)習(xí)目標僅在溫故,進一步熟練掌握并使用上一講中的數(shù)學(xué)運算符和表達式;中等學(xué)生可以用循環(huán)方法如“while(x>0) {a=x%10;printf(“%d”,a);x=x/10}”來求解,這里的學(xué)習(xí)目標是循環(huán),通過程序掌握while循環(huán)的使用方法,了解循環(huán)是重復(fù)執(zhí)行一組相同的操作;而學(xué)有余力的學(xué)生則可以在此基礎(chǔ)上進一步拓展,要求他們將分解后的各位數(shù)重新組合成原數(shù)的逆序數(shù)。這里較高的層次都是在較低層次上的一個遞進,這樣就可以在同一個課堂上讓不同層次的學(xué)生都能完成目標,體會達標的欣喜,同時,也可以激勵基礎(chǔ)較弱的學(xué)生,激發(fā)他的好奇心、好勝心,培養(yǎng)他的進取心。endprint
3.2 自學(xué)探索,討論釋疑
在教師展示目標之后,則是學(xué)生的自學(xué)探索階段,對需要完成的目標內(nèi)容進行思考,進而生疑,或者由教師進行設(shè)疑,而后共同討論釋疑。這個過程也是目標導(dǎo)學(xué)的核心,它將傳統(tǒng)的“以教為主”轉(zhuǎn)變?yōu)槠降鹊摹敖虒W(xué)互動”,充分發(fā)揮學(xué)生的主體性,避免學(xué)生依賴教師,思維產(chǎn)生惰性。同時這個過程也正是培養(yǎng)計算思維非常重要的時機,在啟讀、釋疑的過程中轉(zhuǎn)變、培養(yǎng)學(xué)生的計算思維,對學(xué)生解決問題的方法進一步地分析、總結(jié)、改進,將計算思維的優(yōu)化特征充分融入到程序的設(shè)計過程中。
例如,在設(shè)定目標求解1+2+…+100時,有學(xué)生直接用等差數(shù)列的求和公式進行計算,而百錢買百雞問題,則有學(xué)生提出疑問認為無法解,因為3個未知量只有2個方程式,這些都是典型的數(shù)學(xué)思維,在計算機世界,會用重復(fù)的累加完成1~100的求和,會用窮舉法列舉公雞、母雞、小雞的所有可能組合,這些看起來費力的笨辦法卻正是計算機所擅長的,因此,在討論過程中要轉(zhuǎn)變學(xué)生思維,引導(dǎo)學(xué)生學(xué)會將一個問題轉(zhuǎn)化成簡單而有規(guī)律的重復(fù)運算,這正是使用計算機科學(xué)對問題求解的一種思維方法和能力。
另外,在算法設(shè)計中,不僅要實現(xiàn)問題的解決,還要尋找最優(yōu)的算法。比如上文提到的百錢買百雞問題,根據(jù)窮舉法寫出程序如下:
For(i=0;i<=100;i++)
For(j=0;j<=100;j++)
For(k=0;k<=100;k++)
If(i+j+k==100 && i*5+j*3+k/3.0==100)
Printf(“%d,%d,%d”,I,j,k)
而根據(jù)題意,利用i+j+k=100可將三層循環(huán)減為兩層,并根據(jù)價格縮小窮舉范圍,修改后代碼如下:
For(i=0;i<=20;i++)
For(j=0;j<=33;j++)
{ k=100-i-j;
if( i*5+j*3+k/3.0==100)
Printf(“%d,%d,%d”,i,j,k);
}
循環(huán)執(zhí)行的規(guī)模一下子從106減小到600多。再比如數(shù)組一章中的冒泡排序,極端情況下每一次比較都要進行元素的交換,而對算法進行優(yōu)化以后,可以在一趟比較中找出一個最大元素和最后一個交換,這樣大大減少了元素的交換次數(shù)。正是這樣,在討論過程中,把計算思維一點一點地融入到教學(xué)過程中,讓學(xué)生養(yǎng)成一種自覺運用計算思維解決問題的習(xí)慣,這也是程序設(shè)計課程的價值所在[5]。
3.3 反饋測試、歸納總結(jié)
根據(jù)學(xué)習(xí)目標,了解學(xué)生的掌握情況,可以提問的方式、學(xué)生主動講述的方式或是競答的方式,讓學(xué)生在完成目標后能得到驗證和表現(xiàn)。這個環(huán)節(jié)是目標導(dǎo)學(xué)的目的也是歸宿,是對前面環(huán)節(jié)學(xué)習(xí)效果的總體反饋,也是對知識的查漏補缺。教師應(yīng)對學(xué)生獲得的成果給予充分的肯定和激勵,再進行歸納總結(jié),強調(diào)重點,達到鞏固知識的目的。
4 結(jié)語
著名的計算機科學(xué)家、圖靈獎得主艾茲格·迪杰斯特拉(Edsger Wybe Dijkstra)說:“我們所使用的工具影響著我們的思維方式和思維習(xí)慣,從而也將深刻地影響著我們的思維能力[6]?!?在計算機成為這個時代最為有力的工具時,計算思維的培養(yǎng)也變得日益重要,它不僅可以幫助人們更好地解決身邊遇到的問題,還將有助于人們在今后從事的事業(yè)中更有效地運用專業(yè)知識。因此,在課程中進行計算思維能力的培養(yǎng)是一個值得深入研究的課題。
參考文獻:
[1] 郭喜鳳,孫兆豪,趙喜清.論計算思維工程化的層次結(jié)構(gòu)[J].計算機科學(xué),2009(4):64-67.
[2] 戰(zhàn)德臣,聶蘭順.計算思維與大學(xué)計算機課程改革的基本思路[J].中國大學(xué)教學(xué),2013(2):56-60.
[3] 董榮勝.《九校聯(lián)盟(C9)計算機基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略聯(lián)合聲明》呼喚教育的轉(zhuǎn)型[J].中國大學(xué)教學(xué),2010(10):14-15.
[4] 韓麗紅.“目標導(dǎo)學(xué)法”在教學(xué)中的應(yīng)用[J].科教文匯:中旬刊,2008(11):95.
[5] 李妮.基于計算思維能力培養(yǎng)的C語言程序設(shè)計課程改革[J].運城學(xué)院學(xué)報,2014(5):72-74.
[6] 王玉鋒,孔繁之.基于計算思維的計算機教學(xué)研究[J].計算機教育,2013(13):57-59.endprint