陳瑩 吉林省四平市第一中學
在普通高中信息技術學科的核心素養(yǎng)中,邏輯思維是其中的一個重要素養(yǎng),如果學生的邏輯思維能力較強,則能較好地實現(xiàn)編程實踐的目的。而大多數(shù)學生對編程存在好奇心理[1],所以,編程學習是學生邏輯思維提升的重要途徑。
林玉慈提到的高中生邏輯思維素養(yǎng)的三維框架是本文的理論支撐[2],該框架結合了義務教育階段與高中學習階段對演繹推理與歸納推理的要求,更加適應本文的研究背景(如圖1)。
筆者根據(jù)圖1中對水平層次的劃分,結合編程教學的特點,設計了如表1所示的教學流程:第一階段,教師對學生需要學習的命題進行定義,完成演繹與推理。第二階段,促進學生自主實現(xiàn)對算法的封裝。本階段在三個階段中所消耗的時間最多。第三階段,學生總結在實際操作過程中形成的經(jīng)驗,并基于封裝好的算法結構解決,提出命題的類比命題。
表1
下面,筆者以《冒泡排序法》為例對上述教學方案進行詳細闡述。
任務一:演繹階段。
基于比較的方式設計的冒泡排序算法,依次將較大或較小的數(shù)據(jù)向一個方向遞推地排序。
下頁圖2表示了算法執(zhí)行第一次冒泡的流程,用箭頭表示數(shù)據(jù)的交換。在冒泡算法的應用過程中需要實現(xiàn)n個數(shù)據(jù)的排序,要求程序執(zhí)行n(n-1)/2次,這種算法的時間復雜度稱為O(n^2),這種時間復雜度并沒有較大程度降低排序的最高耗時,但這樣的基本原理講解能為學生后續(xù)進行自主創(chuàng)新打下基礎。
之后以背景帶入的方式將問題引入應用題中,如經(jīng)典的車廂重組[3]問題:在一個舊式的火車站旁有一座橋,其橋面可以繞河中心的橋墩水平旋轉。橋的長度最多能容納兩節(jié)車廂,如果將橋旋轉180度,則可以把相鄰兩節(jié)車廂的位置交換,用這種方法可以重新排列車廂的順序。車站的一個職工負責用這種方法將進站的車廂按車廂號從小到大排列。這個職工退休后,火車站決定將這一工作自動化,其中一項重要的工作是編程序,輸入初始的車廂順序,計算最少用多少步就能將車廂排序。
該應用題的關鍵信息是考察冒泡排序的應用,但教學進入該階段時學生僅僅實現(xiàn)了對冒泡算法的理解,并不具備設計與產(chǎn)出的能力。因此,在此環(huán)節(jié)主要教會學生如何獨立實現(xiàn)算法的移植,將技巧進行教授。
任務二:算法的移植與封裝階段。
在編程的教學過程中,學生常常會遇到無從下手的問題,因此這一階段的主要目的是培養(yǎng)學生自主學習與敢于動手操作的勇氣。這一階段要求學生將算法進行模塊化的封裝,其解決方案如3圖所示。
在上述案例解決方案中,將最基本的冒泡算法進行了封裝,該函數(shù)的輸入僅有一個被排序的數(shù)組,通過這樣的封裝使得冒泡算法轉換為易于移植的排序函數(shù)。學生在解決問題的過程中,在不考慮運算的時間復雜度情況下,只要程序的邏輯沒有問題,便可以利用該函數(shù)解決部分問題,從而鍛煉了動手能力。但是,這樣的算法不能解決所有的冒泡排序問題,這就需要教學進入第三階段。
任務三:創(chuàng)新輸出階段。
為了能夠實現(xiàn)基于邏輯思維框架與能力驅動的編程教學目的,在第三階段主要鍛煉學生的類比能力與創(chuàng)新能力。一個排序算法的時間復雜度為O(n^2),這說明該算法并沒有任何優(yōu)化存在,故在這一階段的教學中主要以降低時間復雜度為目標展開教學。冒泡排序中存在兩種級別的優(yōu)化方案:其一,每一趟的比較中減少一位數(shù)據(jù)的比較(如上頁圖4)。其二,在優(yōu)化過程中結合貪心的算法,在每一趟的比較中減少一次數(shù)據(jù)的比較(如上頁圖5)。
經(jīng)過上述兩種優(yōu)化處理,在最優(yōu)情況下能夠將時間復雜度降低至O(n)。上述兩種基本引導方式,能促進學生的創(chuàng)新思維能力。
筆者選擇四個班級以實驗課的方式進行對比教學實驗,對上述理論進行驗證,教學內容都選擇冒泡排序法,四個班級分為兩組,A1、A2兩個班級運用傳統(tǒng)教學模式完成教學,B1、B2兩個班級運用基于邏輯思維能力的教學模式完成教學。在傳統(tǒng)教學模式中,講授課程后學生完成簡單應用題(T1)、移植(T2)、拓展(T3)作業(yè)?;谶壿嬎季S能力的教學模式通過本文上述的三階段進行。在兩種教學模式中都存在教師講述環(huán)節(jié),故在初始講述完成后學生獨立完成題目的完成率為C1,在經(jīng)過一段教學后學生完成率為C2。在使用傳統(tǒng)教學模式和基于邏輯思維能力的教學模式兩種方法下,四個班級學生的初始完成率C1和最終完成率C2統(tǒng)計如表2所示。
表2
在進行任務一的教學時,四個班的學生的接受能力差不多,同樣可以看出,對于第一次學習排序算法的學生而言該算法的難度較大。由于任務一主要是對概念進行講解,且應用題的題面容易理解,因此學生在學習后完成率相差不大。在進入任務二的學習中時,題目的難度有所提升,經(jīng)過實際觀察發(fā)現(xiàn),邏輯思維有所提高的學生大多能獨立完成相關解題。當進入任務三時,由于題目難度較大,可以發(fā)現(xiàn),經(jīng)過基于邏輯思維能力教學模式培訓的學生完成度明顯更高。
通過上述分析可以看出,經(jīng)過基于邏輯思維能力的教學模式培訓的學生,其邏輯思維相較于傳統(tǒng)教學模式培訓的學生有明顯提高,實際觀察發(fā)現(xiàn),學生的實際操作能力、解題的速度也均有提高。因此,編程學中應注重培養(yǎng)學生的邏輯思維能力,引導他們積極參與思考探究,以實現(xiàn)學生能力與教學質量的雙豐收。