穆煒煒
摘 要: 在相關(guān)教育部門大力倡導(dǎo)培養(yǎng)學(xué)習(xí)者計算思維的背景之下,分析C語言教學(xué)對計算思維的培養(yǎng)特點,通過以計算思維為方法指導(dǎo)的任務(wù)驅(qū)動式和拋錨式教學(xué)模式組織教學(xué)過程、整合教學(xué)內(nèi)容,對傳統(tǒng)教學(xué)方法進(jìn)行改革。探索C語言課程對學(xué)習(xí)者計算思維提升的教學(xué)策略,進(jìn)而改變C語言課程學(xué)習(xí)積極性不高、教學(xué)效果不佳的現(xiàn)狀。
關(guān)鍵詞: C語言 計算思維 提升策略
1.引言
自2006年3月美國卡內(nèi)基·梅隆大學(xué)的周以真教授對“計算思維”定義以來,培養(yǎng)學(xué)習(xí)者的計算思維和利用計算機(jī)求解問題的能力受到普遍關(guān)注。2010年11月,陳國良院士在第六屆大學(xué)計算機(jī)課程報告論壇上正式提出將培養(yǎng)計算思維能力作為計算機(jī)基礎(chǔ)課程改革的切入點的倡議[1],順應(yīng)新時代對教學(xué)體系改革的呼聲。C語言程序課程是一門重要的,對初學(xué)者有一定難度的計算機(jī)基礎(chǔ)課程。目前大多采用以教師為主的講授法,引導(dǎo)學(xué)生進(jìn)行知識探究,學(xué)習(xí)者存在興趣不濃、學(xué)習(xí)效果不佳的情況。如何將計算思維培養(yǎng)融入C語言程序設(shè)計教學(xué),探索教學(xué)改革策略是本文討論的重點問題。
2.C語言教學(xué)對計算思維的培養(yǎng)特點
2.1計算思維的內(nèi)涵
計算思維是一種思維過程,具備一定的計算思維,將問題清晰、抽象地描述出來并將解決方案表示為一個信息處理流程,不僅限于計算機(jī)科學(xué)領(lǐng)域和科學(xué)家,更應(yīng)是每個人的一項基本技能,就像閱讀、寫作與算術(shù)一樣。計算思維的本質(zhì)是運(yùn)用計算機(jī)科學(xué)的基礎(chǔ)概念如約簡、轉(zhuǎn)化和仿真、遞歸、并行、抽象和分解等求解問題、設(shè)計系統(tǒng)和理解人類的行為[2]。
2.2C語言課程與計算思維的辯證關(guān)系
C語言是一門基礎(chǔ)的計算機(jī)語言,是人和計算機(jī)之間進(jìn)行交流的一種工具。對于計算機(jī)相關(guān)專業(yè)學(xué)習(xí)者來說,學(xué)習(xí)C語言可以掌握程序設(shè)計的思想,有助于其他計算機(jī)語言學(xué)習(xí)。對于其他眾多工科類專業(yè)學(xué)習(xí)者來說,C語言是計算機(jī)技術(shù)基礎(chǔ)課程,有助于相關(guān)專業(yè)課程學(xué)習(xí)。開設(shè)C語言課程的目的不僅是使學(xué)習(xí)者如何使用計算機(jī)編程,而且要培養(yǎng)學(xué)習(xí)者的邏輯思維和解決問題的方式。
在C語言教學(xué)中,應(yīng)用任務(wù)驅(qū)動式、探究式教學(xué)方法可以起到激發(fā)學(xué)習(xí)者學(xué)習(xí)興趣的目的。而將計算思維運(yùn)用到教學(xué)當(dāng)中,應(yīng)用抽象、分解、約簡的思想,使其和現(xiàn)代教學(xué)模式相結(jié)合進(jìn)行教學(xué)設(shè)計并實施和評價教學(xué)活動,能夠突破以知識為本位的培養(yǎng)模式,實現(xiàn)對能力和思維方式的培養(yǎng),提高學(xué)習(xí)者學(xué)習(xí)效率。
3.C語言教學(xué)對計算思維的培養(yǎng)策略
3.1C語言課程教學(xué)情況分析
C語言是一門應(yīng)用性很強(qiáng)的課程,傳統(tǒng)教學(xué)較關(guān)注知識的系統(tǒng)性和完整性,學(xué)習(xí)者對知識的建構(gòu)主動性不高,教學(xué)往往遵循教材順序講授各個知識點。一種程序設(shè)計語言必然有其較煩瑣的語法,若教學(xué)著力點在于語法,必然造成學(xué)習(xí)者在學(xué)習(xí)過程中認(rèn)為C語言的學(xué)習(xí)就是枯燥的語法規(guī)范,而忽視解決問題的思路,造成“只見樹木不見森林”的現(xiàn)象[4],久而久之學(xué)習(xí)者的學(xué)習(xí)興趣逐漸耗盡,缺乏學(xué)習(xí)動力。C語言教學(xué)普遍存在實踐學(xué)時不足的情況,在學(xué)習(xí)理論知識后更多的是通過實踐深化知識,提高對知識點的應(yīng)用能力,能否利用所學(xué)知識解決實際問題,是檢驗教學(xué)效果和學(xué)習(xí)者的知識遷移能力的重要指標(biāo)。另外C語言課程的考核方式多數(shù)以終結(jié)性考試為主,考核方式較單一。
3.2以任務(wù)驅(qū)動為手段組織教學(xué)過程
計算思維最重要的就是幫助人們在真實情況下對問題進(jìn)行抽象,并解決問題。而建構(gòu)主義教學(xué)理論認(rèn)為通過為學(xué)習(xí)者提供實踐和問題的情境,能夠激發(fā)和加強(qiáng)學(xué)習(xí)者的學(xué)習(xí)動機(jī),通過自主和協(xié)作學(xué)習(xí)方式完成知識構(gòu)建,并以任務(wù)完成情況檢驗學(xué)習(xí)效果,學(xué)習(xí)效率更高。因此,以任務(wù)驅(qū)動為主要手段組織教學(xué)內(nèi)容是培養(yǎng)學(xué)習(xí)者計算思維的有效方式之一[3]。
任務(wù)驅(qū)動式教學(xué)模式可以分為設(shè)計任務(wù)、認(rèn)識任務(wù)、實施任務(wù)、評價任務(wù)四個階段。
在C語言教學(xué)中,首先根據(jù)學(xué)習(xí)者的認(rèn)知規(guī)律創(chuàng)設(shè)與學(xué)習(xí)主題相關(guān)聯(lián)的、盡可能真實的學(xué)習(xí)情境,最好是與原有知識經(jīng)驗相聯(lián)系。例如,在數(shù)組這一章,引入選秀比賽打分晉級的案例,學(xué)習(xí)者對這種場景已經(jīng)非常熟悉,如何讓編寫C程序自動為選手評分呢?自然激發(fā)學(xué)習(xí)興趣。然后以這一項目的解決方案為主線,設(shè)計后續(xù)認(rèn)識一維數(shù)組、一維數(shù)組的應(yīng)用、認(rèn)識二維數(shù)組、二維數(shù)組的應(yīng)用的學(xué)習(xí)任務(wù)。
二是根據(jù)教學(xué)目標(biāo)設(shè)計學(xué)習(xí)任務(wù),串聯(lián)學(xué)習(xí)內(nèi)容,需要教師熟悉教學(xué)內(nèi)容和學(xué)習(xí)者學(xué)習(xí)情況靈活應(yīng)用。例如,C語言中的運(yùn)算符很多,如果一次全部拋出,必然使初學(xué)者覺得枯燥,而且不知道究竟應(yīng)該將這些知識應(yīng)用在何處,教學(xué)效果差強(qiáng)人意。所以要適當(dāng)改變教學(xué)順序,在具體解決實際問題的算法中增加相應(yīng)的知識點。
三是在實施任務(wù)階段,雖然強(qiáng)調(diào)學(xué)習(xí)者的主體性和協(xié)作性,但是由于學(xué)習(xí)者知識與經(jīng)驗所限,對于一些較復(fù)雜的問題依然無從下手,此時教師的作用就顯得尤為關(guān)鍵,需要運(yùn)用計算思維通過約簡、嵌入、轉(zhuǎn)化和仿真等方法幫助學(xué)生進(jìn)行任務(wù)分析與分解,對學(xué)習(xí)者進(jìn)行引導(dǎo)。例如選秀比賽評委打分從低到高進(jìn)行排列的問題可以約簡為理解數(shù)組存儲方式和數(shù)組排序問題。
四是任務(wù)評價,分為總結(jié)性評價和形成性評價兩種。在評價前教師要進(jìn)行項目小結(jié),學(xué)習(xí)者可以通過教師評價總結(jié)和反思學(xué)習(xí)過程,對完成任務(wù)的過程和結(jié)果進(jìn)行評價。另外教師設(shè)置觀察點,如學(xué)習(xí)態(tài)度、知識點掌握程度、小組間交流合作、個人表現(xiàn)等進(jìn)行自評和互評。
3.2以拋錨式教學(xué)模式組織學(xué)習(xí)的路徑
拋錨式教學(xué)也稱“實例式教學(xué)”或“基于問題的教學(xué)”。所謂“錨”是指某種問題的情境,要求學(xué)習(xí)者到實際環(huán)境中感受和體驗問題,而不是聽這種經(jīng)驗的間接介紹和講解[5]。通過鑲嵌式教學(xué)和成員間的合作學(xué)習(xí)與自主學(xué)習(xí)相結(jié)合實現(xiàn)學(xué)習(xí)目標(biāo)。拋錨式教學(xué)是使學(xué)習(xí)者學(xué)會獨立識別問題、提出問題、解決真實問題的十分重要的途徑。拋錨式教學(xué)可以分為創(chuàng)設(shè)情境、確定問題、自主學(xué)習(xí)、協(xié)作學(xué)習(xí)、效果評價幾個環(huán)節(jié)[6]。
創(chuàng)設(shè)情境的目的是使學(xué)習(xí)在和現(xiàn)實情況基本一致或相類似的情境中發(fā)生,如在字符與字符串這章,引入一個檢驗密碼的程序,用戶有三次機(jī)會輸入正確密碼的問題,由于前面的學(xué)習(xí)基礎(chǔ),學(xué)習(xí)者很容易想到用循環(huán)語句控制輸入的次數(shù),這是已有的知識,但輸入的密碼是一個字符串,就涉及字符串的存儲和比較問題,這就平穩(wěn)地過渡到新知識點中,從而確立學(xué)習(xí)問題,這是拋錨的過程。
計算思維的培養(yǎng)必然依賴于對學(xué)習(xí)者自主學(xué)習(xí)能力的培養(yǎng),而拋錨式教學(xué)特點之一便是由教師向?qū)W習(xí)者提供解決問題的有關(guān)線索,而不是由教師直接告訴學(xué)習(xí)者應(yīng)當(dāng)如何解決面臨的問題,教師通過字符數(shù)組的定義、賦值進(jìn)行相應(yīng)知識點的鏈接,建立學(xué)習(xí)支架。為學(xué)生提供常用的字符串函數(shù)列表,讓學(xué)習(xí)者通過自主、協(xié)作學(xué)習(xí)方式找到需要字符串比較函數(shù)。然后引導(dǎo)學(xué)生進(jìn)行總結(jié),完成情境問題的關(guān)鍵步驟可以分為相關(guān)變量的定義、判斷輸入密碼是否正確、控制密碼輸入的次數(shù)。討論結(jié)束后自主編寫程序,在效果評價環(huán)節(jié)先進(jìn)行小組自評,然后由教師組織互評,特別對解決問題的方法是否唯一進(jìn)行討論。總之,通過創(chuàng)設(shè)情境激發(fā)學(xué)習(xí)者的學(xué)習(xí)興趣,通過拋錨、搭建支架、討論、探究和實踐引導(dǎo)學(xué)生逐步學(xué)習(xí)知識點,這是計算思維利用啟發(fā)式推理尋求問題解答的過程。
4.對計算思維培養(yǎng)的總結(jié)與評價
目前,我校C語言程序設(shè)計主要針對信息類專業(yè)開設(shè),通過一學(xué)期教學(xué)實踐,對學(xué)習(xí)者的學(xué)習(xí)興趣、學(xué)習(xí)態(tài)度、個人表現(xiàn)、團(tuán)隊合作和課程成績等維度進(jìn)行比較,學(xué)習(xí)者的學(xué)習(xí)積極性普遍提高,對C語言學(xué)習(xí)有可喜的進(jìn)步。在采用任務(wù)驅(qū)動式和拋錨式教學(xué)過程中,以計算思維為方法指導(dǎo),使自主、協(xié)作分析與探究問題的解決方案養(yǎng)成一種習(xí)慣。
5.結(jié)語
計算機(jī)科學(xué)并不僅提供一些技術(shù)、一些硬軟件和系統(tǒng),還提供一種思維模式。是對所有領(lǐng)域、職業(yè)都適用的,都是能從中受益的。如何培養(yǎng)學(xué)習(xí)者的計算思維將是一項長期而艱巨的工作,需要除了C語言課程之外的其他課程的共同培養(yǎng)。
參考文獻(xiàn):
[1][3]康葦葦.基于計算思維的C語言教學(xué)模式分析與案例設(shè)計[M].重慶師范大學(xué),2015.4.
[2]Jeannette M.Wing.走進(jìn)計算性思維——微軟亞太教育峰會.天津,2012.1.
[4]楊陽,沈黎,楊明,等.電類大平臺下C語言教學(xué)與實踐探索[J].西南師范大學(xué)學(xué)報(自然科學(xué)版),2014,39(5).
[5]任仲晟.計算思維與實例相結(jié)合為導(dǎo)向的C語言公共課教學(xué)研究[J].新課程研究,2016.9.
[6]申慧芳.拋錨式教學(xué)模式在C語言教學(xué)中的嘗試[J].電腦知識與技術(shù),2010.9(6).