趙廣輝,李 屾,秦珀石,汪朝霞
(武漢理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 武漢 430070)
隨著經(jīng)濟(jì)和社會(huì)的快速發(fā)展,大學(xué)也隨之發(fā)生了極大的變化。自1977年恢復(fù)高考到1998年,我國(guó)高校錄取人數(shù)的增長(zhǎng)率一直遠(yuǎn)低于人口增長(zhǎng)率。截至1998年,我國(guó)大學(xué)毛入學(xué)率約為6%,高等教育屬于精英教育階段。精英的學(xué)習(xí)動(dòng)機(jī)明確,自學(xué)能力強(qiáng),他們渴望通過學(xué)習(xí)實(shí)現(xiàn)自我,改變世界。學(xué)生主動(dòng)學(xué)習(xí)能力強(qiáng),老師只需要告訴他們“學(xué)什么”和“怎么學(xué)”就可以。
為提高國(guó)民素質(zhì),1999年高校開始擴(kuò)大招生,伴隨新生人口數(shù)量的下降,大學(xué)錄取率和毛入學(xué)率迅速提高,在2002年毛入學(xué)率超過15%,達(dá)到大眾教育階段,2019年毛入學(xué)率超過50%,達(dá)到普及教育階段。目前進(jìn)入大學(xué)的學(xué)生是伴隨著互聯(lián)網(wǎng)成長(zhǎng)起來的,他們具有視野開闊、個(gè)性鮮明、獨(dú)立性強(qiáng)等優(yōu)點(diǎn),但也存在著學(xué)習(xí)動(dòng)機(jī)不明確、自學(xué)能力弱、過度依賴教師講授、沉溺于娛樂和社交網(wǎng)絡(luò)等缺點(diǎn)。
在高等教育普及化階段,如何實(shí)現(xiàn)“大國(guó)辦強(qiáng)教育”,實(shí)現(xiàn)從教育大國(guó)向教育強(qiáng)國(guó)的戰(zhàn)略轉(zhuǎn)變,線下教學(xué)將起到至關(guān)重要的作用。
程序設(shè)計(jì)教學(xué)語言是具有顯著的時(shí)代特征的,隨著計(jì)算機(jī)硬件和應(yīng)用需求的變化,程序設(shè)計(jì)的教學(xué)語言也隨之發(fā)生著變化。早期計(jì)算機(jī)計(jì)算能力弱,主要用于解決計(jì)算問題,Basic是適合應(yīng)用需求的教學(xué)語言。隨著計(jì)算能力的提升以及多媒體技術(shù)的出現(xiàn),F(xiàn)ortran、C語言、Visual Basic等才逐漸走入課堂。
隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,計(jì)算機(jī)的應(yīng)用從單純的計(jì)算和數(shù)據(jù)管理逐步轉(zhuǎn)向人工智能與大數(shù)據(jù)技術(shù)。在這樣的背景下,目前程序設(shè)計(jì)公共課的主要教學(xué)語言C、Visual Basic等只能講授基本的編程方法,無法直接被用于復(fù)雜專業(yè)問題的求解,課程知識(shí)與學(xué)生應(yīng)用需求脫節(jié),學(xué)生對(duì)課程的滿意度低。
當(dāng)前正處于工業(yè)4.0時(shí)期或稱為人工智能時(shí)代,程序設(shè)計(jì)等信息技術(shù)被越來越廣泛地應(yīng)用于各個(gè)學(xué)科專業(yè)的學(xué)習(xí)、工作和研究過程。各學(xué)科對(duì)知識(shí)的交叉融合需求越來越強(qiáng)烈,需要對(duì)程序設(shè)計(jì)課程的教學(xué)內(nèi)容、課程教學(xué)目標(biāo)和教學(xué)方法進(jìn)行全方位的重構(gòu),為學(xué)科交叉融合提供更多和更深層次的技術(shù)支撐。建設(shè)通識(shí)教育“金課”是通識(shí)教育工作的主要任務(wù)和高等教育工作的重要任務(wù)之一[1]。
吳巖司長(zhǎng)提到:“線下課堂教學(xué)是“金課”建設(shè)的主陣地、主渠道和主戰(zhàn)場(chǎng)”[2]。與線上授課相比,線下授課具有一些獨(dú)特的魅力和優(yōu)點(diǎn),其中最重要的是言傳身教和身臨其境。
線下教學(xué)可以做到言傳身教,即可教書,又可育人。課堂教學(xué)除了知識(shí)傳遞以外,還有一個(gè)更重要的元素是文化傳承,教師通過言傳身教,把自己的思維方式、治學(xué)態(tài)度、科學(xué)精神傳承給學(xué)生。《禮記》有云:“師者也,教之以事而喻諸德也?!敝逃姨招兄壬苍f過:“先生不應(yīng)該專教書,他的責(zé)任是教人做人;學(xué)生不應(yīng)該專讀書,他的責(zé)任是學(xué)習(xí)人生之道。”從教師教育學(xué)生的角度來說,線下教學(xué)中,教師可以以德治教、以德育人、言傳身教,對(duì)學(xué)生起到潛移默化的影響,達(dá)到潤(rùn)物細(xì)無聲的效果。
課堂教學(xué)過程中,學(xué)生與老師處于同一物理空間,學(xué)生可以清晰地感受到授課老師的情緒,很容易受課堂學(xué)習(xí)和討論氣氛的感染。老師可以通過肢體語言的變換和語氣、語調(diào)、語速的變化吸引學(xué)生的注意力,提升學(xué)生的興奮度,而且學(xué)生還可以深度參與教學(xué)活動(dòng)中,師生之間可以有包括思維互動(dòng)、問答互動(dòng)、情感互動(dòng)、行為互動(dòng)等各種互動(dòng),這些互動(dòng)體現(xiàn)了師生之間的一種合作精神。這與現(xiàn)場(chǎng)看演唱會(huì)、球賽一樣,教與學(xué)的對(duì)象之間存在著一種能量的流動(dòng),這是線上教學(xué)無法比擬的。
2017年2月以來,教育部積極推進(jìn)新工科建設(shè),先后形成了“復(fù)旦共識(shí)”“天大行動(dòng)”和“北京指南”,奏響了新工科建設(shè)的“三部曲”,而新工科建設(shè)中,繼承與創(chuàng)新、交叉與融合、協(xié)調(diào)與共享是主要建設(shè)途徑,其中,多學(xué)科的交叉與融合處于核心地位。這種交叉與融合催生出新工科、新醫(yī)科、新農(nóng)科、新文科、新商科等眾多新興學(xué)科。教育部要求重視人工智能與計(jì)算機(jī)、控制、數(shù)學(xué)、統(tǒng)計(jì)學(xué)、物理學(xué)、生物學(xué)、心理學(xué)、社會(huì)學(xué)、法學(xué)等學(xué)科專業(yè)教育的交叉融合,形成“人工智能+X”復(fù)合專業(yè)培養(yǎng)新模式,到2020年建設(shè)100個(gè)“人工智能+X”復(fù)合特色專業(yè)。
這些新政策對(duì)程序設(shè)計(jì)公共課程教學(xué)提出了更高的要求,要求這門課程在為專業(yè)問題求解提供支撐的基礎(chǔ)上,承擔(dān)起人工智能和數(shù)據(jù)處理方面能力培養(yǎng)的重任。
現(xiàn)在正在進(jìn)入人工智能時(shí)代,李開復(fù)、李飛飛等人工智能專家都斷言人工智能將是人類社會(huì)第四次工業(yè)革命的直接驅(qū)動(dòng)力?,F(xiàn)在社會(huì)正處于第四次工業(yè)革命前夕,云計(jì)算、物聯(lián)網(wǎng)、大數(shù)據(jù)和人工智能都離不開程序設(shè)計(jì),這是程序設(shè)計(jì)課程存在的重要意義;同時(shí),過去的知識(shí)和技能正在失效,需要構(gòu)建新的知識(shí)體系和技術(shù)指標(biāo),對(duì)程序設(shè)計(jì)的課程內(nèi)容、教學(xué)方法等進(jìn)行革命性的變革和重構(gòu),以適應(yīng)新時(shí)代的要求。
程序設(shè)計(jì)公共課的教學(xué)目標(biāo)一般是掌握程序設(shè)計(jì)的基礎(chǔ)知識(shí)、技巧和方法,具有編寫結(jié)構(gòu)良好程序的能力,為學(xué)生的后續(xù)課程學(xué)習(xí)打下良好基礎(chǔ),其本質(zhì)是培養(yǎng)具備基本編程能力的初級(jí)程序員。
在壓縮學(xué)分和課時(shí)的大環(huán)境下,學(xué)生很難再有機(jī)會(huì)進(jìn)行后續(xù)計(jì)算機(jī)相關(guān)課程的學(xué)習(xí),新工科倡導(dǎo)跨學(xué)科能力的大融合,跨界、整合、集成、創(chuàng)新,成為新一代人才的標(biāo)準(zhǔn)能力。程序設(shè)計(jì)公共課的教學(xué)目標(biāo)也應(yīng)提升為培養(yǎng)具備基本編程能力、數(shù)據(jù)分析能力、計(jì)算思維能力和復(fù)雜專業(yè)問題求解能力的學(xué)科交叉人才(如圖1所示)。
圖1 Python程序設(shè)計(jì)課程教學(xué)目標(biāo)
在教學(xué)內(nèi)容方面,選擇人工智能和大數(shù)據(jù)領(lǐng)域的標(biāo)準(zhǔn)語言Python語言作為教學(xué)語言,符合時(shí)代性和前沿性。阿里集團(tuán)前董事局主席馬云先生說過:“在未來的30年中,數(shù)據(jù)將會(huì)成為生產(chǎn)資料,計(jì)算會(huì)是生產(chǎn)力,互聯(lián)網(wǎng)會(huì)是一種生產(chǎn)關(guān)系?!爆F(xiàn)在是工業(yè)4.0時(shí)代、人工智能時(shí)代,大數(shù)據(jù)與人工智能是主旋律。Python是人工智能、數(shù)據(jù)分析領(lǐng)域的第一語言,也是目前應(yīng)用最廣泛的通用程序設(shè)計(jì)語言,其近20萬第三方庫(kù)為其構(gòu)造了良好的生態(tài)圈。Python語言被廣泛應(yīng)用于各學(xué)科、各專業(yè),用于快速、簡(jiǎn)潔地解決各種復(fù)雜專業(yè)問題,且針對(duì)不同的專業(yè)設(shè)計(jì)了一系列與專業(yè)問題相關(guān)的教學(xué)案例。通過這些案例搭建的知識(shí)到應(yīng)用的橋梁,普通學(xué)生可以具備基本編程能力,大部分學(xué)生能夠具備數(shù)據(jù)分析和可視化能力,優(yōu)秀的學(xué)生具備解決復(fù)雜專業(yè)問題的能力。
在教學(xué)方法方面,融入斯坦福大學(xué)提出的“軸反轉(zhuǎn)”理念,先能力、后知識(shí)。把知識(shí)融入問題之中,從一個(gè)問題出發(fā),朝著一系列問題求解的目標(biāo),在問題中將相關(guān)知識(shí)與技能、過程與方法穿插起來。帶著問題學(xué)習(xí),讓學(xué)生知道解決一個(gè)問題需要具備哪些知識(shí),再有針對(duì)性地學(xué)習(xí)相關(guān)知識(shí)的應(yīng)用,強(qiáng)調(diào)問題的求解和知識(shí)的綜合運(yùn)用。
3.2.1 備教材、備教案和備學(xué)生
線下授課除了傳統(tǒng)教學(xué)中的備教材和備教案外,還可以備學(xué)生,根據(jù)學(xué)生專業(yè)和個(gè)性特點(diǎn)因材施教。不同學(xué)校的學(xué)生層次不同,同一學(xué)校的學(xué)生也存在較大的差異性??鬃印墩撜Z·陽貨》中把學(xué)生大致分為3類:“上智”“中人”和“下愚”。上智不教而成,聞一知十;中人不教不知,聞一知二;下愚雖教無益,只能教給他們與智力水平相符的知識(shí)。教學(xué)中根據(jù)不同學(xué)生的認(rèn)知水平、學(xué)習(xí)能力以及自身素質(zhì),選擇適合每個(gè)學(xué)生特點(diǎn)的學(xué)習(xí)方法進(jìn)行有針對(duì)性的教學(xué),發(fā)揮學(xué)生的長(zhǎng)處,彌補(bǔ)學(xué)生的不足,激發(fā)學(xué)習(xí)的興趣,樹立學(xué)習(xí)的信心。
教材選擇是非常重要的一個(gè)環(huán)節(jié),要根據(jù)學(xué)生認(rèn)知水平選擇有適當(dāng)難度的教材。教材難度不夠,將無法激發(fā)學(xué)生的挑戰(zhàn)欲;教材難度過高,又會(huì)讓學(xué)生失去學(xué)習(xí)的信心。教材內(nèi)容可以超過授課內(nèi)容的30%~50%,給學(xué)生自主學(xué)習(xí)留下一定的空間,也保證課程具有一定的挑戰(zhàn)度。
教學(xué)案例設(shè)計(jì)可以根據(jù)學(xué)生專業(yè)背景和需求的不同進(jìn)行個(gè)性化的設(shè)計(jì),教學(xué)的內(nèi)容應(yīng)各有側(cè)重,不能千篇一律?!墩撜Z·學(xué)而》有云:“不患人之不己知,患不知人也?!辈涣私鈱W(xué)生的個(gè)性差別,千篇一律地灌輸知識(shí),不考慮哪些學(xué)生能接受,哪些學(xué)生不能接受,學(xué)生接受多少,是很難保證教學(xué)效果的。
備學(xué)生主要是通過聽其言、觀其行,了解學(xué)生的專業(yè)方向和興趣愛好。學(xué)生專業(yè)背景不同,需求不同,教學(xué)的方法和內(nèi)容應(yīng)各有側(cè)重,不能千篇一律。通過備學(xué)生,可以實(shí)現(xiàn)因材施教和個(gè)性化教學(xué)。
3.2.2 以賦能為目標(biāo)的教學(xué)設(shè)計(jì)
傳統(tǒng)的程序設(shè)計(jì)課程教學(xué)主要是程序設(shè)計(jì)基礎(chǔ)知識(shí)的講授,同時(shí)用一些經(jīng)典案例講授基礎(chǔ)算法和一些單純數(shù)學(xué)問題的求解[3]。在這種教學(xué)模式下,知識(shí)與應(yīng)用脫節(jié),學(xué)生無法將程序設(shè)計(jì)課程內(nèi)容與具體的應(yīng)用結(jié)合起來,學(xué)習(xí)目標(biāo)不明確,難以培養(yǎng)濃厚的學(xué)習(xí)興趣,學(xué)習(xí)動(dòng)力不足。
Python語言是一門通用的程序設(shè)計(jì)語言,可以被用于幾乎所有專業(yè)問題的求解。為充分發(fā)揮出Python語言的優(yōu)勢(shì),設(shè)計(jì)大量專業(yè)問題求解案例,利用這些案例搭建從知識(shí)到應(yīng)用的橋梁,實(shí)現(xiàn)學(xué)習(xí)基礎(chǔ)知識(shí)、掌握應(yīng)用技術(shù)和提升綜合能力[4]。
受學(xué)時(shí)的限制,不可能把全部案例用于課堂教學(xué)中。采取的方案是把基礎(chǔ)知識(shí)中容易理解掌握的和操作性的知識(shí)提取出來錄成微視頻,供學(xué)生自行下載學(xué)習(xí)。課堂教學(xué)重點(diǎn)放在基礎(chǔ)知識(shí)中不容易理解部分以及各專業(yè)都可能用到的、通用性最強(qiáng)的數(shù)據(jù)分析、處理和可視化部分的講解。
對(duì)于復(fù)雜專業(yè)問題的求解,因問題與專業(yè)結(jié)合緊密,甚至需要專業(yè)背景知識(shí)才能完成,可以按學(xué)生的學(xué)科專業(yè)組織個(gè)性化教學(xué)??紤]到程序設(shè)計(jì)公共課有統(tǒng)考要求,因而可以在課堂理論授課過程中只講授與專業(yè)相關(guān)的復(fù)雜問題,例如,如何厘清問題的核心,如何對(duì)問題進(jìn)行抽象,如何將其分解為一系列規(guī)模較小的可計(jì)算問題以及如何確定合適的算法。教學(xué)過程中,給學(xué)生樹立學(xué)科交叉的理念,打破傳統(tǒng)學(xué)科的界限,在不同學(xué)科之間的融合過程中尋找創(chuàng)新的機(jī)會(huì),將其具體實(shí)踐與實(shí)現(xiàn)放在實(shí)驗(yàn)課程中,讓學(xué)生借助一些與之相關(guān)的微視頻,通過分組討論和小組合作完成復(fù)雜專業(yè)問題的求解,真正具備應(yīng)用程序設(shè)計(jì)方法求解復(fù)雜專業(yè)問題的能力。
其中最重要的是案例資源建設(shè),這是提升課程挑戰(zhàn)度的關(guān)鍵。這部分工作需要老師不斷地提升自己,通過大量的編程實(shí)踐,熟練掌握哪些知識(shí)可以解決哪些實(shí)際問題。老師要能夠花時(shí)間、花精力選取有通用價(jià)值的專業(yè)問題案例,對(duì)其進(jìn)行抽象和簡(jiǎn)化,保留足夠的復(fù)雜程度和難度,把盡可能多的程序設(shè)計(jì)知識(shí)融合進(jìn)去。學(xué)生需要通過較多時(shí)間的學(xué)習(xí)、思考和討論才能夠完成,達(dá)到解決復(fù)雜問題的目的。以賦能為目標(biāo)的教學(xué)設(shè)計(jì)如圖2所示。
圖2 以賦能為目標(biāo)的教學(xué)設(shè)計(jì)
3.2.3 “軸反轉(zhuǎn)”理念的教學(xué)組織
在教學(xué)過程中,融入斯坦福大學(xué)提出的“軸反轉(zhuǎn)”理念,先能力、后知識(shí)[5]。把知識(shí)融入問題中,帶著問題學(xué)習(xí),強(qiáng)調(diào)問題的求解和知識(shí)的綜合運(yùn)用。從一個(gè)應(yīng)用問題出發(fā),將其分解為由淺入深的一系列子問題,將相關(guān)知識(shí)與技能、過程與方法貫穿于多個(gè)教學(xué)環(huán)節(jié)中,讓學(xué)生知道解決問題需要具備哪些知識(shí),帶著使命去學(xué)習(xí)相關(guān)知識(shí)的應(yīng)用。
圖3所示是一個(gè)數(shù)據(jù)可視化的教學(xué)案例。教學(xué)時(shí)先拋出這個(gè)問題,將其分解為列表及列表操作、讀文件數(shù)據(jù)、字符串處理方法、字符串到浮點(diǎn)型數(shù)據(jù)類型轉(zhuǎn)換、分支與二重循環(huán)、Matplotlib繪圖及標(biāo)注美化等子問題。在學(xué)習(xí)列表知識(shí)時(shí),將問題簡(jiǎn)化,數(shù)據(jù)直接放入列表,讓學(xué)生知道把列表傳給plot()函數(shù)即可實(shí)現(xiàn)圖3(a)的繪圖;在學(xué)習(xí)文件時(shí),再次拿出這個(gè)問題,讓學(xué)生掌握從文件中讀取一組數(shù)據(jù)、處理字符串、轉(zhuǎn)換數(shù)據(jù)格式,再完成圖3(a)的繪圖;在學(xué)習(xí)數(shù)據(jù)可視化時(shí),再增加一重循環(huán),讀取文件中的多列數(shù)據(jù),實(shí)現(xiàn)圖3(b)多組數(shù)據(jù)曲線的繪制;再增加區(qū)間判定,實(shí)現(xiàn)圖3(c)所示指定區(qū)間曲線的繪制。先明確能力目標(biāo),再將知識(shí)分解融入各小目標(biāo)中,隨問題復(fù)雜程度的提升,代碼數(shù)量從5行逐漸提升到20行,使學(xué)生循序漸進(jìn)地具備綜合運(yùn)用多種知識(shí)解決復(fù)雜問題的能力。
圖3 貫穿式案例設(shè)計(jì)
在教學(xué)中,除了課堂傳統(tǒng)意義上的互動(dòng)外,通過把所有教學(xué)資源數(shù)字化,利用平臺(tái)進(jìn)行教學(xué)和訓(xùn)練,可以實(shí)現(xiàn)數(shù)字賦能互動(dòng)。在作業(yè)、練習(xí)、實(shí)驗(yàn)和自主學(xué)習(xí)過程中,采集學(xué)生的學(xué)習(xí)行為數(shù)據(jù),利用人工智能技術(shù)對(duì)學(xué)生學(xué)習(xí)情況進(jìn)行分析、評(píng)價(jià)和預(yù)測(cè),階段性地對(duì)學(xué)生掌握程度進(jìn)行預(yù)測(cè),對(duì)進(jìn)一步的學(xué)習(xí)給出建議,實(shí)現(xiàn)數(shù)字賦能互動(dòng)。
經(jīng)過兩年多的探索和實(shí)踐,這種教學(xué)設(shè)計(jì)取得了較好的教學(xué)效果。表1是2019年采用這種模式教學(xué)的實(shí)驗(yàn)班級(jí)和同期平行教學(xué)班級(jí)各分?jǐn)?shù)段人數(shù)比例情況。從數(shù)據(jù)對(duì)比中可以發(fā)現(xiàn),與平行班級(jí)相比,實(shí)驗(yàn)班級(jí)低分段人數(shù)比例明顯較少,高分段的人數(shù)比例較高,優(yōu)良率明顯提高。
表1 考試成績(jī)分析 %
Python語言是人工智能和大數(shù)據(jù)的標(biāo)準(zhǔn)語言,隨著云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能、區(qū)塊鏈等技術(shù)被廣泛應(yīng)用于各行各業(yè),Python程序設(shè)計(jì)課程對(duì)各學(xué)科的支撐作用將超過以往的任何時(shí)期。Python程序設(shè)計(jì)課程的建設(shè)不可能一蹴而就,必須經(jīng)過反復(fù)探索和實(shí)踐。課程建設(shè)也沒有終點(diǎn),需要進(jìn)一步花時(shí)間、花精力、花情感將之建設(shè)為受學(xué)生歡迎的好課。