柯 琦 胡小春 李國祥 雷金東 張紅霞
(廣西財(cái)經(jīng)學(xué)院 信息與統(tǒng)計(jì)學(xué)院,廣西 南寧 530007)
大數(shù)據(jù)及人工智能技術(shù)飛速發(fā)展,Python語言優(yōu)勢越發(fā)突顯。Python語言將計(jì)算機(jī)程序設(shè)計(jì)語言發(fā)展成為集支持命令式編程、函數(shù)式編程、面向?qū)ο蟪绦蛟O(shè)計(jì)、泛型編程等多種編程范式于一身的腳本語言[1]。Python程序設(shè)計(jì)課程已成為高等學(xué)校計(jì)算機(jī)科學(xué)專業(yè)的核心課程,也成為非計(jì)算機(jī)專業(yè)的計(jì)算機(jī)編程語言通識(shí)課程的首選。本門課程講述程序設(shè)計(jì)語言的基礎(chǔ)知識(shí)和程序設(shè)計(jì)方法,培養(yǎng)學(xué)生計(jì)算思維[2]。但對(duì)于已有編程基礎(chǔ)的計(jì)算機(jī)專業(yè)學(xué)生,要獨(dú)立完成課程設(shè)計(jì),靈活掌握Python函數(shù)庫應(yīng)用,很多學(xué)生是感到吃力的。對(duì)于非專業(yè)學(xué)生,由于課程開設(shè)的教學(xué)課時(shí)較少,通常是32學(xué)時(shí),既要掌握計(jì)算機(jī)編程思維又要掌握Python的應(yīng)用,學(xué)生任務(wù)很重且難度大。因此,本文針對(duì)不同專業(yè)探討在Python程序設(shè)計(jì)教學(xué)中采用案例教學(xué)法及任務(wù)驅(qū)動(dòng)法兩者相結(jié)合的教學(xué)方法來改進(jìn)課程教學(xué)形式。
案例教學(xué)法是以列舉案例為基礎(chǔ)的教學(xué)方法,以所學(xué)理論知識(shí)直接相關(guān)的情景或事件作為案例,學(xué)生通過對(duì)案例的研究來進(jìn)行學(xué)習(xí)知識(shí)。通過查閱學(xué)習(xí)知識(shí)點(diǎn),加深對(duì)知識(shí)的理解及應(yīng)用,達(dá)到知識(shí)融會(huì)貫通。同時(shí),教師給予適當(dāng)性引導(dǎo),促使學(xué)生進(jìn)一步深入思考對(duì)比。根據(jù)學(xué)生不同理解層度補(bǔ)充新的教學(xué)內(nèi)容。文獻(xiàn)[3-4]對(duì)信息技術(shù)類課程使用案例教學(xué)法應(yīng)用進(jìn)行了探討。
任務(wù)驅(qū)動(dòng)教學(xué)法是指學(xué)生在學(xué)習(xí)過程中,緊緊圍繞一個(gè)既定的活動(dòng)任務(wù),以自主探索和互動(dòng)協(xié)作的學(xué)習(xí)方式完成任務(wù),學(xué)生在完成任務(wù)的過程中掌握知識(shí)。使學(xué)生主動(dòng)建構(gòu)探究、實(shí)踐、思考、運(yùn)用的學(xué)習(xí)體系。任務(wù)驅(qū)動(dòng)教學(xué)法,以解決問題、完成任務(wù)為主要目標(biāo)的多維互動(dòng)式的教學(xué)模式,由學(xué)生和老師共同參與,師生靈活互動(dòng)。文獻(xiàn)[5-7]探討了在程序設(shè)計(jì)課程中應(yīng)用任務(wù)驅(qū)動(dòng)教學(xué)法的方法。
基于案例教學(xué)方法和任務(wù)驅(qū)動(dòng)教學(xué)方法,本文提出結(jié)合兩者的優(yōu)點(diǎn)應(yīng)用到Python程序課程教學(xué)中。以案例教學(xué)為主線,任務(wù)驅(qū)動(dòng)教學(xué)為實(shí)踐,讓學(xué)生既能在案例分析中掌握Python程序設(shè)計(jì)基礎(chǔ)知識(shí),又能在完成任務(wù)中得到編程實(shí)戰(zhàn)練習(xí)。
Python語言提供了非常完善的基礎(chǔ)代碼庫,擁有豐富的第三方擴(kuò)展庫。幾乎涵蓋了各個(gè)領(lǐng)域,包括基礎(chǔ)數(shù)學(xué)、GUI編程、網(wǎng)絡(luò)編程、文件、數(shù)據(jù)庫、多媒體、數(shù)據(jù)分析、可視化等內(nèi)容。但大量的庫函數(shù)給學(xué)生的學(xué)習(xí)造成了困擾,例如,如何靈活使用turtle庫、math庫、random庫解決實(shí)際問題。這需要學(xué)生熟悉對(duì)應(yīng)庫函數(shù)的功能。對(duì)于初學(xué)者,特別是非專業(yè)計(jì)算機(jī)學(xué)生來說,無異于難上加難。因此,選擇教學(xué)案例特別關(guān)鍵,也需要提高案例設(shè)計(jì)的創(chuàng)新性。通過教學(xué)案例的演示及分析,能提高學(xué)生對(duì)Python語言編程基礎(chǔ)知識(shí)的掌握。在案例教學(xué)過程中學(xué)生觀察體驗(yàn)程序的執(zhí)行,培養(yǎng)學(xué)生對(duì)Python庫函數(shù)解決問題的應(yīng)用能力,使其體會(huì)到Python程序的樂趣。
任務(wù)制定是一個(gè)非常重要的問題,對(duì)于初學(xué)計(jì)算機(jī)程序設(shè)計(jì)的學(xué)生,計(jì)算思維尚未形成,編程能力需要培養(yǎng),所以制定的任務(wù)不應(yīng)該太大太深。任務(wù)太大,學(xué)生沒有能力完成則會(huì)打擊學(xué)習(xí)積極性。如果任務(wù)制定淺小,不能很好地達(dá)到教學(xué)目標(biāo),鍛煉學(xué)生的能力。以培養(yǎng)學(xué)生應(yīng)用能力為導(dǎo)向,突出以課程知識(shí)為載體,并與項(xiàng)目工程化相結(jié)合的方式制定對(duì)應(yīng)教學(xué)任務(wù)。合適恰當(dāng)?shù)娜蝿?wù)能給學(xué)生提供體驗(yàn)Python程序在具體應(yīng)用的情境。另外,對(duì)于計(jì)算機(jī)專業(yè)和非計(jì)算機(jī)兩類不同層次的學(xué)生,需因材施教。計(jì)算機(jī)專業(yè)應(yīng)培養(yǎng)扎實(shí)的計(jì)算機(jī)編程能力的Python程序設(shè)計(jì)人員,以培養(yǎng)知識(shí)面寬、能力強(qiáng)、素質(zhì)高的計(jì)算機(jī)專業(yè)本科生為目標(biāo)。非計(jì)算機(jī)專業(yè)應(yīng)該以培養(yǎng)合格的Python語言應(yīng)用能力為主,以應(yīng)用性、標(biāo)準(zhǔn)性、針對(duì)性為目的。制定常見通用領(lǐng)域的應(yīng)用型教學(xué)任務(wù),結(jié)合學(xué)生本專業(yè)的應(yīng)用。例如,統(tǒng)計(jì)專業(yè)學(xué)生,可以偏向選擇Matplotlib、統(tǒng)計(jì)分析模塊statistics等相關(guān)案例。
圖1是本文設(shè)計(jì)的一種案例教學(xué)與任務(wù)驅(qū)動(dòng)相結(jié)合的教學(xué)實(shí)施過程。
圖1 案例教學(xué)法與任務(wù)驅(qū)動(dòng)相結(jié)合的教學(xué)流程圖
在案例教學(xué)法與任務(wù)驅(qū)動(dòng)相結(jié)合的教學(xué)實(shí)施過程中,首先根據(jù)知識(shí)點(diǎn)的應(yīng)用場景,選擇對(duì)應(yīng)的案例一個(gè)或多個(gè)。例如在網(wǎng)絡(luò)爬蟲章節(jié),存在靜態(tài)和動(dòng)態(tài)不同網(wǎng)站類型,爬取方法也有差異,需根據(jù)實(shí)際應(yīng)用選取案例教學(xué)。其次,采用翻轉(zhuǎn)課堂形式,由學(xué)生分組對(duì)案例進(jìn)行自我學(xué)習(xí)。學(xué)生對(duì)案例對(duì)比分析,得出此類問題涉及的知識(shí)點(diǎn)。采用學(xué)生講解的形式,每個(gè)小組講解學(xué)到的知識(shí),其他小組補(bǔ)充討論。教師從旁協(xié)助。再次,任務(wù)驅(qū)動(dòng)教學(xué)環(huán)節(jié)主要用于課后。對(duì)每組指派任務(wù),課后探索解答,完成任務(wù)形成實(shí)驗(yàn)文檔。教師批閱后,請優(yōu)秀的小組分享解題過程。學(xué)生采用提問、討論的形式進(jìn)行任務(wù)探討。各組分析本次任務(wù)的解題過程及知識(shí)點(diǎn)。最后,教師對(duì)本次任務(wù)歸納總結(jié)。
本文采用案例教學(xué)法結(jié)合任務(wù)驅(qū)動(dòng)法進(jìn)行Python語言程序設(shè)計(jì)課程的教學(xué)改革探討。通過案例教學(xué)讓學(xué)生感受到Python語言的具體應(yīng)用,直觀具體易于學(xué)習(xí)。通過對(duì)技巧及方法舉例教學(xué),提高教學(xué)案例設(shè)計(jì)的創(chuàng)新性,逐步提升學(xué)生的計(jì)算思維及編程能力。對(duì)實(shí)際問題的探索進(jìn)而引導(dǎo)學(xué)生思考、研究,激發(fā)學(xué)習(xí)興趣。任務(wù)驅(qū)動(dòng)教學(xué)法以解決問題、完成任務(wù)的多維互動(dòng)式教學(xué),學(xué)生圍繞任務(wù)活動(dòng),運(yùn)用知識(shí)和經(jīng)驗(yàn)解決問題,提升學(xué)生積極的學(xué)習(xí)狀態(tài)。通過案例分析以及任務(wù)驅(qū)動(dòng)的教學(xué)流程,學(xué)生從被動(dòng)學(xué)習(xí)到主動(dòng)挖掘,進(jìn)而讓學(xué)生體會(huì)到Python程序的樂趣,提高Python程序設(shè)計(jì)的深化認(rèn)識(shí),最終激發(fā)學(xué)生的創(chuàng)新意識(shí)及創(chuàng)造性。N