邵仲世,邵煒世
(1.陜西師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院,陜西 西安 710119;2.南京師范大學(xué)計(jì)算機(jī)與電子信息學(xué)院/人工智能學(xué)院,江蘇 南京 210023)
在傳統(tǒng)面向非計(jì)算機(jī)專業(yè)的編程語言中,多數(shù)以C語言為主,但隨著大數(shù)據(jù)和人工智能時(shí)代的到來,大量數(shù)據(jù)需要仿真建模、分析、可視化等,C語言就不再是最佳選擇。Python作為一門跨平臺(tái)、開源、免費(fèi)的編程語言,已在各領(lǐng)域有廣泛的應(yīng)用。國內(nèi)諸多高校已開設(shè)了Python程序設(shè)計(jì),開設(shè)專業(yè)不僅包括計(jì)算機(jī)、軟件工程、人工智能等信息類專業(yè),也包括了物理、生物、食品、機(jī)械、管理等專業(yè)[1]。
實(shí)驗(yàn)教學(xué)是程序設(shè)計(jì)類教學(xué)的關(guān)鍵環(huán)節(jié),目的是培養(yǎng)學(xué)生的編程思維、動(dòng)手時(shí)間能力、解決實(shí)際問題和運(yùn)用知識(shí)的能力。實(shí)驗(yàn)課時(shí)提成編程能力的最有效的途徑。如何進(jìn)行有效的實(shí)驗(yàn)教學(xué)顯得至關(guān)重要。文獻(xiàn)[2]提出結(jié)合成果導(dǎo)向、案例式教學(xué)和混合式教學(xué)的Python基礎(chǔ)課程教學(xué)實(shí)驗(yàn)方法;文獻(xiàn)[3]針對(duì)Python實(shí)驗(yàn)教學(xué)中存在的教學(xué)內(nèi)容分散的問題,提出以問題驅(qū)動(dòng)、分散實(shí)施為理念的實(shí)驗(yàn)內(nèi)容設(shè)計(jì)方案;盡管已有一些學(xué)者對(duì)Python實(shí)驗(yàn)教學(xué)進(jìn)行了探討,但相關(guān)研究仍然較少。本文對(duì)Python實(shí)驗(yàn)教學(xué)中存在的問題進(jìn)行了分析,并探討了相應(yīng)的解決方法。
Python程序設(shè)計(jì)以其簡潔、高效和擁有強(qiáng)大計(jì)算生態(tài)的特點(diǎn),逐步成為各大高校非計(jì)算機(jī)專業(yè)首選的程序設(shè)計(jì)語言。以下從4個(gè)方面分析了Python程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)中的不足。
(1)實(shí)驗(yàn)教學(xué)內(nèi)容分散,缺少整體性思路。目前,許多高校開展的Python程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)大都遵循實(shí)驗(yàn)教學(xué)與教材同步,以復(fù)習(xí)、鞏固理論知識(shí)為主。通過重新實(shí)現(xiàn)課堂上的代碼來熟悉所講授的語法、函數(shù)和算法,這樣的方式有利于緊密結(jié)合課堂內(nèi)容,易于鞏固理解知識(shí);不足在于各章節(jié)實(shí)驗(yàn)聯(lián)系不夠緊密。特別是面對(duì)非計(jì)算機(jī)專業(yè)的學(xué)生,由于對(duì)計(jì)算機(jī)程序設(shè)計(jì)缺乏正確的認(rèn)識(shí)和應(yīng)有的積極性,大量知識(shí)點(diǎn)的堆砌以及與專業(yè)不相關(guān)的實(shí)驗(yàn)內(nèi)容,使得他們逐漸失去對(duì)學(xué)習(xí)計(jì)算機(jī)程序設(shè)計(jì)的熱情和積極性。
(2)缺乏有效的實(shí)驗(yàn)課程教學(xué)考核機(jī)制。許多高校的程序設(shè)計(jì)課程沒有建立完善的考核機(jī)制,幾乎都是通過最后的期末機(jī)試來完成考核,即便是實(shí)驗(yàn)課在最后的綜合成績中占據(jù)一定的比例,在目前“實(shí)驗(yàn)課盡量不要讓學(xué)生掛科”的普遍“共識(shí)”下,實(shí)驗(yàn)課程的學(xué)習(xí)評(píng)價(jià)就變得無足輕重。當(dāng)學(xué)生沒有了考核要求,同時(shí)缺乏對(duì)課程的熱情,自然而然就成了“程序錄入員”。因此,建立合理的實(shí)驗(yàn)教學(xué)考核機(jī)制就顯得尤為重要。
(3)缺乏專業(yè)相關(guān)的實(shí)驗(yàn)案例。在諸多高校的編程類課程的實(shí)驗(yàn)課中,仍舊采用經(jīng)典的訓(xùn)練實(shí)例,而不同語言具有不同的特點(diǎn),千篇一律的訓(xùn)練內(nèi)容已不能滿足學(xué)生的要求。Python語言在數(shù)據(jù)分析和人工智能等領(lǐng)域具有廣泛的應(yīng)用,具有豐富的實(shí)驗(yàn)設(shè)計(jì)案例,依據(jù)專業(yè)背景設(shè)計(jì)有效的實(shí)驗(yàn)案例顯得尤為重要。特別是在實(shí)驗(yàn)案例的設(shè)計(jì)過程中,應(yīng)注重基礎(chǔ)知識(shí)與專業(yè)背景問題的結(jié)合。如果實(shí)驗(yàn)案例設(shè)計(jì)得過難而脫離課堂中所學(xué)的基礎(chǔ)知識(shí),那么很難起到鞏固基礎(chǔ)知識(shí)的作用。
(4)缺少有效的實(shí)驗(yàn)平臺(tái)。大部分高校所采取的紙質(zhì)或者電子版的實(shí)驗(yàn)報(bào)告形式呈現(xiàn)實(shí)驗(yàn)過程,學(xué)生在實(shí)驗(yàn)的過程中幾乎都是在本機(jī)進(jìn)行自主編程,通過自行設(shè)計(jì)一些測試用例來驗(yàn)證程序的正確性,最后撰寫實(shí)驗(yàn)報(bào)告。通過這種傳統(tǒng)方式,任課教師很難在學(xué)生進(jìn)行自主編程的過程中的發(fā)現(xiàn)問題,因此,建立滿足學(xué)生編程需求同時(shí)能夠及時(shí)檢測學(xué)生實(shí)驗(yàn)行為的實(shí)驗(yàn)平臺(tái)是實(shí)現(xiàn)高效Python實(shí)驗(yàn)教學(xué)的亟待解決問題。
(1)注重進(jìn)階式的實(shí)驗(yàn)內(nèi)容?;A(chǔ)知識(shí)是培養(yǎng)編程思維的關(guān)鍵,堅(jiān)實(shí)的基礎(chǔ)知識(shí)使得學(xué)生解決問題時(shí)更加游刃有余。Python程序設(shè)計(jì)的實(shí)驗(yàn)內(nèi)容應(yīng)緊緊結(jié)合知識(shí)點(diǎn),具有一定的進(jìn)階性。特別是非計(jì)算機(jī)專業(yè)學(xué)生在掌握了一點(diǎn)基礎(chǔ)知識(shí)后,應(yīng)注重知識(shí)點(diǎn)之間的串聯(lián),建立相應(yīng)的知識(shí)體系,以便后期進(jìn)行技能提升。具體將實(shí)驗(yàn)內(nèi)容分為兩個(gè)階段:第一階段為“基礎(chǔ)”階段,主要內(nèi)容包括運(yùn)算符、表達(dá)式、序列、函數(shù)、字符串、程序控制結(jié)構(gòu);第二階段為“進(jìn)階”階段,主要掌握文件和文件夾的操作、異常處理機(jī)制、復(fù)雜函數(shù)實(shí)現(xiàn),并結(jié)合相關(guān)專業(yè)問題,掌握專業(yè)第三方庫的使用,熟悉異常處理。
(2)依托專業(yè)背景,豐富實(shí)驗(yàn)案例。任課教師應(yīng)從科學(xué)研究、實(shí)際生活中獲取大量的實(shí)例,從中精選指向具體專業(yè)背景的應(yīng)用,將其設(shè)計(jì)為實(shí)驗(yàn)案例,以豐富實(shí)驗(yàn)課內(nèi)容。具體可從以下幾方面來考慮實(shí)驗(yàn)案例:①實(shí)驗(yàn)案例選取應(yīng)遵循“易理解、能分析、可實(shí)現(xiàn)”的原則,根據(jù)學(xué)生的能力和知識(shí)體系設(shè)計(jì)實(shí)驗(yàn)案例,防止過難而超出知識(shí)范圍,避免學(xué)生在實(shí)驗(yàn)課教學(xué)中的挫折感。②實(shí)驗(yàn)案例應(yīng)注重循序漸進(jìn),考慮知識(shí)點(diǎn)串聯(lián)。③實(shí)驗(yàn)案例應(yīng)盡量與不同專業(yè)的背景相關(guān)。④實(shí)驗(yàn)案例應(yīng)注重培養(yǎng)編程思維,鼓勵(lì)學(xué)生根據(jù)自己所學(xué)的專業(yè)知識(shí)結(jié)合編程語言,分析問題并設(shè)計(jì)問題的解決方案。
(3)項(xiàng)目驅(qū)動(dòng)的非計(jì)算機(jī)專業(yè)Python程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)。在學(xué)生掌握了一定的基礎(chǔ)知識(shí)后,實(shí)驗(yàn)課可以采用項(xiàng)目驅(qū)動(dòng)的方式,以提升學(xué)生解決問題的能力。具體可從以下幾方面入手:①選擇貼合實(shí)際應(yīng)用的項(xiàng)目案例,突出專業(yè)特色,注重與課本知識(shí)點(diǎn)的串聯(lián)。②任課教師在實(shí)驗(yàn)教學(xué)過程中應(yīng)給學(xué)生提供一個(gè)解決問題的思路或方向,讓學(xué)生自己動(dòng)手去解決問題,調(diào)動(dòng)學(xué)生的主動(dòng)性。③將項(xiàng)目按模塊劃分,得到若干模塊,將每個(gè)具體模塊的實(shí)現(xiàn)安排在每次實(shí)驗(yàn)課上進(jìn)行,形成一個(gè)“實(shí)驗(yàn)”到“項(xiàng)目”的任務(wù)體系。每個(gè)模塊的解決方案應(yīng)與對(duì)應(yīng)的課堂教學(xué)內(nèi)容具有較強(qiáng)的關(guān)聯(lián)度。
(4)基于線上平臺(tái)實(shí)驗(yàn)教學(xué)考核。實(shí)驗(yàn)教學(xué)考核又與課堂考核有所區(qū)別,其包含了兩部分:過程和結(jié)果。過程考核重點(diǎn)考查學(xué)生思考、分析和解決問題的能力,引導(dǎo)學(xué)生全面提高專業(yè)素養(yǎng)和綜合素質(zhì),提高學(xué)生的學(xué)習(xí)能力;結(jié)果考核主要是對(duì)實(shí)驗(yàn)內(nèi)容的完成情況進(jìn)行考核,并結(jié)合實(shí)驗(yàn)報(bào)告進(jìn)行評(píng)定[4]。其中,實(shí)驗(yàn)過程的考核在考核中占據(jù)主要的組成部分。如何記錄實(shí)驗(yàn)過程是實(shí)驗(yàn)考核的關(guān)鍵,為此可采用在線實(shí)驗(yàn)教學(xué)平臺(tái)。學(xué)生在線上平臺(tái)自主進(jìn)行實(shí)驗(yàn),對(duì)每次提交的代碼進(jìn)行記錄,可通過對(duì)一些指標(biāo)的分析來評(píng)估學(xué)生在實(shí)驗(yàn)過程總體的表現(xiàn)。
(5)建立Python實(shí)驗(yàn)教學(xué)平臺(tái)。Python實(shí)驗(yàn)教學(xué)平臺(tái)對(duì)掌握Python語言具有至關(guān)重要的作用。不僅需要滿足日常上機(jī)實(shí)驗(yàn),還要考慮實(shí)驗(yàn)報(bào)告的提交形式、實(shí)驗(yàn)過程的追蹤、實(shí)驗(yàn)課在線教學(xué)、實(shí)驗(yàn)課考核。具體可從以下幾方面來建立實(shí)驗(yàn)教學(xué)平臺(tái):①針對(duì)不同專業(yè)的學(xué)生和不同學(xué)習(xí)階段,建立實(shí)驗(yàn)案例庫。②具備自動(dòng)程序驗(yàn)證功能,通過不同特征的測試用例來測試學(xué)生提交的代碼,并在驗(yàn)證之后給出相應(yīng)的用例驗(yàn)證結(jié)果,以便幫助學(xué)生進(jìn)行反思。③記錄學(xué)生每次提交代碼的驗(yàn)證結(jié)果,通過后臺(tái)數(shù)據(jù)分析給出在實(shí)驗(yàn)過程中存在的問題,并報(bào)告給任課教師。④基于學(xué)生實(shí)驗(yàn)過程的行為和實(shí)驗(yàn)報(bào)告,依托一些定量指標(biāo)對(duì)實(shí)驗(yàn)過程進(jìn)行輔助評(píng)價(jià)。⑤引入輔助在線教學(xué)平臺(tái),學(xué)生通過在線教學(xué)平臺(tái)可隨時(shí)回顧知識(shí)點(diǎn),并解決實(shí)驗(yàn)過程中出現(xiàn)的問題。
Python語言已成為非計(jì)算機(jī)專業(yè)程序設(shè)計(jì)類課程的首選,然而傳統(tǒng)程序設(shè)計(jì)的實(shí)驗(yàn)教學(xué)方法很難滿足現(xiàn)有教學(xué)要求。因此,Python程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)的改革迫在眉睫。本文通過分析Python程序設(shè)計(jì)教學(xué)的現(xiàn)狀,在實(shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)案例、實(shí)驗(yàn)考核、實(shí)驗(yàn)平臺(tái)等方面對(duì)實(shí)驗(yàn)教學(xué)改革措施進(jìn)行了探討,力求提升Python實(shí)驗(yàn)教學(xué)的質(zhì)量。