◆甘肅省秦安縣第一中學(xué) 魏鵬飛
“簡單人工智能應(yīng)用模塊開發(fā)”是高中信息技術(shù)課程選擇性必修模塊4“人工智能初步”中的重要組成部分。根據(jù)新課標(biāo)的要求,我通過設(shè)計制作簡單的人工智能項(xiàng)目,讓學(xué)生親歷利用人工智能解決問題的過程。
本文以“圖片文字提取工具”的設(shè)計與實(shí)現(xiàn)過程為例,提出“高中人工智能項(xiàng)目制作教學(xué)策略”(以下簡稱“策略”):以解決現(xiàn)實(shí)情境中的真實(shí)問題為導(dǎo)向,采用項(xiàng)目式學(xué)習(xí)模式,增加學(xué)習(xí)的探究性與趣味性;通過調(diào)用百度接口,使學(xué)生繞過人工智能核心算法的學(xué)習(xí),降低學(xué)習(xí)難度;弱化學(xué)生對核心算法的學(xué)習(xí),強(qiáng)調(diào)學(xué)生解決問題的思路和方法,有利于學(xué)生問題解決能力、計算思維能力以及創(chuàng)新能力的培養(yǎng)。
創(chuàng)設(shè)真實(shí)的問題情境引發(fā)學(xué)生深度思考,是開展項(xiàng)目式學(xué)習(xí)的首要環(huán)節(jié),也是尤為重要的一步。設(shè)定的問題情境應(yīng)貼近學(xué)生的現(xiàn)實(shí)生活,能引發(fā)學(xué)生思考,激發(fā)學(xué)生的學(xué)習(xí)興趣,繼而以興趣為驅(qū)動,主動開展探究活動。
人們時常需要提取圖片中的文字,但目前使用專業(yè)的圖片文字提取工具大多需付費(fèi),百度、科大訊飛等免費(fèi)使用接口缺乏統(tǒng)一的用戶界面,只得依靠其提供的代碼調(diào)用接口。這種缺乏界面的操作方式對普通用戶不太友好。
基于此,我讓學(xué)生通過所學(xué)的Python 知識并結(jié)合百度接口框架,設(shè)計制作了一款用于解決上述問題的工具。創(chuàng)設(shè)問題的理由如下:
1.文字識別是人工智能應(yīng)用的一個領(lǐng)域,符合教育主題;
2.提取圖片中的文字是學(xué)生在學(xué)習(xí)和生活中經(jīng)常遇到的問題,易激發(fā)學(xué)生的學(xué)習(xí)興趣;
3.學(xué)生在提取圖片中的文字失敗的情況下,若能利用自己制作的工具成功提取文字,能增強(qiáng)自信心和榮譽(yù)感。
項(xiàng)目的功能通常隱含于真實(shí)的問題情境中,教師應(yīng)引導(dǎo)學(xué)生通過分析問題、剔除無關(guān)項(xiàng)、保留關(guān)鍵點(diǎn),最后形成可視化項(xiàng)目功能思維導(dǎo)圖。
圖1 圖片文字提取工具的思維導(dǎo)圖
結(jié)合本項(xiàng)目的教學(xué)案例,圍繞問題情境組織學(xué)生開展探究活動,最后將可視化項(xiàng)目功能分為選擇圖片類型、打開圖片、加載圖片、識別文字、顯示文字、提取文字,形成圖片文字提取工具的思維導(dǎo)圖。
“策略”以項(xiàng)目式學(xué)習(xí)為主,教學(xué)活動的開展以學(xué)生為中心,教師是教學(xué)活動的組織者、引導(dǎo)者和幫助者。在開展項(xiàng)目式學(xué)習(xí)中,由于項(xiàng)目具有開放性、綜合性和復(fù)雜性等特點(diǎn),學(xué)生在實(shí)踐過程中難免會遇到知識盲區(qū),需要教師為學(xué)生提供相關(guān)的學(xué)習(xí)支架(包括學(xué)習(xí)資料和技術(shù)指導(dǎo)),保證項(xiàng)目的有序開展。
以“圖片文字提取工具”項(xiàng)目為例。在開展項(xiàng)目式學(xué)習(xí)前,學(xué)生首先需熟練掌握Python 編程語言中的內(nèi)置庫Tkinter,因?yàn)樗侵谱饔脩艚换ソ缑姹仨毦邆涞幕A(chǔ)知識。然而Tkinter 庫中方法繁多,且每種方法都有諸多屬性,學(xué)生易混淆或遺忘。這時,我會教學(xué)生“Lable”(標(biāo)簽)、“Entry”(輸入框)、“Button”(按鈕)、“Text”(多行文本框)等使用方法。我還提供了包括注冊、登陸、選擇文字識別、創(chuàng)建應(yīng)用以及自動生成賬號等調(diào)用百度接口的方法,其中自動生成的賬號包含AppID、APIKey、Secret Key 三部分內(nèi)容,其賬號列表具體內(nèi)容如圖2 所示。
圖2 文字識別賬號列表
在項(xiàng)目界面設(shè)計與實(shí)現(xiàn)中,如何設(shè)定與獲取輸入類控件的值也是難點(diǎn)之一。我在教學(xué)中發(fā)現(xiàn),學(xué)生經(jīng)常在此類問題上犯錯。可基于控件的使用方法制作一個簡單的項(xiàng)目,以學(xué)習(xí)資源的形式提供給學(xué)生,讓學(xué)生在反復(fù)學(xué)習(xí)與使用過程中,逐漸熟練其具體用法,從而達(dá)到知識的學(xué)習(xí)與重構(gòu),實(shí)現(xiàn)教學(xué)難點(diǎn)上的突破。
比如:簡單項(xiàng)目“用戶登錄界面”的實(shí)現(xiàn)過程就要用到文本框值的綁定、初始值的設(shè)定、輸出值的提取等知識。將該項(xiàng)目以學(xué)習(xí)支架的形式提供給學(xué)生,方便其在使用相關(guān)控件時查找資源,這不僅有利于培養(yǎng)學(xué)生的自主能力,還能減少教師的工作量。
以“圖片文字提取工具”為例,學(xué)生根據(jù)教師提供的學(xué)習(xí)支架,結(jié)合項(xiàng)目要實(shí)現(xiàn)的功能,設(shè)計制作主界面。用到的控件及其功能如下:“Lable”(標(biāo)簽)——用于顯示靜態(tài)的文本信息及其圖片的顯示信息;“Combobox”(下拉列表框)——用于顯示要選擇的圖片類型;“Button”(按鈕)——用于人機(jī)交互,發(fā)送和接受交互信息;“Text”(多行文本框)——用于識別文字的顯示。
圖3 主界面運(yùn)行效果
高中階段,基于程序設(shè)計培養(yǎng)學(xué)生的計算思維應(yīng)聚焦在算法設(shè)計上,而并非某種語言或程序設(shè)計上。利用計算機(jī)解決問題,編程語言只是工具,程序設(shè)計只是手段,而算法才是靈魂。
一個好的算法不僅需要有強(qiáng)大的可讀性和可移植性,還應(yīng)考慮其時間和空間的復(fù)雜性,即程序的執(zhí)行效率。這種高度不是設(shè)計幾個算法或編制一個程序就能達(dá)到的,需在教師的指導(dǎo)下通過長期訓(xùn)練形成。
圖4 學(xué)生分組開展項(xiàng)目式學(xué)習(xí)
如果說算法是解決問題的方法和步驟,那么編程就是通過某種編程語言將算法轉(zhuǎn)化為程序,實(shí)現(xiàn)某種特定功能的過程。兩者最大的區(qū)別在于,算法不能直接被計算機(jī)執(zhí)行,而程序可以。
以“圖片文字提取工具”的編程實(shí)現(xiàn)過程為例,將整個項(xiàng)目封裝在一個名叫“Image_recognition”的類中,類方法又包含“openfile_path(self)”(打開圖片)、“get_file_content”(讀取圖片)、“showidentify_result”(文字識別)、“copy_text”(文字提?。┑裙δ苣K。
項(xiàng)目采用單元測試與集成測試結(jié)合的測試方法。
在程序編制過程中采用單元測試,即對每個函數(shù)及其實(shí)現(xiàn)的功能進(jìn)行測試。這是在編制程序早期發(fā)現(xiàn)語法和語義錯誤的較好辦法。
程序編寫完成后,采用集成測試的方法對系統(tǒng)的運(yùn)行及其識別情況進(jìn)行測試。在具體測試過程中,分別選取5 張圖片,對每一種識別類型進(jìn)行測試用例,其文字識別率超過90%,基本達(dá)到使用要求。
然而,項(xiàng)目在實(shí)現(xiàn)基本功能的情況下還存在一些缺陷:系統(tǒng)每次只能加載一張圖片進(jìn)行識別,對多張圖片的識別效率較低;由于項(xiàng)目文字識別部分是調(diào)用百度接口來實(shí)現(xiàn)的,受網(wǎng)絡(luò)或其他使用限額的限制,時常出現(xiàn)識別錯誤的情況。這些都是我后期需要改進(jìn)的地方。