詹惠華 邢飛軍
【摘要】筆者以《大數(shù)據(jù)處理》這節(jié)課為例,以培養(yǎng)學生的計算思維為導向,設計了以下一套Python編程課堂的教學設計思路,有效開展教學,在日常Python編程課堂教學中培養(yǎng)學生良好的問題求解思維以及抽象、認知、構造和遷移的能力,有效發(fā)展計算思維。
【關鍵詞】計算思維;Python編程;大數(shù)據(jù)處理
一、引言
培養(yǎng)中小學生計算思維,是我們信息技術學科的重要關注點。Python編程語言作為廣州初二新教材的重要部分,對培養(yǎng)學生的計算思維、抽象理解能力、設計思維都起著重要作用。筆者采用的教學案例是《大數(shù)據(jù)處理》這一節(jié)課,主要原因是這節(jié)課涉及人工智能領域的大數(shù)據(jù)分析、KNN算法,對老師的教、學生的學都存在一定難度,因此筆者以本課作為案例,以培養(yǎng)學生的計算思維為導向,引導學生用計算機科學的基礎概念來分析問題和解決問題,幫助學生增強學習Python編程的信心與決心。
二、教學案例分析
《大數(shù)據(jù)處理》這節(jié)課選自廣州市信息技術教科書初中第二冊第2章《程序設計初步》第6節(jié),是一節(jié)Python的應用課,主要內容是分析大數(shù)據(jù)的一般過程、安裝第三方庫的方法、機器學習的KNN算法及其簡單應用。筆者以認識水果為主線,借助英荔AI訓練平臺,在具體的體驗和實踐中去解決問題。
(一)教學目標、重難點
1.通過補充、優(yōu)化、完善程序,自學學習任務單、教材、動畫、視頻等學習資源,知道從sklearn導入KNN分析模型的命令以及第三方庫安裝的方法,了解KNN算法及其簡單應用,感受編程解決問題的樂趣。
2.通過體驗AI訓練平臺,小組合作探究大數(shù)據(jù)分析的一般過程,感受人工智能的價值。
教學重點:分析大數(shù)據(jù)的一般過程、從sklearn導入KNN分析模型的命令。
教學難點:KNN算法的工作原理。
(二)教學過程
第一個環(huán)節(jié)是創(chuàng)設情境,明確問題。首先我以亞馬遜水果分揀平臺為情境提出問題:機器如何認識水果?引發(fā)學生思考。接著展示AI訓練平臺,為每個小組提供真實的蘋果和橙子,邀請同學們借助平臺去體驗機器認識水果的過程。通過借助平臺界定問題,明確大數(shù)據(jù)分析的三大步驟。
第二個環(huán)節(jié)是搭建支架,分析問題。
筆者使用希沃平臺“知識配對”為學生搭建支架,邀請學生上臺梳理分析大數(shù)據(jù)的一般過程:采集數(shù)據(jù)——訓練數(shù)據(jù)形成模型——使用模型判斷新數(shù)據(jù),強調重點,并引出學習任務:編寫Python程序,實現(xiàn)簡易的蘋果和橙子分類功能。同時組織小組對程序的算法進行討論,結合學生已有的知識體系,明確本課要解決的關鍵問題是:如何訓練數(shù)據(jù)形成模型?幫助學生將自然語言梳理形成算法,引出KNN算法和第三方庫,形成初步解決方案。
第三個環(huán)節(jié)是建立模型,解決問題。通過編寫從sklearn導入KNN分析模型的命令,補充程序,建立模型,突出重點。通過修改K值,優(yōu)化程序,加深對程序的理解,突破難點。
在任務設計上,筆者通過“問題描述-分析問題——補充程序——命名要求”的步驟分解任務,采用程序挖空的形式讓學生補充從sklearn導入KNN分析模型的命令,將問題聚焦在本課的重點上。
學生自主學習后,為了幫助學生理解程序,筆者結合大數(shù)據(jù)分析的流程圖幫助學生建立大數(shù)據(jù)分析和程序直接的關系,進一步深化重點。并提出疑問:我們年級有個同學對這個程序特別感興趣,在家里運行程序發(fā)現(xiàn)出現(xiàn)這樣的問題:程序出現(xiàn)錯誤提示:No module named scikit-learn,這是為什么呢?
明確本課所學的是第三方庫,在導入使用第三方庫之前我們需要安裝第三方庫,這里筆者會提供安裝體驗動畫,讓學生了解第三方庫的安裝方法,并明確使用第三方庫的一般過程是:明確算法——安裝第三方庫——導入第三方庫,通常情況下第三方庫都有提供官方文檔。根據(jù)第三方庫官方文檔說明,完成自己的需求。通過建立模型,幫助學生解決使用第三方庫的基本問題,為后續(xù)靈活使用第三方庫做好鋪墊。
接著筆者引導學生發(fā)現(xiàn)探究任務上的問題:不管怎么修改判斷的數(shù)據(jù),結果都顯示為1。引發(fā)學生討論,并布置鞏固任務:嘗試修改K值,結合KNN算法的相關視頻,小組合作探究KNN算法的工作原理。學生在不斷調試中評估算法,優(yōu)化算法與程序。
這里筆者會引導學生觀察結果,分析相同的數(shù)據(jù)(145,0),不同的K值會有不同的結果,啟發(fā)學生大膽思考、表達想法。
在任務一中數(shù)據(jù)記錄為5條,由于k值默認為5,因此判斷的依據(jù)就是離得最近的5個鄰居,也就是當前所有的數(shù)據(jù),根據(jù)少數(shù)服從多數(shù)的原則,橙子多于蘋果,所以任務一中不管你修改什么數(shù)據(jù)都判斷為橙子。同理在任務2中,k值修改為3,找到離的最近的是這3個樣本,按少數(shù)服從多數(shù)的原則,結果判斷為蘋果。借用第三方庫,我們也要用好第三方庫,反復調試、測試,使程序自動化效果更好,實現(xiàn)程序優(yōu)化。我們既可以通過調整K值,也可以通過增大訓練數(shù)據(jù)量,使訓練的模型更加成熟,預測結果更加準確。
第四個環(huán)節(jié)是啟迪思維,學以致用。這里筆者會先演示程序:將判斷結果用圖片顯示的效果來完善程序,并介紹使用的算法和第三方庫pillow,引導學生總結可行的問題解決方案,并能夠遷移運用到這個相似的編程問題解決中,進一步完善程序。
最后一個環(huán)節(jié)是提煉總結,感悟本質。通過小測鞏固新知,以評促學;結合流程圖歸納要點,提煉使用第三方庫的一般方法。
三、總結
在Python編程課堂教學中,筆者將計算思維滲透在各個教學環(huán)節(jié)中,幫助學生提高用計算思維的相關特征點去解決復雜問題情境的能力,引導學生解決問題,通過長時間的訓練與實踐,內化學生的思維,培養(yǎng)他們的計算思維能力。當然,計算思維的培養(yǎng)是一個長期的過程,需要不斷探索,努力實踐。
(責任編輯:鄧羽婷)