陳曉

摘要:本文通過案例,主要探討了三步轉譯編程教學法中的第三步轉譯——從邏輯圖示到代碼實現過程中,教師可以依據不同教學重難點、不同軟硬件結合的編程教學內容等,采用不同的處理方式完成這一步轉譯,從而實現培養學生解決問題能力的目標。
關鍵詞:三步轉譯;邏輯圖示;代碼實現
中圖分類號:G434 ?文獻標識碼:A ?論文編號:1674-2117(2023)16-0015-03
三步轉譯編程教學法中的第三步轉譯—從邏輯圖示到代碼實現,并非顛覆以往的編程教學方法,而是在原來的基礎之上,通過利用第二步轉譯的產物—邏輯圖示,幫助學生梳理出代碼實現過程中會利用到的數據和算法,形成程序,從而實現培養學生問題解決的能力,形成編程整體概念。
“生活中的各種燈”項目實踐
1.項目簡介
面向對象:七年級(上)的學生。
總課時:3課時。
學生情況:已有學習信息社會與系統及圖形化編程基礎,但大多僅涉足純軟件編程如制作動畫故事、互動小游戲等,缺少機會將編制的程序用于解決現實世界問題。
項目概述:本項目是對新課標中“過程與控制”模塊的教學嘗試,旨在在探究中培養學生解決生活實際問題的能力。項目內容由點亮LED燈、控制LED燈以及改進生活中的燈組成,共3課時。主要目標是:認識常見的傳感器與執行器;了解常見的“輸入—計算—輸出”的計算模式,嘗試通過編程還原;細心發現生活需求,大膽設計并通過編程驗證。
編程成果形式:借助開源硬件的智能機械裝置搭建。
2.項目教學過程
(1)進入情境,思考問題
教師結合硬件演示點亮一盞LED燈,引發學生興趣,并引出“輸入—計算—輸出”的計算模式;鼓勵學生頭腦風暴,發現生活中各式各樣的燈的控制系統,如聲光控燈、煙霧報警燈、紅綠燈、小夜燈等;嘗試利用程序控制還原生活中的各種燈。以聲光控燈為例,鼓勵以小組合作形式嘗試在導學單上繪制出其“輸入—計算—輸出”的計算模式,并嘗試用自然語言分享其控制過程。
(2)協作探究,分析問題
深入分析聲光控燈中的控制過程。教師給出范例,學生嘗試模仿順序、分支、循環結構的邏輯圖示范例,在導學單上將聲光控燈的控制過程通過圖示簡要繪制出來。
(3)分析數據,構建方案
討論光敏傳感器是如何判斷白天或黑夜的。利用編程軟件中的仿真工具,呈現不同光照強度下光敏傳感器檢測到的數值變化,在探究中通過對連續量閾值的判斷,轉換為系統的開關量。借助學習單,還原聲光控燈系統中的過程與控制(如圖1)。此環節是幫助學生從邏輯圖示轉化到功能代碼表達的重要一步—將邏輯圖示先轉化為可計算的功能實現框圖。
(4)實踐體驗,驗證方案
連接硬件,在對應的編程軟件中嘗試還原聲光控燈的程序代碼,即根據學習單中的功能實現框圖提示,找到相應圖形化代碼塊。教師可給予學生如圖2所示的提示,引導其編寫程序控制硬件LED燈的亮滅(如圖3)。在此過程中,學生將不斷對照前兩次轉譯成果作為編程目標,調整修改程序,直至完成代碼實現效果。
(5)優化方案,拓展延伸
設想生活中各種燈的控制方式,及其有待改進之處,如生活中使用小夜燈時的不便之處,繪制出對應的邏輯圖示,利用第3課時編程驗證。學生將在此過程中獨立完成一次從生活到問題、從問題到邏輯、從邏輯到代碼的編程體驗。
3.案例思考
本項目呈現了三步轉譯編程教學法在結合硬件的編程教學中的實踐運用。筆者發現,在第三步轉譯中,前一步產物邏輯圖示是由自然語言描述的控制系統,學生無法直接轉換成相應的積木塊。在這個過程中,還需要帶領學生建立現實生活中的“白天”與計算機語言積木塊之間的橋梁,此處的關鍵點在于轉譯“白天”為“判斷光敏傳感器檢測到的值大于閾值”,從而再對應到編程軟件中的代碼實現。因此,相較于純軟件的編程,結合硬件的編程在第三步轉譯中需要根據邏輯框圖,先轉換為功能實現框圖,再建立功能實現框圖與代碼塊之間的關系,從而完成代碼編寫,形成程序。
經驗總結與思考
1.根據不同的教學重難點,提供不同程度的教學支架
在編程教學中,當教學重難點較多放在代碼實現上時,學生一般可以在邏輯圖示的指引下,模仿老師或獨立開始編程;若教學重難點放在概念教學、需求分析上,可以在學生編程之前給予一定程度的教學支架,如建立邏輯圖示與代碼塊之間的關系,幫助學生更順利地編寫程序,也可根據需要提供半成品程序,帶領學生觀察、組織、修改代碼,以實現編程驗證的教學目的。
2.根據不同軟硬件結合的編程需要,采用不同的轉譯過程
在教學過程中,學生通常需要利用編程來還原生活場景,驗證生活問題或解決生活問題,因其取決于教學內容的開放程度、學校的軟硬件條件完備程度等(這是一個較為復雜的環節),所以第三步轉譯需要根據實際情況討論。如純軟件編程的動畫制作與借助硬件搭建的智能化設備編程,后者的轉譯過程不僅需要從邏輯圖示轉譯到代碼實現,還需要先從邏輯框圖轉譯到功能實現框圖,再建立功能實現框圖與代碼塊之間的關系,以幫助學生更好地使用編程還原生活場景。
3.第三步轉譯不是三步轉譯法的結束
在三步轉譯編程教學中,學生往往是在后期才進入打開軟件編寫程序的環節,但這不代表三步轉譯的結束。在算法實現、評估與優化的過程中,學生需要階段性地回顧確認代碼實現是否實現了第一步實境體驗提出的需求,以此評價學習成效。而且,本項目為學習內容開放度較低的案例,但在項目學習中,往往有更高開放度的學習要求,如在原程序上適當增加個性化功能,這時候學生需要重新回到第一步考慮實境體驗中產生的更多需求,再進行第二輪的三步轉譯,在學習過程中,如此循環往復地實踐運用三步轉譯法,最終才能實現解決問題能力的提升。