張晶
摘要:當(dāng)前各大藝術(shù)院校在專業(yè)設(shè)置上既有傳統(tǒng)的國油版雕,又融入了互聯(lián)網(wǎng)的新技術(shù)和數(shù)字技術(shù)的藝術(shù)設(shè)計(jì),由于藝術(shù)類學(xué)生的邏輯訓(xùn)練較弱,程序設(shè)計(jì)類課程難以入門。但對(duì)于圖形圖像掌握較好。目前各大高校都相繼開設(shè)Python語言程序設(shè)計(jì)課程的教學(xué),本文著重討論如何結(jié)合藝術(shù)類學(xué)生的特點(diǎn)和Python在圖形圖像編程的優(yōu)勢,對(duì)研究藝術(shù)類高校(設(shè)計(jì)類)專業(yè)如何更有效地開展Python教學(xué)進(jìn)行研究。
關(guān)鍵詞:Python;圖像處理;藝術(shù)院校;教學(xué)方法
中圖分類號(hào):TP311 ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)28-0170-03
1 引言
Python語言是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語言,其語言的簡潔性、易讀性以及可擴(kuò)展性,成為最受歡迎的程序設(shè)計(jì)語言之一。Python語言是一門非常簡單易學(xué)的語言,實(shí)踐證明,大多數(shù)沒有任何程序設(shè)計(jì)基礎(chǔ)的大一學(xué)生都可以在1小時(shí)內(nèi)理解Python設(shè)計(jì)方法并具備十幾行代碼的編寫能力,這顯然,對(duì)于藝術(shù)類高校的學(xué)生選擇Python語言極為合適。
藝術(shù)類專業(yè)的學(xué)生學(xué)習(xí)編程的目的不是為了培養(yǎng)專業(yè)的編程師,而是鍛煉學(xué)生的邏輯思維能力和分析能力,除此以外,Python語言的應(yīng)用領(lǐng)域非常廣泛,如圖像處理、界面接口設(shè)計(jì)、數(shù)據(jù)分析等,所以這是讓更多的非計(jì)算機(jī)專業(yè)學(xué)生學(xué)習(xí)編程的必要性。
2 藝術(shù)院校開展程序設(shè)計(jì)課程
藝術(shù)院校本科教學(xué)中,涉及學(xué)科眾多,以中國美術(shù)學(xué)院為例,就開設(shè)了五大學(xué)科十大學(xué)院(設(shè)計(jì)學(xué)院、公共藝術(shù)學(xué)院、建筑學(xué)院、影視動(dòng)畫學(xué)院、創(chuàng)新學(xué)院等),其所有專業(yè)都屬于非計(jì)算機(jī)專業(yè),《大學(xué)計(jì)算機(jī)基礎(chǔ)》課程為先修課程,在創(chuàng)新學(xué)院首開程序設(shè)計(jì)課程,這無疑對(duì)藝術(shù)類學(xué)生是個(gè)挑戰(zhàn),現(xiàn)在的大學(xué)生思維跳躍、性格外向、審美能力較強(qiáng)、具有一定的創(chuàng)新能力,對(duì)圖形的處理能力和造型的把控能力都很強(qiáng),但存在邏輯思維能力較弱,程序設(shè)計(jì)有需要相當(dāng)?shù)膰?yán)謹(jǐn)性、邏輯性和條理性,能不能很順利地開展Python教學(xué),在開課之前,筆者做了一些調(diào)查,如表1。
通過表1大體了解,即便是藝術(shù)學(xué)院的學(xué)生,也存在某些專業(yè)的學(xué)生已經(jīng)了解Python語言,其次,盡管藝術(shù)院校95%的學(xué)生都不具有編程基礎(chǔ),但意向?qū)W習(xí)的專業(yè)學(xué)生最高達(dá)到40%,所以在藝術(shù)院校開設(shè)Python,或者說推進(jìn)計(jì)算機(jī)語言的學(xué)習(xí),是能夠被學(xué)生接受和肯定的。Python語言是最容易讀懂的編程語言,代碼簡潔明了,方便調(diào)用函數(shù)庫,這對(duì)于初次接觸編程的學(xué)生來說沒有壓力,學(xué)習(xí)上困擾較少,學(xué)生不需要糾結(jié)其語法和算法,而是用最直接給出問題并提出解決方案,那么在藝術(shù)院校如何開展Python,或重點(diǎn)教授哪一些函數(shù)庫是對(duì)學(xué)生的專業(yè)最有用的,是值得我們教師在教學(xué)目標(biāo)、教學(xué)內(nèi)容和教學(xué)形式上做功課。
如在教學(xué)內(nèi)容上可做如下安排(見表2)。
通過表2可知,根據(jù)學(xué)生的學(xué)習(xí)能力,把這個(gè)Python的教學(xué)分為必修部分和選修部分,學(xué)習(xí)了必修部分的內(nèi)容,要求能獨(dú)立用Python語言來處理專業(yè)內(nèi)的圖形處理問題。而選修部分的學(xué)習(xí)內(nèi)容,有一定難度,讓學(xué)生通過大量的實(shí)例和練習(xí),來獨(dú)立進(jìn)行藝術(shù)圖像繪制的編程能力。另外,由表2可知,在講解Python語言的時(shí)候,盡量簡化語法,用具體的、生動(dòng)的圖形來理解程序的基本結(jié)構(gòu),其次,考慮到專業(yè)的不同,適當(dāng)引入實(shí)例,啟發(fā)式教學(xué)推進(jìn),多使用現(xiàn)成的函數(shù)庫調(diào)用,讓程序設(shè)計(jì)的處理顯得不是那么復(fù)雜,學(xué)生的興趣一點(diǎn)點(diǎn)地被激發(fā)。
對(duì)于學(xué)習(xí)能力強(qiáng)的學(xué)生,可以進(jìn)入Python的高級(jí)應(yīng)用學(xué)習(xí),如圖像處理軟件與Python的完美結(jié)合,來更生動(dòng)、更細(xì)微的來解決藝術(shù)圖像的問題。
3 Python語言的特點(diǎn)
Python語言的設(shè)計(jì)哲學(xué)是“明確、簡單、優(yōu)雅”,Python開發(fā)者的哲學(xué)是“用一種方法,最好是只有一種方法來做一件事”。其語言有以下特點(diǎn):
1) 簡單易學(xué):Python是一種代表簡單主義思想的語言。Python容易上手,閱讀一個(gè)良好的Python程序就感覺像是在讀英語一樣。
2) 免費(fèi)、開源:Python是自由軟件之一。使用者可以自由地發(fā)布這個(gè)軟件的拷貝,閱讀它的源代碼,對(duì)它做改動(dòng),把它的一部分用于新的自由軟件中。
3) 高級(jí)語言:用Python語言編寫程序時(shí)無須考慮如何管理你的程序使用的內(nèi)存等這些底層細(xì)節(jié)。
4) 可移植性:Python已經(jīng)被移植到許多平臺(tái)上。這些平臺(tái)包括各大操作體統(tǒng)如Windows、蘋果系統(tǒng)OS。用Python語言寫的程序不需要編譯成二進(jìn)制代碼。你可以直接從源代碼運(yùn)行程序。這使得Python語言更加簡單,也是Python程序更加易于移植。
5) 可擴(kuò)展性:如何需要一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公平,可以部分程序用C或C++編寫,然后再Python程序中使用它們。反過來也可以把Python嵌入C或C++程序,從而向程序用戶提供腳本功能。
6) 豐富的庫:Python標(biāo)準(zhǔn)庫很龐大,如turtle庫、PIL庫、PILLOW庫等都是具有強(qiáng)大圖像處理能力的第三方庫,不僅包含了豐富的像素,色彩操作功能,還可以用于圖像歸檔和批量處理,這無疑能更有效地解決藝術(shù)院校的設(shè)計(jì)類專業(yè)的問題。
4 藝術(shù)院校Python語言教學(xué)的策略研究
國內(nèi)外廣泛關(guān)注且推進(jìn)“計(jì)算思維”教學(xué)理念,具有“計(jì)算思維”的學(xué)習(xí)者應(yīng)該能夠深刻理解問題的計(jì)算特性并善于利用計(jì)算機(jī)解決問題。選擇Python語言作為“終身受用的程序設(shè)計(jì)語言”來針對(duì)藝術(shù)院校來教學(xué),是因?yàn)镻ython語言是一種簡潔且強(qiáng)大的語言。它的語法簡潔質(zhì)樸,可以用優(yōu)美來形容,最關(guān)鍵的,它強(qiáng)大的圖像庫作為解決設(shè)計(jì)專業(yè)類的有效途徑。在Python語言教學(xué)上,應(yīng)該簡化語法,在案例中循序漸進(jìn)學(xué)會(huì)語法,激發(fā)學(xué)生興趣、以圖形案例為主體的教學(xué)方針。
1) 弱化語法
長期以來,各地高校對(duì)非計(jì)算機(jī)專業(yè)會(huì)普遍開設(shè)C 語言或C++語言程序設(shè)計(jì)課程,但是在長期的教學(xué)過程中,因?yàn)榻虒W(xué)內(nèi)容枯燥、語法復(fù)雜、學(xué)習(xí)難度大的因素,再加上非計(jì)算機(jī)專業(yè)學(xué)生缺少計(jì)算機(jī)體系結(jié)構(gòu)相關(guān)知識(shí),使得C 語言或C++語言程序設(shè)計(jì)課程教學(xué)上出現(xiàn)很大的困惑,也無法開展后續(xù)的計(jì)算機(jī)應(yīng)用來解決學(xué)生專業(yè)領(lǐng)域中的問題。顯然,C語言或C++語言太抽象,比較合適計(jì)算機(jī)專業(yè)的學(xué)生。
Python是相對(duì)的自由軟件,Python語法簡潔清晰,強(qiáng)制縮進(jìn),可讀性好,相對(duì)于c或c++語言,Python學(xué)習(xí)起來會(huì)更輕松、更具有規(guī)律性,它豐富的擴(kuò)展庫和函數(shù)庫很方便地進(jìn)行調(diào)用。
目前,各地高校開始嘗試針對(duì)非計(jì)算機(jī)專業(yè)用Python語言來教學(xué),其主要原因:①語言代碼簡潔,不要求程序通過函數(shù)封裝,代碼行數(shù)簡短;②語法簡單,能降低非計(jì)算機(jī)專業(yè)學(xué)生的學(xué)習(xí)難度;③擁有強(qiáng)大的圖形庫,能夠?qū)崿F(xiàn)各種實(shí)用結(jié)果,提高學(xué)生學(xué)習(xí)的興趣,有助于學(xué)生學(xué)會(huì)一種終身受用的編程語言。
2)圖像庫的學(xué)習(xí)導(dǎo)入
PIL(Python Image library)庫是Python語言的第三方庫,需要通過pip工具安裝,PIL庫支持圖像存儲(chǔ)、顯示和處理,它能夠處理幾乎所有圖片格式,可以完成對(duì)圖像的縮放、剪裁、疊加以及向圖像添加線條、圖像和文字操作。
PIL庫主要可以實(shí)現(xiàn)圖像歸檔和圖像處理兩方面功能需求。圖像歸檔:對(duì)圖像進(jìn)行批處理、生成圖像預(yù)覽、圖像格式轉(zhuǎn)換等。圖像處理:圖像基本處理、像素處理、顏色處理等。最常用的3個(gè)字庫為:Image、ImageFilter、ImageEnhance。Image類的圖像讀取和創(chuàng)建方法有image.open()、image.new()、image.frombytes、()inage.verify(),image類的常用屬性有image.format、image.mode、image.size、image.palette,image類的序列圖像操作方法有image.seek()、image.tell(),image類的圖像轉(zhuǎn)換和保存方法有image.save()、image.convert()、image.thumbnail()。
Tutul庫是一個(gè)很直觀有趣的函數(shù)庫。它的主要功能就是實(shí)現(xiàn)簡單圖形到復(fù)雜圖形的繪制。它的基本思路是:有一個(gè)小海龜在沿著坐標(biāo)系爬行,形成一個(gè)圖形的軌跡。Turtle.penup()、turtle.pendown()分別表示抬起畫筆和落下畫筆,turtle.pensize()、turtle.width()表示設(shè)置畫筆尺寸和寬度,turtle.pencolor()表示給畫筆設(shè)置顏色,turtle.fd()和turtle.seth()表示行進(jìn)動(dòng)作和改變繪制角度。通過這些比較簡單的命令,就可以繪制出基本形狀或較為復(fù)雜的卡通形象。
3) 案例教學(xué),循序漸進(jìn)
面向藝術(shù)類專業(yè)學(xué)生的授課教學(xué)中,采用圖形案例
為主,可以激發(fā)學(xué)生的學(xué)習(xí)興趣并提升學(xué)習(xí)主動(dòng)性。設(shè)計(jì)類的學(xué)生都有很強(qiáng)的圖形設(shè)計(jì)和造型能力,能把程序設(shè)計(jì)課的內(nèi)容用于手繪的效果,無疑對(duì)學(xué)生來講很是新鮮和新奇。研究用Python語言程序設(shè)計(jì)在選取案例如何增加趣味性、規(guī)律性,總結(jié)編程思路,積極引入最合適學(xué)生的圖像函數(shù)庫,使得編程能有效地解決學(xué)生的專業(yè)上的問題,從而實(shí)現(xiàn)教學(xué)目標(biāo)。
和大多數(shù)程序語言設(shè)計(jì)一樣,Python語言也是涉及程序的控制結(jié)構(gòu),分單分支if結(jié)構(gòu)、二分支if…else、多分支if…elif….else結(jié)構(gòu)和循環(huán)結(jié)構(gòu)(for、while、break、continue),那我們?cè)谠O(shè)計(jì)教學(xué)思路的時(shí)候采用tutle庫形象的介紹這幾個(gè)結(jié)構(gòu)的區(qū)別。
例如順序結(jié)構(gòu)程序設(shè)計(jì)的教學(xué),應(yīng)用turtle 庫繪制等邊三角形,通過繪制的結(jié)果來理解、掌握順序程序設(shè)計(jì)結(jié)構(gòu)。如圖1(程序和結(jié)果)。
例如分支結(jié)構(gòu)程序設(shè)計(jì)的教學(xué),應(yīng)用turtle庫繪制五角星、正方形等圖形,通過繪制的結(jié)果來幫助學(xué)生理解和掌握分支結(jié)構(gòu)。如圖2、圖3(程序和結(jié)果)。
例如循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的教學(xué),應(yīng)用turtle庫繪制蜂窩等圖形,通過繪制的結(jié)果來幫助學(xué)生理解和掌握循環(huán)結(jié)構(gòu)。如圖4(程序和結(jié)果)。
5 結(jié)束語
對(duì)藝術(shù)院校的學(xué)生而言,不但要學(xué)會(huì)自身的專業(yè),并且要適應(yīng)“計(jì)算思維和計(jì)算生態(tài)”的教學(xué)理念,計(jì)算機(jī)程序語言猶如新鮮血液一樣注入他們的專業(yè)中,Python語言的學(xué)習(xí)對(duì)于藝術(shù)院校的開展是迫在眉睫和持之以恒的,但與計(jì)算機(jī)專業(yè)學(xué)生的教學(xué)策略是不同的,需要結(jié)合藝術(shù)專業(yè)特點(diǎn)因材施教,利用Python語言特點(diǎn)與藝術(shù)類學(xué)生的優(yōu)勢,使得藝術(shù)與科技的完美結(jié)合,為社會(huì)輸送更優(yōu)秀的復(fù)合型人才。
我院的Python語言基礎(chǔ)課程尚在起步階段,在課程的教學(xué)內(nèi)容和安排上進(jìn)行了一些階段性的嘗試和思考,目前受到了選修學(xué)生的歡迎,學(xué)生學(xué)習(xí)的積極性和主動(dòng)性都很高,這對(duì)于我們這一批開課老師也有很大的動(dòng)力。在利用現(xiàn)有線上課程資源的基礎(chǔ)上,要盡快創(chuàng)建適合藝術(shù)院校課程需求的慕課;其次,更系統(tǒng)的分析各專業(yè)特點(diǎn)和需求,編寫適合不同專業(yè)需求的教學(xué)案例,積極探索教學(xué)改革,讓Python學(xué)習(xí)成為藝術(shù)院校專業(yè)學(xué)習(xí)的一個(gè)分支。
參考文獻(xiàn):
[1] 中國高等院校計(jì)算機(jī)基礎(chǔ)改革課題研究組.中國高等院校計(jì)算機(jī)基礎(chǔ)教育課程體系[M].北京:清華大學(xué)出版社,2014:9-10.
[2] 嵩天,黃天羽,禮欣.Python 語言:程序設(shè)計(jì)課程教學(xué)改革的理想選擇[J].中國大學(xué)教學(xué),2016(2): 42-47.
[3] 仲曉芳,龐勝楠,尹百慧.面向非計(jì)算機(jī)類專業(yè)Python編程教學(xué)設(shè)計(jì)研究[J].無線互聯(lián)科,2017(18).
[4] 曹玉嬋,左映龍.面向高職院校藝術(shù)設(shè)計(jì)類專業(yè)Python語言的教學(xué)策略研究[J].電腦知識(shí)與技術(shù),2019(31).
【通聯(lián)編輯:朱寶貴】