蔣凱道
(浙江省奉化高級中學,浙江寧波 315500)
《普通高中信息技術課程標準》提出,信息技術教學要面向?qū)W科核心素養(yǎng),且學會運用計算思維識別與分析問題,抽象、建模與設計系統(tǒng)性解決方案作為高中信息技術的課程目標之一。“算法與程序設計”作為高中信息技術的選擇性必修課程,非常適合利用問題導向式教學方法來進行教學。相比常規(guī)課堂,問題導向式教學強調(diào)通過情境創(chuàng)設有效問題,利用小組合作、自主探究模式,形成問題的解決方案,完成知識的建構[1]。
下面以“算法綜合課之我是垃圾分類督導員”(以下簡稱“算法綜合課”)為例,具體闡述“算法與程序設計問題導向式教學法”的實施策略。
知識是抽象的,情境的創(chuàng)設能將抽象的知識具體化、形象化、問題化?!扒椤蹦軐⒊橄蟮闹R具體化,激發(fā)學生的學習興趣與欲望;“境”則能將學生拉入“知識之境”,建立起“學生—知識—生活實際”三者之間的聯(lián)系。因此,創(chuàng)設問題情境的目的在于揭示事物間的矛盾,動搖主體認知結構的平衡狀態(tài),從而激發(fā)學生的求知欲,培養(yǎng)學生的質(zhì)疑精神。
在“算法綜合課”中,筆者創(chuàng)設了以下情境:(1)全國正推行垃圾分類,但尚未實現(xiàn)垃圾的精準投放;(2)視頻展示垃圾分類的重要意義;(3)以廚余垃圾分類為例,提出利用已學知識設計一個廚余垃圾學習系統(tǒng),幫助實現(xiàn)廚余垃圾的精準投放;(4)介紹系統(tǒng)功能,展示廚余垃圾學習系統(tǒng),然后發(fā)給學生廚余垃圾學習系統(tǒng)半成品,讓學生測試系統(tǒng)功能。
學生根據(jù)情境發(fā)現(xiàn)了兩點問題:一是系統(tǒng)界面尚未開發(fā)完成,缺少顯示廚余垃圾列表功能;二是系統(tǒng)功能尚未完整,缺乏廚余垃圾的鑒別功能。
以上問題是學生根據(jù)創(chuàng)設的情境主動探究得到的,這些問題是本節(jié)課的重點和難點。
依據(jù)“最近發(fā)展區(qū)”理論,教師應根據(jù)學生已有的認知水平開展教學,但學生的認知水平不同、知識基礎也參差不齊。因此,教師對問題的設置可以按照由易到難、分層遞進的原則,引導學生從問題的分析中發(fā)現(xiàn)新的問題,沿著自己的“最近發(fā)展區(qū)”不斷前進。通過小組合作,學生之間可以互補、互助、共同進步,拓展自身的思維,尋求解決問題的最佳方案。
在“算法綜合課”中,教師結合學生存在的問題設置了以下幾個問題:(1)當前程序尚未完成,缺少顯示廚余垃圾列表的控件,請各位同學采用合適的控件,添加至窗體中,完善程序界面。此問題的設計在于讓學生回顧程序設計的一般過程,即程序界面的設計,同時激發(fā)學生的思維,引導學生通過回顧知識,選擇列表框控件來顯示數(shù)據(jù),也為學生實現(xiàn)下一步的程序做好鋪墊,激發(fā)學生編寫程序的欲望。(2)系統(tǒng)中是如何鑒別廚余垃圾的呢?學生根據(jù)提示,結合系統(tǒng)的測試給出了以下垃圾鑒別原理:輸入的垃圾與庫中的垃圾逐個進行比對,直到找到(找完)為止。在教師的引導下,學生又發(fā)現(xiàn)了三個新的問題:如何實現(xiàn)垃圾庫中各種垃圾的截取?如何判斷某一個垃圾名稱已截取完畢?如何判斷垃圾庫中截取垃圾與輸入的垃圾一致?
針對以上三個新的問題,學生以小組為單位展開了新的討論,并得出了如下解決方法:截取垃圾庫字符串中的垃圾,在截取字符中如出現(xiàn)“,”,則表示某一個垃圾已截取完畢。將輸入的垃圾與截取到的垃圾進行比對,如果相等,則表示找到,如不相等則繼續(xù)查找。
在小組合作、分析問題這一環(huán)節(jié)中,教師能否充分發(fā)揮主導作用,是學生能否發(fā)現(xiàn)問題、解決問題的關鍵。教師在這一環(huán)節(jié)中,既要給予學生適當?shù)奶崾荆忠ㄟ^提示讓學生積極、主動分析問題、發(fā)現(xiàn)新的問題;通過小組合作,提升學生的團隊協(xié)作能力,使學生相互幫助、相互進步;通過思維碰撞,提升學生發(fā)現(xiàn)問題、解決問題的能力。
在有了問題的初步解決方案后,教師還需將問題具體化、形式化,建立模型。對此,教師需要引導學生了解建立模型的概念,將以上三個問題轉換為VB 表達式。這是一個非常重要的環(huán)節(jié),是將問題轉化為應用的橋梁,是學生能否利用所學知識來解決實際問題的關鍵所在。
這一環(huán)節(jié),教師安排了課堂實踐活動,以分析問題時所提的解決方案為基礎,需以小組為單位讓學生將三個問題轉換為VB 表達式,并選幾個小組在有初步方案后在黑板上展示建立的模型。
學生建立的模型如:c=mid(fenlei,i,1);if c<>“,” then temp=temp+c(變量temp 用來保存垃圾庫中截取的垃圾);temp=s(變量s 為程序輸入的垃圾)。
在建立模型、抽象問題這一環(huán)節(jié)中,因為學生的知識基礎不同,教師需要引導學生回顧相關的VB 知識點。利用小組合作的方式,學生之間相互驗證模型的正確性;通過黑板演示,學生可以比較出不同組別之間的模型差異,并從中發(fā)現(xiàn)問題,最終確定正確的模型。
設計算法是利用計算機處理問題的先決條件。設計算法有助于學生對分散的模型進行整合,使之變成解決問題的方法,并采用流程圖的方式描述算法,增強算法的可讀性,避免出現(xiàn)二義性、不確定性,讓算法成為解決問題的完整方案。
在本節(jié)課中,教師設置了如下問題:請結合流程圖的相關知識,并根據(jù)建立的模型完善流程圖。
在設計算法環(huán)節(jié)中,流程圖設置的留空處即為學生建立的三個模型。因為課堂教學的時間有限,如果設計整個算法,有一定的難度,因此設置部分空格,可以使建立的模型與設計的算法相呼應,讓學生的思維能有效銜接,進而高效完成算法的設計。
分析問題、建立模型、設計算法最終是為了形成利用數(shù)字化工具自動解決問題的方案。在學生經(jīng)歷了發(fā)現(xiàn)問題、分析問題、建立模型、設計算法四個過程后,對問題的解決有了較為完善的方案。學生驗證解決問題方案的欲望已被充分激發(fā),因此,教師在此環(huán)節(jié)設置了一個問題:根據(jù)設計的算法,完善程序,實現(xiàn)廚余垃圾的鑒別。
在此環(huán)節(jié)中,教師需巡視學生的編程情況,對編程過程中出現(xiàn)的共性問題進行統(tǒng)一的點評和說明,也可以進行個別指導,幫助學生回顧編程所需的VB 相關知識點。
以上問題的解決,表示學生對課堂教學內(nèi)容已有了充分的了解,并已經(jīng)實現(xiàn)了簡單的知識遷移與應用。因此,在“算法與程序設計”問題導向式教學方法中,教師應注意以學生為中心,通過創(chuàng)設情境、分析問題、建立模型、設計算法、程序設計、拓展提高這幾個環(huán)節(jié)開展教學,通過小組合作、自主探究,讓學生成為解決問題過程的主體、教師成為學生的引導者,使學生在掌握知識的同時,培養(yǎng)計算思維,最終實現(xiàn)知識的遷移與應用。用所學知識來解決生活實際問題,這也是計算思維的最好體現(xiàn)。