方 霞, 任 穎, 王麗娜
(海軍航空大學(xué) 航空基礎(chǔ)學(xué)院, 山東 煙臺 264000)
隨著計算機(jī)技術(shù)的發(fā)展,計算機(jī)作為常用信息處理工具已廣泛應(yīng)用到各行業(yè)各領(lǐng)域,大學(xué)計算機(jī)基礎(chǔ)課程作為目前高等教育階段的一門通識課程[1],對該課程的學(xué)習(xí)是培養(yǎng)大學(xué)生計算機(jī)基礎(chǔ)知識和信息素養(yǎng)能力的重要途徑[2]。
現(xiàn)階段高校的大學(xué)計算機(jī)基礎(chǔ)課程體系主要包括2部分內(nèi)容,其一是計算機(jī)相關(guān)領(lǐng)域基礎(chǔ)理論知識,如發(fā)展歷史、系統(tǒng)結(jié)構(gòu)、信息處理方式、操作系統(tǒng)原理、數(shù)據(jù)庫技術(shù)以及網(wǎng)絡(luò)應(yīng)用等[3],其二是計算機(jī)操作技能培養(yǎng),一般以常用軟件的使用為主,尤以office為重。第一部分內(nèi)容廣而泛,涉及到了計算機(jī)各個領(lǐng)域,概念多且雜,內(nèi)容要求以初步了解為主,學(xué)生往往感覺高大上但又空遠(yuǎn)難。第二部分內(nèi)容則主要以軟件操作與使用為主,與理論內(nèi)容無甚關(guān)聯(lián)[4-6]。且多數(shù)人把計算機(jī)作為一種現(xiàn)代化的信息處理工具,導(dǎo)致了計算機(jī)基礎(chǔ)類課程陷入了“工具課”的誤區(qū)。這使得原有教學(xué)內(nèi)容很難適應(yīng)學(xué)生的需求,這給高校的計算機(jī)基礎(chǔ)課程提出了新的要求,因此,計算機(jī)基礎(chǔ)類課程教學(xué)者們開始探索新的教學(xué)內(nèi)容和教學(xué)模式[7-9]。
美國卡內(nèi)基·梅隆大學(xué)華裔教授周以真于2006年提出了計算思維(computational thinking)的概念[10],計算思維一經(jīng)提出就引起了計算機(jī)教學(xué)界的共鳴,同時也給現(xiàn)階段的高等教育計算機(jī)基礎(chǔ)教學(xué)指明了新的方向[11]。2010年9月的九校聯(lián)盟計算機(jī)基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略聯(lián)合聲明中,重申了計算機(jī)基礎(chǔ)教學(xué)是培養(yǎng)大學(xué)生綜合素質(zhì)和創(chuàng)新能力不可或缺的重要環(huán)節(jié),同時旗幟鮮明的把“計算思維能力的培養(yǎng)”作為計算機(jī)基礎(chǔ)教育的核心任務(wù)[12-13]。因此現(xiàn)階段計算機(jī)教學(xué)應(yīng)當(dāng)注重通過課程的學(xué)習(xí)培養(yǎng)學(xué)生普適通用的計算機(jī)應(yīng)用能力,引導(dǎo)學(xué)生學(xué)會用計算機(jī)解決其專業(yè)領(lǐng)域的實際問題[14]。2018年中央軍委訓(xùn)練管理部下發(fā)的最新軍隊院校教學(xué)大綱(試用稿)中明確提出大學(xué)計算機(jī)基礎(chǔ)課程在學(xué)習(xí)計算機(jī)基礎(chǔ)知識的基礎(chǔ)上,著重加強(qiáng)培養(yǎng)學(xué)員的信息素養(yǎng)和計算思維能力,軍隊院校在優(yōu)化教學(xué)內(nèi)容、創(chuàng)新教學(xué)模式的同時,將程序設(shè)計語言Python加入到大學(xué)計算機(jī)基礎(chǔ)課程內(nèi)容體系中,探索以培養(yǎng)學(xué)員計算思維能力為主線的計算機(jī)基礎(chǔ)課程教學(xué)新模式。
Python是一種解釋型的動態(tài)腳本語言,其語法非常清晰和簡潔,涉及到的數(shù)據(jù)類型、關(guān)鍵字等較少,核心表示形式上又跟主流編程語言基本一致,很多高校也將Python納入計算機(jī)課程體系,作為學(xué)生的入門編程語言[15-16]。再者Python的開源性特征使其具備了豐富的第三方庫,能廣泛適用于多種編程領(lǐng)域,可以在計算機(jī)基礎(chǔ)課程中的各個模塊引入應(yīng)用案例[17]。
計算機(jī)雖然是一個發(fā)展迅速的學(xué)科,但并未改變計算機(jī)的基本構(gòu)成原理[18]。大學(xué)計算機(jī)基礎(chǔ)課程中基礎(chǔ)理論的講授仍然是課程基石,如馮·諾依曼體系結(jié)構(gòu)中存儲程序的提出和運用、各種不同形式信息的二進(jìn)制數(shù)字化方法、存儲系統(tǒng)中高速緩存應(yīng)用的局部性原理等[19]。理論講授模塊解決了計算機(jī)是什么、能夠做什么、以什么原理實現(xiàn)相關(guān)功能等,但仍然停留在概念闡述層次,并未涉及如何把計算機(jī)應(yīng)用到解決具體問題的過程中?,F(xiàn)階段的計算機(jī)科學(xué)已不再是一門獨立的學(xué)科,更多的是作為一門工具學(xué)科與其他學(xué)科交織融合,不能單純把理論知識作為教學(xué)的重點,而是應(yīng)該讓學(xué)生在理解計算機(jī)基本理論和概念的基礎(chǔ)上,獲得利用計算機(jī)解決其專業(yè)領(lǐng)域問題的能力,促進(jìn)學(xué)生思維能力和創(chuàng)新能力的培養(yǎng),因此計算思維的培養(yǎng)至關(guān)重要。這在高校計算機(jī)教育領(lǐng)域已經(jīng)達(dá)成了普遍共識,也是計算機(jī)基礎(chǔ)教學(xué)改革的重頭戲。
從概念上說,計算思維是指運用計算機(jī)科學(xué)的基礎(chǔ)概念去解決問題、設(shè)計系統(tǒng)和理解人類行為,它包括了一系列廣泛的計算機(jī)科學(xué)的思維方法。學(xué)生首先通過基礎(chǔ)理論的學(xué)習(xí)建立系統(tǒng)的概念,了解計算機(jī)處理問題的過程,把問題求解策略經(jīng)過計算思維方法分析抽象出符合計算機(jī)科學(xué)的解決方案,理解利用程序自動化進(jìn)行問題求解是計算機(jī)所特有的方法。海軍航空大學(xué)(以下簡稱我校)的大學(xué)計算機(jī)基礎(chǔ)課程教學(xué)實施過程中即運用了上述思路,在闡述理論的基礎(chǔ)上,通過分析案例、抽象問題模型、利用Python程序自動化解決實際案例,促使學(xué)生的知識體系以“輸入→整理→輸出→再輸入”的過程循環(huán)式形成和提高,如圖1所示。
圖1 知識體系形成過程Fig.1 Formation process of knowledge system
通過Python編程案例的實現(xiàn)(表1),使學(xué)生在理解計算機(jī)基礎(chǔ)概念和理論的基礎(chǔ)上充分體會計算機(jī)如何解決實際問題,貫徹“授人以魚莫若授人以漁”的經(jīng)典教學(xué)思想[20]。
表1 Python案例一覽表Table 1 Python case list
計算機(jī)應(yīng)用領(lǐng)域千變?nèi)f化,但最主要最核心的應(yīng)用仍然是數(shù)據(jù)處理。計算機(jī)處理的數(shù)據(jù)形式不斷變化,從最初最單一的數(shù)值類信息到如今復(fù)雜多樣的字符、漢字、音頻、圖像、視頻等各種非數(shù)值信息[21],不同的信息類型存儲形式和處理過程不盡相同。教學(xué)過程中本模塊的整體理論基礎(chǔ)是數(shù)值信息和非數(shù)值信息的數(shù)字化方法和過程,內(nèi)容體系的思維導(dǎo)圖如圖2所示,其中虛框內(nèi)為細(xì)化的圖像信息數(shù)字化內(nèi)容,接下來以圖像案例的應(yīng)用為例闡述如何將理論知識與案例結(jié)合。
圖2 信息數(shù)字化模塊思維導(dǎo)圖Fig.2 Mind map of information digitizing
圖像數(shù)字化模塊內(nèi)容的實施過程可以分為基礎(chǔ)概念講解、數(shù)字化過程闡述、Python編程實例應(yīng)用3個環(huán)節(jié)。第1個環(huán)節(jié)主要以課堂講授為主,簡要介紹圖像中涉及的基本概念,如顏色與可見光、顏色模式、圖像格式等。第2個環(huán)節(jié)是在基本概念的基礎(chǔ)上著重講解圖像的數(shù)字化過程,闡述采樣、量化、編碼各階段的方法以及各階段相關(guān)的關(guān)鍵參數(shù),引導(dǎo)學(xué)生理解如何將模擬的圖像信息轉(zhuǎn)換成二進(jìn)制流[20]。第3個環(huán)節(jié)Python編程案例模塊的關(guān)鍵程序段如圖3所示。在上述理論基礎(chǔ)上利用PIL圖像模塊查看圖像的基本信息,對圖像先后進(jìn)行了像素修改、裁剪、旋轉(zhuǎn)以及調(diào)整拉伸等操作,并讓學(xué)生以案例為模板,對其他樣例文件進(jìn)行類似的操作,加深對知識的理解以及運用,以此加深學(xué)生對圖像數(shù)字化的理解。圖片經(jīng)相關(guān)操作產(chǎn)生的變化如圖4所示。
import PIL. Image#打開圖片并獲取圖片分辨率以及格式image_path-r'test.jpg'image=PIL.Image.open(image_path)width, heighth=image.sizeprint(″圖片的分辨率為:″, width, heighth)print(″圖片的格式為:″, image.format)#修改圖片像素點值pix=image.load()for x in range(0, width∥2):for y in range(0, heighth):image.putpixel((x, y), (255.,255,255))image.save('testl.jpg')image, show()#裁剪左半部分圖片,只保留右半部分圖片cut_image=image.crop((width∥2, 0, width, heighth))cut_image.save(r'test2.jpg')cut_image.show()#旋轉(zhuǎn)圖片rotate_image=cut_image.rotate(180)rotate_image.save(r'test3.jpg)rotate_image.show()#調(diào)整尺寸modi_image=rotate_image.resize((width, heighth), PIL.Image.ANTIALIAS)modi_image.save(r'test4.jpg')
(a) 原圖; (b) 修改像素后; (c) 裁剪后; (d)旋轉(zhuǎn)后; (e) 按照原像素拉伸后圖4 圖片的變化過程Fig.4 Changing process of image
目前,采用該模式的計算機(jī)基礎(chǔ)課程在我校已實施了4個學(xué)期。從教學(xué)效果來看,Python案例的引入提高了學(xué)生學(xué)習(xí)的積極性;引導(dǎo)學(xué)生理解知識與實際問題結(jié)合的方式,培養(yǎng)了學(xué)生將理論應(yīng)用于實踐的能力。但教學(xué)新模式在探索和實施過程中,也遇到了一些困難。其一,Python語言的引入增加了教師的教學(xué)量和教學(xué)難度,因為Python作為體驗式語言,不能占用過多課時,這導(dǎo)致部分學(xué)生Python入門困難,會影響后續(xù)案例中知識點的理解和運用。其二,案例的引入使得原有的教學(xué)模式不再適用,因此需要教師重新設(shè)計已有基礎(chǔ)理論與Python案例的結(jié)合點。在將來的工作中,教師將繼續(xù)以計算思維培養(yǎng)為導(dǎo)向,針對新的教學(xué)內(nèi)容和教學(xué)模式不斷探索新的教學(xué)方法,提高計算機(jī)基礎(chǔ)課程的教學(xué)質(zhì)量,以期培養(yǎng)適應(yīng)時代信息素養(yǎng)的新型軍事人才。