田文武 塔 娜
(呼倫貝爾學院 內蒙古 海拉爾區 021008)
目前所有本科高校都將大學公共計算機課程作為學生必修的科學文化基礎課程。該課程的學習目標可以分為兩個層面,一是學會如何有效使用計算機,提高學習、工作效率;二是培養計算思維,為后續的專業課程學習和將來職業發展打好基礎。計算思維是運用計算機學科的基本理論去分析求解問題、設計規劃系統及指導人們行為的一系列思維活動。隨著信息技術的廣泛應用,計算思維已滲透到我們每個人的生活之中,良好的計算思維不僅可使人們具有更好社會適應能力和更強的創造力。也對促進我國經濟社會的發展,迎接第四次的科技革命具有重要的意義。
近年來互聯網、大數據、人工智能這些新概念廣泛的應用在人類社會的許多領域,使人們對于計算機技術的認識有了極大的改變。電子商務、微信、智慧城市等應用已經成為人們日常工作和生活的一部分,逐步成為改造傳統行業和經濟發展方式、重構社會組織和人際交往方式的重要工具。在信息技術無處不在、計算強度日益增強的今天,能夠理解和掌握計算思維對于靈活運用這些技術和工具來幫助人類完成各項活動是十分必要的。但是就目前情況看,還有一部分高校的公共計算機基礎教育滯后于社會發展的需求,不能夠充分起到該課程的基礎和支撐作用。在中小學信息技術教育逐漸鋪開的情況下,還將計算機基礎課程教學目標側重于軟件操作的培訓,這將不能滿足信息社會對大學生的基本要求。因此,大學計算機課程的教學需要綜合考慮應用技能訓練、學科知識傳授和計算思維能力培養三者之間的關系。目前,呼倫貝爾學院的公共計算機基礎課主要培養學生使用計算機的能力。教育部評估專家在2018年本科教育合格評估時針對呼倫貝爾學院公共計算機課程指出:“其一大學計算機學習不應是微軟產品使用介紹,其二理工科應當學習程序設計,文理工科分類教學勢在必行,量大面廣的公共課教學需要重點推進改革并逐步實施,不能一成不變。學校多學科各自設置程序設計課程,建議教務處頂層規劃,納入公共課分類教學范圍,通過公共課程建設項目,推動提升基礎課教學質量”。這為呼倫貝爾學院的公共計算機課程教學改革指明了方向。
計算思維是在人類利用計算機強大計算能力解決問題的過程中形成的一種思維模式,它與實證思維、邏輯思維一樣,是人類認識和改造世界的一條新途徑。計算思維的本質是對事物進行抽象和將處理過程自動化,它融合了求解一般問題的數學思維方法和設計評估復雜系統的工程思維方法,采用把一個復雜的問題重新闡釋,轉換成能夠解決的一些問題來處理。通常用計算機解決問題的步驟是把一個要解決的問題進行分析抽象并建模,采用自頂向下或面向對象的設計方法進行分解和轉化,再選擇合適的計算機通過循環、遞歸等方法進行自動處理,將輸入數據轉換成輸出結果的過程。同時對問題的時間效率和空間效率進行評估,通過在處理能力和存儲容量之間的權衡來滿足問題求解的要求。大學計算機基礎課程可以通過程序設計把這些計算思維的核心思想如抽象、設計、自動化、計算、通信、評估等融入到教學中。在程序設計過程中注意培養學生運用抽象和自動化將需求轉化為計算機解題步驟。以計算圓周率為例,圓周率是在理工學科廣泛應用的一個常數,它無法用任何精確的公式表示,曾是數學歷史上一直難以解決的問題之一。計算機之父馮·諾伊曼提出的蒙特卡羅方法給出了一種解決此類問題的統計模擬方法。已知半徑R的圓面積公式為πR2,其外切正方形的面積為(2R)2,可得圓與外切正方形的面積之比就為π/4。若在此正方形區域隨機灑落大量點的話,按概率均勻分布落在圓內的點和總點數之比也就是π/4,由此可以計算出π。考慮到圓的對稱性,為減少計算量只需要統計1/4的區域,取半徑R為單位進行統計,如圖1所示。測試次數與計算精度、計算時間的情況,如表1所示。

圖1 圓周率計算


表1 測試點數與計算精度、時間關系
通過這一例子可以看出,首先用數學的方法把圓周率的計算抽象為古典概率模型。隨后用計算機模擬計算出圓周率的值。結果要對計算的精度和計算時間進行評估分析。在程序的設計中用到了輸入輸出語句、分支、循環結構,實現在學生學習計算機技能的同時培養學生抽象、設計、計算和評估能力,通過循序漸進訓練會使計算思維逐步成為學生的一種思維習慣。
培養學生計算思維的基本途徑是將其融入計算機程序設計類課程。過去很多高校程序設計采用C、Java等編程語言進行教學,這些程序設計語言往往為了兼顧計算性能而采用較為復雜的語法,制約了計算機作為普及計算工具在各學科專業的深入應用。隨著互聯網的飛速發展,計算機語言也隨之進步,簡潔高效通用的程序設計語言是計算機程序設計語言的一種發展方向。從各編程語言生態性考慮,一種風格清晰、易讀易維護的Python語言逐漸受到人們的歡迎,它作為輕語法程序設計的典型代表具有極佳的適用性。Python語言作為一門通用的腳本語言,歷經近30年的發展,目前已經成為僅次于C語言的重要程序設計語言。將該語言為載體來訓練學生理解并實踐計算思維具有很多優勢。
(一)Python語言更側重問題求解,符合計算思維的時代性。目前Python最接近自然語言的程序設計語言,適合在云計算、移動互聯網、大數據等重大技術和應用需求下完成功能開發。
(二)已形成了針對Python程序設計語言的最大開源社區,該開放體系的社區中擁有幾乎覆蓋所有計算領域的第三方庫,如:Web開發、科學計算、電子商務、自然語言處理、機器人等等??梢岳眠@些庫所提供的功能模塊作為基礎,采用搭積木方式解決復雜問題,培養學生集成創新能力。
(三)語言遵循“簡單、優雅、明確”的設計理念,可將學生徹底從復雜的語法學習中解脫出來,語言高效高產,且實現周期較短。非計算機專業選擇Python替代C語言等將會是一個趨勢。由于Python作為解釋性語言在運行速度低于C和Java。它適合解決對運算性能要求不高的一般計算問題。但由于現在電腦硬件配置普遍較高,因此對實時性不強的程序基本沒有影響,對實時性強的處理,則可以通過嵌入C程序的方法提高速度。以我們常見的統計分析文章的高頻詞匯為例:
* 需求:統計“國家主席習近平發表二〇二〇年新年賀詞”詞匯出現頻率。
* 輸入:用第三方庫requests和BeautifulSoup4從相關網頁爬取要分析文章。
* 處理:用中文分詞庫jieba對文本進行分詞,去掉虛詞和標點符號,并利用Counter類,將詞匯轉化為字典,字典鍵值既是詞匯出現的次數。
* 輸出:用第三方的詞云展示庫wordcloud、圖像處理庫PIL和繪圖庫matplotlib生成圖像。如圖2所示。

圖2 詞匯統計顯示
在這個Python程序中,爬取網頁、中文分詞、詞云生成、圖像展示等等重要工作都是調用第三方庫完成的,程序員不需要了解模塊內部的工作細節。這相對于其他語言來說,降低了處理問題的難度,有助于解決復雜的實際問題。
呼倫貝爾學院的非計算機專業包含著文、理、工、農、經濟、教育等多個專業方向。它們不僅與計算機專業的特點不同,不同專業之間的差別也非常大。為此如何做好適應各專業的Python語言課程內容設計就顯得尤為重要。根據該課程的特點和不同專業的需求,可以將Python的教學內容分成必修和選修兩部分內容。必修部分包括:Python語言環境配置、基本數據結構、程序流程控制、函數和模塊、python文件和數據處理等。這部分內容作為Python語言的基礎是必須要學的,因此可以作為不同專業學生的Python課程公共部分。目標是了解Python的特點和環境,學習基本的程序設計方法,訓練學生理解計算問題求解過程,培養學生建立抽象、自動化、程序、算法等計算思維的概念,如表2所示。選修部分可根據各專業課程的特點和專業需求來選取相關的應用內容,訓練學生從實際問題求解的高度豐富計算思維的內涵和外延。如理工類可以選?。篘umPy、SciPy、matplotlib等工具包來進行高等數學、信號處理、統計分析等的計算和繪圖;人文、社科類可以選取對自然語言處理的NLTK、Jieba、TextBlob等工具包進行統計分析、情感推理、機器翻譯等;經管類可以選取statsmodels進行統計建模和計量分析,使用alipay、django-shop工具包等進行仿真電子商務系統。除此之外Python還對Web開發、爬蟲、云計算、人工智能、金融分析和游戲開發等提供全方位的支持,可供不同的專業需求進行選擇。通過選修內容將專業知識與python程序設計有機結合,不僅可以進一步加深對編程的理解和學習、使學生的計算思維獲得進一步提高,也有助于學生加深專業知識的掌握和運用,進而提升他們的就業能力。

表2 必修課程設置參考(32課時)
在物聯網、大數據、人工智能和云服務等新一代計算機技術突飛猛進發展的今天。計算思維在社會生活中的應用越來越廣泛,這對我們公共計算機課程的教學內容和方法的改革提出了新的要求。接近自然語言且比較容易學習的Python為我們的程序設計教學提供了一個新選擇,它側重問題求解,且具有龐大開源工具包,有助于提高學生集成創新能力。通過對Python語言的學習,不僅給熟悉Python語言的學生提供了良好的就業前景和社會競爭力,也可以培養學生的計算機思維,形成邏輯思考和計算機應用能力,為未來學習發展奠定堅實的基礎。