許朝俠
(河南牧業(yè)經(jīng)濟(jì)學(xué)院 軟件學(xué)院,河南 鄭州 450008)
隨著移動互聯(lián)、物聯(lián)網(wǎng)、大數(shù)據(jù)、云計(jì)算等新概念和新技術(shù)的涌現(xiàn),信息技術(shù)的應(yīng)用正深刻改變著人類的思維方式,無處不在的計(jì)算思維成為人們認(rèn)識和解決問題的基本能力之一,計(jì)算思維成為所有大學(xué)生應(yīng)具備的素質(zhì)和能力。2016年教育部高等學(xué)校大學(xué)計(jì)算機(jī)課程教學(xué)指導(dǎo)委員會頒布了《大學(xué)計(jì)算機(jī)基礎(chǔ)課程教學(xué)基本要求》(以下簡稱《基本要求》),《基本要求》明確了以計(jì)算思維為導(dǎo)向的大學(xué)計(jì)算機(jī)基礎(chǔ)教學(xué)改革,提出構(gòu)建“寬專融”課程體系,程序設(shè)計(jì)基礎(chǔ)課程作為“寬轉(zhuǎn)融”課程體系中的專業(yè)型課程成為了很多高校計(jì)算機(jī)基礎(chǔ)教學(xué)課程體系中必選的課程之一。同時(shí),《基本要求》首次建議將Python作為程序設(shè)計(jì)基礎(chǔ)課程的備選程序設(shè)計(jì)語言。
近年來,我校在計(jì)算機(jī)基礎(chǔ)教學(xué)上也進(jìn)行了一些改革嘗試,在所有非計(jì)算機(jī)專業(yè)學(xué)生必修大學(xué)計(jì)算機(jī)基礎(chǔ)課程的基礎(chǔ)上,提供了選修課菜單供不同專業(yè)選擇定制,選修課有包含程序設(shè)計(jì)基礎(chǔ)課程的專業(yè)型課程和包含數(shù)字農(nóng)牧業(yè)基礎(chǔ)課程的交叉型課程,為不同專業(yè)的專業(yè)培養(yǎng)計(jì)劃制定提供了更多的選擇性和靈活性,程序設(shè)計(jì)基礎(chǔ)課程是其中選擇最多的課程之一。程序設(shè)計(jì)基礎(chǔ)課程最初選擇C和Visual Basic作為載體,隨著Python語言和其相關(guān)技術(shù)的不斷發(fā)展,國內(nèi)許多高校非計(jì)算機(jī)專業(yè)開設(shè)了Python程序設(shè)計(jì)語言課程,我校也開始了在部分非計(jì)算機(jī)專業(yè)作為專業(yè)公共選修開設(shè)Python語言程序設(shè)計(jì)基礎(chǔ)課程的嘗試。
非計(jì)算機(jī)專業(yè)的學(xué)生學(xué)習(xí)程序設(shè)計(jì)語言的基礎(chǔ)與計(jì)算機(jī)專業(yè)的學(xué)生不同,他們僅了解計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的基本知識,學(xué)習(xí)程序設(shè)計(jì)基礎(chǔ)重在學(xué)以致用,解決具體專業(yè)問題,并不需要掌握底層是如何實(shí)現(xiàn)的。非計(jì)算機(jī)專業(yè)的學(xué)生的培養(yǎng)目標(biāo)也不是專業(yè)的程序員,學(xué)習(xí)程序設(shè)計(jì)基礎(chǔ)主要為了激發(fā)學(xué)生對程序設(shè)計(jì)的學(xué)習(xí)興趣,逐步培養(yǎng)學(xué)生的計(jì)算思維,并以此為基礎(chǔ)自學(xué)計(jì)算機(jī)知識,掌握用計(jì)算機(jī)技術(shù)解決專業(yè)問題的方法,拓展計(jì)算機(jī)技術(shù)與各自專業(yè)學(xué)科的交叉融合。
程序設(shè)計(jì)基礎(chǔ)課程作為計(jì)算機(jī)基礎(chǔ)教學(xué)的專業(yè)型核心課程之一,主要是培養(yǎng)非計(jì)算機(jī)專業(yè)的學(xué)生運(yùn)用程序設(shè)計(jì)的思維和技術(shù)解決問題的能力和方法,從而達(dá)到真正具有運(yùn)用計(jì)算機(jī)技術(shù)解決各自專業(yè)問題的能力。作為非計(jì)算機(jī)專業(yè)的學(xué)生,學(xué)習(xí)該課程的重點(diǎn)是掌握程序設(shè)計(jì)的思想和方法,使學(xué)生能夠?qū)W會運(yùn)用計(jì)算機(jī)技術(shù)解決專業(yè)問題的通用方法。
一直以來,我校非計(jì)算機(jī)專業(yè)程序設(shè)計(jì)基礎(chǔ)課程教學(xué)基本采用C或Visual Basic語言。誠然,C和Visual Basic語言都是目前非常流行的程序設(shè)計(jì)語言,但非計(jì)算機(jī)專業(yè)的程序設(shè)計(jì)基礎(chǔ)課程選用這兩門語言有一定的局限性。
由于C語言最初用于開發(fā)操作系統(tǒng),所以該語言不僅表達(dá)基本的程序邏輯,還表達(dá)程序?qū)τ布母咝Ю?,例如指針等?shù)據(jù)類型的應(yīng)用。C語言程序設(shè)計(jì)重在提高軟件運(yùn)行的性能和效率,這就要求學(xué)習(xí)和使用C語言要掌握計(jì)算機(jī)體系結(jié)構(gòu)的相關(guān)知識,而非計(jì)算機(jī)專業(yè)的學(xué)生缺乏相應(yīng)的知識體系支撐,程序開發(fā)的目的是滿足專業(yè)應(yīng)用的需求,因此,C語言對他們而言,入門門檻高,學(xué)習(xí)難度大,需求和目標(biāo)不匹配。即使完成了C語言課程的學(xué)習(xí),也很難在今后解決專業(yè)問題上發(fā)揮作用。
Visual Basic語言重在開發(fā)Windows系統(tǒng)下的視窗應(yīng)用,該語言在基本的程序邏輯以外,主要表達(dá)視窗系統(tǒng)中事件和控件等的人機(jī)交互關(guān)系。該語言雖然具有直觀易學(xué)等特點(diǎn),但因開發(fā)僅局限于Windows平臺,應(yīng)用面窄。隨著移動互聯(lián)的飛速興起,各學(xué)科專業(yè)以Web為基礎(chǔ)的開發(fā)應(yīng)用前景更為廣闊,該語言不能適應(yīng)跨系統(tǒng)跨平臺的開發(fā)應(yīng)用。
非計(jì)算機(jī)專業(yè)學(xué)生在完成了大學(xué)計(jì)算機(jī)基礎(chǔ)課程學(xué)習(xí)后,已具有了一定的計(jì)算機(jī)系統(tǒng)知識基礎(chǔ)和基本信息素養(yǎng),有必要選擇一門合適的程序設(shè)計(jì)語言學(xué)習(xí)來深入理解計(jì)算機(jī)技術(shù)方法,培養(yǎng)應(yīng)用計(jì)算機(jī)技術(shù)分析解決問題的能力,為今后的專業(yè)應(yīng)用打下基礎(chǔ)。
基于上述分析,非計(jì)算機(jī)專業(yè)選擇的程序設(shè)計(jì)語言應(yīng)具有以下特點(diǎn):①簡單易學(xué),可以激發(fā)非計(jì)算機(jī)專業(yè)學(xué)生學(xué)習(xí)程序設(shè)計(jì)的興趣,不再有畏難情緒;②重在應(yīng)用開發(fā)的實(shí)現(xiàn),學(xué)生主要學(xué)會用計(jì)算機(jī)解決問題,不需要關(guān)注系統(tǒng)結(jié)構(gòu)的底層實(shí)現(xiàn);③可實(shí)現(xiàn)跨平臺的程序設(shè)計(jì)開發(fā),以適應(yīng)目前和未來計(jì)算平臺和應(yīng)用多樣性的需要。
Python語言誕生于上個世紀(jì)90年代初,經(jīng)過多年的發(fā)展,Python已經(jīng)成為非常流行和熱門的程序設(shè)計(jì)語言。目前,隨著Python語言的飛速發(fā)展,國內(nèi)很多高校逐步開設(shè)了Python課程,《基本要求》也首次將Python語言納入到非計(jì)算機(jī)專業(yè)程序設(shè)計(jì)基礎(chǔ)課程的備選語言。
Python語言是一種高級通用的腳本編程語言,之所以越來越多的高校非計(jì)算機(jī)專業(yè)的程序設(shè)計(jì)基礎(chǔ)課程首選其作為教學(xué)語言,主要基于以下的特點(diǎn)。
(1)Python語言很簡潔,語法也很簡單。Python語言不存在類似C語言中指針或地址等設(shè)計(jì)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的元素,不必關(guān)心底層實(shí)現(xiàn)。Python語言是面向?qū)ο蟮妮p語法程序設(shè)計(jì)語言,簡單和簡潔對非計(jì)算機(jī)專業(yè)的學(xué)生意味著入門容易,可以輕松上手,從而激發(fā)學(xué)習(xí)程序設(shè)計(jì)的興趣。
(2)與平臺無關(guān)。用Python語言編寫的程序可以不經(jīng)任何修改地實(shí)現(xiàn)跨平臺運(yùn)行。
(3)通用靈活。Python語言是一個通用編程語言,可用于編寫各領(lǐng)域的應(yīng)用程序,為不同專業(yè)的學(xué)生運(yùn)用計(jì)算機(jī)解決問題都能發(fā)揮作用。
(4)功能豐富的開放類庫。除了Python提供的幾百個標(biāo)準(zhǔn)庫外,具有開源特性的Python語言還有十幾萬個第三方函數(shù)庫,幾乎覆蓋計(jì)算機(jī)技術(shù)的各個領(lǐng)域,學(xué)生可以學(xué)習(xí)基于Python利用成熟的庫解決專業(yè)領(lǐng)域的問題,例如數(shù)據(jù)采集、科學(xué)計(jì)算、可視化數(shù)據(jù)分析等等。
在深入學(xué)習(xí)和研究《基本要求》中Python程序設(shè)計(jì)語言基礎(chǔ)課程典型方案的基礎(chǔ)上,借鑒其他高校非計(jì)算機(jī)專業(yè)Python程序設(shè)計(jì)課程的成功經(jīng)驗(yàn),結(jié)合我校非計(jì)算機(jī)專業(yè)學(xué)生的學(xué)情,確定了我校非計(jì)算機(jī)專業(yè)Python程序設(shè)計(jì)課程的定位和教學(xué)目標(biāo)。
Python程序設(shè)計(jì)課程是大學(xué)計(jì)算機(jī)基礎(chǔ)教學(xué)課程體系中專業(yè)型的公共選修課程。本課程的教學(xué)目標(biāo)是:以培養(yǎng)解決問題的能力為出發(fā)點(diǎn),以Python語言和程序設(shè)計(jì)方法為主要內(nèi)容,使學(xué)生初步具備運(yùn)用Python語言解決各類實(shí)際計(jì)算問題的開發(fā)能力,進(jìn)而培養(yǎng)學(xué)生的計(jì)算機(jī)思維。
根據(jù)課程的教學(xué)目標(biāo)和Python語言的特點(diǎn),在組織課程教學(xué)內(nèi)容時(shí),不再采用傳統(tǒng)的程序設(shè)計(jì)語言教學(xué)以語法結(jié)構(gòu)為主線,圍繞編程語言組織教學(xué)內(nèi)容的方法。Python語言是面向?qū)ο蟮妮p語法程序設(shè)計(jì)語言,教學(xué)內(nèi)容選取和組織時(shí)可以降低語法的關(guān)注度,以實(shí)例引領(lǐng)Python語法元素的學(xué)習(xí),解析程序設(shè)計(jì)的思路和方法。
在我校本課程作為非計(jì)算機(jī)專業(yè)公選課,總學(xué)時(shí)為48學(xué)時(shí),其中理論授課32學(xué)時(shí),實(shí)驗(yàn)16學(xué)時(shí)。教學(xué)內(nèi)容分為3個模塊,分別為基礎(chǔ)入門、能力培養(yǎng)和拓展應(yīng)用,將課程要掌握的語言知識要點(diǎn)和程序設(shè)計(jì)能力分解到各模塊中。作為程序設(shè)計(jì)的入門教學(xué),教學(xué)的重點(diǎn)放在前兩個模塊上。
在Python程序設(shè)計(jì)教學(xué)改革上,北京理工大學(xué)進(jìn)行了大膽的嘗試,并取得了顯著的成果,我們課程的教材采用了該校編寫的《Python語言程序設(shè)計(jì)基礎(chǔ)》,按照教學(xué)內(nèi)容模塊的設(shè)計(jì)選取實(shí)例組織教學(xué)內(nèi)容,詳見表1。
“課堂講授-上機(jī)操作”傳統(tǒng)教學(xué)模式下,學(xué)生只能被動地接受,缺乏學(xué)習(xí)的主動性,容易失去學(xué)習(xí)興趣。為了激發(fā)學(xué)生的學(xué)習(xí)主動性和學(xué)習(xí)興趣,我們將傳統(tǒng)課堂教學(xué)和在線教學(xué)相結(jié)合,鼓勵學(xué)生嘗試?yán)盟槠瘯r(shí)間學(xué)習(xí)線上的優(yōu)質(zhì)課程資源,并進(jìn)行課堂翻轉(zhuǎn),將課堂的講授為主轉(zhuǎn)換為研討為主,積極進(jìn)行混合式教學(xué)模式的探索。中國大學(xué)MOOC課程上北京理工大學(xué)的“Python語言程序設(shè)計(jì)”是與我們所選教材配套的在線資源,在以該資源為主要資源的基礎(chǔ)上,針對基礎(chǔ)好、學(xué)習(xí)能力強(qiáng)的學(xué)生,可以再推薦南京大學(xué)的“用Python玩轉(zhuǎn)數(shù)據(jù)”等優(yōu)秀的線上課程資源。
計(jì)算思維的培養(yǎng)不是靠概念的講解可以實(shí)現(xiàn)的,進(jìn)行教學(xué)方法的改革,在傳授知識的同時(shí),注重發(fā)展學(xué)生的能力,通過培養(yǎng)學(xué)生用計(jì)算機(jī)解決實(shí)際問題能力,才能達(dá)到逐步養(yǎng)成計(jì)算思維模式的目的。在教學(xué)中,模擬解決實(shí)際問題的模式,以教學(xué)實(shí)例為待解決的問題,采用問題求解驅(qū)動式的方法進(jìn)行教學(xué),課前提出問題,自主學(xué)習(xí);課堂分析問題,展開研討,給出解決問題的方案;課后拓展問題的解決方案。
表1 課程教學(xué)內(nèi)容模塊劃分
我校非計(jì)算機(jī)專業(yè)的Python語言程序設(shè)計(jì)基礎(chǔ)課程尚在起步階段,在課程的教學(xué)改革上進(jìn)行了一些嘗試和探索,取得了良好的教學(xué)效果,受到了開課專業(yè)學(xué)生的歡迎。課程的教學(xué)改革還有待進(jìn)一步深入,首先,在利用現(xiàn)有線上課程資源的基礎(chǔ)上,要盡快創(chuàng)建適合課程需求的SPOC;其次,改變現(xiàn)在教學(xué)案例、教學(xué)模式方法不區(qū)專業(yè)的同一化的現(xiàn)狀,研究分析各專業(yè)的專業(yè)特點(diǎn)和需求,開發(fā)適合不同專業(yè)需求的教學(xué)案例。今后,將繼續(xù)以學(xué)生為主體,以計(jì)算機(jī)思維的培養(yǎng)為導(dǎo)向,積極探索本課程的教學(xué)改革,提高教學(xué)質(zhì)量,培養(yǎng)適應(yīng)時(shí)代信息素養(yǎng)需要的人才。