周曉明
在小學信息技術課程綱要的教學建議中,提倡采用來源于生活的基于項目的學習方式,并圍繞信息技術課程內容,實現(xiàn)信息技術課程目標?!懊艽a箱”是源于生活的、非常神秘的物體,它可以通過Scratch編程軟件來進行簡單的模擬,甚至可以進行創(chuàng)客硬件的拓展,因此,在用Scratch程序設計“變量”一課中,筆者以“制作密碼箱”為項目實踐的主題,帶領學生在學習過程中結合數(shù)學、工程等多方面的知識開展研究。
● 通過聯(lián)想、對比,感知項目的研究價值
工程師作為工程活動的主體,必須全面把握人與自然、與其他成員乃至與整個人類社會的互動關系,避免單純從技術的角度考慮工程問題,避免僅僅著眼于工程對象本身而忽視工程“系統(tǒng)”與“環(huán)境”的相互作用。在課堂的導入環(huán)節(jié),教師出示一個帶密碼按鈕箱子的Scratch文件,讓學生思考:“密碼箱”有什么作用?自己是否需要一個密碼箱?接著提問:“猜一猜,怎樣才能打開這個箱子?”教師下發(fā)“密碼箱”文件,以小競賽的形式讓學生尋找打開箱子的方法。學生通過讀程序不難發(fā)現(xiàn)按鈕不起作用,因為按鈕角色沒有腳本,而從箱子角色的腳本中能發(fā)現(xiàn)只要在箱子上點擊就能打開。學生通過交流討論,體會到“密碼箱”的價值,也體會到制作一個“密碼箱”的意義,由此教師提出本節(jié)課的研究任務:當小工程師,把這個箱子制作成真正的密碼箱。
● 站在全局的角度,統(tǒng)籌規(guī)劃整個項目
工程思維是一種抽象思維,需要將復雜的工程問題進行簡化,去掉不重要的信息,抓住問題的關鍵,從而構建起能夠描述問題的抽象模型。在新授環(huán)節(jié),通過變量實現(xiàn)輸入并對密碼進行判斷,結合之前學過的條件語句等知識實現(xiàn)開箱的效果,完成“密碼鎖”項目原理的初探,為學生以后不斷深入探索埋下一粒求知的種子。
1.分析本質,提出核心的問題
教師通過“密碼箱是怎么打開的?”這個有針對性的問題引導學生分析密碼箱和普通箱的本質區(qū)別。學生從生活經(jīng)驗中可知,輸入密碼就能打開密碼箱。教師一方面教育學生考慮問題要周全,即要輸入正確的密碼;另一方面幫助學生用完整的自然語言“如果輸入的密碼正確,就能打開寶箱”描述密碼箱的本質特點,從而引導他們用已學的條件語句來修改箱子的腳本。
當學生認為能夠通過搭建“如果”模塊制作密碼箱時,卻發(fā)現(xiàn)用于判斷的六邊形模塊中找不到可以表示密碼是否正確的模塊,于是提出了制作密碼箱的核心問題:“輸入的密碼是否正確”條件該用哪個模塊呢?
2.整理思路,建立系統(tǒng)的邏輯關系
“輸入的密碼是否正確”條件,包括“要通過按鈕輸入字符”和“對輸入的字符和密碼箱預設的密碼進行判斷”兩層含義。學生通過觀察用于判斷的六邊形模塊,發(fā)現(xiàn)邏輯運算中的“=”符號可以解決字符判斷,“=”的一側填寫密碼箱預設的密碼數(shù)字,但另一側表示輸入的數(shù)字怎么辦?于是教師追問:“這個數(shù)字是由什么來控制的?”學生通過生活經(jīng)驗回答:“按不同的按鈕,會產(chǎn)生不同的數(shù)值?!?/p>
此時,本課的重點“變量”已經(jīng)呼之欲出,為了加深學生的認知,教師提問:“老師的寶箱里藏著一份秘籍,你們想看嗎?”接著教師請學生輸入正確密碼并打開寶箱,秘籍上寫著:變量是計算機中的一個數(shù)據(jù)存儲器,里面可以存放一個能變化的數(shù)據(jù)。學生展開探究:如何新建變量?新建變量后出現(xiàn)了哪些命令?學生通過探究發(fā)現(xiàn),變量成了箱子和按鈕之間聯(lián)系的紐帶(在按鈕角色上分別給變量賦值,在箱子角色上調用變量模塊,變量中存放的數(shù)據(jù)與正確的密碼就能夠進行比較,箱子和按鈕之間的邏輯關系就建立起來了)。在這個環(huán)節(jié)中,部分學生受原有數(shù)學知識的影響,會將條件判斷中的“=”符號和變量的賦值相混淆,教師應有意識地讓學生用自然語言來反復讀程序,從而理解判斷與賦值的區(qū)別。
● 進行需求分析,推動項目的持續(xù)迭代
工程思維是一種分析性思維、批判性思維,也是邏輯演繹的思維,軟件工程的核心是分析問題和解決問題,在此過程中有很多假定和推理,需要我們做出正確的判斷,而在做出判斷前,要質疑??梢哉f,任何一個項目都是不完美的,持續(xù)的維護和更新才是一個項目具有生命力的關鍵。如何實現(xiàn)多位數(shù)密碼、如何刪除輸錯的密碼等引發(fā)的一系列需求問題,讓學生站在工程師的視角,用工程思維的方式推動項目的持續(xù)迭代。
1.完成項目的基礎功能
學生在給各個數(shù)字按鈕作變量賦值時,發(fā)現(xiàn)賦值數(shù)字的特點,即再次按鍵,變量中新的數(shù)字會替換掉原來的數(shù)字。此時教師提醒學生,把密碼箱的初識密碼改成一位數(shù),先檢測剛才分析的邏輯關系到底能否實現(xiàn)基礎密碼判斷的功能。教師反饋階段問題:①賦值的程序能用單擊綠旗嗎?②在單擊按鈕前,變量的初始值是什么?通過學習探究,學生展示基礎的一位數(shù)密碼箱,通過單擊正確數(shù)字按鍵,箱子可以打開。
2.實現(xiàn)項目的安全升級
考慮到一位數(shù)密碼不夠安全,需要將保險箱改為多位數(shù)密碼。學生首先通過剛才的基礎密碼箱制作,確定了需要修改的是變量的賦值。教師通過動畫逐步出示依次單擊按鈕,之前輸入的數(shù)字可以保留,學生通過觀察、分析后發(fā)現(xiàn)輸入變量值的特點,即前面的數(shù)字是剛才的輸入變量值,后面的是按鍵數(shù)字;隨后開始嘗試修改按鈕腳本中的變量賦值命令,使用直觀的連接符實現(xiàn)多位數(shù)密碼的修改。對于部分思維敏捷的學生,教師鼓勵他們從數(shù)學的角度來考慮數(shù)據(jù)的變化,嘗試用“變量*10+按鈕數(shù)字”的表達式作為變量的賦值。
3.探討項目的人性化設計
學生在使用的過程中又發(fā)現(xiàn)問題:輸入的過程中如果不小心輸入錯誤,該怎么辦?此時教師鼓勵學生從用戶的角度出發(fā),結合生活經(jīng)驗,全面考慮給密碼箱增加功能。學生通過小組討論,提出了一些人性化的方案,即使用“刪除”按鈕,可以修改輸入錯誤的數(shù)字,使用“設置”按鈕,可以直接修改密碼箱的密碼等。
本課遵循工程思維的基本性質即造物思維,以項目實踐的方式進行系統(tǒng)設計,在核心問題處有針對性地展開新知識的學習;通過探索實踐,讓學生學會從宏觀的角度去把握全局,并根據(jù)實際的規(guī)律和條件對每一個細節(jié)統(tǒng)籌規(guī)劃,從大到小,層層分析,主動而扎實地學習理論知識和實踐技能,讓工程思維的培養(yǎng)貫穿于一系列問題解決的過程中,最終實現(xiàn)理想客體對象化、現(xiàn)實化。