顧鴻虹,楊娜,張虹
(北京科技大學(xué)天津?qū)W院信息工程學(xué)院,天津301830)
隨著互聯(lián)網(wǎng)和信息時(shí)代的迅猛發(fā)展,新工科產(chǎn)業(yè),如深度學(xué)習(xí)、人工智能、大數(shù)據(jù)等領(lǐng)域的研究熱潮的到來,這些領(lǐng)域的人才供給出現(xiàn)不足的現(xiàn)象,而傳統(tǒng)工科教育已不再適應(yīng)新興經(jīng)濟(jì)行業(yè)對人才能力培養(yǎng)的需求。為應(yīng)對這一問題,教育部多次提出全國高校應(yīng)加快建設(shè)和發(fā)展新工科,優(yōu)化學(xué)科專業(yè)結(jié)構(gòu),發(fā)展新興前沿學(xué)科專業(yè)。
程序設(shè)計(jì)基礎(chǔ)課程是培養(yǎng)大學(xué)生計(jì)算機(jī)應(yīng)用能力和計(jì)算思維能力的重要課程,是激發(fā)學(xué)生對新工科等技術(shù)興趣的第一課堂,探究面向新工科的程序設(shè)計(jì)基礎(chǔ)課程改革對深入新工科建設(shè)發(fā)展有重要意義。
程序設(shè)計(jì)基礎(chǔ)課程是高校以講述程序設(shè)計(jì)語言的基本知識和程序設(shè)計(jì)方法,介紹程序設(shè)計(jì)的思想和方法,使學(xué)生了解計(jì)算機(jī)求解問題的方式,即計(jì)算機(jī)思維的培養(yǎng)課程。在教學(xué)內(nèi)容上應(yīng)該更加注重思想方法的傳遞。
傳統(tǒng)工科中大多數(shù)高校一直采用C程序設(shè)計(jì)作為第一門程序設(shè)計(jì)課程,一般安排在第一學(xué)期或者第二
學(xué)期,學(xué)完C語言之后,再學(xué)其他程序設(shè)計(jì)課程,如數(shù)據(jù)結(jié)構(gòu)等。但通過調(diào)查發(fā)現(xiàn),將C語言作為工科大學(xué)生第一門程序設(shè)計(jì)課程的入門語言,并沒能較好地實(shí)現(xiàn)該課程的目標(biāo)。
將C語言作為工科大學(xué)生第一門程序設(shè)計(jì)課程時(shí),由于C語言本身的特點(diǎn),使很多學(xué)生在學(xué)習(xí)的過程中把過多的精力用在調(diào)改語法錯誤上,并沒能建立計(jì)算思維,也沒能扎實(shí)掌握編程技能。
1.1.1 C語言本身既靈活又復(fù)雜
由于C語言語法的既靈活又復(fù)雜,一些教師在授課過程中往往過多地強(qiáng)調(diào)語言成分的語法和語義,而忽視了計(jì)算思維能力的培養(yǎng),使學(xué)生從開始就扎進(jìn)程序設(shè)計(jì)語言的細(xì)枝末節(jié)中去,忽略了計(jì)算思維的培養(yǎng),更無法滲透工程性思想,到最后學(xué)生雖然掌握了一些語法,卻不能用程序解決問題。同時(shí)學(xué)生在開始學(xué)習(xí)C語言并進(jìn)行編程實(shí)驗(yàn)時(shí),往往容易出現(xiàn)大量語法錯誤,大量錯誤的出現(xiàn)也大大打擊了學(xué)生學(xué)習(xí)的積極性。
1.1.2 多涉及底層
要學(xué)好C語言,需要學(xué)習(xí)者先有計(jì)算機(jī)工作原理等底層的一些知識,傳統(tǒng)將C語言作為程序設(shè)計(jì)第一門課程時(shí),對于初學(xué)者來說并沒有相應(yīng)基礎(chǔ)實(shí)施,因此學(xué)習(xí)起來原理的知識并不好掌握,需要學(xué)習(xí)者用計(jì)算機(jī)的思考方式處理問題,變相增加了學(xué)生學(xué)習(xí)的難度。
1.1.3 編程和運(yùn)行環(huán)境單調(diào)
傳統(tǒng)C語言課程教學(xué)通常是借助VC++6.0集成開發(fā)環(huán)境進(jìn)行課程學(xué)習(xí),然而這一集成開發(fā)環(huán)境,編程和運(yùn)行程序的界面單調(diào),學(xué)生學(xué)習(xí)時(shí)更容易產(chǎn)生枯燥感,又一次降低了學(xué)習(xí)者學(xué)習(xí)的積極性。
1.1.4 課程案例與實(shí)際應(yīng)用脫節(jié)
傳統(tǒng)C語言課程案例多涉及數(shù)學(xué)計(jì)算和高級算法的實(shí)現(xiàn),與學(xué)生學(xué)習(xí)期待和實(shí)際應(yīng)用脫節(jié),社會招聘崗位需求中對C語言的需求也很少,很難激發(fā)學(xué)生學(xué)習(xí)興趣,變相阻礙了學(xué)生創(chuàng)新思維的啟發(fā)。
綜上可見,C語言不能滿足程序設(shè)計(jì)基礎(chǔ)入門課程的需求。為有效實(shí)現(xiàn)程序設(shè)計(jì)基礎(chǔ)課程教學(xué)目標(biāo),進(jìn)一步提高教學(xué)質(zhì)量,適應(yīng)新工科產(chǎn)業(yè)需求,亟需對傳統(tǒng)程序設(shè)計(jì)基礎(chǔ)課程體系進(jìn)行升級改造。
當(dāng)前世界范圍內(nèi),新一輪科技革命和產(chǎn)業(yè)變革正加速進(jìn)行,在互聯(lián)網(wǎng)+的時(shí)代背景下,大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能、網(wǎng)絡(luò)安全、大健康等新工科產(chǎn)業(yè)迅猛發(fā)展。新工科的發(fā)展對程序設(shè)計(jì)基礎(chǔ)課程提出了相應(yīng)的需求。
高校程序設(shè)計(jì)基礎(chǔ)課程應(yīng)以計(jì)算思維培養(yǎng)為核心,以利用計(jì)算機(jī)程序進(jìn)行復(fù)雜專業(yè)問題求解能力培養(yǎng)為導(dǎo)向,適當(dāng)融入最新技術(shù)及其應(yīng)用。教學(xué)手段上應(yīng)通過案例驅(qū)動、實(shí)踐體驗(yàn)等方式讓學(xué)生更有獲得感。
1.2.1 計(jì)算思維的培養(yǎng)
針對學(xué)生計(jì)算思維的培養(yǎng)應(yīng)與當(dāng)前社會技術(shù)發(fā)展相適應(yīng),在這個技術(shù)時(shí)代,更應(yīng)關(guān)注問題的求解,讓學(xué)生真正掌握利用計(jì)算機(jī)解決問題的通用方法。這就要求程序設(shè)計(jì)語言能盡可能接近人類的自然語言,這樣才能在教學(xué)活動中超越對程序語法和底層結(jié)構(gòu)的關(guān)注,更多傳授利用計(jì)算思維解決計(jì)算問題的方法,即計(jì)算思維的培養(yǎng)。
1.2.2 易與新技術(shù)融合
面向新工科的程序設(shè)計(jì)語言應(yīng)能快速通過程序體驗(yàn)新技術(shù)。大數(shù)據(jù)、人工智能等新興工科產(chǎn)業(yè)領(lǐng)域的研究產(chǎn)生不少應(yīng)用案例,面向新工科的程序設(shè)計(jì)語言應(yīng)選擇實(shí)際應(yīng)用領(lǐng)域眾多案例中學(xué)生易于接受和體驗(yàn)的。
在針對應(yīng)用型本科院校程序設(shè)計(jì)基礎(chǔ)課程的現(xiàn)狀、包括人才培養(yǎng)方案中程序設(shè)計(jì)課程的設(shè)置情況、課程定位及內(nèi)容設(shè)置情況進(jìn)行調(diào)研的基礎(chǔ)上,發(fā)現(xiàn)Python語言更能適應(yīng)新工科的需求。
Python語言自1991年公開發(fā)行,是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語言,全部開源,作為適應(yīng)新技術(shù)時(shí)代的輕語法程序設(shè)計(jì)語言,具有簡潔性、易讀性和可擴(kuò)展性的特點(diǎn),可以讓我們把更多的精力投入到應(yīng)用與問題求解上,極大地降低學(xué)習(xí)難度、簡化開發(fā)復(fù)雜度,實(shí)現(xiàn)快速開發(fā)。
目前國際上排名前100的高校中80%以上都在開始Python程序設(shè)計(jì)課程,國內(nèi)眾多高校也正積極構(gòu)建基于Python的程序設(shè)計(jì)教學(xué)體系,Python成為學(xué)習(xí)程序設(shè)計(jì)的第一選擇。
2016年,教育部高等學(xué)校大學(xué)計(jì)算機(jī)課程教學(xué)指導(dǎo)委員會發(fā)布了《大學(xué)計(jì)算機(jī)基礎(chǔ)課程教學(xué)基本要求》,其中首次建議將Python語言作為首門程序設(shè)計(jì)課程的教學(xué)語言。教育部考試中心也于2017年10月11日發(fā)布了“關(guān)于全國計(jì)算機(jī)等級考試(NCRE)體系調(diào)整”的通知,決定自2018年3月起,在計(jì)算機(jī)二級考試加入了“Python語言程序設(shè)計(jì)”科目。
近年來,Python在大數(shù)據(jù)分析與挖掘、人工智能和機(jī)器學(xué)習(xí)等新工科領(lǐng)域中更是優(yōu)勢凸顯,使得Python成為新工科建設(shè)最適合的語言,Python程序設(shè)計(jì)語言也迅速躍居編程語言排行榜前列,成為當(dāng)下最受歡迎的編程語言之一,截至2020年底,Python已經(jīng)連續(xù)四年在IEEE Spectrum編程語言排行榜中奪冠,同時(shí),由于在過去的2020年實(shí)現(xiàn)了2.01%的正增長,被授予過去一年最受歡迎的編程語言,贏得了年度TIOBE編程語言獎,這也是史上Python第四次創(chuàng)下這個紀(jì)錄,如圖1所示。
圖1 2020年12月TIOBE編程語言排行榜
2.2.1 調(diào)整現(xiàn)有教學(xué)計(jì)劃和課程體系
結(jié)合社會需求和新工科發(fā)展的需要,在現(xiàn)有計(jì)算機(jī)專業(yè)教學(xué)計(jì)劃中加入Python課程,增加Python課程的同時(shí),需要注意Python課程與原有其他課程之間的聯(lián)系,確保教學(xué)計(jì)劃的系統(tǒng)性。新的教學(xué)計(jì)劃一改以往大多數(shù)高校將C語言作為工科專業(yè)大學(xué)生第一門程序設(shè)計(jì)基礎(chǔ)課程的先例,而是在大一第一學(xué)期以Python做程序設(shè)計(jì)基礎(chǔ)先導(dǎo)課,利用Python更容易培養(yǎng)學(xué)生計(jì)算思維。在學(xué)習(xí)Python之后,在第二學(xué)期再學(xué)習(xí)需要專業(yè)理論知識的C語言,并在C語言課程學(xué)習(xí)完成后通過課程設(shè)計(jì)綜合應(yīng)用Python和C語言進(jìn)行軟硬件結(jié)合的應(yīng)用開發(fā)。因?yàn)榍捌谟辛薖ython的基礎(chǔ),后續(xù)在教學(xué)計(jì)劃中增加了人工智能和大數(shù)據(jù)培養(yǎng)方向的專業(yè)選修課,可以讓學(xué)生在高年級時(shí)根據(jù)就業(yè)需求和個人興趣選擇基于Python的高級應(yīng)用、機(jī)器學(xué)習(xí)等課程的學(xué)習(xí),形成了相對完整的基于Python的應(yīng)用開發(fā)課程體系,滿足新工科產(chǎn)業(yè)大數(shù)據(jù)和人工智能領(lǐng)域的人才需求。
2.2.2 統(tǒng)籌設(shè)計(jì)基于Python的程序設(shè)計(jì)基礎(chǔ)課程教學(xué)內(nèi)容
基于Python的程序設(shè)計(jì)基礎(chǔ)課程圍繞程序設(shè)計(jì)基礎(chǔ)知識:數(shù)據(jù)類型、程序控制、函數(shù)及模塊、文件、Tkinter GUI編程展開,重點(diǎn)培養(yǎng)學(xué)生的計(jì)算思維能力。課程內(nèi)容與學(xué)時(shí)分布如表1所示。
表1 Python教學(xué)內(nèi)容與學(xué)時(shí)分布安排
2.2.3 采用“教學(xué)項(xiàng)目化”的教學(xué)方法
課題結(jié)合課程知識點(diǎn)選擇教學(xué)項(xiàng)目案例驅(qū)動教學(xué)。案例需求學(xué)生易于結(jié)合生活實(shí)際進(jìn)行分析,更容易將學(xué)生引入案例項(xiàng)目的實(shí)際應(yīng)用情境,發(fā)揮學(xué)生主體意識,引導(dǎo)學(xué)生積極思考,培養(yǎng)工程化思想,提高分析問題、解決問題的能力。案例由淺入深,隨著新的知識點(diǎn)的講解,逐步修改完善案例項(xiàng)目,最終實(shí)現(xiàn)符合實(shí)際應(yīng)用需求案例。同時(shí)引導(dǎo)學(xué)生發(fā)現(xiàn)身邊與案例類似的應(yīng)用需求,舉一反三,利用新知識解決實(shí)際生活中與案例項(xiàng)目相同或相似的問題,啟發(fā)創(chuàng)新思維。
2.2.4 建設(shè)適用于教學(xué)的教材
當(dāng)今市場適用于應(yīng)用型本科教學(xué)的Python程序設(shè)計(jì)基礎(chǔ)類教程相對較少,多會偏向某一具體應(yīng)用領(lǐng)域,然而涉及具體應(yīng)用的知識的內(nèi)容往往都有一定難度,不適合基礎(chǔ)教程使用。因此需根據(jù)上述確定的課程教學(xué)內(nèi)容和教學(xué)目標(biāo)編寫相應(yīng)的適用于應(yīng)用型本科教學(xué)的教材;此外,為進(jìn)一步適應(yīng)新工科需求,對于計(jì)算機(jī)專業(yè)的程序設(shè)計(jì)基礎(chǔ)課程的教程內(nèi)容更需要從專業(yè)應(yīng)用出發(fā),如主流的數(shù)據(jù)爬蟲、數(shù)據(jù)可視化、Web應(yīng)用開發(fā)、手寫數(shù)字識別和圖像處理等方向。因此需要根據(jù)不同專業(yè)的需求建設(shè)不同的教材。
根據(jù)課程建設(shè)成果的應(yīng)用實(shí)踐結(jié)果看,基于Python的程序設(shè)計(jì)基礎(chǔ)課程相對于基于C語言的程序設(shè)計(jì)基礎(chǔ)課程更能激起大學(xué)新生學(xué)習(xí)程序設(shè)計(jì)基礎(chǔ)課程的興趣,特別是圖形用戶界面應(yīng)用程序部分,更能激起學(xué)生學(xué)習(xí)的積極主動性,部分學(xué)生更樂于嘗試?yán)盟鶎W(xué)解決一些現(xiàn)實(shí)遇到的問題,并嘗試學(xué)習(xí)數(shù)據(jù)分析、圖像處理等實(shí)用研究領(lǐng)域,為創(chuàng)新應(yīng)用打下了基礎(chǔ)。