王強(qiáng) 張仕霞
摘要:針對(duì)《IT實(shí)用技術(shù)》公共課中比較抽象的概念和知識(shí)點(diǎn),筆者探索采用對(duì)初學(xué)者友好的Python 語(yǔ)言及其IDLE環(huán)境作為學(xué)習(xí)、體驗(yàn)和練習(xí)的環(huán)境,收到了較好的教學(xué)效果。本文列舉了在教學(xué)實(shí)踐中關(guān)于數(shù)的進(jìn)制、ASCII 及Unicode編碼以及高級(jí)程序設(shè)計(jì)的幾個(gè)實(shí)例。
關(guān)鍵詞:云教學(xué);計(jì)算思維;高等教育;Python
本學(xué)期筆者承擔(dān)了西南財(cái)經(jīng)大學(xué)天府學(xué)院藝術(shù)設(shè)計(jì)學(xué)院網(wǎng)絡(luò)與新媒體專業(yè)的《IT實(shí)用技術(shù)》公共課。該課程是在抗疫條件下的云教學(xué)環(huán)境下進(jìn)行,老師和同學(xué)們無(wú)法面對(duì)面,而課程中的有關(guān)章節(jié)涉及到二進(jìn)制、八進(jìn)制、十六進(jìn)制、ASCII 編碼、Unicode編碼、高級(jí)程序設(shè)計(jì)等比較抽象的概念和知識(shí)點(diǎn),因此形象直觀的教學(xué)手段和工具顯得尤為重要。我探索把這些教學(xué)內(nèi)容與學(xué)習(xí)入門相對(duì)容易、對(duì)初學(xué)者友好的Python 語(yǔ)言相結(jié)合,同學(xué)們能夠在自己電腦上安裝好的Python IDE環(huán)境下練習(xí)和體驗(yàn)以上的學(xué)習(xí)內(nèi)容,眼見為實(shí)。Python語(yǔ)言是在八十年代末、九十年代初,由Guido van Rossum 在荷蘭國(guó)家數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究所設(shè)計(jì),由諸多其它語(yǔ)言發(fā)展而來(lái)的一門非常強(qiáng)大的編程語(yǔ)言, 其開源、簡(jiǎn)潔、優(yōu)雅以及對(duì)文字的強(qiáng)處理能力使得它目前已成為人工智能和大數(shù)據(jù)分析的主力語(yǔ)言。Python是初學(xué)者友好的語(yǔ)言,對(duì)初級(jí)程序員而言,它是一種偉大的語(yǔ)言,支持廣泛的應(yīng)用程序開發(fā),包括簡(jiǎn)單的文字處理、Web 瀏覽器、到電子工程和游戲。Python是一種解釋型語(yǔ)言,意味著開發(fā)過程中沒有了編譯這個(gè)環(huán)節(jié),類似于PHP和Perl語(yǔ)言。Python是交互式語(yǔ)言,意味著學(xué)生在一個(gè)Python提示符下直接互動(dòng)執(zhí)行和編寫程序。Python是面向?qū)ο蟮恼Z(yǔ)言,支持面向?qū)ο蟮娘L(fēng)格或代碼封裝在對(duì)象的編程技術(shù)。
點(diǎn)擊并拖拽以移動(dòng)在第一章《計(jì)算機(jī)的誕生與發(fā)展》中,講述數(shù)值數(shù)據(jù)的進(jìn)制時(shí),我們可以利用Python對(duì)二進(jìn)制、八進(jìn)制、十六進(jìn)制的表示方法讓同學(xué)們更直觀地去學(xué)習(xí)和理解。例如,把0b1011 , 0o712 , 0x1ac 這些數(shù)值敲入到 Python交互式shell環(huán)境下,對(duì)應(yīng)的十進(jìn)制的值就能馬上顯示出來(lái),在這里,0b、0o、0x 分別表示二進(jìn)制、八進(jìn)制、十六進(jìn)制數(shù)(b、o、x也可以是大寫的B、O、X)。
同樣在第一章“字符的編碼”一節(jié)中,我們可以用Python中互逆的2個(gè)函數(shù)ord()和chr()來(lái)說明ASCII編碼的使用,也可以用"\u"+ Unicode來(lái)說明Unicode編碼的使用。
點(diǎn)擊并拖拽以移動(dòng)在教學(xué)中可以讓同學(xué)們先訪問 https://home.unicode.org/,得到 ‘@’的Unicode編碼是 FF20(4位16進(jìn)制數(shù)),‘π’的 Unicode編碼是 03c0,然后用 ‘\u’轉(zhuǎn)義字符調(diào)用print( )函數(shù)輸出。
在講授課程的下半部分《計(jì)算思維基礎(chǔ)》時(shí),由于Python語(yǔ)言具有的入門容易、語(yǔ)法簡(jiǎn)潔、優(yōu)雅、高效的特點(diǎn),在教學(xué)計(jì)劃中我把原來(lái)教材第9章《程序設(shè)計(jì)》中采用的描述語(yǔ)言C++ 和Visual Basic替換成Python語(yǔ)言。因?yàn)椋瑢?duì)于文科學(xué)生來(lái)說,C++語(yǔ)言過于艱深,而Visual Basic語(yǔ)言在蓬勃發(fā)展的高級(jí)程序設(shè)計(jì)語(yǔ)言中又逐漸落伍。比如我們熟知的漢諾塔(Tower of Hanoi )問題采用Python編程來(lái)實(shí)現(xiàn),僅僅 12行程序,該程序?qū)⑤敵鰊層的漢諾塔從 A柱移到C柱的步驟,并統(tǒng)計(jì)出移動(dòng)的步驟數(shù)(應(yīng)該是 -1次)。
本例中,采用了遞歸函數(shù),老師在課堂教學(xué)中可以借助遞歸函數(shù)的思想清晰地闡述問題求解的算法思路。
i=0;
def hanoi(n,a,b,c):
global i
if n== 1:
print(a,'-->',c)
else:
hanoi(n-1,a,c,b)
print(a,'-->',c)
hanoi(n-1,b,a,c)
i=i+1
hanoi(6,'A','B','C')
print("Totally {0} moves".format(i))
在老師的指導(dǎo)下,同學(xué)們大都安裝好了來(lái)自Python官網(wǎng)(www.python.org)的IDE環(huán)境,并利用該環(huán)境來(lái)學(xué)習(xí)和實(shí)踐課程中的一些抽象概念和知識(shí)點(diǎn),從教學(xué)實(shí)踐和效果來(lái)看,這個(gè)探索證明是有效的。由于Python是開源的,擁有豐富的開發(fā)就緒的第三方庫(kù),筆者準(zhǔn)備就本課程的其它教學(xué)內(nèi)容例如“計(jì)算機(jī)網(wǎng)絡(luò)”進(jìn)一步探索挖掘一些可應(yīng)用到教學(xué)上的資源庫(kù)以積累更多的教學(xué)用例。
參考文獻(xiàn):
[1]史巧碩 柴欣《大學(xué)計(jì)算機(jī)基礎(chǔ)與計(jì)算思維》(第2版)人民郵電出版社 2015年
[2] 徐光俠 常光輝 謝紹詞 黃德玲 《Python 程序設(shè)計(jì)案例教程》人民郵電出版社 2017年
[3] [美] Richard Blum,ChristineBresnanhan陳曉明 馬立新 譯《樹莓派Python編程入門與實(shí)戰(zhàn)(第二版)》人民郵電出版社 2017年
[4] [美] Wesley Chun《Python 核心編程》(第3版)英文版人民郵電出版社 2016年
作者簡(jiǎn)介:王強(qiáng),1967年,男,四川成都,西南交通大學(xué),碩士,主要研究方向?yàn)橛?jì)算機(jī)軟件編程、人工智能。