【摘 要】本文闡述了計(jì)算思維的概念、特征和計(jì)算思維在程序設(shè)計(jì)和計(jì)算機(jī)基礎(chǔ)教學(xué)中的重要意義。著重分析了如何在C程序設(shè)計(jì)教學(xué)過程中的各個(gè)環(huán)節(jié)逐步讓同學(xué)們形成對計(jì)算思維的認(rèn)識和領(lǐng)悟。并結(jié)合具體教學(xué)實(shí)例進(jìn)一步說明計(jì)算思維的培養(yǎng)是個(gè)潛移默化、循序漸進(jìn)的教學(xué)過程。
【關(guān)鍵字】計(jì)算思維 C程序設(shè)計(jì) 教學(xué)實(shí)踐
2010年,教指委明確指出,要旗幟鮮明地把“計(jì)算思維能力的培養(yǎng)”作為計(jì)算機(jī)基礎(chǔ)教學(xué)的核心任務(wù)[1]。
C語言程序設(shè)計(jì)是我校理科非計(jì)算機(jī)專業(yè)必修的公共課,是計(jì)算機(jī)基礎(chǔ)教學(xué)的重要組成部分。新形勢下,其教學(xué)目標(biāo)是讓學(xué)生掌握問題求解算法和實(shí)現(xiàn)算法具體過程,在教會學(xué)生計(jì)算機(jī)編程的同時(shí)強(qiáng)化計(jì)算思維的培養(yǎng)。因此,如何培養(yǎng)學(xué)生程序設(shè)計(jì)以及計(jì)算思維能力,是教學(xué)需要思考的一個(gè)重要問題。
一、計(jì)算思維
(一)概念
計(jì)算思維(Computational Thinking)是由美國卡內(nèi)基·梅隆大學(xué)計(jì)算機(jī)學(xué)院主任 Jeannette M. Wing(周以真教授)于2006年提出。
其理論精髓為,充分利用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念來分析問題,思考問題從而解決實(shí)際問題。它就像邏輯思維能力一樣是每個(gè)當(dāng)代大學(xué)生必須要具備的一種能力。應(yīng)用計(jì)算思維在實(shí)際算法實(shí)現(xiàn)時(shí)還要充分考慮到計(jì)算機(jī)的運(yùn)算速度及內(nèi)部存儲器容量等問題。
(二)重要性
計(jì)算思維是人的思維方式,非計(jì)算機(jī)的。 教學(xué)過程是把實(shí)際問題轉(zhuǎn)化為算法的過程,要使同學(xué)們循序漸進(jìn)的體會計(jì)算思維,從而培養(yǎng)學(xué)生的理性思維和形式邏輯能力,培養(yǎng)學(xué)生通過計(jì)算機(jī)算法實(shí)現(xiàn)并編寫程序,最終領(lǐng)會計(jì)算思維。實(shí)際教學(xué)當(dāng)中,帶領(lǐng)、引導(dǎo)學(xué)生使用社會生活中遇到的問題來思考問題,是計(jì)算思維重要體現(xiàn)的一個(gè)方面。
二、計(jì)算思維與C語言程序設(shè)計(jì)教學(xué)
(一)計(jì)算思維和算法
對程序設(shè)計(jì)來說,算法是其精髓。在同學(xué)們剛剛接觸循環(huán)程序設(shè)計(jì)時(shí),最為經(jīng)典的例題就是求1到100的所有整數(shù)之和。應(yīng)用計(jì)算思維的理論,具體算法為循環(huán)變量從1開始,連續(xù)累增,直到循環(huán)變量首次越界,退出循環(huán)。請同學(xué)們比較該算法與著名高斯算法的區(qū)別,闡明原因。
(二)計(jì)算思維和理論教學(xué)
在C程序設(shè)計(jì)教學(xué)中遇到的全局變量和局部變量同名時(shí),如何讓學(xué)生理解什么叫作用域越小越優(yōu)先原則??梢越柚钪杏龅降慕煌ǘ氯麊栴},當(dāng)既有交通紅綠等又有交通警察指揮交通時(shí),作為普通行人和車輛應(yīng)該聽從誰的指揮,同學(xué)們異口同聲的說“警察”。通過這個(gè)實(shí)際問題,不但讓同學(xué)們瞬間掌握了全局變量和局部變量同名時(shí)的使用方法,更重要的是從計(jì)算思維的理論出發(fā)從而帶領(lǐng)同學(xué)進(jìn)一步理解計(jì)算思維的運(yùn)用方法。
(三)計(jì)算思維與實(shí)驗(yàn)教學(xué)內(nèi)容的設(shè)計(jì)
計(jì)算思維的目標(biāo)是明確的,其培養(yǎng)的核心就是實(shí)際問題的求解能力的培養(yǎng)。在C語言程序設(shè)計(jì)課程的教學(xué)過程中,注意培養(yǎng)學(xué)生依據(jù)已有知識體系,著重強(qiáng)化利用計(jì)算思維的方式描述問題和使用機(jī)器語言解決問題的訓(xùn)練。因此在C語言程序設(shè)計(jì)的實(shí)驗(yàn)課堂上,教師可以采用任務(wù)驅(qū)動的方式,啟發(fā)與引導(dǎo)同學(xué)們運(yùn)用計(jì)算思維對問題進(jìn)行分析和獨(dú)立求解。同時(shí)在程序設(shè)計(jì)的各個(gè)章節(jié),和練習(xí)中,不斷滲入計(jì)算思維的思考問題方式。
例如,在練習(xí)三大基本結(jié)構(gòu)所有知識點(diǎn)的“輸入銀行密碼”程序,最能體現(xiàn)出培養(yǎng)學(xué)生計(jì)算思維的連貫性。采用任務(wù)逐步細(xì)化、計(jì)算思維逐步漸進(jìn)的方式?!拜斎脬y行密碼”程序知識點(diǎn)分布如表1 所示。
通過具體實(shí)踐來領(lǐng)悟計(jì)算思維在程序設(shè)計(jì)中的運(yùn)用,培養(yǎng)學(xué)生分析問題、決策和解決問題的能力。
三、總結(jié)
計(jì)算思維的精髓就是要培養(yǎng)同學(xué)們應(yīng)用計(jì)算機(jī)的思維方式,把實(shí)際問題轉(zhuǎn)化為切實(shí)可行的算法并靈活編程實(shí)現(xiàn)。專家指出:“計(jì)算思維代表著一種普遍的認(rèn)識和一類普適的技能,每一個(gè)人,不僅僅是計(jì)算機(jī)科學(xué)家,都應(yīng)熱心于它的學(xué)習(xí)和運(yùn)用” [6]。
因此,在C語言程序設(shè)計(jì)課程中注重培養(yǎng)學(xué)生的計(jì)算思維能力,對于高等教育下培養(yǎng)高素質(zhì)技術(shù)人才的培養(yǎng)目標(biāo)是十分重要的,這不僅有利于知識的整體把握更有利于他們進(jìn)行實(shí)踐和創(chuàng)新。
參考文獻(xiàn):
[1]九校聯(lián)盟(C9).計(jì)算機(jī)基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略聯(lián)合聲明[J].中國大學(xué)教學(xué).2010(9).
[2]jeannette m. wing. computational thinking[J]. communications of the acm.2006.3.
[3]jeannette m. wing. computational thinking and thinking about computing philosophical transactions[J].series A.2008.7.
[4]jan cuny, larry snyder, jeannette m. wing. demystifying ct for non-computer scientists[J]. work in progress.2010.
[5]李廉.計(jì)算思維——概念與挑戰(zhàn)[J].中國大學(xué)教學(xué).2012(1).
[6]教育部高等學(xué)校計(jì)算機(jī)基礎(chǔ)課程教學(xué)指導(dǎo)委員會.高等學(xué)校計(jì)算機(jī)基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略研究報(bào)告暨計(jì)算機(jī)基礎(chǔ)課程教學(xué)基本要求[M].北京:高等教育出版社.2009.