關(guān)鍵詞:人工智能;編程類課程;教學(xué)改革;JavaScript程序設(shè)計(jì)
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2024)28-0137-03
0 引言
人工智能(Artificial Intelligence,AI) 作為一項(xiàng)快速發(fā)展的技術(shù),已滲透到人們?nèi)粘I詈凸ぷ鞯母鱾€(gè)環(huán)節(jié),包括個(gè)性化的購(gòu)物體驗(yàn)、新聞定制、醫(yī)療保健、智能家居和城市安保等。它為人們生活生產(chǎn)帶來(lái)了各種便捷的同時(shí),也帶動(dòng)了社會(huì)崗位技能需求變革[1]。2022年末以來(lái),以ChatGPT為代表的通用人工智能技術(shù)在全球范圍內(nèi)引發(fā)持續(xù)關(guān)注。ChatGPT作為一種大型多模態(tài)預(yù)生成式人工智能(Generated AI) 模型,可以支持圖片、文字、代碼、音頻等多模態(tài)數(shù)據(jù)輸入和輸出,具有包括學(xué)習(xí)、推理、解決問題、感知、語(yǔ)言理解等在內(nèi)的各種能力[2]。最新版的ChatGPT4在律師考試中超過了90%的考生,GRE考試更是幾乎滿分通過[3],這一驚人表現(xiàn)凸顯了AI 在學(xué)習(xí)和教育方面的巨大價(jià)值。
人工智能的迅猛發(fā)展為職業(yè)教育領(lǐng)域帶來(lái)了前所未有的機(jī)遇和挑戰(zhàn)[4]。在編程類課程的職業(yè)教育中,如何應(yīng)用AI技術(shù)來(lái)構(gòu)建創(chuàng)新的教學(xué)模式及增強(qiáng)學(xué)生的實(shí)踐能力、創(chuàng)新思維和競(jìng)爭(zhēng)力,成為擺在教師面前的重要課題。本文將以JavaScript程序設(shè)計(jì)課程為例,探討該課程的教學(xué)現(xiàn)狀,并結(jié)合個(gè)人教學(xué)經(jīng)驗(yàn),研究與探討如何利用人工智能技術(shù)賦能該課程的教學(xué)。
1 教學(xué)現(xiàn)狀
JavaScript語(yǔ)言是目前最常用的程序設(shè)計(jì)語(yǔ)言之一,也是計(jì)算機(jī)專業(yè)的一門核心課程[5]。傳統(tǒng)的JavaS?cript程序設(shè)計(jì)教學(xué)方法以教師和教材為中心,重點(diǎn)強(qiáng)調(diào)語(yǔ)法教學(xué),而忽視問題導(dǎo)向的教學(xué)方式,導(dǎo)致學(xué)生在課程結(jié)束后感覺收獲有限。通過多年教學(xué)實(shí)踐,筆者發(fā)現(xiàn)編程類課程教學(xué)過程中可能存在以下問題:1) 人工智能技術(shù)已經(jīng)快速滲透到各類前后端平臺(tái),但目前課程未涵蓋相關(guān)內(nèi)容,與行業(yè)趨勢(shì)脫節(jié);2) 學(xué)生基礎(chǔ)知識(shí)和編程經(jīng)驗(yàn)上存在較大差異,滿足所有學(xué)生的需要成為一個(gè)挑戰(zhàn);3) 傳統(tǒng)的灌輸式教學(xué)限制了學(xué)生獨(dú)立思考和提問的機(jī)會(huì),忽略了培養(yǎng)學(xué)生的主動(dòng)思考和主觀能動(dòng)性;4) 課程對(duì)實(shí)踐性要求高,學(xué)生在編程和調(diào)試中會(huì)遇到各種語(yǔ)法或者邏輯問題,而教師在指導(dǎo)眾多學(xué)生時(shí)往往難以兼顧;5) 實(shí)踐項(xiàng)目較為陳舊,缺乏吸引力和創(chuàng)新性,導(dǎo)致學(xué)生參與不積極,也未能有效培養(yǎng)學(xué)生的創(chuàng)新和創(chuàng)造力;6) 代碼作業(yè)通常依賴教師人工審核,耗時(shí)又易受主觀因素影響。隨著在前端技術(shù)的快速發(fā)展和AI技術(shù)的廣泛應(yīng)用,傳統(tǒng)的Ja?vaScript程序設(shè)計(jì)教學(xué)方法已不能滿足日益復(fù)雜化的技術(shù)要求和學(xué)生多樣化的需求。在此背景下,人工智能賦能編程類課程的教學(xué)研究和實(shí)踐顯得尤為重要。
2 教學(xué)內(nèi)容的更新與優(yōu)化
為了適應(yīng)人工智能(AI) 在各個(gè)領(lǐng)域的廣泛應(yīng)用,更新和優(yōu)化編程課程內(nèi)容變得尤為重要,以確保學(xué)生能夠掌握最前沿的知識(shí)和技能。
1) 確定新的教學(xué)目標(biāo)。在基本理論知識(shí)點(diǎn)上,除了學(xué)習(xí)JavaScript語(yǔ)言的基本結(jié)構(gòu)、函數(shù)、對(duì)象等基礎(chǔ)知識(shí)外,應(yīng)加入AI的基礎(chǔ)知識(shí),如數(shù)據(jù)預(yù)處理、機(jī)器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)的概念,以便讓學(xué)生在學(xué)習(xí)JavaScript的過程中了解AI技術(shù)的基礎(chǔ)。在JavaScript 實(shí)踐教學(xué)部分,新增如何將JS技術(shù)與AI融合的內(nèi)容,掌握如何調(diào)用現(xiàn)有的AI庫(kù)或者API接口實(shí)現(xiàn)簡(jiǎn)單的圖像智能識(shí)別和自然語(yǔ)言處理。這要求學(xué)生不僅能寫出優(yōu)雅的JavaScript代碼,還要能夠?qū)崿F(xiàn)簡(jiǎn)單的AI 功能。由于AI技術(shù)迅速演進(jìn),教學(xué)目標(biāo)也應(yīng)定期更新,以確保學(xué)生學(xué)習(xí)的知識(shí)和技能與時(shí)俱進(jìn)。
2) JavaScript 與AI 庫(kù)的結(jié)合。引入各種AI庫(kù)、框架和工具,來(lái)設(shè)計(jì)新的實(shí)踐項(xiàng)目,以增強(qiáng)學(xué)生的實(shí)踐操作能力并激發(fā)他們的創(chuàng)新思維。具體來(lái)說,引入TensorFlow.js機(jī)器學(xué)習(xí)算法庫(kù),為學(xué)生提供初步的實(shí)踐指導(dǎo)。學(xué)生可以在前端環(huán)境中實(shí)現(xiàn)AI模型的運(yùn)行和應(yīng)用,如構(gòu)建簡(jiǎn)單的在線圖像識(shí)別系統(tǒng),通過上傳圖片即可自動(dòng)識(shí)別常見物體的類型。這種實(shí)踐活動(dòng)不僅讓學(xué)生掌握數(shù)據(jù)處理、特征提取和模型調(diào)用等關(guān)鍵技能,還激發(fā)他們對(duì)AI技術(shù)更深層次的探索興趣。
3) 增加數(shù)據(jù)處理和可視化的內(nèi)容。隨著人工智能與大數(shù)據(jù)時(shí)代的來(lái)臨,前端采用可視化技術(shù)展示數(shù)據(jù)處理過程和結(jié)果的需求日益增加。課程引入JavaS?cript圖表庫(kù)Chart.js內(nèi)容,結(jié)合AI技術(shù),幫助學(xué)生進(jìn)行有效的數(shù)據(jù)篩選和可視化處理。通過設(shè)計(jì)實(shí)際的項(xiàng)目,如構(gòu)建展示學(xué)校學(xué)生信息的統(tǒng)計(jì)網(wǎng)頁(yè),學(xué)生可以學(xué)習(xí)如何展示復(fù)雜數(shù)據(jù),包括生源地的電子地圖和不同年齡學(xué)生數(shù)量的柱狀圖等內(nèi)容。這不僅培養(yǎng)學(xué)生的數(shù)據(jù)意識(shí)和處理技能,也幫助他們理解數(shù)據(jù)在AI項(xiàng)目中的重要性和處理技巧。
3 教學(xué)方法的探索與創(chuàng)新
教師是專業(yè)技術(shù)教育和 AI 賦能教育的關(guān)鍵,也是人工智能思維、智能技術(shù)運(yùn)用于新工科專業(yè)教育的主要實(shí)踐者[6]。在人工智能時(shí)代,教學(xué)模式正從以教師為中心逐漸轉(zhuǎn)向以學(xué)習(xí)者為中心,這一趨勢(shì)越來(lái)越明顯。
3.1 AI 輔助的個(gè)性化教學(xué)
在現(xiàn)代教育領(lǐng)域,AI技術(shù)的融合正在為個(gè)性化教學(xué)開辟新的路徑。通過使用AI輔助工具和學(xué)習(xí)系統(tǒng),學(xué)生能夠更深入地參與教學(xué)過程,享受更加個(gè)性化和高效的學(xué)習(xí)體驗(yàn)。這些工具也顯著減輕了教師的教學(xué)負(fù)擔(dān),使他們能夠更專注于教學(xué)內(nèi)容的創(chuàng)新和優(yōu)化。
在編程學(xué)習(xí)中,使用如Visual Studio Code這樣的先進(jìn)開發(fā)工具,可以高效地完成個(gè)性化教學(xué)工作。在代碼編寫階段,學(xué)生可以利用Visual Studio Code自帶的自動(dòng)代碼補(bǔ)全和實(shí)時(shí)代碼提示功能,更流暢地完成編程任務(wù)。這不僅提高了編程的效率,還有助于降低學(xué)習(xí)初期的難度,使學(xué)生更快地進(jìn)入狀態(tài)。在代碼審查階段,學(xué)生可以在Visual Studio Code中安裝Lint工具插件進(jìn)行基本的代碼檢查,還可以借助AI工具,如Github Copilot或IntelliCode,進(jìn)行更全面的代碼審查。這些工具不僅能對(duì)代碼進(jìn)行語(yǔ)法、邏輯和性能檢查,還提供有針對(duì)性的反饋意見,幫助學(xué)生及時(shí)了解并糾正錯(cuò)誤,從而培養(yǎng)良好的編程習(xí)慣。對(duì)于更復(fù)雜的編程任務(wù),AI工具可以協(xié)助完成非核心知識(shí)點(diǎn)的任務(wù)。例如,在JavaScript程序制作網(wǎng)站過程中,通常需要使用HTML和CSS技術(shù)來(lái)編寫前端頁(yè)面。對(duì)于掌握程度差異較大的學(xué)生,可以使用如SketchCode這樣的開源工具,通過描述或草圖自動(dòng)生成簡(jiǎn)單的Web界面原型。這樣的工具可以減輕學(xué)生在HTML和CSS編程方面的負(fù)擔(dān),使他們能夠?qū)W⒂贘avaScript的編程實(shí)踐。
AI在編程教學(xué)中的角色正變得越來(lái)越重要。線上AI 大模型平臺(tái),如百度的文心一言或OpenAI 的ChatGPT,能提供全天候答疑,迅速解答學(xué)生學(xué)習(xí)中的疑問,進(jìn)而提高其學(xué)習(xí)效率。當(dāng)學(xué)生完成實(shí)踐任務(wù)時(shí),還可以讓AI給出答案,進(jìn)行自主代碼比對(duì),這不僅幫助他們定位并改進(jìn)自己的弱點(diǎn),還能鼓勵(lì)他們不斷前進(jìn)。隨著學(xué)生與AI的持續(xù)交互,這些平臺(tái)可以進(jìn)一步分析學(xué)生所學(xué)知識(shí)與技能程度,為他們提供更加精確的學(xué)習(xí)建議和個(gè)性化的學(xué)習(xí)路徑。
3.2 AI 輔助的教學(xué)評(píng)估
教學(xué)評(píng)估不僅是檢驗(yàn)學(xué)生學(xué)習(xí)效果的途徑,更是促進(jìn)學(xué)生學(xué)習(xí)和進(jìn)步的關(guān)鍵[7]。借助AI技術(shù),教學(xué)評(píng)估可以變得更為高效和精準(zhǔn)。
作業(yè)與項(xiàng)目是評(píng)估學(xué)生知識(shí)理解和技能掌握的核心手段。傳統(tǒng)的批改方式通常依賴于教師或助教對(duì)代碼進(jìn)行手動(dòng)審核,這不僅耗時(shí),而且可能受到主觀因素的影響[8]。AI技術(shù)的進(jìn)步提供了便捷的自動(dòng)批改,包括自動(dòng)化編程作業(yè)批改和綜合評(píng)價(jià)。使用如CodeGrade的自動(dòng)代碼評(píng)審平臺(tái),學(xué)生提交代碼可以被系統(tǒng)自動(dòng)運(yùn)行預(yù)設(shè)的測(cè)試用例,以驗(yàn)證代碼的正確性和功能的完整性。這種方法確保了作業(yè)評(píng)估的準(zhǔn)確性和效率。除了基本的正確性驗(yàn)證,該平臺(tái)還能進(jìn)一步指出錯(cuò)誤點(diǎn)、分析代碼的執(zhí)行效率和邏輯清晰度,提供關(guān)于代碼性能和健壯性的綜合評(píng)估,這對(duì)學(xué)生理解更高級(jí)的編程概念和最佳實(shí)踐非常有幫助。
在教學(xué)整個(gè)過程中,可以借助數(shù)據(jù)分析和機(jī)器學(xué)習(xí)工具來(lái)持續(xù)監(jiān)測(cè)學(xué)生的在線學(xué)習(xí)活動(dòng),如網(wǎng)上的互動(dòng)數(shù)據(jù)、測(cè)試成績(jī)、作業(yè)提交情況以及在線學(xué)習(xí)平臺(tái)上的行為模式。這些數(shù)據(jù)有助于識(shí)別學(xué)生對(duì)具體知識(shí)點(diǎn)的掌握程度,了解哪些概念他們理解得好,哪些需要更多輔導(dǎo)和練習(xí)。此外,機(jī)器學(xué)習(xí)算法還可以分析學(xué)生的學(xué)習(xí)習(xí)慣和偏好,如他們傾向于何時(shí)學(xué)習(xí)、學(xué)習(xí)某個(gè)主題所需的時(shí)間及完成任務(wù)時(shí)的效率。這些信息為教師提供關(guān)于學(xué)生的整體學(xué)習(xí)狀況、知識(shí)掌握程度和學(xué)習(xí)難點(diǎn)等詳細(xì)洞察,從而幫助教師更好地理解學(xué)生的學(xué)習(xí)情況,并根據(jù)每位學(xué)生的個(gè)體差異提供有針對(duì)性的教學(xué)反饋和建議,同時(shí)也為未來(lái)的高質(zhì)量教學(xué)提供數(shù)據(jù)支持。
3.3 培養(yǎng)創(chuàng)新能力
借助AI技術(shù)培養(yǎng)學(xué)生的創(chuàng)新能力是現(xiàn)代教育的一個(gè)重要方向[9]。AI不僅提供了一個(gè)信息和知識(shí)的豐富來(lái)源,還能激發(fā)學(xué)生的創(chuàng)造力。因此,教育者應(yīng)積極利用這些資源,為學(xué)生營(yíng)造一個(gè)鼓勵(lì)探索、創(chuàng)新與學(xué)習(xí)的環(huán)境。
通過提供一系列多樣化的AI工具和平臺(tái),學(xué)生不僅學(xué)習(xí)理論,還能體驗(yàn)各種AI算法和技術(shù)。這種實(shí)際操作經(jīng)驗(yàn)使他們能更深入地理解這些技術(shù)的原理,并激發(fā)他們的好奇心和探索欲。例如,在講授JavaScript 程序設(shè)計(jì)網(wǎng)絡(luò)編程章節(jié)時(shí),可選用日常生活中常用的聊天機(jī)器人作為案例。通過動(dòng)手操作和聽講,學(xué)生可以了解聊天軟件的網(wǎng)絡(luò)通信原理和編程方法,這不僅增加了課程的趣味性,還有助于培養(yǎng)學(xué)生的創(chuàng)新思維和實(shí)際應(yīng)用能力。
此外,通過設(shè)定與AI相關(guān)的創(chuàng)新項(xiàng)目,可以進(jìn)一步鼓勵(lì)學(xué)生應(yīng)用不同的AI模型和技術(shù)來(lái)解決實(shí)際問題。采用探究式教學(xué)法,引導(dǎo)學(xué)生主動(dòng)參與問題發(fā)現(xiàn)和解決過程。例如,學(xué)生可以利用百度大腦等平臺(tái)提供的開放AI接口,通過JavaScript進(jìn)行網(wǎng)絡(luò)調(diào)用,構(gòu)建一個(gè)基于AI生成藝術(shù)、音樂或文本的網(wǎng)站。在實(shí)踐過程中,他們需要思考項(xiàng)目背后的設(shè)計(jì)邏輯、操作機(jī)制和可能的改進(jìn)方向。教育者可以根據(jù)學(xué)生提交的軟件開發(fā)項(xiàng)目評(píng)估學(xué)習(xí)進(jìn)度、實(shí)用性和創(chuàng)新能力。這樣的方式不僅可以反映學(xué)生的技術(shù)掌握程度,還能鼓勵(lì)他們探索更多創(chuàng)新的方法和應(yīng)用。學(xué)生還可以嘗試設(shè)計(jì)在線代碼審核工具,利用如TensorFlow.js等AI工具庫(kù)來(lái)建立和訓(xùn)練模型,實(shí)現(xiàn)自動(dòng)檢測(cè)JavaScript代碼中的常見編程錯(cuò)誤。這種從使用工具到開發(fā)工具的過程,可以全面提升學(xué)生的編程能力和創(chuàng)新思維,幫助他們更好地將AI功能融入Web開發(fā)中。
AI教學(xué)內(nèi)容與行業(yè)需求及最新技術(shù)趨勢(shì)保持一致,通過將課堂中的AI創(chuàng)新成果展現(xiàn)于創(chuàng)新創(chuàng)業(yè)競(jìng)賽,構(gòu)成了一種極佳的實(shí)踐途徑。例如,在作者執(zhí)教的JavaScript程序設(shè)計(jì)課程中,就有學(xué)生利用所學(xué)的編程和AI技能,自發(fā)組成團(tuán)隊(duì),共同開發(fā)了一個(gè)基于人工智能的芯片表面缺陷檢測(cè)系統(tǒng),并在浙江省第十八屆“挑戰(zhàn)杯”大學(xué)生科技作品競(jìng)賽中榮獲銅獎(jiǎng)。參與創(chuàng)新創(chuàng)業(yè)競(jìng)賽的過程不僅讓學(xué)生將創(chuàng)新想法和技術(shù)付諸實(shí)踐,還為他們提供了與行業(yè)專家和其他創(chuàng)新團(tuán)隊(duì)交流的機(jī)會(huì)。這種交流不僅提供了寶貴的反饋,幫助學(xué)生完善項(xiàng)目,還拓寬了他們的視野。
4 實(shí)施效果
對(duì)兩屆兩個(gè)班級(jí)學(xué)生的JavaScript程序設(shè)計(jì)授課情況進(jìn)行了統(tǒng)計(jì)和對(duì)比分析,筆者發(fā)現(xiàn)了幾個(gè)顯著的進(jìn)步點(diǎn)。1) 引入與當(dāng)前技術(shù)熱點(diǎn)相結(jié)合的教學(xué)內(nèi)容顯著提升了學(xué)生的學(xué)習(xí)興趣。通過對(duì)比兩屆學(xué)生的課堂參與度和作業(yè)提交情況,我們注意到當(dāng)課程內(nèi)容與實(shí)際應(yīng)用場(chǎng)景更加緊密結(jié)合時(shí),學(xué)生的參與度明顯提高。例如,講授使用Cursor工具進(jìn)行代碼審查和自動(dòng)代碼編寫時(shí),學(xué)生的課堂互動(dòng)頻率和作業(yè)提交率均有所增加。2) 學(xué)生對(duì)新教學(xué)方法的反饋積極。在與學(xué)生的交流過程中,他們高度認(rèn)同和積極支持JavaScript與AI技術(shù)的結(jié)合。學(xué)生普遍表示,這種教學(xué)方式不僅增加了課程的趣味性,而且在理解新技術(shù)和解決實(shí)際問題的能力方面,也為他們提供了更多的幫助。這表明,將理論與實(shí)踐相結(jié)合的教學(xué)模式更能激發(fā)學(xué)生的學(xué)習(xí)熱情和創(chuàng)新思維。3) 學(xué)生的作業(yè)完成率和質(zhì)量也得到了顯著提升。相比上一屆學(xué)生,作業(yè)完成率提高了11%,整體作業(yè)質(zhì)量同樣也有所提升。這不僅反映了學(xué)生對(duì)新教學(xué)內(nèi)容的接受度和興趣,也在一定程度上減輕了教師在作業(yè)指導(dǎo)和批改方面的負(fù)擔(dān)。在期末考試成績(jī)方面,也有了明顯的提升。與前一屆學(xué)生相比,這兩屆學(xué)生的平均分和最高分均有所增加,這說明新的教學(xué)方法和內(nèi)容對(duì)學(xué)生的學(xué)習(xí)成果產(chǎn)生了積極影響。4) 在課程結(jié)束后進(jìn)行的“學(xué)評(píng)教”中,學(xué)生對(duì)這門課程的整體評(píng)價(jià)比上一屆高出3%。這個(gè)結(jié)果表明,學(xué)生對(duì)新的教學(xué)內(nèi)容和方法有更高的滿意度??偟膩?lái)說,通過這次教學(xué)內(nèi)容的更新和教學(xué)方法的改革,不僅提高了學(xué)生的學(xué)習(xí)效率和興趣,也增強(qiáng)了他們對(duì)新技術(shù)的理解和應(yīng)用能力。
5 結(jié)論
本文探討了在人工智能(AI) 技術(shù)日益發(fā)展的背景下,如何利用AI賦能JavaScript程序設(shè)計(jì)課程的教學(xué)。通過對(duì)教學(xué)內(nèi)容的更新、AI輔助個(gè)性化教學(xué)、AI 輔助教學(xué)評(píng)估改革以及培養(yǎng)學(xué)生創(chuàng)新能力等方面的探索和實(shí)踐,成功地將人工智能技術(shù)融入教學(xué)實(shí)踐中。這一融合不僅豐富了課程的教學(xué)內(nèi)容,還為學(xué)生提供了更加實(shí)用和創(chuàng)新的學(xué)習(xí)體驗(yàn),證明了AI賦能教育在現(xiàn)代教學(xué)中的巨大潛力和價(jià)值。隨著技術(shù)的不斷進(jìn)步,期待AI 在教育領(lǐng)域中的持續(xù)深入和廣泛應(yīng)用。