于世華 栗慧峰
(呼倫貝爾學(xué)院 內(nèi)蒙古 海拉爾 021008)
自從呼倫貝爾學(xué)院升本以來(lái),非計(jì)算機(jī)專業(yè)“計(jì)算機(jī)通識(shí)課”授課內(nèi)容集中在office、flash、photoshop等應(yīng)用軟件的學(xué)習(xí)上。課程設(shè)置之初,對(duì)普及計(jì)算機(jī)教育,提高非計(jì)算機(jī)專業(yè)學(xué)生的計(jì)算機(jī)應(yīng)用能力起到了積極的作用。但是,隨著人工智能技術(shù)的飛速發(fā)展,在發(fā)達(dá)省份中小學(xué)都開(kāi)設(shè)編程及人工智能課程的今天,顯然已經(jīng)遠(yuǎn)遠(yuǎn)不夠。
教育部在《高等學(xué)校人工智能創(chuàng)新行動(dòng)計(jì)劃》(以下簡(jiǎn)稱《行動(dòng)計(jì)劃》)中指出:“重視人工智能與計(jì)算機(jī)、控制、數(shù)學(xué)、統(tǒng)計(jì)學(xué)、物理學(xué)、生物學(xué)、心理學(xué)、社會(huì)學(xué)、法學(xué)等學(xué)科專業(yè)教育的交叉融合,探索“人工智能+X”的人才培養(yǎng)模式”。[1]人工智能發(fā)展所需要的不僅僅是能從事智能開(kāi)發(fā)的高端人才,也需要人文、社會(huì)層面和公共層面的倫理規(guī)范、甚至藝術(shù)創(chuàng)作等各個(gè)視角都能對(duì)人工智能進(jìn)行思考和探索的各方面人才?!缎袆?dòng)計(jì)劃》指出:將人工智能納入大學(xué)計(jì)算機(jī)基礎(chǔ)教學(xué)內(nèi)容[1]。所以,在開(kāi)設(shè)人工智能有關(guān)的選修課即是順應(yīng)時(shí)代發(fā)展、響應(yīng)國(guó)家號(hào)召的一次有益嘗試,也是非計(jì)算機(jī)專業(yè)學(xué)生獲得系統(tǒng)編程訓(xùn)練和進(jìn)行人工智能學(xué)習(xí)的一種有效途徑。
呼倫貝爾學(xué)院本科專業(yè)覆蓋理學(xué)、工學(xué)、經(jīng)濟(jì)學(xué)、法學(xué)、文學(xué)、管理學(xué)、藝術(shù)學(xué)等大類,所有的專業(yè)都需要計(jì)算機(jī)技術(shù)的支持。計(jì)算機(jī)不僅是運(yùn)算工具,更是創(chuàng)新平臺(tái),高效地利用計(jì)算機(jī)需要更簡(jiǎn)潔實(shí)用的編程語(yǔ)言。Python語(yǔ)言簡(jiǎn)潔卻強(qiáng)大、簡(jiǎn)單卻專業(yè),已成為當(dāng)今最受歡迎的編程語(yǔ)言,在不同學(xué)科的諸多領(lǐng)域擁有廣泛應(yīng)用。面向零基礎(chǔ)的學(xué)生開(kāi)設(shè)Python語(yǔ)言的相關(guān)課程,將幫助學(xué)生熟悉解決計(jì)算問(wèn)題的基本方法和過(guò)程,更快速地掌握一門終身受用的計(jì)算機(jī)編程語(yǔ)言。此外,Python語(yǔ)言也是最接近人工智能的編程語(yǔ)言,有了Python語(yǔ)言的編程基礎(chǔ),就能更好地理解人工智能算法的實(shí)現(xiàn)過(guò)程。
根據(jù)《行動(dòng)計(jì)劃》要求本科高校人工智能相關(guān)課程的開(kāi)課目標(biāo)是為學(xué)生提供一門理解人工智能的入門級(jí)基礎(chǔ)課程,使學(xué)生初步了解人工智能技術(shù)的基本概念、發(fā)展歷史、經(jīng)典算法、應(yīng)用領(lǐng)域和對(duì)人類社會(huì)的深遠(yuǎn)影響,從而打開(kāi)學(xué)習(xí)人工智能的大門,為學(xué)生今后在人工智能相關(guān)領(lǐng)域進(jìn)行深入研究奠定基礎(chǔ)[2]。
課程開(kāi)設(shè)主要分兩個(gè)階段,首先以公選課形式開(kāi)設(shè),然后過(guò)渡到通識(shí)課階段。通過(guò)分析總結(jié)不同專業(yè)、不同年級(jí)學(xué)生公選課的學(xué)習(xí)情況和反饋結(jié)果,評(píng)估課程內(nèi)容的接受度和教學(xué)目標(biāo)的達(dá)成度;其次,做進(jìn)一步的方案細(xì)化。比如,文理科專業(yè)的側(cè)重點(diǎn)、程序設(shè)計(jì)的要求等都可能存在差異。根據(jù)學(xué)生的授課基礎(chǔ)、實(shí)際需求等情況,經(jīng)過(guò)充分的評(píng)估后,再制定出針對(duì)性更強(qiáng)的教學(xué)設(shè)計(jì)和方案。本課程的學(xué)時(shí)設(shè)定為:Python程序設(shè)計(jì)16學(xué)時(shí)(講課)+12學(xué)時(shí)(上機(jī)),人工智能基礎(chǔ)16學(xué)時(shí)(講課)+4學(xué)時(shí)(上機(jī))= 總計(jì)48學(xué)時(shí)。
非計(jì)算機(jī)類學(xué)生對(duì)計(jì)算機(jī)理論與原理理解不深,基本沒(méi)有算法基礎(chǔ)和設(shè)計(jì)能力,所以這部分的設(shè)計(jì)思想是以程序設(shè)計(jì)為主線,以編程應(yīng)用為驅(qū)動(dòng),通過(guò)案例和問(wèn)題引入內(nèi)容,重點(diǎn)講解程序設(shè)計(jì)的思想和方法,同時(shí)穿插介紹相關(guān)的語(yǔ)言知識(shí)。在實(shí)際授課過(guò)程中強(qiáng)調(diào)實(shí)踐,從第一節(jié)課開(kāi)始就通過(guò)編寫程序培養(yǎng)學(xué)生的學(xué)習(xí)興趣,并貫穿教學(xué)全過(guò)程。通過(guò)“模仿-改寫-編寫”的實(shí)現(xiàn)過(guò)程,在循序漸進(jìn)的引導(dǎo)中讓學(xué)生熟悉編程環(huán)境、掌握編程方法和技巧,并最終理解程序設(shè)計(jì)思想,培養(yǎng)計(jì)算思維。
雖然編程語(yǔ)言的學(xué)習(xí)非常重要,但是代碼枯燥無(wú)趣的特點(diǎn)也是客觀存在的。所以為了提高學(xué)生的學(xué)習(xí)興趣,在日常教學(xué)中引入與生活密切相關(guān)的實(shí)例,盡量采用圖形方式來(lái)呈現(xiàn)運(yùn)行結(jié)果,并通過(guò)課上實(shí)例的舉一反三和設(shè)計(jì)多種形式的練習(xí)題目等方法鼓勵(lì)學(xué)生多思考、多練習(xí),從而提高學(xué)生的綜合能力。作為編程入門課程,Python語(yǔ)言程序設(shè)計(jì)課程主要講授基本語(yǔ)法元素、基本圖形繪制、基本與組合數(shù)據(jù)類型、程序控制結(jié)構(gòu)、函數(shù)和文件等內(nèi)容,而課程的擴(kuò)展部分則在學(xué)生學(xué)習(xí)了人工智能的相關(guān)知識(shí)后,再根據(jù)自己的專業(yè)、興趣、需求等因素自行選擇。
以利用Turtle圖形庫(kù)進(jìn)行基本圖形繪制為例進(jìn)行教學(xué)設(shè)計(jì)如下:設(shè)計(jì)“蟒蛇繪制”[3]的代碼,這是編寫程序的開(kāi)始,也是培養(yǎng)學(xué)生喜歡編程的關(guān)鍵。雖然是所見(jiàn)即所得的效果,但是在繪制圖形時(shí)角度旋轉(zhuǎn)有正負(fù),半徑設(shè)定也可以為正負(fù),這是學(xué)生學(xué)習(xí)的難點(diǎn),也是教學(xué)重點(diǎn)突破的地方。和學(xué)生講解清楚很容易,但是讓零編程基礎(chǔ)的學(xué)生熟練掌握是不易的,這里也往往是部分學(xué)生失去興趣的地方。所以,筆者通過(guò)在課上帶領(lǐng)學(xué)生做蛇形操,讓學(xué)生參與運(yùn)動(dòng)的方式調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性,然后讓他們把動(dòng)作用語(yǔ)言表達(dá)出來(lái),這樣學(xué)生在不知不覺(jué)中寫好了代碼,從認(rèn)知上他們覺(jué)得編程不難。圖1所示為要繪制的蟒蛇圖案,表1所示為繪制的蟒蛇圖案的分解動(dòng)作。
圖1 繪制蟒蛇圖案
表1 蟒蛇圖案分解動(dòng)作
續(xù)表1
序號(hào)圖示動(dòng)作方向語(yǔ)句難點(diǎn)第三節(jié)④右腳畫弧向右手方向轉(zhuǎn)40度面向正東方向⑤右腳畫弧向右手方向轉(zhuǎn)40度面向東偏南40度方向t.circle(-50,40)t.circle(-50,40) ?t.circle(-50,80)畫弧角度正半徑負(fù)第四節(jié)重復(fù)②-⑤動(dòng)作循環(huán)第五節(jié)⑥向左手方向轉(zhuǎn)40度,向前進(jìn)面向正東方向t.circle(50,80/2) fd(50)角度減半前行第六節(jié)⑦回頭面向正西方向circle(16, 180)調(diào)整角度⑧看fd(50 * 2/3)前行
編寫代碼之初的這套蛇形操充分調(diào)動(dòng)了學(xué)生參與的積極性,通過(guò)肢體動(dòng)作,避免了學(xué)生的倦怠心理,讓他們有興趣、有意愿去使用Python解決問(wèn)題;把體操動(dòng)作用代碼進(jìn)行呈現(xiàn),從感性認(rèn)識(shí)自然過(guò)渡到理性認(rèn)知,特別是角度正負(fù)、半徑正負(fù)、循環(huán)這些難點(diǎn)的逐一攻破,成功調(diào)動(dòng)起了學(xué)生的學(xué)習(xí)熱情。在此基礎(chǔ)上,讓學(xué)生自行設(shè)計(jì)不同顏色、不同粗細(xì)、不同長(zhǎng)度、不同前進(jìn)方向的蟒蛇,在編程實(shí)踐中練習(xí),很多知識(shí)點(diǎn)學(xué)生自然就掌握了,從而使得他們充滿熱情地利用Turtle繪圖體系進(jìn)行繪圖創(chuàng)作。這種探究學(xué)習(xí)成為了學(xué)生為主體,教師為輔助的有益實(shí)踐。
人工智能應(yīng)用領(lǐng)域覆蓋范圍廣,學(xué)科交叉性強(qiáng),在各行各業(yè)各個(gè)領(lǐng)域都有廣泛的應(yīng)用。而人工智能算法實(shí)現(xiàn)需要具備較高的數(shù)學(xué)基礎(chǔ)和熟練的編程能力。所以,在教學(xué)時(shí)既不能講成類似科普性質(zhì)的講座,又不能開(kāi)成介紹專業(yè)人工智能原理與應(yīng)用的課程,應(yīng)該在考慮學(xué)生的實(shí)際基礎(chǔ)與專業(yè)需要后,將課程的專業(yè)性和趣味性加以結(jié)合,因此課程設(shè)計(jì)主要從兩個(gè)方面進(jìn)行考慮:一是人工智能的應(yīng)用。這部分內(nèi)容主要包括身邊的人工智能、人工智能發(fā)展簡(jiǎn)史、人工智能應(yīng)用及人工智能與人類社會(huì)未來(lái)等內(nèi)容,側(cè)重從知識(shí)的廣度上擴(kuò)大學(xué)生對(duì)人工智能的了解。教學(xué)過(guò)程中,除了授課課件中所提供的文本、圖片等資料外,教師可結(jié)合學(xué)生的學(xué)習(xí)興趣、關(guān)注熱點(diǎn)和社會(huì)需求提供課外的閱讀材料和視頻等必要補(bǔ)充資源去開(kāi)闊學(xué)生視野;同時(shí)在云數(shù)據(jù)庫(kù)班課上通過(guò)頭腦風(fēng)暴、輕視討論等活動(dòng)形式分享學(xué)生的收獲和思考,并將學(xué)生獲得經(jīng)驗(yàn)值作為獎(jiǎng)勵(lì),雙管齊下促進(jìn)學(xué)生的進(jìn)步;二是智能系統(tǒng)的構(gòu)建。這部分內(nèi)容包括基于決策樹(shù)和搜索樹(shù)、基于遺傳算法、基于神經(jīng)網(wǎng)絡(luò)的智能系統(tǒng)的構(gòu)建,側(cè)重從深度加強(qiáng)學(xué)生對(duì)人工智能系統(tǒng)的理解,讓學(xué)生理解“智能”背后的“原理” 引導(dǎo)學(xué)生從感性看待人工智能技術(shù)轉(zhuǎn)而進(jìn)行理性的思考,從而成為促進(jìn)學(xué)生進(jìn)行深入學(xué)習(xí)的關(guān)鍵一環(huán)。同時(shí)在授課時(shí)利用成熟的人工智能的案例開(kāi)展教學(xué),如,猜數(shù)字游戲、下井字棋游戲、手寫數(shù)字的識(shí)別和教人工智能玩游戲等,這些案例由淺入深,讓學(xué)生逐漸從公眾視角和理論分析兩方面理解何為“人工”智能。
人工智能課程的學(xué)習(xí)反過(guò)來(lái)也促使學(xué)生把人工智能與本專業(yè)的知識(shí)和技能相結(jié)合,進(jìn)而深入地思考一些問(wèn)題。如,法學(xué)專業(yè)學(xué)生可以從法律和道德規(guī)范層面思考人工智能對(duì)社會(huì)帶來(lái)的新挑戰(zhàn)與沖擊;經(jīng)管專業(yè)學(xué)生關(guān)注經(jīng)濟(jì)方面的大數(shù)據(jù)處理和數(shù)據(jù)挖掘;傳媒專業(yè)學(xué)生關(guān)注人工智能的藝術(shù)創(chuàng)作;而外語(yǔ)專業(yè)學(xué)生則會(huì)思考在線翻譯對(duì)傳統(tǒng)翻譯行業(yè)的沖擊,對(duì)未來(lái)就業(yè)的影響,并思考應(yīng)對(duì)的方法。所以,人工智能部分的教學(xué)有助于打通文、理、社科和藝術(shù)等學(xué)科門類,激發(fā)學(xué)生的創(chuàng)新思想,引導(dǎo)學(xué)生打開(kāi)腦洞,超前思考深層次問(wèn)題[4]。當(dāng)不同專業(yè)學(xué)生具有了學(xué)習(xí)興趣與學(xué)習(xí)欲望,就會(huì)運(yùn)用他們的專業(yè)知識(shí)來(lái)分析和解決相關(guān)問(wèn)題。站在專業(yè)角度學(xué)習(xí)更多人工智能的知識(shí),這又反過(guò)來(lái)促進(jìn)了他們自主學(xué)習(xí)Python語(yǔ)言程序設(shè)計(jì)的擴(kuò)展部分知識(shí),如,經(jīng)管專業(yè)學(xué)生會(huì)主動(dòng)學(xué)習(xí)數(shù)據(jù)處理和網(wǎng)絡(luò)爬蟲(chóng);媒體藝術(shù)類學(xué)生會(huì)選學(xué)圖形繪制和圖像處理;人文類專業(yè)選學(xué)文本分析等,形成自主學(xué)習(xí)的良性循環(huán)。
人工智能部分依托MOOC網(wǎng)絡(luò)資源開(kāi)展教學(xué)。MOOC是一種顛覆性創(chuàng)新,其顛覆性在于3個(gè)方面:一是可以輻射到那些原本沒(méi)有機(jī)會(huì)接受高等教育的用戶;二是逐漸挺進(jìn)中高端市場(chǎng),讓市場(chǎng)中既有的客戶“乖乖”奔向他們;三是課程質(zhì)量的提升,也就是重新定義什么叫“好”[5]。MOOC對(duì)于地處經(jīng)濟(jì)不發(fā)達(dá)地區(qū)的本科高校尤其受益。依托MOOC平臺(tái),即便在計(jì)算機(jī)技術(shù)飛速發(fā)展的時(shí)代下也能讓教師和學(xué)生享受到最新教育資源。MOOC的授課模式主要采用混合教學(xué)方式,混合教學(xué)目的是把傳統(tǒng)學(xué)習(xí)的優(yōu)勢(shì)和E-Learning的優(yōu)勢(shì)結(jié)合起來(lái),既能發(fā)揮教師引導(dǎo)、啟發(fā)、監(jiān)控教學(xué)過(guò)程的主導(dǎo)作用,又能激發(fā)學(xué)生作為學(xué)習(xí)主體的主動(dòng)性、積極性和創(chuàng)造性。將這二者有機(jī)結(jié)合起來(lái),形成優(yōu)勢(shì)互補(bǔ),獲得最佳的學(xué)習(xí)效果[6]。人工智能部分采用的教學(xué)模式如圖2所示:
圖2 人工智能部分教學(xué)模式
下面以基于仿生算法的智能系統(tǒng)教學(xué)為例,說(shuō)明一下教學(xué)設(shè)計(jì)。這部分教學(xué)圍繞三張圖展開(kāi):對(duì)于所有專業(yè)的學(xué)生而言,遺傳和變異均是高中生物部分的必修內(nèi)容,其中也涉及生物進(jìn)化和自然選擇的相關(guān)知識(shí),所以仿生算法的教學(xué)從生物進(jìn)化開(kāi)始,如圖3所示的即為生物學(xué)中的遺傳和進(jìn)化過(guò)程。由于學(xué)生具有相關(guān)基礎(chǔ)知識(shí),所以很容易進(jìn)入情境;然后引出種群、個(gè)體、染色體、基因、適應(yīng)度、選擇、復(fù)制、交叉、變異和進(jìn)化等基因遺傳算法組件的定義,并通過(guò)求多項(xiàng)式函數(shù)的最小值的例子作為過(guò)渡,如圖4所示為嘗試用基因遺傳算法解決問(wèn)題;最后實(shí)現(xiàn)拼圖游戲,用圖像擬合效果演示基因經(jīng)過(guò)漫長(zhǎng)的遺傳、變異的進(jìn)化,演變成要擬合的python語(yǔ)言的LOGO圖案,進(jìn)化過(guò)程如圖5所示。以三張圖為基準(zhǔn),輻射出基因遺傳算法的相關(guān)知識(shí),有助于降低學(xué)生的畏難感,激發(fā)學(xué)生學(xué)習(xí)興趣和探索精神。同時(shí)通過(guò)課后提供生物進(jìn)化、人工蜂群算法、蟻群算法、粒子群算法和免疫算法等課外資源以及對(duì)拼圖游戲的遺傳算法改進(jìn)的思考,讓學(xué)生掌握基于仿生算法的智能體背后的原理。
圖3 生物學(xué)中的遺傳和進(jìn)化[7]
圖4 遺傳算法求多項(xiàng)式函數(shù)的最小值[7]
圖5 遺傳算法的拼圖游戲
課程的考核以提升學(xué)生創(chuàng)新思想和創(chuàng)新方法的考核為主,把學(xué)生從死記硬背的知識(shí)點(diǎn)測(cè)試中解放出來(lái),重點(diǎn)考查學(xué)生分析能力、解決問(wèn)題的能力,同時(shí)兼顧創(chuàng)新思想和思考方法的能力訓(xùn)練,因此采取多元評(píng)價(jià)模式。課程設(shè)置了階段測(cè)試、實(shí)現(xiàn)以考促學(xué);日常通過(guò)問(wèn)卷調(diào)查、頭腦風(fēng)暴、云直播及討論、云教材以及學(xué)習(xí)各種資源來(lái)獲得經(jīng)驗(yàn)值,并通過(guò)云數(shù)據(jù)在線班課完成上述教學(xué)和考核;而期末則提交課程學(xué)習(xí)報(bào)告作為結(jié)課考核。學(xué)習(xí)報(bào)告分Python部分和人工智能部分,兩部分要求不同,前者要求代碼實(shí)現(xiàn),后者則要求論文闡述。比如Python部分題目設(shè)定可以是根據(jù)每天新冠疫情數(shù)據(jù),使用Python編寫程序?qū)崿F(xiàn)數(shù)據(jù)分析和可視化;或者針對(duì)2020年全國(guó)兩會(huì)政府工作報(bào)告,以詞云、詞頻等形式進(jìn)行分析等。人工智能部分可以探討人工智能的技術(shù)原理、也可以表達(dá)對(duì)人工智能今后發(fā)展的思考;可以就某一個(gè)應(yīng)用展開(kāi)論述,也可以闡述人工智能在人文、倫理、法律各個(gè)層面、多個(gè)角度的發(fā)展與碰撞;或者閱讀一本有關(guān)人工智能書(shū)籍并寫出讀后感、欣賞一部人工智能影片并寫出影評(píng)等,只要學(xué)生感興趣、愿意進(jìn)行思維拓展和見(jiàn)解分享的形式和領(lǐng)域,都可以成為學(xué)生發(fā)揮自主創(chuàng)造力的舞臺(tái)。
筆者所在學(xué)校在2020年春季學(xué)期開(kāi)設(shè)了零基礎(chǔ)學(xué)Python和人工智能基礎(chǔ)的全校選修課,面向所有年級(jí)、所有專業(yè)。每門選修人數(shù)80人(上限80人)。在Python和人工智能熱潮下,學(xué)生的選課和學(xué)習(xí)熱情很高。選學(xué)零基礎(chǔ)學(xué)Python的學(xué)生專業(yè)及人數(shù)分布柱狀圖如圖6所示,從中可以看出學(xué)生分布在31個(gè)專業(yè),說(shuō)明編程課程是所有專業(yè)學(xué)生都需要掌握的基本技能;選學(xué)人工智能基礎(chǔ)的學(xué)生專業(yè)及學(xué)生分布柱狀圖如圖7所示,從中可以看出學(xué)生分布在21個(gè)專業(yè),機(jī)械設(shè)計(jì)制造及其自動(dòng)化(17人)、電子信息工程(13)等專業(yè)學(xué)生學(xué)習(xí)欲望更強(qiáng)烈,外語(yǔ)專業(yè)(18人)更有意向了解人工智能。
圖6 零基礎(chǔ)學(xué)python專業(yè)及人數(shù)分布
圖7 人工智能基礎(chǔ)專業(yè)及人數(shù)分布
在人工智能的發(fā)展已被列為國(guó)家戰(zhàn)略的大背景下,將人工智能教育納入到大學(xué)基礎(chǔ)教育中,作為通識(shí)教育的有機(jī)組成部分,是計(jì)算機(jī)教育工作者在推動(dòng)非計(jì)算機(jī)專業(yè)通識(shí)課教學(xué)改革的職責(zé)所在。從實(shí)踐效果來(lái)看,人工智能內(nèi)容豐富,學(xué)生雖有濃厚的學(xué)習(xí)熱情,但仍存在學(xué)生自身編程及高等數(shù)學(xué)等相關(guān)學(xué)科基礎(chǔ)薄弱以及學(xué)時(shí)有限等矛盾。筆者嘗試把Python語(yǔ)言與人工智能課程進(jìn)行有效融合,通過(guò)Python語(yǔ)言課的教學(xué)使得人工智能課程中智能系統(tǒng)的算法分析得以實(shí)現(xiàn);而智能系統(tǒng)構(gòu)建算法的實(shí)現(xiàn)又促進(jìn)了Python語(yǔ)言的應(yīng)用。在今后教學(xué)過(guò)程中,如何更好地促進(jìn)人工智能相關(guān)內(nèi)容與各專業(yè)學(xué)科的更好融合也是思考和探索的方向。
呼倫貝爾學(xué)院學(xué)報(bào)2021年1期