原 虹
(晉中學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山西 晉中 030600)
目前,自然科學(xué)領(lǐng)域公認(rèn)有三大科學(xué)方法:理論方法、實(shí)驗(yàn)方法與計(jì)算方法。與這三大科學(xué)方法對(duì)應(yīng)有三大科學(xué)思維,即理論思維、實(shí)驗(yàn)思維與計(jì)算思維。理論思維又叫推理思維,主要通過對(duì)理論的推理練習(xí)獲得,可以在數(shù)學(xué)學(xué)習(xí)中獲得和提高。實(shí)驗(yàn)思維也叫實(shí)證思維,主要通過實(shí)驗(yàn)中的觀察和總結(jié)獲得,可以在物理實(shí)驗(yàn)的操作與學(xué)習(xí)中獲得和提高。實(shí)證思維和推理思維,我們?cè)诔醺咧械膶W(xué)習(xí)中已經(jīng)得到了很好的培養(yǎng)。計(jì)算思維是2006年由周以真教授提出的。雖然計(jì)算機(jī)已經(jīng)深入到我們生活中的方方面面,許多問題都需要計(jì)算機(jī)的輔助才能解決。如:數(shù)據(jù)的大量存儲(chǔ)、排序、篩選等。計(jì)算思維在生活中越來越重要,卻不被人們所熟知,甚至很多人認(rèn)為計(jì)算思維就是數(shù)學(xué)思維。因此明確計(jì)算思維的概念,系統(tǒng)的培養(yǎng)計(jì)算思維在現(xiàn)在的教育中顯得尤為重要。計(jì)算思維的獲得可以通過相關(guān)計(jì)算機(jī)課程的學(xué)習(xí)來獲得,對(duì)于非計(jì)算機(jī)專業(yè)的學(xué)生來說,大學(xué)計(jì)算機(jī)基礎(chǔ)的學(xué)習(xí)是獲得計(jì)算思維的主要途徑之一。本文將從基本概念著手,結(jié)合具體的教學(xué)實(shí)踐和經(jīng)驗(yàn),淺談在大學(xué)計(jì)算機(jī)基礎(chǔ)教學(xué)中如何來提高學(xué)生的計(jì)算思維能力。
2006年3月,美國卡內(nèi)基·梅隆Jeannette M.Wing教授在美國著名期刊Communications of the ACM上發(fā)表了題為《eannette M.Wing.Computational Thinking》的論文,在文中第一次明確指出了計(jì)算思維的概念,計(jì)算思維(Computational Thinking)是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計(jì)、以及人類行為理解等涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動(dòng)。這個(gè)定義是高度概括,比較晦澀難懂的。之后Jeannette M.Wing教授又對(duì)計(jì)算思維進(jìn)行了具體的描述,把計(jì)算思維概括為七大類具體的實(shí)現(xiàn)方法??偨Y(jié)來說就是通過計(jì)算機(jī)技術(shù)的快速發(fā)展,計(jì)算方法的改進(jìn)和模型的構(gòu)造使我們敢于并且能夠處理一些原本個(gè)人無法獨(dú)立完成的問題和設(shè)計(jì)。
大學(xué)計(jì)算機(jī)基礎(chǔ)是必修課程,課程分兩個(gè)階段講授和學(xué)習(xí)。第一學(xué)期主要講授計(jì)算機(jī)的系統(tǒng)構(gòu)成,Windowsxp或Windows 7操作系統(tǒng),Office2003或 Office2007等內(nèi)容。第二學(xué)期文科專業(yè)主要講授計(jì)算機(jī)網(wǎng)絡(luò)相關(guān)的基礎(chǔ)知識(shí),F(xiàn)lash動(dòng)畫制作等多媒體相關(guān)知識(shí)和Internet基本操作等。理科專業(yè)講授一門高級(jí)程序設(shè)計(jì)語言,具體內(nèi)容主要包括開發(fā)環(huán)境、編程基礎(chǔ)、程序設(shè)計(jì)結(jié)構(gòu)、文件操作及解決實(shí)際問題。
大學(xué)計(jì)算機(jī)基礎(chǔ)的教學(xué)內(nèi)容包含了大量的基本概念和具體的實(shí)例,這些定義和實(shí)例中很多都含有比較明確的計(jì)算思維。教師在課程內(nèi)容的講授中對(duì)計(jì)算思維也有初步的涉及。但是,由于計(jì)算思維定義的提出較晚,很多教師不了解計(jì)算思維的具體概念和培養(yǎng)計(jì)算思維的具體方法,因此在實(shí)際教學(xué)中關(guān)于計(jì)算思維的傳遞具有以下幾個(gè)誤區(qū):
(1)計(jì)算思維的傳遞是盲目的,不系統(tǒng)的。
(2)在傳遞中過于注重程序設(shè)計(jì)語言的語法,忽視了算法及解決方法的傳遞,導(dǎo)致學(xué)生不能舉一反三。不同的程序設(shè)計(jì)語言語法雖然不同,但其中所包含的算法很多是大體一致的,掌握一種程序設(shè)計(jì)語言后,其他的語言學(xué)起來應(yīng)該就簡(jiǎn)單多了。在實(shí)際的學(xué)習(xí)中,大部分學(xué)生不會(huì)變通,只注重課程本身的內(nèi)容,沒有學(xué)到程序設(shè)計(jì)語言共同的精髓算法,因而計(jì)算思維方法沒有得到提高。
(3)教師沒有充分認(rèn)識(shí)計(jì)算思維的重要性。在未來,計(jì)算思維將像閱讀、寫字一樣成為人類生活中最基本的不可或缺的思維方式。
在教學(xué)大綱中,大學(xué)計(jì)算機(jī)基礎(chǔ)的第二階段理科學(xué)生學(xué)習(xí)的是VisualBasic程序設(shè)計(jì)(以下簡(jiǎn)稱VB)或C程序設(shè)計(jì)語言。筆者有多年的VB程序教學(xué)經(jīng)驗(yàn),因此以下將以VB為例來說明如何培養(yǎng)和提高計(jì)算思維。
程序設(shè)計(jì)語言的教材各個(gè)出版社都有,甚至有些出版社還會(huì)有好幾個(gè)不同的版本。有些教材會(huì)在前面的章節(jié)講解算法的概念以及算法在計(jì)算機(jī)解決實(shí)際問題中的作用。有些教材一開始就直接介紹程序設(shè)計(jì)語言的具體工作環(huán)境、語句、語法等,忽略了算法的重要性。有些教材在介紹知識(shí)點(diǎn)之前,都會(huì)以一個(gè)貼合實(shí)際的具體實(shí)例作為引例。在學(xué)習(xí)之初,學(xué)生通過對(duì)例子的分析,列出自己的算法。但由于理論知識(shí)的欠缺,算法中的有些步驟現(xiàn)有知識(shí)解決不了,促使學(xué)生進(jìn)一步學(xué)習(xí)新的知識(shí),同時(shí)計(jì)算思維也得到培養(yǎng)。如:講解DO循環(huán)之前,先給出一個(gè)問題:我國人口13億,增長(zhǎng)率為0.8%,多少年后我國人口將翻一番。學(xué)生在遇到問題時(shí)先進(jìn)行算法分析:
第一步:設(shè)兩個(gè)變量x和y,分別用于存放現(xiàn)有人數(shù)和增長(zhǎng)率。同時(shí)給x和y賦初值13和0.008.
第二步:設(shè)一個(gè)變量n用于存放年數(shù),并賦初值為0.
第三步:計(jì)算一年后新人口數(shù)量并且年數(shù)加一。
第四步:如此循環(huán)直到人口超出26.
第五步:輸出變量n的值。
算法確定之后,開始寫出具體的實(shí)現(xiàn)過程時(shí)會(huì)發(fā)現(xiàn),以前學(xué)習(xí)的循環(huán)語句解決不了這類問題,于是引入新的循環(huán)語句。學(xué)生對(duì)算法和具體實(shí)現(xiàn)過程的思考是計(jì)算思維最好的培養(yǎng)方法。
所以,在課程中培養(yǎng)學(xué)生的計(jì)算思維要從選擇教材做起。在選擇教材時(shí),一定要多比較,盡量選擇內(nèi)容全面,編排合理的教材。
在對(duì)VB課程的實(shí)施中,教師傾向于系統(tǒng)地進(jìn)行講授。從數(shù)據(jù)類型、表達(dá)式、函數(shù)開始,到語法、控件、過程、數(shù)組,再到順序、選擇、循環(huán)結(jié)構(gòu),最后舉例說明講解的內(nèi)容。經(jīng)過這樣傳授后,學(xué)生的基本功比較扎實(shí),但是掌握的知識(shí)與實(shí)踐結(jié)合不緊密,計(jì)算思維得不到提高。解決實(shí)際問題時(shí),最重要是使用什么算法,怎樣用語句來實(shí)現(xiàn)算法。要想提高學(xué)生的計(jì)算思維,在講授時(shí)就需要注意使用合適的教學(xué)方法開發(fā)學(xué)生,讓學(xué)生的思維活躍起來,積極參與到其中。組織課堂活動(dòng)時(shí)積極引導(dǎo)并鼓勵(lì)學(xué)生提出可行的算法,然后對(duì)這些算法進(jìn)行討論,詳細(xì)分析其優(yōu)缺點(diǎn),從中找出最佳算法。比如:要做到兩個(gè)變量的值互換。學(xué)生會(huì)提出很多算法。直接交換賦值即a=b;b=a;引入第三個(gè)變量即c=a;a=b;b=c;借助某個(gè)控件的屬性即form1.caption=a;a=b;b=form1.caption等等。先對(duì)學(xué)生的思考給出肯定,然后分析其正確與否。直接交換賦值是不能實(shí)現(xiàn)的,類似兩個(gè)杯子里裝滿飲料要互換,如若直接倒,最后必有一個(gè)杯子為空。借助某個(gè)控件的屬性,實(shí)現(xiàn)時(shí)有條件限制,若變量的數(shù)據(jù)類型與該屬性的數(shù)據(jù)類型一致,則能實(shí)現(xiàn)操作。如果不同,則可能出錯(cuò)。最適合的方法是引入第三個(gè)變量,并且變量類型為變體型,這樣就能實(shí)現(xiàn)題目的要求。在確定有效的實(shí)施算法之后,對(duì)實(shí)現(xiàn)算法中需要用到的語法和語句一一進(jìn)行講解并鼓勵(lì)學(xué)生自己寫出語句,最后教師對(duì)這些語句進(jìn)行分析,指出其中不合理或者不合適的地方,給出最簡(jiǎn)潔的實(shí)現(xiàn)語句。如上面所述的兩個(gè)變量互換,要用到的語句就是賦值語句。需要詳細(xì)講解賦值語句的結(jié)構(gòu)與功能。直接賦值不能實(shí)現(xiàn)時(shí)如果對(duì)一個(gè)變量多次賦值,變量將保留最后一次的值,以前的值將丟失。借助控件的屬性不能實(shí)現(xiàn),是因?yàn)椴煌臄?shù)據(jù)類型在賦值時(shí),有的可以兼容,有的就會(huì)出錯(cuò)。這樣講授不僅調(diào)動(dòng)了學(xué)生的積極性,更主要的是讓學(xué)生的思維隨著課堂的進(jìn)度逐步活躍起來。讓學(xué)生參與解決問題的整個(gè)過程,而不是被動(dòng)的聽教師的枯燥講解,是提高計(jì)算思維的主要途徑之一。
程序設(shè)計(jì)課程都有大量的上機(jī)實(shí)驗(yàn)練習(xí),合理的貼合實(shí)際的實(shí)驗(yàn)練習(xí)有助于學(xué)生學(xué)習(xí)思維的增強(qiáng)。在上機(jī)練習(xí)時(shí),應(yīng)該分三個(gè)步驟布置實(shí)驗(yàn)內(nèi)容。
首先,要求學(xué)生對(duì)理論課時(shí)的例子進(jìn)行實(shí)際操作。
理論課上已經(jīng)討論好算法和具體的實(shí)現(xiàn)步驟,這樣的程序?qū)懫饋砭妥兊帽容^容易,成功率也會(huì)提高很多。通過熟悉示例的成功解決,可以增加學(xué)生解決問題的自信心。
其次,提供和前面實(shí)例相類似的問題,要求學(xué)生寫出算法和具體的實(shí)現(xiàn)步驟,使學(xué)生能做到舉一反三。
布置和理論課的實(shí)例具有共同主要特征的實(shí)驗(yàn)題,讓學(xué)生通過實(shí)際上機(jī)操作完成對(duì)實(shí)際問題的解決。實(shí)驗(yàn)內(nèi)容最好是基本算法變化不大,讓學(xué)生在有了前面的解題經(jīng)驗(yàn)時(shí)能對(duì)新的內(nèi)容作出基本框架的編寫,詳細(xì)的書寫過程可以有區(qū)別。這樣學(xué)生在做這些實(shí)驗(yàn)時(shí),不會(huì)感到吃力也不會(huì)覺得太簡(jiǎn)單而失去興趣。
最后,布置添加了適量新內(nèi)容的實(shí)驗(yàn),讓學(xué)生自己利用課余時(shí)間研究算法,然后在下次課時(shí)討論具體的算法和編程語句。
在布置新實(shí)驗(yàn)時(shí)要注意新增加內(nèi)容的比例,應(yīng)該在30%左右。同時(shí)注意實(shí)驗(yàn)內(nèi)容盡可能地貼近實(shí)際生活,注重實(shí)用性。比如:在講解了IF語句之后,SELECT語句之前,可以布置相關(guān)成績(jī)界定的實(shí)驗(yàn)內(nèi)容。輸入某課程的成績(jī),要求在窗體上顯示對(duì)應(yīng)的評(píng)價(jià)結(jié)果。評(píng)定條件為:成績(jī)≥90為優(yōu),成績(jī)≥80且<90為良,成績(jī)≥70且<80為中等,成績(jī)≥60且<70為及格,成績(jī)<60不及格。成績(jī)的界定與學(xué)生的實(shí)際學(xué)習(xí)息息相關(guān),且本題用以前學(xué)過的IF語句也能解決,只是解決起來較復(fù)雜。學(xué)生自己研究了算法,編寫了語句解決了問題,同時(shí)也會(huì)發(fā)現(xiàn)書寫非常繁雜。這時(shí)引入新的知識(shí)內(nèi)容,如果用SELECT語句來完成此問題就容易多了,大大減少語句的數(shù)量,同時(shí)書寫也簡(jiǎn)單很多。學(xué)生在經(jīng)過思考和實(shí)踐之后,既對(duì)原有的知識(shí)進(jìn)行了鞏固,也有學(xué)習(xí)新知識(shí)的渴望。經(jīng)過自己的仔細(xì)思考后,在以后教師講解時(shí)可以達(dá)到對(duì)新知識(shí)更加關(guān)注的目的。
通過這三個(gè)步驟的實(shí)驗(yàn)練習(xí),讓學(xué)生從自身的實(shí)踐中總結(jié)計(jì)算機(jī)解決問題的要點(diǎn)及主要步驟,體驗(yàn)計(jì)算機(jī)解決問題的主要方法。同時(shí)讓學(xué)生在學(xué)習(xí)知識(shí)的過程中,計(jì)算思維得以增強(qiáng)。
2010年的C9研討會(huì)上形成了決議,在大學(xué)計(jì)算機(jī)基礎(chǔ)教學(xué)中要以培養(yǎng)學(xué)生計(jì)算思維能力為教學(xué)核心。在實(shí)際教學(xué)中也要以培養(yǎng)學(xué)生計(jì)算思維為指導(dǎo),通過對(duì)計(jì)算機(jī)基礎(chǔ)的學(xué)習(xí)使學(xué)生的計(jì)算思維得以提高,為以后的學(xué)習(xí)生活帶來便利。
[1]陳國良,董榮勝.計(jì)算思維與大學(xué)計(jì)算機(jī)基礎(chǔ)教育[J].中國大學(xué)教學(xué),2011,(1).
[2]李廉.計(jì)算思維——概念與挑戰(zhàn)[J].中國大學(xué)教學(xué),2012,(1).
[3]何欽銘,陸漢權(quán),馮博琴.計(jì)算機(jī)基礎(chǔ)教學(xué)的核心任務(wù)是計(jì)算思維能力的培養(yǎng)[J].中國大學(xué)教學(xué),2010,(9).
[3]陳杰華.程序設(shè)計(jì)課程中強(qiáng)化計(jì)算思維訓(xùn)練的實(shí)踐探索[J].計(jì)算機(jī)教育,2009,(20).