油 曄
(遼寧軌道交通職業(yè)學(xué)院,遼寧 沈陽 110023)
目前,經(jīng)調(diào)查統(tǒng)計(以2019年51job網(wǎng)站上發(fā)布的招聘信息為參考)社會用人單位對Python開發(fā)人員的需求量遠遠高于掌握其他語言的需求量。在Python的相關(guān)崗位中,開發(fā)工程師的需求量約占50%,數(shù)據(jù)分析工程師與網(wǎng)絡(luò)爬蟲工程師的需求量約各占10%,另外,還有部分游戲設(shè)計師、測試工程師等的需求。為了滿足用人單位的需求,同時擴大學(xué)生的學(xué)習(xí)知識面,從2018年起筆者在公共選修課程中開設(shè)了“零基礎(chǔ)學(xué)習(xí)Python語言”這門課程。
“零基礎(chǔ)學(xué)習(xí)Python語言”[1]這門選修課主要面向全校學(xué)生的公選課,課時為26~30學(xué)時。本課程針對編程零基礎(chǔ)同學(xué)進行講授,以任務(wù)為驅(qū)動,通過案例分析與引領(lǐng)幫助學(xué)生快速掌握Python語言,培養(yǎng)學(xué)生運用Python語言解決實際問題的編程能力。
本課程的教學(xué)目標(biāo)是使學(xué)生在全面了解Python技術(shù)歷史、現(xiàn)狀與發(fā)展趨勢的基礎(chǔ)上,初步掌握Python基本概念、編程思想以及程序設(shè)計等方面的技術(shù),并具備良好的Python編程技能和面向?qū)ο蟪绦蛟O(shè)計思想。通過本課程的學(xué)習(xí),學(xué)生能夠綜合應(yīng)用Python技術(shù)和面向?qū)ο蟮乃季S編寫程序,以解決現(xiàn)實生活中的問題,最終提高程序設(shè)計水平和計算機應(yīng)用能力。
處于高職階段的學(xué)生相比較中學(xué)階段或高中階段的學(xué)生來說,他們的學(xué)習(xí)動機具有多樣化。由于學(xué)生來自不同的地域、不同的生活環(huán)境、不同的專業(yè),所以每個人的學(xué)習(xí)動機也不盡相同。高職高專的學(xué)生他們在進入學(xué)校之初,有少部分學(xué)生已經(jīng)基本了解自己將來的工作崗位(崗位群)的要求,并能夠圍繞這種職業(yè)定向進行基礎(chǔ)知識課、專業(yè)基礎(chǔ)課、以及專業(yè)核心課程的學(xué)習(xí),而絕大多數(shù)的學(xué)生對于所選擇的專業(yè)多是聽從家長或親戚朋友的建議,或是因為分?jǐn)?shù)不夠本科院校的錄取分?jǐn)?shù)線,而進行的無奈選擇,所以這部分學(xué)生對于專業(yè)的認(rèn)識并不清晰,學(xué)習(xí)的積極性也并不很高。
高職高專的學(xué)生在學(xué)習(xí)時,其學(xué)習(xí)的情緒化占據(jù)了主導(dǎo)作用[2]。他們對于自己感興趣的學(xué)習(xí)內(nèi)容,會表現(xiàn)出很高的學(xué)習(xí)積極性及熱情,而對于一些比較枯燥的學(xué)習(xí)內(nèi)容時,學(xué)習(xí)的積極性明顯偏低。同時,高職學(xué)生的文化課底子比較薄弱,學(xué)習(xí)的主動性、自覺性略顯不足,沒有形成一個良好的學(xué)習(xí)習(xí)慣,而且不能夠很好地利用課余時間進行自學(xué)與補充,學(xué)習(xí)比較被動,課前沒有預(yù)習(xí)的習(xí)慣,課后沒有復(fù)習(xí)的過程。
本課程從2018年至今已經(jīng)開設(shè)了4個學(xué)期,通過每個學(xué)期結(jié)課的調(diào)查問卷統(tǒng)計、分析后,了解到學(xué)生的真實學(xué)習(xí)狀態(tài)及學(xué)習(xí)需求大概可以分為以下幾種狀況:
(1)對于有一定計算機編程基礎(chǔ)(主要是三校生中或多或少的學(xué)過其他計算機語言)或?qū)τ嬎銠C知識很感興趣的高職學(xué)生來說,他們覺得所學(xué)習(xí)的內(nèi)容有些簡單,希望能夠后續(xù)繼續(xù)開設(shè)相關(guān)課程,并在以后的課程中加深難度。
(2)對于普通高職學(xué)生(即雖然之前沒有學(xué)過計算機編程語言方面的內(nèi)容,但是學(xué)習(xí)比較努力,有學(xué)習(xí)意向的學(xué)生)來說,他們覺得通過一學(xué)期的學(xué)習(xí)有一定的收獲,培養(yǎng)了他們在計算機編程方面的學(xué)習(xí)興趣,希望多增加一些圖形繪制方面的內(nèi)容,同時愿意在下學(xué)期繼續(xù)學(xué)習(xí)有關(guān)課程。
為此,根據(jù)以上對學(xué)生的學(xué)情分析及學(xué)生學(xué)習(xí)后的課程反饋情況,筆者認(rèn)為在開設(shè)“零基礎(chǔ)學(xué)習(xí)Python語言”公共選修課時,應(yīng)面向不同的需求群體開設(shè)兩個方向的公共選修班。一個是針對有一定計算機編程基礎(chǔ)的“Python語言”公共選修教學(xué)班,一個是以趣味圖形設(shè)計為主要內(nèi)容的公共選修班,這樣能滿足具有不同需求的學(xué)生要求,使每名學(xué)生都會學(xué)有所獲[1]。
作為公共選修課程的“零基礎(chǔ)學(xué)習(xí)Python語言”這門課程,在建課之初,就本著以任務(wù)為驅(qū)動,以案例為基礎(chǔ)的教學(xué)目標(biāo)進行課程內(nèi)容安排。Python在圖像視頻處理、游戲開發(fā)、人工智能、自動控制等方面有著廣泛的應(yīng)用。而筆者所授課的對象許多都是非計算機專業(yè)的學(xué)生,在學(xué)習(xí)本課程之前,他們并沒有計算機編程的基礎(chǔ),但為了更好地培養(yǎng)他們的程序模塊化、結(jié)構(gòu)化、流程化的思維,調(diào)動他們學(xué)習(xí)的積極性,進而編寫出高質(zhì)量的Python程序,故在案例的選擇上,筆者從學(xué)生現(xiàn)有知識水平入手,圍繞數(shù)學(xué)幾何圖形或函數(shù)曲線等內(nèi)容挑選,設(shè)計Python案例。通過案例的設(shè)計,使學(xué)生更好地掌握Python語言的特點,真正實現(xiàn)了在“做中學(xué),學(xué)中做”的教學(xué)理念[2]。
例如在講解超炫三角形這節(jié)課時,先介紹turtle庫基本語法元素right()函數(shù)、left()函數(shù)和forward()函數(shù),并讓學(xué)生利用這兩個函數(shù)繪制一個簡單的等邊三角形,使學(xué)生首先明白三角形的畫法。在學(xué)習(xí)過程中學(xué)生會運用不同的函數(shù),繪制出不同方向的等邊三角形。
在此基礎(chǔ)上,進一步啟發(fā)學(xué)生利用所學(xué)知識,并結(jié)合問題分析下面圖形的制作原理,將循環(huán)編程的思想、列表的運用等相關(guān)知識引入進來,以此來激發(fā)學(xué)生的學(xué)習(xí)興趣。
【拓展練習(xí)】
請同學(xué)根據(jù)提示進行任務(wù)分析,如圖1所示。
圖1 (拓展練習(xí))
(1)基礎(chǔ)圖形是什么形狀?
(2)如何實現(xiàn)三條邊用不同的顏色呈現(xiàn)?
(3)如何實現(xiàn)三條邊線條的長度的逐漸變化?
【程序代碼】
對于一些接受知識比較快的學(xué)生,在完成了上面案例的基礎(chǔ)上,筆者會在舉一反三的教學(xué)環(huán)節(jié)進一步提出制作要求。
【舉一反三】如果想實現(xiàn)顯示圖2的效果,應(yīng)該如何更改程序?
圖2 (舉一反三)
【提示】可以試著修改旋轉(zhuǎn)角度語句
【程序代碼】
通過不同案例的學(xué)習(xí),使學(xué)生能夠由淺入深的逐漸掌握編程思維,進而激發(fā)學(xué)生的學(xué)習(xí)興趣,使學(xué)生不再覺得編程很枯燥、很無聊,而是讓學(xué)生覺得編程也是這么有趣、這么好“玩”,只要試著進行一些小小的修改就能產(chǎn)生不同的圖案,從而更好地激發(fā)了他們的學(xué)習(xí)熱情[3]。
在教學(xué)過程中,筆者通過對教學(xué)內(nèi)容的精心選擇、用心設(shè)計與細心講解,絕大多數(shù)學(xué)生都能夠認(rèn)真地進行相應(yīng)知識的學(xué)習(xí),尤其是在最后的作品創(chuàng)作中,學(xué)生都能夠很好地從自身已有知識出發(fā),結(jié)合自己的所學(xué)、所知、所想進行作品的創(chuàng)作。在創(chuàng)作過程遇到一些問題時,同學(xué)之間也能夠互相促進、積極討論、共同進步??吹綄W(xué)生的作品,同時作為教師的筆者也深深地感受到教學(xué)相長。