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