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