柳青
(上海對外經(jīng)貿(mào)大學(xué)統(tǒng)計(jì)與信息學(xué)院,上海201620)
數(shù)字經(jīng)濟(jì)、人工智能等先進(jìn)技術(shù)的發(fā)展,對經(jīng)貿(mào)類商科人才提出了新的要求。新商科是商科教育主動服務(wù)于新經(jīng)濟(jì)的戰(zhàn)略性調(diào)整[1]。Python 語言具有良好的跨平臺特性和可擴(kuò)展性,在數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)等方面擁有眾多的包且還在不斷更新和增長,是人工智能技術(shù)中不可替代的一部分。人工智能等新一代技術(shù)將人類引領(lǐng)到智能時代,沖擊了傳統(tǒng)的教師教學(xué)、學(xué)生學(xué)習(xí)方法和教育體制,引導(dǎo)我們重新思考教育的本質(zhì),并主動求變。這不僅僅是我國的商科教育,也是全球商科教育主動求變的戰(zhàn)略性選擇[1]。對于經(jīng)貿(mào)類商科人才來說,Python 程序設(shè)計(jì)語言已經(jīng)成為必須掌握的一門高級程序設(shè)計(jì)語言。
上海對外經(jīng)貿(mào)大學(xué)2015年開始面向?qū)嶒?yàn)班和提高班等有一定計(jì)算機(jī)基礎(chǔ)的學(xué)生開設(shè)Python程序設(shè)計(jì)課程,著重培養(yǎng)學(xué)生的計(jì)算思維能力和應(yīng)用計(jì)算機(jī)解決實(shí)際問題的能力;經(jīng)過2年的實(shí)踐,2017年開課范圍擴(kuò)展到經(jīng)管類學(xué)生,2020年面向全校所有專業(yè)開設(shè)該課程。經(jīng)過5 年的實(shí)踐,Python 程序設(shè)計(jì)取得了一定的成績,也發(fā)現(xiàn)了不少問題。
1)以前的授課方式一直采用多媒體機(jī)房授課,精講多練。以前教學(xué)內(nèi)容相對較少,學(xué)生筆記本電腦還沒有完全普及,精講多練在一定階段解決了重點(diǎn)不突出、練習(xí)較少、學(xué)生動手能力不強(qiáng)的問題。隨著學(xué)生筆記本電腦的普及(我校學(xué)生幾乎人手一臺,學(xué)校還開設(shè)了自由上機(jī)機(jī)房,隨到隨用),學(xué)生的需求發(fā)生了改變,希望課堂多學(xué)點(diǎn)新知識,課后自己通過復(fù)習(xí)和練習(xí)來鞏固所學(xué)。需求的改變也必然導(dǎo)致教學(xué)方式和方法的改變。
2)Python 在TIOBE 編程語言排行榜中近一年來一直處于前列,熱度只增不減,而且作為開源軟件,新模塊新用途還不斷增多,學(xué)生學(xué)習(xí)興趣非常濃厚。而每周2課時對于不斷增多的教學(xué)內(nèi)容來說非常緊張,有些部分只能淺嘗輒止,沒有時間進(jìn)行深入討論,還有些Python中值得推廣和應(yīng)用的部分根本沒有時間介紹。這也導(dǎo)致有的學(xué)生出現(xiàn)“吃不飽”的現(xiàn)象,對學(xué)生的因材施教的效果大打折扣。
“混合式教學(xué)”是以學(xué)生為中心的教學(xué)模式,教學(xué)過程的出發(fā)點(diǎn)和落腳點(diǎn)都是以促進(jìn)學(xué)生的發(fā)展為根本目標(biāo)[2]。混合式教學(xué)充分利用了科學(xué)技術(shù)的優(yōu)勢。教師可以按照學(xué)生的需求進(jìn)行個性化教學(xué),從重復(fù)性的填鴨式的教學(xué)模式中解放出來,讓教師成為教學(xué)過程中的組織者、引導(dǎo)者和指導(dǎo)者[2]。線上線下結(jié)合的教學(xué)模式不僅是傳統(tǒng)課程在教學(xué)手段上的創(chuàng)新,更重要的是給新商科學(xué)生自主學(xué)習(xí)的機(jī)會[3]。戰(zhàn)“疫”期間的線上教學(xué)實(shí)踐積累了豐富的經(jīng)驗(yàn),對遇到困境的分析研究和解決,無疑會對疫情結(jié)束后的線上線下混合教學(xué)模式的有效實(shí)施產(chǎn)生深遠(yuǎn)影響[4]。
針對上面提到的Python程序設(shè)計(jì)課程存在的問題,我們對這門課程進(jìn)行了線上線下混合式教學(xué)方法的改革和試點(diǎn)。為了達(dá)到更好的教學(xué)效果,教學(xué)內(nèi)容均由團(tuán)隊(duì)成員精心策劃和組織;為了更好地銜接教學(xué)內(nèi)容,所有視頻均由教學(xué)團(tuán)隊(duì)成員親自進(jìn)行錄制。
教師用到的在線教學(xué)平臺是BlackBoard,學(xué)校有專業(yè)部門負(fù)責(zé)維護(hù)和管理。上課前,教師發(fā)布課前學(xué)習(xí)內(nèi)容到Black‐Board平臺上,包括教學(xué)課件、配套的學(xué)習(xí)視頻,并布置課前學(xué)習(xí)作業(yè)或測試,另出思考題加深所學(xué)和擴(kuò)展,供學(xué)生討論,同時也作為課前學(xué)習(xí)和課堂教學(xué)的銜接。通過課前學(xué)習(xí)作業(yè)可以檢測學(xué)習(xí)效果和發(fā)現(xiàn)問題,以供課堂教學(xué)更有針對性地討論。在課堂教學(xué)中,教師會講解重點(diǎn)和難點(diǎn)并適度擴(kuò)展,討論課前學(xué)習(xí)中出現(xiàn)的共性問題和思考題,并提出新的問題,課堂教學(xué)結(jié)束后教師會在BlackBoard平臺上布置課后作業(yè)鞏固學(xué)習(xí)成果,開設(shè)“推廣”欄目拓寬視野,同時布置下一次的課前學(xué)習(xí)內(nèi)容。
Python程序設(shè)計(jì)的課前學(xué)習(xí)內(nèi)容在Blackboard教學(xué)平臺完成線上課程建設(shè)。課前學(xué)習(xí)內(nèi)容包括:課前學(xué)習(xí)視頻、課前學(xué)習(xí)課件、課前學(xué)習(xí)作業(yè)(或?qū)W習(xí)測試)、課前學(xué)習(xí)思考題及討論。
1)課前學(xué)習(xí)視頻。將課前學(xué)習(xí)內(nèi)容分解成不同知識點(diǎn),每個知識點(diǎn)錄制一段微視頻,每段視頻時長不超過20分鐘,供學(xué)生課前學(xué)習(xí)和預(yù)習(xí)。
2)課前學(xué)習(xí)課件。與學(xué)習(xí)視頻配套的學(xué)習(xí)課件,供學(xué)生自由下載。
3)課前學(xué)習(xí)作業(yè)(或測試)。根據(jù)課前學(xué)習(xí)內(nèi)容布置的線上學(xué)習(xí)作業(yè),檢測學(xué)生學(xué)習(xí)情況,對課前內(nèi)容的理解程度以及復(fù)習(xí)鞏固課前知識。
4)課前學(xué)習(xí)思考題。根據(jù)課前學(xué)習(xí)內(nèi)容布置的在線思考題。思考題有一定的難度,有一部分知識屬于課前學(xué)習(xí)內(nèi)容的擴(kuò)展,不要求學(xué)生準(zhǔn)確做出來,但要有思考的過程。
5)討論。針對課前學(xué)習(xí)視頻、作業(yè)(或測試)、思考題中的解題思路、疑惑不解的地方以及編寫程序出現(xiàn)的問題通過微信群或者QQ群隨時隨地進(jìn)行自由討論。
課前學(xué)習(xí)的好壞關(guān)系到線下課堂學(xué)習(xí)的開展。首先在教學(xué)方案中明確規(guī)定有課前學(xué)習(xí)的環(huán)節(jié),采用線上方式進(jìn)行;其次在微信群或QQ 群中也會有通知提醒學(xué)生及時完成學(xué)習(xí)內(nèi)容。學(xué)生在線下課堂學(xué)習(xí)之前必須觀看視頻并完成布置的學(xué)習(xí)作業(yè)或測試以檢測學(xué)習(xí)效果,參與思考題的討論并發(fā)言,為即將到來的線下課堂學(xué)習(xí)打下良好的基礎(chǔ)。
混合式教學(xué)包括線上教學(xué)與線下教學(xué)兩種途徑,線下教學(xué)是基于線上教學(xué)的學(xué)習(xí)成果而展開的有針對性的、更深入的教學(xué)活動[5]。Python程序設(shè)計(jì)課程的課堂教學(xué)環(huán)節(jié)是在線下多媒體機(jī)房進(jìn)行。課堂學(xué)習(xí)與課前學(xué)習(xí)密不可分,緊密相連。傳統(tǒng)課堂的“滿堂灌”“一言堂”的教學(xué)方法已經(jīng)不適合混合式教學(xué)中的課堂教學(xué),而“翻轉(zhuǎn)課堂”的形式倒比較合適。
課堂學(xué)習(xí)內(nèi)容主要安排如下:
1)線上課前學(xué)習(xí)內(nèi)容典型示例或案例串講,針對課前學(xué)習(xí)反映出來的問題多引導(dǎo)分析,鞏固所學(xué)知識點(diǎn),學(xué)生能達(dá)到舉一反三的效果。
2) 將課堂思政元素潛移默化地融入課堂教學(xué)中,潤物細(xì)無聲。
3)思考、拓展、討論始終貫穿其中。通過課前布置的思考題,學(xué)生有一定的思路但可能還不成熟,或者還不能完全通過程序代碼設(shè)計(jì)出來。老師一方面要利用學(xué)生和代碼正處于“熱戀甜蜜期”興趣正濃,趁熱打鐵,適度在課堂上引導(dǎo)分析,幫助學(xué)生解決課前學(xué)習(xí)中留下的思考題,加深學(xué)生對知識的掌握和理解;另一方面老師必須能適度拓展,拓展對于課堂教學(xué)非常重要,它容易啟發(fā)學(xué)生思維,既是對原有知識的加深,又是對新知識的理解,課后還可以繼續(xù)討論。
跟課前學(xué)習(xí)一樣,在教學(xué)方案中明示課堂學(xué)習(xí)采用線下“翻轉(zhuǎn)式”方式進(jìn)行。老師起到“領(lǐng)路人”作用,學(xué)生可以個人或者分成小組進(jìn)行討論,老師做歸納總結(jié)以及最后的點(diǎn)評。學(xué)生全程參與討論,老師要把握好方向,或引導(dǎo)拋出思路,或?qū)W(xué)生思路及時調(diào)整到正確的軌道上來。
教師在講解每一個知識點(diǎn)后,要通過課后作業(yè)的預(yù)設(shè)及實(shí)踐案例的教學(xué)為主,幫助學(xué)生全面且充分地掌握課堂中所學(xué)習(xí)的內(nèi)容[6]。經(jīng)過課堂學(xué)習(xí),學(xué)生對教學(xué)內(nèi)容大部分能掌握,為了檢測學(xué)習(xí)成果和學(xué)習(xí)效果,會給學(xué)生布置課后作業(yè),課后作業(yè)或是程序設(shè)計(jì)題或是小測驗(yàn)的形式,以期達(dá)到教學(xué)目標(biāo)。對于學(xué)有余力的學(xué)生開設(shè)“推廣”欄目,介紹相關(guān)的新知識,以便更靈活應(yīng)用Python語言。
2020年我校在疫情防控期間實(shí)施了在線教學(xué),在數(shù)字化資源建設(shè)方面,錄制了一些相關(guān)的教學(xué)視頻,在Blackboard 平臺上組織了不同形式的測試和最后的期末考試,在在線教學(xué)方面積累了一定的經(jīng)驗(yàn),為我們實(shí)施線上線下混合式教學(xué)打下了良好的基礎(chǔ)。
課前學(xué)習(xí)內(nèi)容的準(zhǔn)備是一個不斷探索、精益求精的過程,內(nèi)容要求難易適中并自帶啟發(fā)性。
在講函數(shù)時,我們設(shè)計(jì)的課前學(xué)習(xí)內(nèi)容有:函數(shù)定義-形參實(shí)參、位置參數(shù)-默認(rèn)參數(shù)、關(guān)鍵參數(shù)、帶返回值的函數(shù)、函數(shù)體中調(diào)用其他函數(shù),這里的帶返回值的函數(shù)指的是一個返回值,并布置了兩道課前學(xué)習(xí)作業(yè)和一道思考題。如圖1 所示。課前學(xué)習(xí)內(nèi)容把函數(shù)基本的思想和知識點(diǎn)講清楚了,兩道課前學(xué)習(xí)作業(yè)讓學(xué)生掌握了定義函數(shù)的技巧和方法、如何設(shè)置提煉參數(shù)和返回值。據(jù)此,函數(shù)中的基本內(nèi)容學(xué)生學(xué)習(xí)完畢。

圖1 課前學(xué)習(xí)
【思考題】求任意多個自然數(shù)中每兩個組成一組數(shù)字的最大公約數(shù)和最小公倍數(shù)。如自然數(shù)5,77,8,90,2,40,則求的是5和77、8和90、2和40的最大公約數(shù)和最小公倍數(shù)。如自然數(shù)5,77,8,則會輸出“缺數(shù)字,不成對”。提示:利用輾轉(zhuǎn)相除法求兩個自然數(shù)的最大公約數(shù)。
要解決這個問題學(xué)生要學(xué)會的是如何將一個稍大的問題分解成若干個小問題,每個小問題都解決了,大問題也就迎刃而解。根據(jù)提示,一般學(xué)生都會想到先利用輾轉(zhuǎn)相除法編寫一個函數(shù)求兩個自然數(shù)的最大公約數(shù),最大公約數(shù)求出來用這兩個數(shù)的乘積除以最大公約數(shù)就能得到最小公倍數(shù),那么這個函數(shù)就可以寫成兩個自然數(shù)做參數(shù),函數(shù)返回這兩個自然數(shù)的最大公約數(shù)和最小公倍數(shù)(以什么形式返回也是學(xué)生需要考慮的問題)。一般學(xué)生思考到這里就差不多了,學(xué)有余力的學(xué)生可以更進(jìn)一步地討論(這對即將到來的課堂教學(xué)也會起到促進(jìn)作用,課堂教學(xué)中,除了老師講解以外,這些學(xué)生一起參與討論和發(fā)言也是熱點(diǎn)和關(guān)鍵)。
教學(xué)活動是聯(lián)結(jié)學(xué)生與教學(xué)內(nèi)容的紐帶,倘若采用混合式教學(xué),教師在其中扮演引導(dǎo)者的角色,同時,強(qiáng)調(diào)學(xué)生的主人翁地位[7]。混合式課程學(xué)習(xí)設(shè)計(jì)的理念應(yīng)由傳統(tǒng)課堂的知識傳遞的設(shè)計(jì)轉(zhuǎn)向能力培養(yǎng)的設(shè)計(jì)[8]。在課堂教學(xué)中,首先針對函數(shù)的課前學(xué)習(xí)內(nèi)容做一個簡單的串講,將課前學(xué)習(xí)的重點(diǎn)和難點(diǎn)給學(xué)生做一個歸納總結(jié),然后針對課前學(xué)習(xí)作業(yè)做一個評講,對學(xué)生典型的錯誤進(jìn)行分析指正,再后針對留的思考題展開重點(diǎn)講解和討論。要解決這個思考題,首先要解決利用函數(shù)求兩個自然數(shù)的最大公約數(shù)的問題,這個函數(shù)也是對課前學(xué)習(xí)內(nèi)容的再鞏固。程序如圖2 所示。然后修改這個函數(shù)讓函數(shù)的功能擴(kuò)展到最小公倍數(shù)也一并解出。在討論過程中,有的學(xué)生直接提出,將最大公約數(shù)和最小公倍數(shù)作為一個列表返回,還有的學(xué)生大膽提問既然可以有一個返回值,那函數(shù)應(yīng)該還可以有多個返回值。老師都對這些問題做出肯定的回答,同時表示程序?qū)懛ǜ鳟惸芙鉀Q問題就好。經(jīng)過討論,寫出來的程序可能如圖3所示,圖3最后一句寫成return[y,m*n//y]就返回一個列表。

圖2 求最大公約數(shù)的函數(shù)

圖3 求最大公約數(shù)和最小公倍數(shù)的函數(shù)
然后再跟學(xué)生討論如何接收返回值的問題……,經(jīng)過一系列的代碼測試,學(xué)生已經(jīng)明白在函數(shù)中如果直接返回n 個值,用一個變量來接收,則接收到的是一個元組;如果用n 個變量來接收,接收到的是對應(yīng)的返回的n個值的具體內(nèi)容。(可以進(jìn)一步提問:如果返回一個列表那接收值的方法會有不同嗎?)
那如何解決參數(shù)可以輸入任意多個自然數(shù)的情形呢?老師這時候可以不失時機(jī)地拋出sum()、max()、min()等內(nèi)置函數(shù),解釋這些內(nèi)置函數(shù)的功能和特點(diǎn),然后引出可變長度參數(shù)的知識,舉幾個實(shí)例讓學(xué)生理解和消化。那如何解決成對問題?返回一個列表和返回多個值對于后面要用到的函數(shù)中調(diào)用其他函數(shù)的寫法是否有影響,該如何寫等,經(jīng)過輪番討論,可能寫出的程序如圖4所示。

圖4 思考題的一種解決方法
老師再次啟發(fā)學(xué)生,利用條件語句和循環(huán)可以解決問題,那有沒有更為簡單的形式表述呢?既然返回一個列表,那考慮列表推導(dǎo)式如何,是不是可以使代碼更為簡潔?經(jīng)過一系列的啟發(fā)和討論,學(xué)生有可能寫出ssff 函數(shù)的用列表推導(dǎo)式表達(dá)的另一種形式,如圖5所示。

圖5 ssff函數(shù)的列表推導(dǎo)式表達(dá)
思考題到這里就討論完成了,老師還可以不經(jīng)意地提一句:既然加一個*作用這么大,那加**會不會又有什么其他含義呢?會學(xué)習(xí)的學(xué)生就會去找資料了……
課程思政是目前高校教學(xué)改革的重要內(nèi)容,也是新商科改革的必然要求。課程思政不是某一門特定課程,它代表一種教育教學(xué)的理念[3]。在師生相互討論的過程中,老師強(qiáng)調(diào)函數(shù)能解決代碼冗余的問題,有了函數(shù),代碼就能重用。函數(shù)中調(diào)用函數(shù)給我們展現(xiàn)出只有通過互相幫助,互相促進(jìn),團(tuán)結(jié)合作才能又快又好地解決問題完成任務(wù)……將這些思想融入函數(shù)的講解中,不知不覺地,在課堂教學(xué)中就加入了課程思政的內(nèi)容。
課堂教學(xué)完成以后,我們布置幾個課后作業(yè)讓學(xué)生鞏固對可變長度參數(shù)的理解,如對任意個數(shù)數(shù)字字符串,將這些數(shù)字的平均值和大于平均值的數(shù)組成列表輸出等題目。在“推廣”欄目中,我們會介紹高階函數(shù)的知識讓有能力感興趣的學(xué)生了解。在布置課后作業(yè)的同時布置下一講的課前學(xué)習(xí)內(nèi)容。
課后作業(yè)的布置和討論更加激發(fā)了學(xué)生的興趣,起到了加深學(xué)生對知識的理解作用,越討論越分明,越討論越清晰,激發(fā)了學(xué)生無限潛力。反過來經(jīng)過討論,教師也會更明白學(xué)生存在的問題,在下一次的上課中再對普遍存在的問題做最后的點(diǎn)評。
Python程序設(shè)計(jì)課程采用閉卷考試,最后的總評成績由三部分組成:課堂出勤、平時成績和期末成績。課堂出勤占總評成績的10%,主要考查學(xué)生是否到課堂參與課堂學(xué)習(xí);平時成績占總評成績的40%,由多部分組成,如課前學(xué)習(xí)作業(yè)(或測試)、課堂討論及表現(xiàn)、課后作業(yè)等,這幾部分缺一不可、互相支撐,構(gòu)成混合學(xué)習(xí)中重要的檢測環(huán)節(jié)。
總體而言,混合式教學(xué)依托豐富的線上學(xué)習(xí)資源,不僅能延展課堂教學(xué)空間,有效節(jié)約實(shí)體課堂學(xué)時,還能助推互動交流和過程性評價,及時評估和反饋“智育”“德育”目標(biāo)的實(shí)現(xiàn)程度,為提升課程思政建設(shè)質(zhì)量和效率提供保障[9]。Python 程序設(shè)計(jì)課程就目前開設(shè)試點(diǎn)情況來看,通過線上線下混合式教學(xué),學(xué)生普遍熱情較高,學(xué)習(xí)效果較好,對于知識的拓展和學(xué)習(xí)能力的增強(qiáng)起到很大的促進(jìn)作用。課堂討論拓展環(huán)節(jié)非常重要,起到承上啟下的作用,貫穿于整個教學(xué)的始終。而且這種線上線下混合式教學(xué)設(shè)計(jì)對于現(xiàn)在疫情還沒有結(jié)束的非常時期非常重要,如果疫情形勢不容樂觀則可全部轉(zhuǎn)為線上教學(xué),課堂教學(xué)可以通過開設(shè)騰訊課堂來進(jìn)行;如果疫情形勢較為樂觀,學(xué)生習(xí)慣于這種教學(xué)模式,與原始的課堂教學(xué)相比,學(xué)生會學(xué)到更多的知識,能夠拓寬視野,啟發(fā)思維,對學(xué)生今后的學(xué)習(xí)生活起到促進(jìn)作用。這種具有時代特征的混合式教學(xué)方法也可以推行到其他課程建設(shè)中。當(dāng)然,如何設(shè)計(jì)線上和線下教學(xué)內(nèi)容和案例也是一個任重而道遠(yuǎn)的工程,隨著課程的開展需要不斷地調(diào)整和努力。