陳 丹,肖艷萍
(浙大城市學(xué)院 計(jì)算機(jī)與計(jì)算科學(xué)學(xué)院,浙江 杭州 310015)
近幾年來(lái),Python 語(yǔ)言作為排名上升最快的程序設(shè)計(jì)語(yǔ)言,變得越來(lái)越流行。 其主要原因是:第一,簡(jiǎn)單易用,更貼近人類(lèi)自然語(yǔ)言的語(yǔ)法,使得學(xué)習(xí)曲線相對(duì)其他編程語(yǔ)言要不陡峭, 學(xué)習(xí)時(shí)間成本低;第二,作為開(kāi)源的腳本編程語(yǔ)言,第三方庫(kù)眾多,功能強(qiáng)大,目前已超過(guò)十萬(wàn)個(gè),而且還在快速增長(zhǎng),因此適用于眾多領(lǐng)域,適合不同專業(yè)學(xué)生學(xué)習(xí),易于激發(fā)學(xué)生的學(xué)習(xí)興趣,并有利于用計(jì)算機(jī)解決所面臨的各類(lèi)專業(yè)問(wèn)題;第三,對(duì)人工智能和大數(shù)據(jù)的強(qiáng)大支持,貼合當(dāng)前時(shí)代的發(fā)展需求等。 從這些特點(diǎn)來(lái)看,Python 語(yǔ)言不僅適合計(jì)算機(jī)專業(yè)學(xué)生學(xué)習(xí),更是非計(jì)算機(jī)專業(yè)學(xué)生學(xué)習(xí)編程語(yǔ)言的好選擇。基于此,我校自2019 年開(kāi)始即開(kāi)設(shè)了“Python 程序設(shè)計(jì)基礎(chǔ)與實(shí)驗(yàn)”公共基礎(chǔ)課,并逐步擴(kuò)展了開(kāi)課范圍。
對(duì)程序設(shè)計(jì)類(lèi)課程來(lái)說(shuō),準(zhǔn)確快速地批改大量學(xué)生所編程序一直是任課教師的一大痛點(diǎn)。而能夠在線實(shí)時(shí)地批改學(xué)生編寫(xiě)程序?qū)?duì)教學(xué)效果提升、 減輕教師工作量都會(huì)有很大的幫助。 PTA(Programming Teaching Assistant)是程序設(shè)計(jì)類(lèi)實(shí)驗(yàn)輔助教學(xué)平臺(tái),能夠解決程序批改的問(wèn)題。 該系統(tǒng)包括教師和學(xué)生角色, 教師可以建立自己的題目集、創(chuàng)建自己的班級(jí)、添加學(xué)生、布置作業(yè)、統(tǒng)計(jì)成績(jī)并進(jìn)行數(shù)據(jù)采集和分析等。 學(xué)生登錄系統(tǒng)后可以根據(jù)教師布置的任務(wù)完成相關(guān)習(xí)題, 查看習(xí)題完成情況和自己所得分?jǐn)?shù), 并且了解自己在班級(jí)中的排名, 根據(jù)掌握情況及時(shí)調(diào)整自己的學(xué)習(xí)態(tài)度和學(xué)習(xí)計(jì)劃。 另外,PTA 還提供查重、主觀題互評(píng)功能,能夠督促學(xué)生獨(dú)立完成作業(yè),在評(píng)判綜合主觀題中學(xué)生能夠相互學(xué)習(xí)解決問(wèn)題的思路,也可以培養(yǎng)學(xué)生的程序調(diào)試和評(píng)判能力。 教師還可以建立題目和分享題目集, 方便教師間的題目共享和課程組開(kāi)展統(tǒng)一教學(xué)活動(dòng)。
作為公共基礎(chǔ)課,“Python 程序設(shè)計(jì)基礎(chǔ)與實(shí)驗(yàn)”是入門(mén)級(jí)編程課程,基本忽略了學(xué)生背景的差異,從零編程基礎(chǔ)起步。 教學(xué)內(nèi)容上主要分為三大部分:課程引入部分旨在降低非計(jì)算機(jī)專業(yè)的學(xué)生對(duì)編程的恐懼,同時(shí)提高學(xué)生的編程自信心和學(xué)習(xí)興趣,內(nèi)容包括簡(jiǎn)單程序的實(shí)例、利用turtle 庫(kù)來(lái)作圖等;基本語(yǔ)法部分主要目的是教授語(yǔ)言的基本語(yǔ)法內(nèi)容,包括基本數(shù)據(jù)類(lèi)型、組合數(shù)據(jù)類(lèi)型、分支循環(huán)流程控制、函數(shù)、標(biāo)準(zhǔn)庫(kù)等;擴(kuò)展應(yīng)用部分主要目的是結(jié)合不同專業(yè)特點(diǎn)和領(lǐng)域進(jìn)行教學(xué),為專業(yè)學(xué)習(xí)打好信息基礎(chǔ), 為學(xué)科交叉作好一些準(zhǔn)備,并培養(yǎng)創(chuàng)新創(chuàng)業(yè)基礎(chǔ), 能更好適應(yīng) “互聯(lián)網(wǎng)+”、“數(shù)字+”的社會(huì)發(fā)展。 具體教學(xué)內(nèi)容見(jiàn)表1。
表1 Python 基礎(chǔ)課程教學(xué)內(nèi)容Table 1 Basic course teaching content of Python
“互聯(lián)網(wǎng)+”、“數(shù)字+”等是當(dāng)下各行各業(yè)發(fā)生變革的重要推動(dòng)力, 在各類(lèi)新型信息技術(shù)的加持下,教育領(lǐng)域與互聯(lián)網(wǎng)科技相結(jié)合也已經(jīng)是一種必然趨勢(shì)。 學(xué)生獲取知識(shí)的方式也發(fā)生了變化,可以通過(guò)線上和線下兩種方式進(jìn)行課程學(xué)習(xí)。為了提高課程教學(xué)質(zhì)量、提高效率,我們?cè)诮虒W(xué)設(shè)計(jì)中充分考慮了線上線下方式的結(jié)合。
實(shí)施過(guò)程中主要從教學(xué)形式、 教學(xué)內(nèi)容等多方面進(jìn)行探索實(shí)踐。 教學(xué)形式上除了常規(guī)的講解方式外,更多是運(yùn)用翻轉(zhuǎn)課堂、課堂討論、項(xiàng)目展示等多種形式來(lái)調(diào)動(dòng)課堂氛圍和組織課下學(xué)習(xí)活動(dòng), 激發(fā)學(xué)生的興趣。 同時(shí), 充分利用好 PTA 和MOOC 兩個(gè)平臺(tái)。 PTA 平臺(tái)題庫(kù)中目前開(kāi)放的題目數(shù)超過(guò)2 萬(wàn)題,而且PTA 作為一個(gè)開(kāi)放平臺(tái),教師可以根據(jù)需要自行添加相應(yīng)題目, 能夠適應(yīng)不同學(xué)生的學(xué)習(xí)需求。 MOOC 平臺(tái)上選取了嵩天老師建設(shè)的國(guó)家精品課程“Python 語(yǔ)言程序設(shè)計(jì)”的相關(guān)資源, 同時(shí)針對(duì)本校學(xué)生的能力和教學(xué)大綱要求適當(dāng)進(jìn)行增補(bǔ), 探索與實(shí)踐的重點(diǎn)放在PTA平臺(tái)的充分運(yùn)用上。
具體實(shí)施上,針對(duì)每周的課程計(jì)劃安排,設(shè)置課前引導(dǎo)問(wèn)題,引導(dǎo)學(xué)生課前認(rèn)真預(yù)習(xí),并自主進(jìn)行相關(guān)內(nèi)容的MOOC 學(xué)習(xí)。 在課堂上,教師進(jìn)行關(guān)鍵知識(shí)點(diǎn)的講解,并圍繞引導(dǎo)問(wèn)題,安排討論環(huán)節(jié)和翻轉(zhuǎn)環(huán)節(jié), 針對(duì)討論中以及前一周暴露的問(wèn)題,進(jìn)行深入講解,突出重點(diǎn),解決關(guān)鍵難點(diǎn)。
同時(shí),每周安排2 學(xué)時(shí)的實(shí)驗(yàn)課時(shí),每周進(jìn)行練習(xí)。 每周的練習(xí)題集由兩部分組成:一部分是常規(guī)基礎(chǔ)題集,20 題左右,每人必做;另一部分是5~10 題的進(jìn)階練習(xí)題集,針對(duì)學(xué)習(xí)較好的同學(xué)。 基本形式是:依托PTA 平臺(tái),首先安排30 分鐘的訓(xùn)練題集,題量20 題左右,由選擇題、函數(shù)題、編程題等構(gòu)成,題集內(nèi)容覆蓋前一周及本周涉及的教學(xué)知識(shí)點(diǎn)。 教師根據(jù)學(xué)生的完成情況及時(shí)反饋,進(jìn)行重點(diǎn)講解。然后,在剩余的實(shí)踐時(shí)間,學(xué)生根據(jù)自己練習(xí)的情況,未完成的繼續(xù)完成;完成有錯(cuò)誤的進(jìn)行訂正,順利完成的可以做更高一級(jí)的進(jìn)階題集。 分層次對(duì)待,更有針對(duì)性地提高編程能力。
每周練習(xí)是一個(gè)半開(kāi)放練習(xí),給學(xué)生的時(shí)間限定比較寬松,主要是學(xué)生在學(xué)習(xí)了本章知識(shí)后的一個(gè)實(shí)踐驗(yàn)證的過(guò)程。 每月進(jìn)行一次課堂測(cè)試,安排10 道左右題目,30 分鐘時(shí)間,主要幫助教師掌握學(xué)生在近段時(shí)間的真實(shí)學(xué)習(xí)情況,以及學(xué)生了解自己成績(jī)?cè)诎嗉?jí)中的位置情況,以便教師和學(xué)生都能適時(shí)調(diào)整教學(xué)和學(xué)習(xí)計(jì)劃。
通過(guò)PTA 平臺(tái)提供的考試功能安排期中考試,考前做好充分準(zhǔn)備,協(xié)調(diào)考場(chǎng)及批次,考試使用PTA 提供的OMS 客戶端+手機(jī)掃碼進(jìn)行登錄??荚囍欣帽O(jiān)考功能實(shí)時(shí)監(jiān)控,保證考試的公平公正,通過(guò)自動(dòng)判題及時(shí)獲取成績(jī),能大大提高效率。
在項(xiàng)目建設(shè)期,還有兩項(xiàng)貫穿始終的工作。 一是根據(jù)平臺(tái)提供的有監(jiān)督環(huán)境下產(chǎn)生的可信的學(xué)生學(xué)習(xí)過(guò)程數(shù)據(jù),由平臺(tái)導(dǎo)出數(shù)據(jù),包含答卷(以學(xué)生為單位)、成績(jī)單(包含每個(gè)題目的得分)、正答率(以題目為單位)、得分代碼(以學(xué)生為單位)、試卷分析(包含每個(gè)知識(shí)點(diǎn)的得分率、平均分、分?jǐn)?shù)段人數(shù)分布等), 為課后評(píng)價(jià)提供了足夠精細(xì)的數(shù)據(jù)。通過(guò)分析這些數(shù)據(jù),在課堂教學(xué)中可以做到有的放矢,提高教學(xué)效率,形成良性反饋機(jī)制。 二是通過(guò)PTA 平臺(tái)提供的PDS 查重系統(tǒng)對(duì)學(xué)生線上學(xué)習(xí)進(jìn)行監(jiān)督, 培養(yǎng)學(xué)生獨(dú)立思考能力和誠(chéng)實(shí)守信的習(xí)慣。
查重功能不僅有數(shù)值化的顯示,也有程序代碼的對(duì)比情況,如圖1 所示。在使用時(shí),一般對(duì)稍復(fù)雜的程序進(jìn)行查重, 并在使用前對(duì)學(xué)生強(qiáng)調(diào)此項(xiàng)功能, 對(duì)查重中發(fā)現(xiàn)的抄襲現(xiàn)象及時(shí)予以批評(píng)指正。經(jīng)過(guò)一段時(shí)間的運(yùn)用, 學(xué)生大都能較好地遵守,有利于培養(yǎng)學(xué)生獨(dú)立的編程能力和計(jì)算思維。
圖1 PTA 平臺(tái)查重功能Figure 1 Duplicate checking function of PTA platform
為了更好地培養(yǎng)學(xué)生解決問(wèn)題的能力和創(chuàng)新思維, 在課程中還設(shè)置了一些綜合的小型Project。這些Project 需要更多地發(fā)揮學(xué)生的綜合能力,因?yàn)檫@些Project 允許有一定的創(chuàng)造性和個(gè)性化,不設(shè)置完全統(tǒng)一的運(yùn)行結(jié)果要求,故也不適合直接用PTA 平臺(tái)的判題系統(tǒng)來(lái)進(jìn)行。對(duì)這些題目的評(píng)價(jià)一方面通過(guò)老師的批改,另一方面可以通過(guò)學(xué)生互評(píng)的方式來(lái)進(jìn)行。 學(xué)生在互評(píng)的過(guò)程中,既能學(xué)習(xí)到其他同學(xué)的創(chuàng)作思路和實(shí)現(xiàn)方式,也是對(duì)如何評(píng)價(jià)作品能力的一個(gè)培養(yǎng)。PTA 平臺(tái)提供的互評(píng)平臺(tái)操作方便,功能完善,如圖2 所示。
圖2 PTA 平臺(tái)的互評(píng)功能Figure 2 Mutual evaluation function of PTA platform
該程序設(shè)計(jì)課程的主要目的是培養(yǎng)學(xué)生的計(jì)算思維能力、掌握Python 的基本語(yǔ)法、具備基本算法分析能力、能用Python 語(yǔ)言解決一些實(shí)際問(wèn)題,所以在評(píng)價(jià)方式上,包括了課堂表現(xiàn)、實(shí)踐操作和期末考試等多部分。 理論課堂上, 通過(guò)提問(wèn)、 小測(cè)試提高學(xué)生的注意力, 實(shí)時(shí)鞏固所學(xué)知識(shí)。實(shí)踐部分主要通過(guò)PTA 平臺(tái)來(lái)實(shí)施,包括練習(xí)實(shí)驗(yàn)、編程作業(yè)、互評(píng)作業(yè)和期中編程測(cè)試等。 期末考試主要是理論形式, 不完全是要求對(duì)語(yǔ)法的準(zhǔn)確掌握,更多的是對(duì)程序的閱讀能力、問(wèn)題的分析能力和計(jì)算思維能力的測(cè)評(píng)。 總評(píng)成績(jī)組成如圖 3 所示。
圖3 總評(píng)成績(jī)組成圖Figure 3 The composition diagram of the overall evaluation results
從2019 年P(guān)ython 課程在我校開(kāi)設(shè)以來(lái),也同步對(duì)PTA 平臺(tái)進(jìn)行了初步使用。 隨著這兩年對(duì)PTA 平臺(tái)應(yīng)用的進(jìn)一步深入,學(xué)生成績(jī)也在穩(wěn)步提高。 特別是今年的實(shí)驗(yàn)班,通過(guò)結(jié)合MOOC 課程、翻轉(zhuǎn)課堂和PTA 的深入應(yīng)用等, 使得實(shí)驗(yàn)班的成績(jī)進(jìn)步尤為突出。 表2 所示為Python 開(kāi)課三年以來(lái)的期中期末成績(jī)對(duì)比(2019~2020 年因疫情原因未進(jìn)行期中考試)。
表2 Python 語(yǔ)言課程歷年期中和期末成績(jī)表Table 2 Middle-term and final transcripts of Python language courses over the years
作為一門(mén)公共基礎(chǔ)課,在培養(yǎng)學(xué)生計(jì)算思維的過(guò)程中, 要進(jìn)一步探索如何在教學(xué)內(nèi)容和方法上針對(duì)不同專業(yè)的學(xué)生實(shí)行專業(yè)分類(lèi)教學(xué), 研究如何通過(guò)與專業(yè)相關(guān)的教學(xué)案例, 加強(qiáng)學(xué)生對(duì)Python 課程的理解,幫助學(xué)生更直觀、更有效地了解和掌握Python 理論知識(shí)和其在各專業(yè)領(lǐng)域的應(yīng)用技術(shù)。 例如, 為財(cái)經(jīng)類(lèi)專業(yè)的學(xué)生增加利用Python 來(lái)預(yù)測(cè)某個(gè)城市房?jī)r(jià)的走勢(shì), 分析網(wǎng)上購(gòu)物平臺(tái)某種商品的價(jià)格分布情況、 銷(xiāo)量分布情況等實(shí)例。 為藝術(shù)類(lèi)學(xué)生增強(qiáng)利用turtle 作圖的實(shí)例, 可以為中文類(lèi)的學(xué)生增強(qiáng)分詞、 詞云等的實(shí)例, 使Python 課程更多、 更深地和學(xué)生的專業(yè)知識(shí)、專業(yè)問(wèn)題相結(jié)合,并且利用編程思想來(lái)解決這些專業(yè)上的實(shí)際問(wèn)題,激發(fā)學(xué)生的學(xué)習(xí)興趣,使學(xué)生領(lǐng)略到Python 編程的美妙之處。同時(shí),在課程考核上,要研究如何提高過(guò)程考核的比例,使考核更好地為能力培養(yǎng)服務(wù)。