姜 洋,李俊生,王 紅,劉才華
(中國民航大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,天津 300300)
大學(xué)計(jì)算機(jī)是本科非計(jì)算機(jī)專業(yè)的一門核心基礎(chǔ)課程,目的是使學(xué)生了解計(jì)算機(jī)的基本概念、原理,認(rèn)識計(jì)算機(jī)在各種領(lǐng)域中應(yīng)用,建立較強(qiáng)的計(jì)算機(jī)意識,掌握基本的程序設(shè)計(jì)方法,培養(yǎng)學(xué)生具有熟練操作計(jì)算機(jī)的技能和計(jì)算思維能力的通識性課程[1]。隨著時(shí)代的不斷發(fā)展和技術(shù)的不斷進(jìn)步,社會對大學(xué)計(jì)算機(jī)的人才培養(yǎng)目標(biāo)提出了更高的要求,更加強(qiáng)調(diào)綜合素質(zhì)的提高和計(jì)算思維能力的培養(yǎng)[2]。然而以往的大學(xué)計(jì)算機(jī)課程由于缺乏程序設(shè)計(jì)的內(nèi)容,計(jì)算思維培養(yǎng)的深度不夠[3],但如果增加程序設(shè)計(jì),學(xué)習(xí)程序語言本身又需要增加大量的學(xué)時(shí)。如何在學(xué)時(shí)有限的情況下,使學(xué)生既了解計(jì)算機(jī)的基礎(chǔ)知識、掌握計(jì)算機(jī)的基本操作,又能夠通過程序設(shè)計(jì)提高計(jì)算思維水平是一個(gè)具有挑戰(zhàn)性的問題。
挑戰(zhàn)的關(guān)鍵除了精簡教學(xué)內(nèi)容,改革教學(xué)方法,更重要的是選擇一門合適的程序設(shè)計(jì)語言,該語言需要具備簡潔、高效、生態(tài)3個(gè)特點(diǎn),否則對于大部分沒有深入接觸過程序設(shè)計(jì)語言的非計(jì)算機(jī)專業(yè)學(xué)生來說,過多的語法細(xì)節(jié)和低效的開發(fā)效率,不僅不能激發(fā)學(xué)生的學(xué)習(xí)興趣,還容易使學(xué)生陷入偏重語言本身而忽略領(lǐng)悟計(jì)算機(jī)問題求解的基本方法和思維模式[4]。相對于傳統(tǒng)的程序設(shè)計(jì)語言,當(dāng)前流行的Python恰好具備這3個(gè)特點(diǎn)[5-6]。Python的語法簡潔且更接近自然語言,Python還是一門解釋型、交互式、可移植的面向?qū)ο缶幊陶Z言,可以高效地實(shí)現(xiàn)各種程序模塊,并且能夠整合其他語言實(shí)現(xiàn)的程序模塊,編程效率很高。不僅如此,Python良好的計(jì)算生態(tài)特性,使其在大數(shù)據(jù)分析與處理、深度學(xué)習(xí)、科學(xué)計(jì)算可視化及科學(xué)研究等領(lǐng)域得到越來越廣泛的應(yīng)用。學(xué)生通過學(xué)習(xí)Python語言,不僅能夠快速入門,而且能夠在更高層次上去分析和解決復(fù)雜問題,是提高大學(xué)生計(jì)算思維能力培養(yǎng)質(zhì)量和水平的最好選擇。
為了進(jìn)一步提高大學(xué)生計(jì)算思維能力培養(yǎng)水平,探索在大學(xué)計(jì)算機(jī)課程中重點(diǎn)引入Python,利用Python豐富的計(jì)算生態(tài)系統(tǒng),提高大學(xué)生分析和解決復(fù)雜問題的能力[7]。為了達(dá)到這樣一個(gè)目標(biāo),需要讓學(xué)生對計(jì)算機(jī)的知識體系有一個(gè)系統(tǒng)完整的認(rèn)識,但作為一門本科非計(jì)算機(jī)專業(yè)的公共基礎(chǔ)課程,課程本身具有內(nèi)容多、學(xué)時(shí)少、實(shí)踐性強(qiáng)、學(xué)生多且程度不一的情況[8],因此筆者將計(jì)算機(jī)系統(tǒng)型知識分成3個(gè)層面進(jìn)行介紹,分別是系統(tǒng)型認(rèn)知層、系統(tǒng)型應(yīng)用層、系統(tǒng)型設(shè)計(jì)層。在系統(tǒng)型認(rèn)知層,主要使學(xué)生熟悉計(jì)算機(jī)的基本原理、特點(diǎn)和發(fā)展歷史,了解計(jì)算機(jī)硬件系統(tǒng)、軟件系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)等相關(guān)重要概念。在系統(tǒng)型應(yīng)用層,學(xué)生掌握操作系統(tǒng)的基本功能,文字處理軟件、電子表格軟件與演示文稿軟件等基本操作,并能夠綜合運(yùn)用這些軟件的功能解決一些實(shí)際問題,如文檔排版、成績表數(shù)據(jù)的統(tǒng)計(jì)和分析、畢業(yè)論文答辯等。在系統(tǒng)型設(shè)計(jì)層,掌握Python基礎(chǔ)知識及程序設(shè)計(jì)的一般方法,了解從問題分析到程序維護(hù)整套程序設(shè)計(jì)流程,初步具備利用Python解決各類實(shí)際計(jì)算問題的開發(fā)能力,培養(yǎng)學(xué)生計(jì)算思維。這3個(gè)層次的內(nèi)容不僅相互聯(lián)系構(gòu)成一個(gè)整體,而且相互之間是層層遞進(jìn)、相互促進(jìn)的關(guān)系。
大學(xué)計(jì)算機(jī)是一門實(shí)踐性很強(qiáng)的課程,主要包括計(jì)算機(jī)基本操作及程序設(shè)計(jì),因此實(shí)踐教學(xué)十分重要。作為計(jì)算機(jī)公共基礎(chǔ)課,該課程的實(shí)踐教學(xué)一方面要開展計(jì)算機(jī)的基本操作及辦公軟件的應(yīng)用;另一方面開展Python程序設(shè)計(jì)實(shí)踐,特別需要挖掘?qū)W生生活學(xué)習(xí)中亟待解決的計(jì)算問題,從而增強(qiáng)學(xué)生興趣,提高學(xué)生解決問題的能力。
近年來,在新工科和教學(xué)生態(tài)建設(shè)背景下,中國民航大學(xué)(以下簡稱“中航大”)在大學(xué)計(jì)算機(jī)改革方面積極探索,不斷實(shí)踐,從最初的案例驅(qū)動(dòng)式教學(xué),到MOOC+SPOC+翻轉(zhuǎn)課堂式教學(xué),再到在大學(xué)計(jì)算機(jī)中引入Python程序設(shè)計(jì)的系統(tǒng)型混合式教學(xué)。在不斷豐富大學(xué)計(jì)算機(jī)教學(xué)內(nèi)容的同時(shí),也在適應(yīng)新時(shí)代教育背景,不斷改進(jìn)教學(xué)模式。此次在大學(xué)計(jì)算機(jī)課程中重點(diǎn)引入Python程序設(shè)計(jì),并且將大學(xué)計(jì)算機(jī)知識體系分成系統(tǒng)型認(rèn)知層、系統(tǒng)型應(yīng)用層、系統(tǒng)型設(shè)計(jì)層3個(gè)層次,針對不同層次的知識特點(diǎn),分別采用內(nèi)涵式混合教學(xué)、案例驅(qū)動(dòng)式混合教學(xué)、演化式混合教學(xué)的教學(xué)方法。
從2016年開始,在大學(xué)計(jì)算機(jī)基礎(chǔ)課程中,中航大就嘗試采用“MOOC+SPOC+翻轉(zhuǎn)課堂”的教學(xué)模式,學(xué)生首先通過MOOC自學(xué)計(jì)算機(jī)文化基礎(chǔ)知識,如果有問題話可以通過SPOC和老師同學(xué)進(jìn)行在線交流,然后通過翻轉(zhuǎn)課堂的形式進(jìn)行分組匯報(bào),展示學(xué)習(xí)效果。實(shí)踐結(jié)果表明,此種教學(xué)模式教學(xué)效果很好,學(xué)生普遍認(rèn)為不僅收獲很大,而且鍛煉了綜合能力。中航大因此獲得全國高校計(jì)算機(jī)教育MOOC聯(lián)盟優(yōu)秀案例二等獎(jiǎng)?;谝酝慕虒W(xué)經(jīng)驗(yàn),這次在大學(xué)計(jì)算機(jī)改革中,對于計(jì)算機(jī)文化基礎(chǔ)部分,筆者安排了4個(gè)理論學(xué)時(shí),因?yàn)榇蟛糠值挠?jì)算機(jī)文化基礎(chǔ)知識,學(xué)生可以通過MOOC自學(xué),課堂教學(xué)重點(diǎn)講解計(jì)算機(jī)的本質(zhì)和內(nèi)涵,因?yàn)檫@不僅能夠幫助學(xué)生更加深刻理解MOOC的學(xué)習(xí)內(nèi)容,而且有助于對計(jì)算機(jī)應(yīng)用層,尤其是設(shè)計(jì)層方面知識的理解和掌握,下面將舉例說明,課堂內(nèi)涵式教學(xué)的內(nèi)容和方法。
第一個(gè)重要內(nèi)涵是關(guān)于計(jì)算機(jī)的本質(zhì)。隨著硬件技術(shù)和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,計(jì)算機(jī)的外形發(fā)生了很大的變化,而且逐漸向著微型化和巨型化的兩個(gè)極端發(fā)展。從圖靈最初提出的計(jì)算機(jī)理論模型圖靈機(jī)、馮諾依曼設(shè)計(jì)的計(jì)算機(jī)物理模型和存儲程序,到世界第一臺通用電子計(jì)算機(jī)ENIAC、第一臺個(gè)人PC的誕生,再到智能手機(jī)得到普及和應(yīng)用、智能穿戴設(shè)備的流行,雖然這些設(shè)備的外形發(fā)生了很大的變化,但理論模型和物理模型并沒有發(fā)生變化,仍然是馮氏計(jì)算機(jī),了解計(jì)算機(jī)的本質(zhì)和發(fā)展是培養(yǎng)計(jì)算思維的重要基礎(chǔ),因此需要在課堂教學(xué)中重點(diǎn)強(qiáng)調(diào)。
另外一個(gè)在課堂上需要重點(diǎn)強(qiáng)調(diào)的內(nèi)涵是數(shù)據(jù)在計(jì)算機(jī)中的表示。這對于理解程序設(shè)計(jì)語言中數(shù)據(jù)類型的概念非常重要。數(shù)據(jù)類型是程序設(shè)計(jì)語言的核心基礎(chǔ),也是程序設(shè)計(jì)的基礎(chǔ),由于程序等于數(shù)據(jù)加算法,程序的運(yùn)行過程就是對數(shù)據(jù)的處理過程,對數(shù)據(jù)類型概念的深入理解能夠有助于對設(shè)計(jì)層程序設(shè)計(jì)語言的深刻理解和掌握。在程序設(shè)計(jì)語言中,不同類型數(shù)據(jù)的表示方式不同、取值范圍不同、支持的運(yùn)算不同,但他們最根本的區(qū)別還是存儲方式不同,例如整型數(shù)據(jù)采用二進(jìn)制補(bǔ)碼存儲,實(shí)數(shù)采用浮點(diǎn)數(shù)結(jié)構(gòu)存儲,字符串采用Unicode等編碼的方式存儲,如圖1所示。因?yàn)榇鎯Ψ绞讲煌艣Q定了他們的取值范圍不同、運(yùn)算方式不同,所以當(dāng)不同類型數(shù)據(jù)進(jìn)行運(yùn)算的時(shí)候,需要進(jìn)行一致性轉(zhuǎn)換。課堂教學(xué)由于時(shí)間相對充裕,而且有黑板便于演算,所以這部分知識可以通過詳細(xì)舉例來進(jìn)行分析。這種混合式教學(xué)方式使學(xué)生在深度和廣度上對計(jì)算機(jī)文化都能夠有較為系統(tǒng)的認(rèn)識,為后面的深入學(xué)習(xí)打好基礎(chǔ)。
圖1 相似不同類型數(shù)據(jù)的存儲方式實(shí)例對比
對于Office高級應(yīng)用,近年來主要采用案例驅(qū)動(dòng)的方式教學(xué),設(shè)計(jì)了一些與生活息息相關(guān)的教學(xué)案例,例如基于Word的畢業(yè)論文排版、基于Word的個(gè)人簡歷、基于Excel的大學(xué)生就業(yè)數(shù)據(jù)分析、基于Excel期末成績統(tǒng)計(jì)與分析、基于PowerPoint的演示文稿等,這些案例不僅包含Office軟件常用的基本操作,而且與實(shí)際生活緊密結(jié)合。筆者將這些案例的操作過程做成短視頻,分享在學(xué)校的在線教學(xué)平臺上,學(xué)生可以將案例視頻下載到手機(jī)或電腦上,遇到操作上的問題可以隨時(shí)參考視頻,這樣學(xué)生不僅可以反復(fù)觀看,熟練掌握基本操作,而且也節(jié)省了課堂教學(xué)時(shí)間,提高了課堂教學(xué)的質(zhì)量和效率。
由于包括office在內(nèi)的各種軟件總是在不斷升級更新的,僅僅熟練掌握某一個(gè)版本的操作是不夠的,也無法提高學(xué)生思維的深度和廣度,因此在學(xué)生通過在線視頻掌握基本操作方法之后,在課堂教學(xué)上需要重點(diǎn)講解操作背后的一些核心概念,這些概念是隱含在操作背后最本質(zhì)最核心的內(nèi)容,不會隨著軟件版本的變化而變化。例如在講解word案例的時(shí)候重點(diǎn)介紹樣式、域、節(jié)這些文檔排版和編輯的概念;在講解Excel案例的時(shí)候,重點(diǎn)介紹相對引用、絕對引用、函數(shù)、數(shù)據(jù)清單、分類匯總、排序和篩選等數(shù)據(jù)統(tǒng)計(jì)和分析的概念;在講解PowerPoint案例的時(shí)候,重點(diǎn)介紹占位符、幻燈片版式、主題和母版這些文檔展示方面的概念。深刻理解這些概念不僅有助于學(xué)生快速適應(yīng)新版本的變化,而且有助于對計(jì)算機(jī)系統(tǒng)型認(rèn)知層和系統(tǒng)型設(shè)計(jì)層的理解和掌握。課堂教學(xué)主要通過案例深入講解相關(guān)概念,線上案例視頻幫助學(xué)生熟練掌握辦公軟件的操作過程,兩者相互補(bǔ)充。熟練掌握案例的相關(guān)操作,有助于對概念的深入理解,又有助于對操作更加靈活的應(yīng)用。這種線上線下的混合式教學(xué),不僅提高了課堂教學(xué)的效率,而且通過課堂由表及里的案例分析,培養(yǎng)了學(xué)生深入思考、探索研究和廣泛聯(lián)系的思維習(xí)慣,從而極大提高了課堂教學(xué)的質(zhì)量。
Python作為一種面向?qū)ο蟮慕忉屝途幊陶Z言,其簡潔優(yōu)美的語法和功能強(qiáng)大的計(jì)算生態(tài)系統(tǒng),使其成為當(dāng)下最受歡迎的編程語言,而且在人工智能、大數(shù)據(jù)的時(shí)代背景下,Python應(yīng)用越來越廣泛。為了提高大學(xué)生學(xué)習(xí)計(jì)算機(jī)的積極性和主動(dòng)性,并能夠在更高層次上提高分析問題解決問題的能力,中航大在大學(xué)計(jì)算機(jī)課程中重點(diǎn)引入了Python語言程序設(shè)計(jì),安排了包括上機(jī)學(xué)時(shí)和授課學(xué)時(shí)在內(nèi)的48學(xué)時(shí),在總共64學(xué)時(shí)的課程總學(xué)時(shí)中占主要比例,因此也是教學(xué)的重點(diǎn)。為了提高課堂教學(xué)質(zhì)量,并充分利用中國大學(xué)MOOC上豐富的在線教學(xué)資源,筆者采用演化式混合教學(xué)方法,學(xué)生通過和教材同步的MOOC進(jìn)行自學(xué),MOOC課程內(nèi)容豐富、形式活潑、時(shí)間安排非常緊湊、學(xué)生學(xué)習(xí)效率很高。此外,還有面向零基礎(chǔ)的網(wǎng)絡(luò)先修課CAP,這樣非常有助于文科類的非計(jì)算機(jī)專業(yè)學(xué)生提前預(yù)習(xí)。對于基礎(chǔ)較好的理工科非計(jì)算機(jī)專業(yè)學(xué)生來說,可以根據(jù)自己的興趣學(xué)習(xí)一些更加高級的內(nèi)容,例如“Python爬蟲與信息抽取”“Python機(jī)器學(xué)習(xí)應(yīng)用”“Python科學(xué)計(jì)算三維可視化”“Python游戲開發(fā)入門”“Python云端系統(tǒng)開發(fā)入門”“Python數(shù)據(jù)分析與展示”等配套課程,這些配套課程不僅極大豐富了課堂教學(xué)的內(nèi)容,而且為基礎(chǔ)好、對Python語言有更高追求的學(xué)生提供了更加廣闊的學(xué)習(xí)平臺。
在課堂教學(xué)方面,為了讓學(xué)生能夠快速地掌握基本概念和程序設(shè)計(jì)的思想,筆者采用演化式的教學(xué)方法,從基本案例出發(fā),然后不斷增加案例的復(fù)雜度,把python語言的基礎(chǔ)知識點(diǎn)融入案例中,讓每個(gè)知識點(diǎn)都能找到一個(gè)真實(shí)的應(yīng)用場景。這樣既激活了枯燥的知識講解,又積累了編程經(jīng)驗(yàn),并通過層層深入的講解,鍛煉了學(xué)生分析問題、解決問題的能力,培養(yǎng)了學(xué)生獨(dú)立和深入思考的思維習(xí)慣。以計(jì)算天天向上年能力增長值案例演化為例[9],從最開始利用Python的內(nèi)置數(shù)值函數(shù)計(jì)算、便于批量修改每天增長值引入變量,然后為了區(qū)分工作日和休息日引入分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),最后為計(jì)算根據(jù)設(shè)定的年增長目標(biāo)、計(jì)算工作日需要達(dá)到的努力程度引入了函數(shù),利用函數(shù)將計(jì)算年能力增長值的問題封裝成一個(gè)獨(dú)立的模塊。此案例要想實(shí)現(xiàn)最后的計(jì)算目標(biāo),還需要引入一些程序設(shè)計(jì)思想,比如試湊的思想,因?yàn)闊o法根據(jù)年增長的目標(biāo)直接計(jì)算出工作日要達(dá)到的努力程度,需要利用計(jì)算機(jī)計(jì)算快的特性,通過不斷的累加嘗試,達(dá)到目標(biāo)輸出結(jié)果。通過此案例的不斷演化,學(xué)生不僅理解了語法概念的產(chǎn)生背景,而且隨著問題的不斷深入,掌握了利用計(jì)算機(jī)分析問題解決問題的思路和方法。
為了反映此次教學(xué)改革的教學(xué)效果,我們對所有學(xué)習(xí)大學(xué)計(jì)算機(jī)課程的學(xué)生進(jìn)行了問卷調(diào)查,調(diào)查的主要目的是此教學(xué)模式和方法對學(xué)生學(xué)習(xí)方式和學(xué)習(xí)收獲的影響,結(jié)果如圖2和圖3所示。調(diào)查結(jié)果表明此模式不僅有助于提高學(xué)生的綜合能力和計(jì)算素養(yǎng),更能夠引導(dǎo)學(xué)生培養(yǎng)混合式學(xué)習(xí)習(xí)慣,此學(xué)習(xí)習(xí)慣的養(yǎng)成不僅有利于學(xué)生對計(jì)算機(jī)課程的學(xué)習(xí),而且有利于對其他課程的學(xué)習(xí)。
圖2 系統(tǒng)型混合式教學(xué)對其他課程學(xué)習(xí)習(xí)慣影響
圖3 學(xué)生通過系統(tǒng)型混合式學(xué)習(xí)的學(xué)習(xí)收獲
系統(tǒng)型混合式教學(xué)方法是新工科背景下結(jié)合在線開放課程及Python語言的一次綜合性探索和實(shí)踐。教學(xué)實(shí)踐結(jié)果表明,此方法不僅使非計(jì)算機(jī)專業(yè)學(xué)生更加系統(tǒng)性的掌握計(jì)算機(jī)的基本概念、基本原理及解決問題的基本方法,提高了計(jì)算思維培養(yǎng)的質(zhì)量和水平,更能夠引導(dǎo)學(xué)生培養(yǎng)混合學(xué)習(xí)習(xí)慣,從而提高自主學(xué)習(xí)能力。筆者下一步將通過與其他專業(yè)的深度融合,逐步開發(fā)出適合不同專業(yè)的、定制的教學(xué)計(jì)劃和教學(xué)案例,努力培養(yǎng)信息化社會亟需的計(jì)算機(jī)和各專業(yè)的交叉人才。