白小軍+劉白林+楊盛泉

摘要:針對目前高校計算機基礎教學中存在的問題,引入計算思維的理念,分析了計算思維的內容框架,并以此為基礎重構了計算機基礎教學的內容體系和課程體系。
關鍵詞:計算思維;計算機基礎教學;內容體系
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2017)10-0191-02
一、計算機基礎教學的困境和改革
長期以來,人們對計算機基礎教學的定位模糊不清,出現了諸如狹義工具論、唯編程論、濃縮論、無用論等各種認識誤區,學生對教學內容沒有興趣,教師也對教學提不起興趣。針對這種情況,計算機基礎教學指導委員會進行了兩次改革。2006年,美國卡內基—梅隆大學的周以真教授提出了“計算思維”的理念,國內外的學者紛紛展開研究,探討計算思維的本質及其驅動下的教學改革問題。以此為契機,我國的計算機基礎教育正在醞釀第三次改革,即以計算思維培養為導向的課程改革。
二、計算思維的本質與核心內容
按照周以真教授的表述,計算思維就是運用計算機科學的基礎概念去求解問題、設計系統和理解人類的行為。計算思維應該是每個人的基本技能,而不僅僅屬于計算機科學家。正如每個人都應具備基本的讀、寫、算能力一樣,現代社會還需要每個人都具備基本的計算思維能力,能夠自覺的運用計算科學的思想方法,解決各專業領域的實際問題。總結前人的研究成果,可以得出如下結論:(1)計算思維的本質是基于計算環境和約束的問題求解的思想方法。(2)計算思維的主要內容涉及:計算模型的研究,計算系統的設計與構造,計算系統的特征與約束,如何有效利用計算系統進行問題求解以及問題求解的效能評價與驗證。(3)計算思維的主要特征包括:抽象、自動化、形式化和機械化。(4)計算學科中的核心概念包括:計算、抽象、自動化、設計、通信、協作、記憶和評估等,以這八個概念為基礎,可以輻射出一系列內容,構成計算思維的內容框架,如圖1所示。
三、面向計算思維能力培養的課程內容體系
以圖1的內容框架為基礎,對計算機基礎教學的內容體系進行重組。首先,將課程體系分為兩部分,即核心課程和選修課程。核心課程面向所有的專業開設,包括“計算思維導論”和“算法與程序設計基礎”兩門;選修課程則針對不同的專業及應用領域選擇開設,包括“數據庫技術及應用”、“多媒體信息處理”、“信息安全基礎”、“網絡技術基礎”等。下面針對兩門核心課程設計其內容體系。
1.計算思維導論課程內容體系。“計算思維導論”是學生入學后的第一門計算機課程,其內容體系被分為如下六個單元:(1)計算思維的理論基礎。從原始計算方法及演化入手,理解計算的歷史及自動計算工具、方法的演化;針對現代計算機的工作原理,從數據的表示和運算入手,解決計算的基本問題;采用圖靈機理解自動計算模型以及形式化方法,進而理解馮·諾依曼體系,分析其局限性并引出近些年新興的計算模型。(2)計算思維的邏輯基礎。首先通過邏輯理解思維的規律和過程,進而講解布爾邏輯、命題邏輯和謂詞邏輯,學習邏輯的表示、運算以及推理方法,理解計算思維中的形式化方法,最后將邏輯思維與算法聯系起來,通過算法實現邏輯運算與推理。(3)計算思維的方法學。首先分析人類解決問題的思維過程,引出借助計算機求解問題的過程,并對兩者進行對比。計算機解決問題的首要步驟是抽象和建模,這就是問題描述;然后是設計合適的數據結構和算法,并依靠程序設計語言來實現算法,這就是系統設計和實現;最后還要驗證結果的正確性以及求解效率等。(4)計算思維的算法基礎。圍繞三大主題展開:①算法基礎,了解算法的概念、性質和分類,重點學習算法的表示,并明確同一個問題會有多種不同的算法;②常用算法思想,精選窮舉、遞推、遞歸、回溯、分治、并行化等常用算法,啟迪學生思維;③典型應用,選擇應用場景,介紹同一個問題的多種算法實現,使學生理解算法是程序設計的靈魂。(5)計算思維在計算機學科中的應用。從操作系統、多媒體系統、計算機網絡、數據庫技術、信息安全等領域關注的核心問題以及解決問題的基本方法出發,概要介紹計算思維在各領域中的應用,使學生切實感受計算機學科中的基本思想方法。(6)計算思維在其他學科中的應用。精選各行業的典型案例,直觀展示計算思維在其他行業中的應用。
2.算法與程序設計課程內容體系。用計算機解決實際問題,“算法與程序設計基礎”是針對理工科開設的一門計算機基礎課程,其內容體系分為七個部分:(1)程序設計基礎。首先通過一系列示例,介紹程序設計中的核心概念和方法,建立基本的程序認知;然后從數據抽象和過程抽象兩個角度理解計算思維中的核心概念——抽象,對于數據抽象,重點介紹基本數據類型以及數據的表示與存儲方法,概要介紹數組、結構體、指針及其他復雜數據類型。(2)程序的流程控制。從算法的表示入手,引出結構化程序設計的思想以及三種基本結構;以構造為核心概念,使學生理解通過基本結構的組合與嵌套實現任意復雜的流程控制;然后通過案例介紹三種控制結構,熟練掌握基本流程控制方法以及流程的組合嵌套等構造方法。(3)復雜數據類型。針對數據抽象,介紹數組、指針、結構體、鏈表等數據類型。對于每一種類型,從其應用場景引入,分析為什么要使用該類型以及如何構造和使用該類型。由于幾種復雜類型之間具有密切的聯系,所以在內容組織上要關注這些關系,使學生清楚把握知識脈絡。(4)面向過程程序設計。從面向過程的基本思想入手,解釋其“自頂向下、逐步求精”、“模塊化設計”、“結構化編碼”的基本概念,并將模塊映射為函數,實現結構化程序的構造;對于函數這一核心概念,應將其接口和實現分開,這樣有利于理解函數的使用,也便于向面向對象方法過渡。(5)典型算法的函數實現。從應用情境出發,精選用計算方法解決實際問題的一系列典型案例,分析其算法,設計函數原型并實現算法。要介紹的核心算法包括:窮舉算法、分治算法、遞推算法、遞歸算法、回溯算法、排序算法和檢索算法等。(6)面向對象程序設計。要引導學生理解面向過程的缺點及面向對象的改進,理解抽象的思想以及封裝、繼承、多態的特性。在樹立面向對象的思想后,一要學會使用系統庫或第三方庫中的類和對象;二要學會設計自己的類和對象。對于第一個問題,抓住字符串、輸入輸出流等基礎類,深入理解類的接口及訪問方法,學會使用API;同時學習動態數組、向量和哈希表等幾種典型容器類的用法,這些容器在開發中廣泛使用。對于第二個問題,要從封裝、繼承、多態三大特性入手,引出類的設計、對象的構造以及對象間的通信方式,并給出具體示例,用圖表和代碼的方式表達自己的設計。(7)數據存儲與文件。計算思維中的一個核心概念是記憶,數據結構研究的是數據的內存記憶方式,而文件研究的是數據的持久記憶方式。要弄清楚文件的類型以及存儲和處理方式,針對順序讀寫、隨機讀寫介紹其原理與代碼實現,最后介紹面向對象環境下的文件操作方法以及幾種流的使用方法。
四、結語
本文研究了計算思維的本質與核心內容,探索了計算思維驅動的計算機基礎教學內容體系和課程體系。培養計算思維,在于掌握一種利用計算方法解決各領域實際問題的獨特思路,各專業都應開出計算思維相關的課程。同時,在選擇教學內容時應有所側重和取舍,尤其要注重思維方法的訓練,這樣才有利于培養學生的思維能力及創新能力。
參考文獻:
[1]Jeannette M.Wing.Computational Thinking[J].Communications of the ACM,2006,49(3).
[2]教育部高等學校大學計算機課程教學指導委員會.計算思維教學改革宣言[J].中國大學教學,2013,(7).
[3]陳國良,董榮勝.計算思維的表述體系[J].中國大學教學,2013,(12).
Research on Content System of Computer Fundamental Course Driven by Computational Thinking
BAI Xiao-jun,LIU Bai-lin,YANG Sheng-quan
(School of Computer Science and Engineering,Xi'an Technological University,Xi'an,Shaanxi 710032,China)
Abstract:According to the problems in computer fundamental teaching,introduced the concept of computational thinking,analyzed the content framework of computational thinking,and based on this framework,reformed the content system as well as the course system for computer fundamental teaching.
Key words:computational thinking;computer fundamental teaching;content system