龐淑俠,羅中華,王燕
(1.蘭州理工大學 計算機與通信學院,甘肅 蘭州;2.甘肅中醫藥大學 經貿與管理學院,甘肅 蘭州)
計算思維是美國計算機科學家周以真(Jeannette Wing)教授提出,并得到國際上的廣泛認同。周教授認為:計算思維是運用計算機科學的基本概念進行問題分析求解、系統設計,以及計算機領域所涉及的一系列思維活動。C9高校聯盟在 2010 年發布的《九校聯盟(C9)計算機基礎教學發展戰略聯合聲明》中強調,把培養學生計算思維能力作為計算機基礎教學的一項重要的、長期的任務[1-2]。計算思維旨在運用計算機科學的思想與方法去分析和解決問題。它的優點和價值不僅僅在于問題的解決,更是在跨學科中提供了一種解決問題的方法,同時也是不同專業適應科學技術發展的必然階段。
面向對象程序設計是計算機類專業的專業基礎課程之一,該課程對培養學生面向對象的編程思想起著啟蒙作用,是學生掌握面向對象思想的關鍵,同時也為以后的程序設計學習以及培養學生解決實際問題的能力產生深遠的影響。隨著大數據技術的不斷發展,面向對象程序設計也為學生理解大數據技術提供有力的保障。將計算思維應用在面向對象課程教學中,為學生解決實際問題提供了統一的方法和思想,為以后的學習和實踐打下堅實的基礎。
面向對象程序設計課程一般都存在學時不足的問題,往往教學中以語法規則和編程技術為主要內容,這種以理論教學為指導的教學方式,直接導致許多學生雖然課程成績高,但后續課程或實踐需要編程解決實際問題時,往往不知所以。導致這種情況的最主要原因是課程講述缺乏工程實踐案例,太過注重語法規則的掌握。同時結合就業形勢對面向對象程序設計的要求,以企業需求為導向進行教學方法和教學內容的改革,不但能激發學生的學習熱情,同時又能為學生以后的就業打基礎。
面向對象程序設計課程最大的特點是語法規則堆積,知識點散而多,專業術語多。基本上大多數高校的教學方式都是采取理論講授和上機練習相結合的方式進行,教師在講授程序設計的基本思想、實現方法時,容易讓學生覺得太抽象、不理解,不知所以然,從而缺乏興趣,產生畏難情緒,進而導致“厭學”現象。這種脫離工程實踐注重教學的方式急需改革。
2016年12月在全國高校思想政治工作會議上,習近平總書記指出,“要堅持把立德樹人作為中心環節,把思想政治工作貫穿教育教學全過程,實現全程育人、全方位育人,努力開創我國高等教育事業發展新局面”[3]。習總書記站在實現中華民族偉大復興的全局和戰略高度,科學回答了高校培養什么樣的人、如何培養人以及為誰培養人這一根本問題,為做好新形勢下高校思想政治工作、發展高等教育事業指明了行動方向。廣大高校教師肩負著對大學生進行思想政治教育的重要責任[4]。
在面向對象教學過程中,“規則圍繞”是程序設計課程的一大特點,在講述課程前,培養學生“規則意識”,遵紀守法,任何國家和社會沒有絕對的民主自由,只有遵守社會和國家的規則,才能保障人民群眾的切身利益,才能進一步維持社會的和諧和穩定,以新冠肺炎疫情為例,如果不顧現實地講自由,那么疫情如何管控,人民群眾的健康如何保障!
在講解友元的時候,結合實際生活中的詐騙實例,例如詐騙老人和學生的案例,往往以慢慢接觸,逐漸熟悉和結交朋友的方式,讓人減少戒心,事實證明,那些所謂的朋友,只是善良人的一廂情愿,詐騙分子一開始就目的不純,他們的目的就是騙取信任,從而騙取錢財。所以教育學生,真正的朋友之間應該互相幫助,與人為善,但那些一開始就目的不純的所謂朋友,要學會甄別,防止被騙。
另一個知識點:繼承,繼承不但可以直接使用已有類的成員,還可以增加派生類的成員。結合實際生活中的繼承,一方面通過繼承,可以相對輕松地得到相應的財富,另一方面可以通過自己的努力和奮斗為自己和社會創造更多的財富。通過繼承和派生,教育學生即使原生家庭環境優越,也應該努力學習,實現自己的人生價值,同時承擔自己的社會責任,為社會做出更大的貢獻。
面向對象程序設計對應的語言比較多,就目前而言,計算機類專業大部分高校集中在C++,JAVA等語言。所以,首先需要明確這些課程之間的關系,明確每一門課程的教學目標,避免重復教學。一般來說,C++程序設計是第一門開始的課程,該課程首先應該讓學生掌握面向對象編程的基本思想和編程方法,所以該課程的課程內容包括幾個方面:類,類的繼承和派生,類的多態,流等。在此基礎上,Java程序設計課程的主要內容包括java語法基礎,面向web編程等方面。不同課程的相互配合與銜接,一方面能讓學生多方面掌握面向對象程序設計的思想,另一方面也能使學生更快適應社會的需求和發展。
在課程的教學環節中,以啟發式為課程導向,融入課程思政元素,結合混合式、翻轉課堂等多種形式,提高教學效果。
在課程教學中,以工程案例或實際生活實例引出問題的求解方法,逐步形成問題描述——問題的解決方案——計算機處理方式——算法描述——算法實現的實現策略,從而培養學生計算思維能力和理論聯系實際的能力。例如在繼承與派生的教學環節中,可以以現實生活中的繼承展開問題,說明繼承現象存在的原因及好處,然后引申到程序設計中,代碼的執行效果與代碼工作量之間的關系,從而說明用C++如何描述派生類等問題。
問題導向能在教學一開始就激發學生的好奇心與思考能力,在發現問題、分析問題和解決問題的過程中,逐漸形成用計算機科學解決實際問題的能力。
為了進一步讓學生理解課程體系及課程內容之間的邏輯關系,有必要在課程開始之前,構建課程的思維導圖。在課程前,教師先進行宏觀內容的簡單介紹,方便學生形成一個整體課程架構,然后學生通過查閱資料和自學,完成課程的思維導圖。由于開設C++課程的學生基本是大一學生,專業基礎相對比較薄弱,對于課程的理解難免存在局限性和不足之處,在此基礎上,開展不同形式的討論和問題求解驗證,以小組或宿舍為單位進行。教學過程中,教師以學生提出的問題為基礎,設計實例,展開分析,逐步形成知識點的應用和實踐,從而完成計算思維的培養過程。
在計算機技術日益普及的今天,各行各業都對計算思維能力提出更高的要求。在教學進行之前,首先了解市場對計算機的需求,把計算機技術與專業學習在思維層面連接起來,完善適應市場需求的教學內容,設置符合市場需求的教學案例,把前沿的信息技術選用合理的方式介紹給學生,激發學生思考信息技術與自己學科的結合點,激活學生的學習興趣,教學效果最大化[5]。
在專業教育中,充分與創新教育相融合,為此,在教學過程中,鼓勵學生積極參加計算機學科類競賽,如藍橋杯程序設計大賽,大學生數學建模競賽、ACM程序設計大賽等,通過問題導向,自主學習、自主思考、自主實踐,激發學生的潛能和興趣。同時積極引導學生進行創新實驗,探索利用計算思維解決實際問題的能力。條件許可情況下,在自主學習能力較強的學生中,鼓勵其參與教師承擔的課題或科研項目。學生通過參與課題過程中的文獻查閱,數據統計分析,模擬仿真等,既拓寬學生的知識面,又完整實現計算思維訓練全過程,同時學生還可以在創新訓練中進一步明確專業教育的綜合素質要求,積極加強自身創新創業能力的培養。所以,科研創新與實踐是進行計算思維訓練和培養創新人才的有效措施[5]。
計算思維是一種思想,一種解決問題的理念,所以計算思維存在于各個領域和專業,用計算思維分析和解決問題的能力應該作為當代大學生的基本素養之一。2020年春季學期,在本校學生中進行計算思維能力培訓實踐,從教學效果和學生的學習積極性方面都有體現,圖1為學生學習情況統計,從該圖中可以明顯看出,學生的學習主動性有很大提高,同時該學期的教學效果也較上屆提升。

圖1 學習情況統計表
由此可見,計算思維能力的培養是教學過程中的重要目標之一,只有在教學過程中有規劃、有意識進行計算思維能力的訓練和培養,才能真正將計算思維融入專業教育,才能使計算思維成為一種常識性分析和解決問題的方法。通過完善教學內容,改變教學手段,融入課程思政,全面提高學生的綜合素質[7-8]。