■上海市青浦區第二中學 周世杰
近年來,隨著信息技術的快速發展,我們進入一個全新的信息化時代。人工智能、大數據分析、自動化處理等技術的興起,不僅改變著人們的生活和學習的方式,對人們的認知結構和思維方式也提出了新的要求。
在高中階段的學生,正處于青年人向成年人過渡的重要時間點,提升學生的思維能力,發展學生信息素養,幫助學生理解信息環境各要素之間的關系是當代信息技術學科所要承擔的一項重要責任。
2018年1月,《普通高中信息技術課程標準(2017年版)》(以下簡稱新課標)正式頒布,新課標和2003版相比,最重要的改變在于將信息素養界定為學科四大核心素養:信息意識、計算思維、數字化學習與創新、信息社會責任。“計算思維”成為一個熱詞,而對于在課堂教學中如何發展學生的計算思維,我進行了相應的思考和嘗試。
計算思維(Computational Thinking)這一概念,最早是2006年,由美國卡內基?梅隆大學計算機科學系主任周以真教授提出。
2011年,她又對這一概念進行了新的定義:“計算思維是制定問題及其解決方案所涉及的思想過程,以便解決方案以可由信息處理代理人員有效執行的形式表示”,分析周教授給出的定義,我們可以發現有兩個方面特別重要:
1.計算思維是一種思想過程,是獨立于技術存在的;2.計算思維是一種基于計算機科學思想解決問題的方法。
2016年,時任全國信息技術課標組組長的任友群教授等從另外的角度闡釋了計算思維,他們認為:“依據計算機解決問題的方法,將問題形式化。抽象問題特征,建立結構模型,對數據進行分析和組織;形成利用數字化工具自動解決問題的方案,通過迭代的方式對其優化和完善。對解決問題的方案系統化,遷移至類似問題解決中。”

圖1 計算思維四個維度
根據以上不同專家對計算思維的定義和特點分析,作為一線教師,我覺得可以這樣解釋計算思維的內涵(如圖1),具體闡述如下:
抽象包括數據抽象和過程抽象。其中數據抽象比較容易理解,我們進行的數學運算,用阿拉伯數字等代替具體的事物都是數據抽象。當然最典型的還是我們信息技術學科中信息的編碼:用二進制數表示具體的信息;過程抽象其實就是將我們日常處理問題的步驟精細化,并能夠用精確的計算機程序語言進行描述,也可以稱為“算法”描述。
模型化是指在前面抽象化、形式化處理的基礎上,運用計算機科學原理知識,選擇已知的問題解決模型或者建立新的模型,根據所選模型對數據、信息等進行組織和分析,從而力求發現解決問題的方式方法和途徑。
自動化是指在把握信息系統運行規律的基礎上,運用數字化工具,對抽象出來的問題解決模型,使問題的解決按照人的要求,經過自動檢測、數據處理、分析判斷、操縱控制等過程,實現問題解決的目的。在這個過程中,還需要培養學生不斷完善和優化過程的思想。
系統化是指遵循信息處理系統的規律或方法,對零散的信息數據、算法流程等進行歸類、整理或加工,進而形成問題解決的系統過程,并能夠將這種思想、方法遷移到相關問題的解決中。
問題抽象為計算機處理信息提供了前提,模型化在于找到一種解決問題的過程和方法,自動化是運用計算機學科思想方法實現問題解決,系統化是對這一解決問題的過程進行總結并實現遷移。
核心素養是21世紀人人都需要具備的關鍵少數高級行為能力,是知識、技能、態度幾個方面的統整和融合。計算思維作為信息技術學科核心素養之一,也是體現學科本質屬性的思維方式,要形成計算思維,課堂教學是主陣地,為了體現上述四方面的目標,課堂教學應該遵循以下方法和步驟。
信息技術的學科知識是計算思維形成的重要載體,在課堂教學中,教師應厘清學科知識結構,在頭腦中建立整套教材內容的印象,然后結合自己的理解,將學科核心知識與現實生活實際相聯系,并以實際問題的形式作為課堂教學研究內容。對學科知識的操作、討論等素材來自真實情境,知識技能服務于問題,才能讓學生在興趣中學習。然后引導學生分析問題,抽象問題本質,并形式化后辨別能否用信息處理系統來解決。
在教學結構中,教師根據學科內容設計問題,但有些問題往往偏大,引導學生時需要鋪設思維臺階,減少思維的難度,尋求思維的最近發展區。學生根據教師的指導,通過細化問題,分析問題解決的步驟,并形成過程序列,以此形成設計方案并構建自己的抽象模型。
學科知識是計算思維形成的載體,但是只有學科知識是不足以形成計算思維的。知識只有在學生解決問題的實踐活動中才會發生價值。計算思維的形成是學科基本知識和學科實踐活動相互作用的結果。在實際的課堂教學中,關聯學科知識和計算思維培養,應該依托于學生的實踐活動,在問題解決中逐步形成,如通過編程實踐來解決實際問題。
學習本質上是一種思考后的對話,在對話中跟自身原有經驗、同伴經驗碰撞,在碰撞中產生新的思維火花。當前在信息技術課堂教學中,很多教師都能注意討論環節的設計,但對話討論的問題設計要有一定的開放度,如算法設計中“算法沒有最好,只有更好”,適度開放的問題討論,有利于學生對問題解決方案進行優化、完善,進而形成系統化的思想。
計算思維、學科知識以及課堂教學實踐活動,三者有著互相依存、互相制約的關系,計算思維的發展依托于學科基本知識和課堂教學實踐活動,而學科知識需要觀照和映射計算思維并在教學活動中不斷進行建構。同理,課堂教學實踐活動也扎根于學科知識和學科思想方法。三者之間相互促進也相互牽制。

表1 《尋找“水仙花數”》簡要環節
在對計算思維概念分析和內涵理解的基礎上,為了驗證以上教學策略。我曾以尋找“水仙花數”作為問題媒介,實踐了一個教學案例,如“表1”所示。
案例闡釋如下:
如上“表1”所示,圍繞問題,設計了三個層層遞進的學習任務。主要考慮通過個別數的判別(人力易于完成)、幾十個數的判別(人力完成耗時較長)、900個數的判別(人力完成耗時太長)等三組任務有序推進,逐步引導學生在充分分析“人思維”的基礎上,理解計算機算法和程序的相應原理,以體現計算思維的抽象(運用變量代替具體數值)和自動化(算法程序自動完成)的特征。
在“問題初探”環節,兩分鐘時間內,大多數學生都能做出正確的判斷。但在接下來的環節中,我讓學生描述自己解決問題的過程,學生卻不能對步驟進行精確化的歸納。因此,我在此任務之后,設計了新的跟進問題:“以數字‘153’為例,描述一下你是如何判斷出它是水仙花數的?”并通過教師和學生之間的課堂對話、反復追問,最后總結出這樣的四個步驟:
1.明確該數的三個數位上的數字:1、5、3;
2.再分別計算出1、5、3的三次方是1、125、27;
3.對得出的三次方求和1+125+27=153;
4.根據判斷“和(153)”與原數是否相等,判定其是否為水仙花數。這些步驟的明確,幫助學生能夠體驗到算法設計的過程,并引導學生從自然語言描述向標準的程序語言靠近,引導學生將實際問題轉化為抽象的計算機程序語言符號解決問題,形成問題解決的抽象模型。
計算思維不是計算機的思維,它本質上仍然是人的思維,是人在具有了計算機科學相關知識后,在理性意識支配下的一種思考活動。因此,具有一定量的計算機科學知識,可以讓人們用不同的方式解決實際問題,從程序算法的角度來講,這也可以稱為算法的優化。
在實際教學中,經過前面的“三重任務”,之后我又設計一個“思考討論”環節,討論內容是:“如果不用枚舉算法,仔細觀察右邊的這組數字,你能不能分析出哪些數不用計算就可以知道不是‘水仙花數’”。在這個討論中,其實和前面的“三重任務”都有一定關聯。
在判斷258、371和519三個數時,已經將7、8、9三個數的三次方進行過計算,而在此,正好是教師提示的內容;這里出現的這32個數字其實還是“二次探究”時的那些數字,這些數字有些特別。“深入探究”中應用枚舉算法其實是一種借助計算機強大的計算能力,犧牲效率而換取結果的計算方式。通過討論,激發學生進一步思考的動力,包括在解決問題時計算機的速度優勢,同時也要意識到算法的優化無止境,形成系統化的解決問題的思想。

計算思維的培養是一個系統工程,在高中信息技術教學中,應該緊緊圍繞課程標準,按照原有知識結構框架,選取核心內容或概念,對知識要點一一貫通,將發展學生計算思維貫穿于信息技術課堂教學的始終,只有這樣,才能起到一定的效果。這樣將知識點打通的教學整體考慮,可能更有利于發展學生的計算思維。
在《普通高中信息技術課程標準(2017年版)》中,關于信息技術學科課程結構,必修主要包括“數據與計算”、“信息系統與社會”兩個部分,其中“數據與計算”模塊內容中包括數據編碼、信息處理和算法與程序實現,“信息系統與社會”模塊內容主要包括信息社會特征、信息系統、信息安全與社會責任等。在實際的教學實踐中,必修模塊中的數據編碼、信息系統和算法初步是當前信息技術課堂教學的重點,所分配課時數最多,對于這三部分內容,其與前面討論計算思維四個方面內容的關系,可以大致用“圖2”表示。

圖2 課程內容與計算思維內涵對照
“二次學習”微視頻是青浦區新課堂實驗提出的一個概念。是指“在課堂教學結束后,經過教師二次整理的針對一個課時或章節的學科重點、難點知識、錯誤知識,采用錄屏的方式制作,時長在10分鐘左右的,通過微信公眾號及時推送發布,可以方便學生用智能手機等設備再次學習的微視頻。”這里的“二次”有兩層含義,一是指教師在課后對原有教學設計,結合課堂生成資源與自己的課后反思進行再開發;二是指學生在課堂學習后,進行再次學習,進入深度學習。
在前期的研究中,我們主要針對當前課程內容,將“二次學習”微視頻分為三類,分別是:一節課時后的、典型例題分析以及按章節知識進行的二次學習微視頻。近階段經過對計算思維的認識和理解,我認為對于“圖2”中的“學科理論”,由于課時的限制,往往在課堂教學中很難讓學生了解,因此考慮可以采用“二次學習”微視頻的相關制作與發布技術,將一些核心內容(如香農的信息熵思想、圖靈機理論等)通過制作成學生易于理解的微視頻的形式,推送給學生,以強化他們對學科知識的理解。同時,對原來的“二次學習”微視頻進行加工、改造,將“計算思維”的培養融入其中。借助網絡學習的優勢,拓展學生學習時空,彌補課堂教學的不足。
在信息技術學科內容中,我們可以選取部分教學內容,如算法和程序設計中的迭代和遞歸、信息基礎章節中的“數據編碼”、網絡基礎章節中的“IP地址”以及信息系統章節中“存儲程序”等內容,對照計算思維主題思想,可以通過精心設計、研討交流,融入計算思維能力的培養。
基于發展學生計算思維的教學實踐,需要在不斷學習、實踐中慢慢體會和提升,相信這條路永無止境。