顧鴻虹,楊娜,張虹
(北京科技大學天津學院信息工程學院,天津301830)
隨著互聯網和信息時代的迅猛發展,新工科產業,如深度學習、人工智能、大數據等領域的研究熱潮的到來,這些領域的人才供給出現不足的現象,而傳統工科教育已不再適應新興經濟行業對人才能力培養的需求。為應對這一問題,教育部多次提出全國高校應加快建設和發展新工科,優化學科專業結構,發展新興前沿學科專業。
程序設計基礎課程是培養大學生計算機應用能力和計算思維能力的重要課程,是激發學生對新工科等技術興趣的第一課堂,探究面向新工科的程序設計基礎課程改革對深入新工科建設發展有重要意義。
程序設計基礎課程是高校以講述程序設計語言的基本知識和程序設計方法,介紹程序設計的思想和方法,使學生了解計算機求解問題的方式,即計算機思維的培養課程。在教學內容上應該更加注重思想方法的傳遞。
傳統工科中大多數高校一直采用C程序設計作為第一門程序設計課程,一般安排在第一學期或者第二
學期,學完C語言之后,再學其他程序設計課程,如數據結構等。但通過調查發現,將C語言作為工科大學生第一門程序設計課程的入門語言,并沒能較好地實現該課程的目標。
將C語言作為工科大學生第一門程序設計課程時,由于C語言本身的特點,使很多學生在學習的過程中把過多的精力用在調改語法錯誤上,并沒能建立計算思維,也沒能扎實掌握編程技能。
1.1.1 C語言本身既靈活又復雜
由于C語言語法的既靈活又復雜,一些教師在授課過程中往往過多地強調語言成分的語法和語義,而忽視了計算思維能力的培養,使學生從開始就扎進程序設計語言的細枝末節中去,忽略了計算思維的培養,更無法滲透工程性思想,到最后學生雖然掌握了一些語法,卻不能用程序解決問題。同時學生在開始學習C語言并進行編程實驗時,往往容易出現大量語法錯誤,大量錯誤的出現也大大打擊了學生學習的積極性。
1.1.2 多涉及底層
要學好C語言,需要學習者先有計算機工作原理等底層的一些知識,傳統將C語言作為程序設計第一門課程時,對于初學者來說并沒有相應基礎實施,因此學習起來原理的知識并不好掌握,需要學習者用計算機的思考方式處理問題,變相增加了學生學習的難度。
1.1.3 編程和運行環境單調
傳統C語言課程教學通常是借助VC++6.0集成開發環境進行課程學習,然而這一集成開發環境,編程和運行程序的界面單調,學生學習時更容易產生枯燥感,又一次降低了學習者學習的積極性。
1.1.4 課程案例與實際應用脫節
傳統C語言課程案例多涉及數學計算和高級算法的實現,與學生學習期待和實際應用脫節,社會招聘崗位需求中對C語言的需求也很少,很難激發學生學習興趣,變相阻礙了學生創新思維的啟發。
綜上可見,C語言不能滿足程序設計基礎入門課程的需求。為有效實現程序設計基礎課程教學目標,進一步提高教學質量,適應新工科產業需求,亟需對傳統程序設計基礎課程體系進行升級改造。
當前世界范圍內,新一輪科技革命和產業變革正加速進行,在互聯網+的時代背景下,大數據、物聯網、人工智能、網絡安全、大健康等新工科產業迅猛發展。新工科的發展對程序設計基礎課程提出了相應的需求。
高校程序設計基礎課程應以計算思維培養為核心,以利用計算機程序進行復雜專業問題求解能力培養為導向,適當融入最新技術及其應用。教學手段上應通過案例驅動、實踐體驗等方式讓學生更有獲得感。
1.2.1 計算思維的培養
針對學生計算思維的培養應與當前社會技術發展相適應,在這個技術時代,更應關注問題的求解,讓學生真正掌握利用計算機解決問題的通用方法。這就要求程序設計語言能盡可能接近人類的自然語言,這樣才能在教學活動中超越對程序語法和底層結構的關注,更多傳授利用計算思維解決計算問題的方法,即計算思維的培養。
1.2.2 易與新技術融合
面向新工科的程序設計語言應能快速通過程序體驗新技術。大數據、人工智能等新興工科產業領域的研究產生不少應用案例,面向新工科的程序設計語言應選擇實際應用領域眾多案例中學生易于接受和體驗的。
在針對應用型本科院校程序設計基礎課程的現狀、包括人才培養方案中程序設計課程的設置情況、課程定位及內容設置情況進行調研的基礎上,發現Python語言更能適應新工科的需求。
Python語言自1991年公開發行,是一種面向對象的解釋型計算機程序設計語言,全部開源,作為適應新技術時代的輕語法程序設計語言,具有簡潔性、易讀性和可擴展性的特點,可以讓我們把更多的精力投入到應用與問題求解上,極大地降低學習難度、簡化開發復雜度,實現快速開發。
目前國際上排名前100的高校中80%以上都在開始Python程序設計課程,國內眾多高校也正積極構建基于Python的程序設計教學體系,Python成為學習程序設計的第一選擇。
2016年,教育部高等學校大學計算機課程教學指導委員會發布了《大學計算機基礎課程教學基本要求》,其中首次建議將Python語言作為首門程序設計課程的教學語言。教育部考試中心也于2017年10月11日發布了“關于全國計算機等級考試(NCRE)體系調整”的通知,決定自2018年3月起,在計算機二級考試加入了“Python語言程序設計”科目。
近年來,Python在大數據分析與挖掘、人工智能和機器學習等新工科領域中更是優勢凸顯,使得Python成為新工科建設最適合的語言,Python程序設計語言也迅速躍居編程語言排行榜前列,成為當下最受歡迎的編程語言之一,截至2020年底,Python已經連續四年在IEEE Spectrum編程語言排行榜中奪冠,同時,由于在過去的2020年實現了2.01%的正增長,被授予過去一年最受歡迎的編程語言,贏得了年度TIOBE編程語言獎,這也是史上Python第四次創下這個紀錄,如圖1所示。

圖1 2020年12月TIOBE編程語言排行榜
2.2.1 調整現有教學計劃和課程體系
結合社會需求和新工科發展的需要,在現有計算機專業教學計劃中加入Python課程,增加Python課程的同時,需要注意Python課程與原有其他課程之間的聯系,確保教學計劃的系統性。新的教學計劃一改以往大多數高校將C語言作為工科專業大學生第一門程序設計基礎課程的先例,而是在大一第一學期以Python做程序設計基礎先導課,利用Python更容易培養學生計算思維。在學習Python之后,在第二學期再學習需要專業理論知識的C語言,并在C語言課程學習完成后通過課程設計綜合應用Python和C語言進行軟硬件結合的應用開發。因為前期有了Python的基礎,后續在教學計劃中增加了人工智能和大數據培養方向的專業選修課,可以讓學生在高年級時根據就業需求和個人興趣選擇基于Python的高級應用、機器學習等課程的學習,形成了相對完整的基于Python的應用開發課程體系,滿足新工科產業大數據和人工智能領域的人才需求。
2.2.2 統籌設計基于Python的程序設計基礎課程教學內容
基于Python的程序設計基礎課程圍繞程序設計基礎知識:數據類型、程序控制、函數及模塊、文件、Tkinter GUI編程展開,重點培養學生的計算思維能力。課程內容與學時分布如表1所示。

表1 Python教學內容與學時分布安排
2.2.3 采用“教學項目化”的教學方法
課題結合課程知識點選擇教學項目案例驅動教學。案例需求學生易于結合生活實際進行分析,更容易將學生引入案例項目的實際應用情境,發揮學生主體意識,引導學生積極思考,培養工程化思想,提高分析問題、解決問題的能力。案例由淺入深,隨著新的知識點的講解,逐步修改完善案例項目,最終實現符合實際應用需求案例。同時引導學生發現身邊與案例類似的應用需求,舉一反三,利用新知識解決實際生活中與案例項目相同或相似的問題,啟發創新思維。
2.2.4 建設適用于教學的教材
當今市場適用于應用型本科教學的Python程序設計基礎類教程相對較少,多會偏向某一具體應用領域,然而涉及具體應用的知識的內容往往都有一定難度,不適合基礎教程使用。因此需根據上述確定的課程教學內容和教學目標編寫相應的適用于應用型本科教學的教材;此外,為進一步適應新工科需求,對于計算機專業的程序設計基礎課程的教程內容更需要從專業應用出發,如主流的數據爬蟲、數據可視化、Web應用開發、手寫數字識別和圖像處理等方向。因此需要根據不同專業的需求建設不同的教材。
根據課程建設成果的應用實踐結果看,基于Python的程序設計基礎課程相對于基于C語言的程序設計基礎課程更能激起大學新生學習程序設計基礎課程的興趣,特別是圖形用戶界面應用程序部分,更能激起學生學習的積極主動性,部分學生更樂于嘗試利用所學解決一些現實遇到的問題,并嘗試學習數據分析、圖像處理等實用研究領域,為創新應用打下了基礎。