張旭


摘要:計算機思維的深刻知識內涵正在被當今社會的發展進一步揭示,學生在高校中接受計算機課程的培養已經不僅是為了學會應用計算機,而是由此學會一種思維方式。根據當前C程序設計課程與計算思維之間的內在聯系,提出以培養學生計算思維為核心的C語言實踐教學設計案例。
關鍵詞:計算思維;C程序設計;創新能力
中圖分類號:G434 文獻標志碼:A 文章編號:1674-9324(2017)05-0252-02
一、背景
計算機專業的畢業生是否合格、是否有競爭力,主要是看培養出來的人才是否具有較強的計算思維能力及算法設計與分析能力。計算思維的培養是今后大學計算機課程深化改革的重要方向,合理定位大學計算機教學的內容,使之形成科學的知識體系,成為大學重要的通識類課程之一。
計算機技術已經應用于普適計算、金融工程、商業智能計算等非常廣泛的領域,與多種學科之間的交叉和綜合越來越深入。因此培養出的計算機專業人才應能夠解決某一領域具體的計算問題,能夠將計算機技術快速應用該領域。
二、計算思維
周以真教授認為計算思維是運用計算機科學的基本理論去求解問題、設計系統、理解人類行為等一系列的思維活動[1]。2008年,ACM(美國計算機協會)提出應將計算思維作為計算機科學人才培養的重要組成部分。桂林電子科技大學董榮勝教授論述了計算思維與計算機方法論的關系[2]。中央民族大學林旺闡明了軟件應用教學中計算思維能力培養的教學設計原則[3]。
以往,計算機專業背景的技術人員在進行項目開發時,如果涉及其他學科,則被視為一個“編程者”,他們僅局限于計算機上編程,包括數據結構的設計、查詢結果等具體程序代碼的實現。但隨著計算機應用的深入發展,計算機編程難度不斷降低。計算機專業人員只有具有扎實的編程能力,同時擅長抽象和分解問題的計算思維,才能從單純的“編程者”脫離出來。因此解決未來工作中來自交叉學科的問題,需要在計算機課程實踐教學中融入這種計算思維,使計算思維成為學生職業技能的一部分。
進行計算思維訓練對計算機人才培養是極為重要的,它不僅提高了教學質量,提高了學生解決問題的能力,使學生理解計算機的實現機制和約束,有利于學生進行發明和創新,更重要的是有利于提高學生的信息素養,提高學生處理計算機問題時應有的思維方法。通過對以計算思維培養為核心的計算機課程實踐教學進行研究與實踐,可以為計算機教學改革提供理論依據,并總結實踐經驗與教訓。
三、C程序設計課程存在的問題
C程序設計課程是計算機專業學生進入大學后接觸到的第一門必修計算機專業基礎課,對學生后續專業課程的學習起到重要的基礎作用。開設C程序設計課程的目的在于培養學生分析問題和解決問題的能力,為學生提供一個能夠改善知識結構,培養計算思維與綜合素質的平臺。
C程序設計課程具有大量的語法規則,傳統的教學方法所選的實驗大多基于語法規則的說明和驗證。這類實驗方法往往使得學生在學過C語言后,不能活學活用所學語言知識,學生厭煩語法規則,使得教學效果越來越差。因此在C語言實驗教學中融入計算思維,開發出適合的案例,使計算思維與現實問題相聯系,增加C語言課程的趣味性,從而降低課程的學習難度,提高學習效果。
四、具體案例分析:誰家孩子跑最慢
問題描述:張家、王家、李家各有三個孩子在一起比賽短跑,規定跑第一名得9分,跑第2名得8分,依此類推跑第9名得1分。比賽結果沒有同時到達終點的,張王李家的總分相同,并且也沒有任何一家的兩個或三個孩子獲得相連的名次。已知第一是李家的孩子,第二是王家的孩子。問獲得最后一名的是誰家的孩子?
思路:按題目的條件,共有1+2+…+9=45分,每家的孩子的總得分為15分。根據題意可知:獲第一名的是李家的孩子,獲第二名的是王家的孩子,則可推出:獲第三名的一定是張家的孩子。由“這些孩子沒有同時到達終點的”可知:名次不能并列,由“沒有一家的兩個或三個孩子獲得相連的名次”可知:第四名不能是張家的孩子。
算法描述,程序流程如圖1:
①按已知條件進行初始化,張家第一個孩子得7分,王家第一個孩子得8分,李家第一個孩子得9分。②遍歷張家孩子在4到6分段可能的分數。③遍歷王家孩子在4到6分段可能的分數。④遍歷李家孩子在4到6分段可能的分數。⑤輸出各家孩子的得分情況。⑥記錄得分最后一名的家庭序號。⑦結束。
運行結果獲得最后一名的是王家的孩子,如圖2。
五、結語
目前,對計算機課程實踐教學的計算思維研究成果還少之又少。在這種情況下,唯有自身努力,積極探索,制定既具有本校特色又可借鑒推廣的、行之有效的計算機實踐教學內容和課程體系,將計算思維融入到理論課教學和實驗教學的各個環節,提高學生運用計算機知識,特別是知識抽象和分解問題的能力。才能為社會培養出具備高水平的思維、高水平的知識建構與知識遷移能力,高水平的實踐和科研能力的計算機人才。
參考文獻:
[1]周以真.計算思維[J].中國計算機學會通訊,2007,(3):77-79.
[2]董榮勝.計算思維與計算機導論[J].計算機科學,2009,(36):50-52.
[3]林旺.孫洪濤[J].基于軟件應用的計算思維能力培養教學設計.中國電化教育2014,(11):122-127.
[4]陳國良,董榮勝.計算思維與大學計算機基礎教育[J].中國大學教學,2011,(33):7-12.
[5]儲岳中,秦鋒,劉宏申.C語言程序設計理論與實踐一體化教學的幾點實踐[J].計算機教育,2012,(12):22-25.