陳觀水
摘 要:在高中信息技術教學中,《算法與程序設計》主要涉及python語言的學習。Python具有較強的可讀性、簡潔性以及可拓展性,是比較適合高中生學習的一種編程語言。但是由于大部分學生是第一次接觸編程,缺乏編程基礎和思想,因此傳統的教學方法很難達到預想的效果,也比較難以培養學生核心素養。所以,筆者對教材進行了重構,加入了實物無人機,增強課堂的趣味性和可操作性。并且通過項目化學習的方式,讓學生在完成項目的過程中,學習知識,促進學生解決問題能力的提升。這樣能夠較好地提升教學的有效性,并達成核心素養培養目標。文中介紹了如何基于無人機來重構教學,希望能夠帶給大家一點啟迪。
關鍵詞:項目化學習;信息技術;無人機
2017年頒布的《普通高中信息技術課程標準》強調高中信息技術教學要在問題解決過程中提升學生的信息素養,激發學生開放、合作、協商的行動意識[1]。在這種背景下,項目化學習成為此次新課程改革中大家所推崇的一種新的教學模式,隨著課改的不斷推進,項目化學習也在實踐中用得越來越多。它是將學生核心素養的培養作為信息素養的培養目標,強調學生在信息社會中的學習能力。
“算法與程序設計”是高中信息技術必修模塊一《數據與計算》中的重要組成部分。在課程標準中這部分的目標是:1.能夠從生活問題出發,描述算法的概念和特征,使用合適的方式和結構表示算法;2.能夠掌握一門基礎程序設計語言,并能夠實現簡單算法。通過解決實際問題,體驗程序設計的基本流程,感受算法的效率,掌握程序調試與運行的方法。
python語言具有易懂性、開放性與操作性等特征,其語法相對于其他語言比較簡潔和簡單。學生更容易接受和學習。因此在大部分教材中,算法與程序設計內容使用的都是python語言。本地區使用的是人教地圖版的高中信息技術教材。在算法與程序板塊中,該教材設計的是“編程控燈利出行”的項目。但由于編程語言本身的抽象性,學生在這個項目中很難持續,雖然能夠理解python語言,但是很難利用所學知識,系統、有效地解決問題。
基于此,對“算法與程序設計”板塊內容進行了重構。結合科創硬件資源,將無人機引入課程中。設計的項目不是寫python語句畫紅、綠、黃的燈,而是通過編寫程序控制無人機,并且完成一個一個的任務。該項目具有操作性、現實性。將枯燥的編程教學變得更有趣。學生在一次一次的飛行中學習到相關編程的知識。下面就針對此章節設計做具體的說明。
一、項目相關介紹
(一)項目背景
我國的火星探測車“祝融號”于2020 年7月23日由長征五號遙四運載火箭發射升空,于2021年5月15日成功著陸火星烏托邦平原(Utopia Planitia)南部,開啟了我國火星的科學探測任務。這是我國在太空探索上的又一個跨越式的進步[2]。同時,為了提高探索效率,我國的火星無人機也在抓緊研制中。這里要提及,美國的火星無人機——機制號已經在火星上執行探測任務了。無人機也能夠飛行在火星的上空。相對于手動操控無人機的延遲問題,通過程序控制火星上的無人機更具可行性。下面就要來學習如何通過編寫程序控制無人機的飛行,完成相應的任務。
(二)項目目標
火星探測是利用先進的信息技術手段,通過控制無人機對火星進行探索,為人類探索宇宙提供了重要的參考和啟示。無人機作為比較便利的探索方式和手段,是火星探測的重要工具。本章通過“無人機火星探測”項目,探討如何利用無人機執行各項飛行任務,完成探索火星控制策略和編程實現方式。
1.圍繞無人機火星探測項目的問題,進行需求分析和功能分解,設計問題解決和實施方案。
2.掌握Python語言基本知識與編程方法,能編寫程序實現簡單問題的求解。
3.通過解決項目問題,掌握用計算機解決問題的基本方法,并能遷移解決其他問題。
(三)項目準備
1.尋找2名同伴,3人一組,在項目實施過程中通過小組合作、互幫互助的方式完成任務。
2.搭建“無人機火星探測”項目實施的python語言環境。
3.硬件準備:兩個小組共用一臺無人機和無線網卡(無計算機教室電腦自帶無線網卡可以不單獨準備)。
(四)項目設計
在“無人機火星探索”的項目下,劃分若干子項目,具體如下:
(一)子項目一:無人機的控制飛行
1.學習目標
(1)認識python編程環境。
(2)會無人機和控制電腦的無線連接。
(3)體驗簡單的python程序控制無人機飛行。
2.項目說明
當無人機在火星上的時候,就只能通過電磁波信號給無人機發送相關指令來執行任務。那么無人機如何和控制電腦建立連接?如何編寫程序發送給無人機呢?
3.課時安排
1個課時。
(二)子項目二:無人機安全起飛
1.學習目標
(1)經歷用計算機解決問題的基本過程,并能應用于實際問題的解決。
(2)體驗編程解決問題的基本方法,激發學生對學習算法與程序的興趣,發展計算思維。
(3)掌握Python語言的基本知識,體驗通過編程解決問題的基本過程,感受計算機編程的魅力。
(4)運用順序、選擇三種結構編寫程序,提高利用計算機解決問題的能力。
2.項目說明
火星上的環境相較于地球環境比較復雜,如它的氣溫變化在35℃—-135℃之間。但無人機只適合在35℃—-30℃之間飛行。所以,要讓無人機根據獲取的火星溫度進行判斷是否可以起飛。除了氣溫條件,為了保證無人機的安全飛行,還要考慮哪些因素?
3.課時安排
3個課時。
(三)子項目三:無人機觀察周邊地形
1.學習目標
(1)掌握python語言的基本知識,體驗通過編程解決問題的基本過程。
(2)運用循環結構編寫程序,提高利用計算機解決問題的能力。
2.項目說明
在前面的學習中,已經能夠利用程序設計,控制無人機安全起飛和降落。要讓無人機完成在火星上的第一個任務——觀察四周地形,了解周邊的環境。
3.課時安排
1個課時。
(四)子項目四:無人機破解密碼
1.學習目標
(1)理解枚舉算法,編程實現簡單問題求解。
(2)認識問題解決中不同算法的效率,完成項目程序的調試與運行。
2.項目說明
為了測試無人機的主機運行正常,控制臺給無人機起飛設置了3位數的整數起飛密令,無人機須破解密碼后方可起飛。
3.課時安排
1個課時。
(五)子項目五:無人機飛越峽谷
1.學習目標
(1)理解解析算法,編程實現簡單問題求解。
(2)認識問題解決中不同算法的效率,完成項目程序的調試與運行。
2.項目說明
現在無人機需要飛越米拉斯峽谷,到峽谷的對面進行探測。無人機電池每10米消耗2%電量。如何能夠保證無人機安全返回。
3.課時安排
1個課時。
二、具體課例
課例以該項目中的子項目三——“無人機觀察周邊地形”為例進行設計
(一)主題
單元主題:語句與程序結構
單元課時:1個課時。
項目名稱:觀察周邊地形
項目課時:1個課時。
(二)教前分析
1.課標及學業要求:
(1)掌握python語言的基本知識,體驗通過編程解決問題的基本過程。
(2)運用循環結構編寫程序,提高利用計算機解決問題的能力。
2.教材分析
本課教學內容選自人教版高中信息技術必修一——《程序設計基本知識》,“FOR循環語句”是《程序設計基本知識》中第4課時中的內容,是算法的三種基本結構中較難的一種,循環語句中的“FOR語句”是循環運算的專家,其作用是使一段程序反復執行,簡單地說,它能使計算機以非常快的速度進行重復的計算。FOR語句的教學內容包括FOR語句的格式、執行過程及語句的應用。FOR循環語句學習的好壞程度,將影響到學生對學習程序設計的興趣[3]。讓學生學會應用FOR循環語句解決簡單的問題,使學生對算法有一個更深入的理解,為了讓學生學習運用程序設計解決實際問題,來提升學生的獨立思考、分析問題、探究問題、解決問題的能力,讓學生在按照一定的流程解決問題的過程中去體會和理解程序的設計思想。
3.學情分析
(1)從學生的認知水平來看,學生的邏輯思維能力在逐步趨于成熟,可以有條理地用語言表達一個過程或規則,為進一步培養學生的計算思維,創造了有利的條件。
(2)學生通過前面章節的學習,可以自然地理解用流程圖表示算法的方法,但對用編程語言來進行程序設計還有很大的困難,因此在課前教師準備了充足的學習資料幫助學生學習。
(3)學生初步嘗試了利用程序解決問題的過程,在學習的過程中,體會到了程序設計的樂趣。通過分層任務的方式,讓每位同學都能夠體驗編程解決問題的一般過程,學生期待著能夠用計算機編程解決更多問題。
(三)項目簡述
1.項目背景
這是大主題項目“無人機火星探索”中的一個子項目“觀察周邊地形”。人類的無人機已經到達了火星,開始了火星探測之旅。在前面的學習中,已經能夠利用程序設計,控制無人機安全起飛和降落。要讓無人機完成在火星上的第一個任務,觀察四周地形,了解周邊的環境。
2.項目驅動問題
如何通過程序控制無人機360°無死角地觀察它所處的四周環境情況?
3.預設項目成果
利用python語言,編寫程序讓無人機起飛后能夠完成觀察四周地形的任務。
(四)教學及素養目標設計
1.教學目標
(1)理解FOR語句的作用。
(2)掌握FORfor語句的基本格式、執行過程及特點。
(3)理解應用FOR語句解決實際問題的要素;初步學會用FOR語句解決簡單的實際問題的方法。
2.教學重點
理解應用FOR語句解決實際問題的要素;初步學會用FOR語句解決簡單的實際問題的方法。
3.教學難點
熟悉FOR循環語句的基本格式及執行過程,加強for語句的綜合利用以解決實際問題,并可以編寫簡單程序。
4.教學策略
項目主線:無人機在火星上完成觀察周邊地形的任務。
知識主線:FOR和whlie循環語句的學習和應用。
5.教學資源(環境)
無人機、計算機教室、無線網卡。
6.教學過程
(1)入項活動
①教師活動
講解:在前面的學習中完成了無人機在火星上的安全起飛任務,這一次的項目是對無人機所處的四周進行觀察,那么在前一節課的基礎上,如何實現通過編寫程序來完成觀察周邊地形的任務,需要做什么呢?
活動1:如何通過編寫代碼完成觀察四周的任務?
活動2:能不能用更簡便的語句來完成此項任務?學習FOR和while語法。
活動3:如何提高自由度,通過之前學習的input函數,輸入每次旋轉的度數。
②學生活動
思考和回答問題。
③設計意圖
在之前學習的基礎上,讓學生在熟悉的情境中,回顧前面的知識點,進一步激發對即將學習的知識點的興趣,也就是把前面學習的知識點與即將學習的知識點連接起來。
④評價方式
完成評價量表,寫出大致的思路。
(2)項目探究
①教師活動
活動1:如何通過編寫代碼完成觀察四周的任務?
活動2:能不能用更簡便的語句來完成此項任務?學習FOR和while語法。
活動3:如何提高自由度,通過之前學習的input函數,輸入每次旋轉的度數。
②學生活動
活動1:完成任務1。
活動2:通過教師提供的學習資料和網絡資料,學習FOR和while的循環結構的語法,并完成相應任務。
任務3:開拓思維,靈活應用之前所學知識,通過程序代碼的優化,提升任務完成的質量。
③設計意圖
通過分層任務,讓學生體驗編程解決問題的一般過程,培養學生的計算思維能力。通過自主學習和小組合作學習,培養學生的數字化學習能力。通過分層任務,讓同學們感受程序的魅力。
④評價方式
完成評價量表,通過個人自評、組內互評的方式進行過程性評價。促進學生的學習。
(3)項目展示與評價
①教師活動
活動:小組展示
評價:1.是否結合之前所學知識?2.是否能夠安全起飛,并且完成觀察周邊地形的任務?3.程序結構是否完整,邏輯是否清晰,設計是否合理?
②學生活動
活動:連接大疆tt無人機,展示代碼,運行程序。
評價:其他小組成員對展示小組的代碼進行點評,指出優點或者缺點。
③設計意圖
通過展示和對比不同小組的任務完成情況,讓同學們能夠看到自己的不足,學習到別人的優點。讓做得好的學生分享他們的做法和經驗[4],大家共同進步。
④評價方式
通過展示和匯報完成成果性評價。
結束語
通過在python語言的學習中引入無人機實物,讓學習變得更真實而有趣,能夠極大地提高學生學習積極性和主動性。學生在自主探究的過程中掌握和學習到了相關知識,提升自我的學習能力、協作能力、問題解決能力等。以“火星探索”為背景設計項目,學生不僅學習到了編程的知識,也了解到了“火星探索”的相關資訊,讓學習更有目標性和價值性,也能夠在學生的心里埋下科技的種子,種下為祖國科技發展而學習的目標。
參考文獻
[1]中華人民共和國教育部.普通高中信息技術課程標準(2017年版)[S].北京:人民教育出版社,2018.
[2]夏學梅.項目化學習設計:學習素養視角下的國際與本土實踐[M].北京:教育科學出版社,2018.
[3]博斯 , 拉爾默 .項目式教學:為學生創造沉浸式學習體驗[M].北京:中國人民大學出版社,2020.
[4]楊向東,崔允漷.課堂評價:促進學生的學習和發展[M].上海:華東師范大學出版社,2012.
本文系2021年貴州省教育科學規劃課題重點課題“基于深度學習的高中信息技術學科項目化學習實踐與研究”(課題編號:2021A076)的研究成果。