分解是一項基本的電腦科學技能,對於培養學生對如何解決編碼問題的長期理解至關重要。 本文探討什麼是分解、為什麼它很重要、如何促進學生學習分解。

什麼是分解?

分解是將複雜問題分解為更小、更易於管理的部分的過程。 這允許學生一次解決問題的一個組成部分,從而簡化了創建編碼專案的過程。

為什麼分解很重要?

當學生開始學習程式設計時,他們面臨著以一種新的、具有挑戰性的方式思考語言。 他們必須從充滿推論和細微差別的口語交流轉變為編碼所需的精確和邏輯結構。 這種調整對學生來說極為困難,而且常常阻礙他們的成功。 分解是學生為了成功編碼而必須獲得的關鍵電腦科學技能,因為它允許學生從口語開始並對其進行改進,直到它可以在編碼專案中使用。

分解問題可以讓問題以較小的增量解決,有助於防止問題變得令學生不知所措。 當學生在開始編碼之前將問題分解為較小的部分時,他們可以建立專案的每個小部分並測試它以確保其按預期工作,然後再繼續下一部分。 這比嘗試一次性編寫實現目標所需的所有步驟要容易得多,並且可以防止學生在嘗試解決錯誤時因迷失在漫長的專案中而感到沮喪。

分解的過程也為學生提供了建立專案的系統方法,消除了學生可能必須猜測和檢查解決方案的誘惑。 猜測和檢查是解決問題的低效方法,當學生開始應對越來越複雜的編碼挑戰時,它就會變得無效。

此外,分解項目可以讓學生識別程式碼中的模式,並建立、修改和重複使用程式碼部分。 這使得專案的建構和故障排除變得更加容易,同時使學生能夠更深入地理解他們正在創建的程式碼,從而使他們能夠在未來的專案中運用這種理解。

最後,分解還可以促進學生之間的協作,因為他們可以小組合作創建機器人專案。 工程筆記本中記錄的分解項目為學生提供了一個工件,供學生在討論小組專案或與其他小組共享時使用。

促進分解

當學生處於規劃階段、開始建構專案之前,就會發生分解。 學生應該在他們的工程筆記本中記錄他們的分解過程,並在開始編碼之前與您分享。 有關與學生一起使用工程筆記本的更多信息,請參閱本文。

為學生提供這個簡單的三步驟框架來進行分解:

  1. 確定專案的主要目標 透過說明專案成功時機器人將展示的結果。 將這個目標記錄在工程筆記本中。
  2. 確定機器人為實現目標必須採取的主要步驟。 考慮並記錄機器人為了實現目標而需要完成的主要步驟或總體步驟。 在工程筆記本中記錄這些進階步驟。
  3. 將主要步驟分解為機器人行為的最小可能增量。 將每個主要步驟分解為機器人可以完成的最小行為。 將這些分解的步驟記錄在工程筆記本中。
    • 每一種機器人行為都應該能夠與一個相應的區塊或命令相符。 如果不是,則可以進一步分解步驟。

 

螢幕截圖 2024-03-06 1.04.44 PM.png

在此範例中,學生正在分解一個專案以完成 VEXcode VR Wall Maze + Playground 中的迷宮。

 

螢幕截圖 2024-03-07 11.14.44 AM.png

步驟 1:確定專案的主要目標。 將目標記錄在工程筆記本中。

 

螢幕截圖 2024-03-06 1.28.06 PM.png

步驟2:確定機器人達成目標必須採取的主要步驟。 

  • 在這裡,學生已經考慮了機器人從迷宮的起點到終點所需採取的所有行為,並在工程筆記本中按順序列出了它們。

 

螢幕截圖 2024-03-06 1.25.43 PM.png

第 3 步:將主要步驟分解為機器人行為的最小增量。 

  • 學生可以開始確定完成每個步驟所需的近似值。 在 VEXcode 中建置專案時需要測試和調整這些值。
  • 學生應檢查以確保每個分解步驟直接對應於一個 VEXcode 區塊。 如果不是,則需要進一步分解該步驟。

一旦學生將專案分解為單一區塊或命令的級別,他們就可以從專案規劃階段進入實施階段。 他們應該將步驟 2 中確定的主要步驟轉移到註釋中,然後將步驟 3 中每個完全分解的行為的相應區塊或命令添加到每個註釋中,以便建立他們的項目。 

螢幕截圖 2024-03-06 下午 1.00.50.png

學生應該一次分解一個步驟來建立他們的項目,在繼續下一個行為之前測試每個行為(或邏輯分組的行為集)。 在此階段,學生需要使用他們擁有的資源來確定正確的參數值。 例如,在上面的 VEXcode VR 範例中,距離值是使用每個迷宮方塊的寬度為 300 毫米的知識來確定的。 確定值的方法會根據情況而有所不同,但在建立編碼項目的過程中總是需要測試和調整值。

支持學生學習分解

在學生開始應對 STEM 實驗室或其他 VEXcode 專案的挑戰之前,請花時間自己進行分解,以便準備好回答學生可能提出的問題。 鼓勵學生在開始編碼之前向您展示其項目的分解計劃,以便您可以加強分解過程並檢查以確保他們已將任務分解為盡可能小的機器人行為。 提醒學生應該能夠識別與每種行為相對應的區塊或命令。

  • 如果學生難以想像機器人實現專案目標所需採取的主要步驟或總體步驟,請鼓勵他們:
    • 畫出機器人完成目標所需的路徑。
    • 執行機器人完成目標所需採取的步驟。
    • 討論機器人實現目標所需採取的步驟。
  • 如果學生很難確定他們的步驟是否已分解為單一區塊或命令級別,請詢問他們:
    • 機器人需要多少塊或命令才能完成該行為?
    • 機器人可以只使用一個區塊或命令來完成這一步驟嗎?
    • 如何將這種行為分解為更小的機器人動作?

在學生學習分解時為他們提供支援將確保他們為未來解決電腦科學問題奠定堅實的基礎。 

您對於在課堂上促進學生學習分解還有更多疑問嗎? 請他們在 PD+ 社區安排一對一會議 與 VEX 專家交談。

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: