穆靜 白小軍 陳芳
摘要:針對計算機專業(yè)大一新生在《C語言程序設(shè)計》的實踐教學(xué)中存在的問題,深刻體會到計算思維在C語言的實踐教學(xué)中的作用越來越大,因此在C語言實踐教學(xué)中培養(yǎng)學(xué)生具有計算思維能力也越來越重要,而對學(xué)生計算思維能力的培養(yǎng)是使C語言實踐教學(xué)從單純的一種編程工具向培養(yǎng)學(xué)生的計算思維和問題求解能力轉(zhuǎn)變。該文介紹了計算思維的定義及包含的內(nèi)容,然后通過以往的教學(xué)經(jīng)驗深刻分析了計算思維在C語言實踐教學(xué)中的體現(xiàn)。
關(guān)鍵詞:C語言程序設(shè)計;計算思維;實踐教學(xué)
中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2016)36-0151-02
1 引言
目前計算機基礎(chǔ)教育已成為當代大學(xué)生的一門必修課程,而對于計算機專業(yè)的學(xué)生,《C語言程序設(shè)計》是一門特別重要的且實踐性很強的專業(yè)基礎(chǔ)課程。對于一名新生來說,在實踐教學(xué)環(huán)節(jié)(實驗和課程設(shè)計兩個環(huán)節(jié))中的思考問題的思維轉(zhuǎn)變覺得很困難。目前,國內(nèi)外的最新研究成果發(fā)現(xiàn)計算思維在計算機基礎(chǔ)課程教學(xué)的地位和作用越來越突出,許多國外頂尖大學(xué)的知名學(xué)者,以及國內(nèi)許多院士和教授的注意,在信息的時代,網(wǎng)絡(luò)和互聯(lián)網(wǎng)+時代,如何改革的思維方式,更新教學(xué)理念,特別是改變教師的教學(xué)和學(xué)生的學(xué)習(xí)風(fēng)格,值得每一份工作.在《C語言程序設(shè)計》的實踐教學(xué)中,如何要求學(xué)生具有計算思維,顯得尤為重要。
實際上,對于一個大學(xué)一年級學(xué)生,計算思維是很難理解的,下面首先介紹什么是計算思維和包含的內(nèi)容。而學(xué)生只簡單地了解計算思維的內(nèi)容還是不夠的,讓學(xué)生首先知道計算思維在C 語言課程的實踐教學(xué)中的體現(xiàn),進而真正理解計算思維的內(nèi)涵并培養(yǎng)在C語言課程的實踐教學(xué)中培養(yǎng)計算思維的能力。
2 計算思維的定義和內(nèi)容
2006年3月,美國卡內(nèi)基梅隆大學(xué)教授、周真的電腦在美國權(quán)威雜志的計算提出了ACM通訊”思維的概念和定義。計算機思維是使用計算機解決問題的基本概念,系統(tǒng)設(shè)計、理解人類行為和一系列的思維活動,其本質(zhì)是抽象和自動化,即如何根據(jù)計算機解決職業(yè).
計算思維主要包括內(nèi)容[1]:
1) 通過簡約、嵌入、轉(zhuǎn)化和仿真等方法,把一個困難的問題闡述成一個我們知道問題怎樣解決的思維方法;
2) 是一種遞歸思維和并行處理,把代碼譯成數(shù)據(jù)又能把數(shù)據(jù)譯成代碼,是一種基于多維推廣的類型檢查方法;
3) 是一種采用抽象和分解來控制龐雜任務(wù)或進行巨大的任務(wù)系統(tǒng)設(shè)計的方法,是一種基于關(guān)注點分解的方法;
4) 是一種選擇合適的方法陳述一個問題,或?qū)σ粋€問題的相關(guān)方面建模使其易于處理的思維方法;
5) 按照預(yù)防、保護及通過冗余、容錯、糾錯的方式,并從最壞情況進行系統(tǒng)恢復(fù)的一種思維方法;
6) 利用啟發(fā)式推理尋求解答,也即在不確定情況下的規(guī)劃、學(xué)習(xí)和調(diào)度的思維方法;
7) 利用海量數(shù)據(jù)來加快計算,在時間和空間之間,在處理能力和存儲容量之間進行折衷的思維方法。
3 計算思維在《C語言程序設(shè)計》的實踐教學(xué)中的體現(xiàn)
《C語言程序設(shè)計》課程的實踐教學(xué)目的是希望通過上機實驗和課程設(shè)計兩個環(huán)節(jié),使學(xué)生全面掌握《C語言程序設(shè)計》的語法規(guī)則、算法的基本知識以及面對具體的問題如何設(shè)計算法,使學(xué)生掌握如何應(yīng)用C語言解決一個具體的應(yīng)用問題。使用C語言實現(xiàn)算法時,具備排除邏輯錯誤,調(diào)試并成功運行的能力;在排除邏輯錯誤時,培養(yǎng)學(xué)生分析問題能力,最終使學(xué)生運用C語言知識解決專業(yè)領(lǐng)域的實際問題。
下面以一個具體的學(xué)生成績管理系統(tǒng)的例子分析計算思維在實踐教學(xué)中的體現(xiàn)。
利用鏈表設(shè)計學(xué)生成績管理系統(tǒng)。具體的功能模塊如下:1)輸入記錄模塊:從鍵盤逐個輸入學(xué)生記錄;2)查詢記錄模塊;4)更新記錄模塊;5)統(tǒng)計學(xué)生的某門課程的平均成績和方差;6)輸出記錄模塊:顯示所有學(xué)生的信息。
3.1 C語言實踐教學(xué)中的抽象計算思維
抽象計算思維是如何把實際的問題進行抽象,建模成計算機識別的過程。建模過程是建立客觀事物的一種抽象的表示方法是用來表示事物和事物本身的理解,同時組織這種概念和邏輯概念的理解,形成的表達目標對象的內(nèi)部結(jié)構(gòu)和工作原理。如何將抽象計算思維在《C語言程序設(shè)計》課程的實踐教學(xué)中教給學(xué)生呢?由于面對的是大一新生,因此需要在授課時盡量理論聯(lián)系實際,使用通俗易懂的實例進行解釋,然后就一個具體的問題進行講解,進行實際的運行和數(shù)據(jù)測試,使用這種教學(xué)方法以語法教學(xué)為中心的編程轉(zhuǎn)換成面向問題解決程序設(shè)計教學(xué)中,從這個問題開始,抽象的算法來解決這個問題,然后用C語言實現(xiàn)自動化,解決這個問題通過這樣一個常見的線程來計算思維的本質(zhì),抽象和自動化,貫穿于C語言的實踐教學(xué)中,使得C語言實踐教學(xué)從驗證語法的知識點轉(zhuǎn)變?yōu)橹v授計算思維和問題求解的過程,以達到突出思維方法訓(xùn)練的目的。如例子中的學(xué)生我們可以根據(jù)實際要求可以將學(xué)生信息抽象為具有學(xué)號,姓名,性別,成績和班級等信息。然后根據(jù)問題的需要,將學(xué)生建模為包含學(xué)號,姓名,性別,成績和班級等信息的結(jié)構(gòu)體,然后在此基礎(chǔ)上,設(shè)計實現(xiàn)問題的算法。
3.2 C語言實踐教學(xué)中的分而治之的計算思維
如何對大的問題分而治之,逐步細化,設(shè)計出功能比較單一的模塊。為了解決一個大問題,可以:1)它是分成兩個或兩個以上的小問題;2)分別每個小問題;每個小問題解決方案3)相結(jié)合,可以得到答案。小問題往往類似于最初的問題,可以遞歸地使用分而治之的策略來解決。
如例子中的查詢功能模塊可包括查找最高分和不及格的學(xué)生并把該學(xué)生信息顯示出來。更新模塊可以分解成修改某一個學(xué)生的信息,對學(xué)生按照學(xué)號和成績就行排序(升序或者降序);求出每個學(xué)生的平均成績。插入一個學(xué)生信息;刪除一個學(xué)生的信息。
3.3 改變主體思維——從以“我”為中心到以計算機為中心
改變學(xué)生的主體意識,從以我為主體改變成以計算機為主體。通過我這幾年的教學(xué),我發(fā)現(xiàn)學(xué)生在遇到問題的時候總是試圖按照自己的慣性思維找錯誤,而不是通過計算機的思維去尋找錯誤,所以有時多個人只是按照自己在書本上提供的語法規(guī)則找錯誤,浪費了大量的時間,到最后也沒找到錯誤,所以要改變以計算機為主體,而不是以人為主體,充分利用斷點單步運行,一步一步觀察和分析計算機怎么運行程序的,邏輯順序是如何的,通過對變量值進行一步一步地監(jiān)控,才能把錯誤分析到。
通過研究C語言實踐教學(xué)中的“計算思維”體現(xiàn),將實踐教學(xué)中涉及的計算思維,通過計算機實驗和課程設(shè)計學(xué)生使用這些獨立思考解決實際問題,幫助他們理解“思維是什么?如何應(yīng)用計算思維解決問題,解決問題的獨立建設(shè)和計算思維,鍛煉自己的計算能力,在以后的學(xué)習(xí)與創(chuàng)新思維為他們打下堅實的基礎(chǔ)。
4結(jié)論
在C語言編程的過程中,引入計算思維的實踐教學(xué),可以有效地促進學(xué)生學(xué)習(xí)“C語言程序設(shè)計”課程的主動性,同時也能培養(yǎng)學(xué)生的思維能力,使學(xué)生使用C語言課程知識實際問題更感興趣的是設(shè)計和編程,能夠產(chǎn)生更多的計算機程序設(shè)計人才。
雖然通過一門C語言的實踐教學(xué)培養(yǎng)學(xué)生的計算思維能力是遠遠不夠的,但《C語言程序設(shè)計》作為一門計算機專業(yè)基礎(chǔ)課程,卻肩負著提高一個初入大學(xué)的學(xué)生的編程興趣和培養(yǎng)其求解實際問題的思維轉(zhuǎn)變,因此教師深刻理解計算思維的內(nèi)涵和本質(zhì),潛移默化地將計算思維貫穿到程序設(shè)計的實踐教學(xué)中,從而提高C語言程序的實踐教學(xué)的質(zhì)量。另外,計算思維的培養(yǎng)是一項長期的工程,需要不斷研究和實踐,隨著對“計算思維”理論知識與實踐知識認識的深化,將會更好地指導(dǎo)教學(xué)實踐,真正培養(yǎng)學(xué)生的計算思維和計算素養(yǎng),提高他們的計算能力。
參考文獻:
[1] Jeannette M.Wing.Computational Thinking[J].Communications of the ACM,2006, 49(3):33-35.
[2] Peter J.Denning.Great Principles of Computing[J].Communications of the ACM,2003,46(11): 15-20.
[3] 陳國良,董榮勝.計算思維與大學(xué)計算機基礎(chǔ)教育[J].中國大學(xué)教學(xué),2011(1):7-11.
[4] 龔沛曾,楊志強.大學(xué)計算機基礎(chǔ)教學(xué)中的計算思維培養(yǎng)[J].中國大學(xué)教學(xué), 2012(5): 51-54.
[5] 賈茹,郝長勝,裴衣非.Visual Basic程序設(shè)計課程的計算思維教學(xué)實踐[J].電腦知識與技術(shù),2011(25): 6266-6268.