徐利軍 馮國富 葛艷 鄭宗生 王愛繼 賀琪 袁小華 趙丹楓
摘要:培養計算思維能力是計算機基礎教學的核心任務。本文討論了我們在教學過程中培養計算思維能力和創新能力的方法和經驗。在實際教學中取得了良好的教學效果。
關鍵詞:計算思維;程序設計;教學方法
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2017)17-0132-02
一、前言
2006年3月美國卡內基梅隆大學的周以真教授首次提出了計算思維的概念:“計算思維是運用計算機科學的基礎概念進行問題求解、系統設計以及人類行為理解的涵蓋計算機科學學科的一系列思維活動。”計算思維的本質是抽象與自動化。抽象是通過簡化、轉換、遞歸等方法將復雜的問題簡化為計算設備可以處理的計算模型再進行求解的過程。自動化是運用計算機的運算能力來求解問題。當今人類社會的信息化程度日益加深,計算思維作為解決科學、工程、管理問題的重要思維工具,必將成為合格人才的基本思維能力。高等學校在計算機專業人才的培養過程中,應當將培養學生的計算思維能力置于重要位置,將其有效地融入計算機本科培養方案的各個環節之中。我校計算機專業大一新生就開設以C語言為編程工具的《程序設計基礎》課程。對于這門課,如何改革已有的教學方法以加強學生計算思維能力的培養,我們進行了一些探索。計算思維教育的主要目標就是培養學生解決問題的良好思維習慣,在遇到實際問題時能夠想到利用計算機學科的方法和技術來求解問題。計算思維教育不是傳授枯燥的概念與相互孤立的知識點,而要注重培養學生解決問題的思維習慣、方法和能力。這門課程采用傳統的教學方法時通常先講授理論知識,然后上機實踐鞏固課堂上所學的知識點。但由于高中階段大部分學生沒有系統接觸過程序設計課程,缺乏必要的基礎知識,隨著課程的進展,大量抽象概念的出現,會導致學生的學習積極性下降,而且這種重理論輕實踐的講學內容方法會限制學生的動手能力,學生在面對實際問題時依舊束手無策。針對這個問題我們重點改革了實踐環節的教學,從培養學生的編程能力角度出發,針對學生的抽象思維、代碼編寫、程序調試等能力進行訓練,并且要注重理論聯系實際,讓學生在解決實際問題中體驗到學習的樂趣。
二、教學目標
程序設計基礎是計算機專業本科教學中的一門重要基礎課程,是計算思維中語言級的問題求解。我校在教學目標上,從深層次對程序設計進行抽象與總結,將計算思維的要素貫穿于整個教學活動。通過計算思維這樣一種思維模式,在課程教學中“顯式”地強調與強化這種思維模式,一方面提高學生解決問題、分析問題的能力;另一方面通過發揮其紐帶作用,使整個教學活動具有核心的“凝聚力”。程序設計教學中以計算思維能力培養為核心任務,以講授程序設計方法為主要內容,加強上機實踐,提高學生的綜合素質。
三、教學內容
在教學內容上,將程序設計的基本理論與計算思維思想最大限度地匯聚于本課程,重點闡述程序設計的基本方法和基礎理論。計算思維的兩個核心要素“自動化”與“抽象”貫穿于程序設計課程的相關知識點中,是聯系課程不同環節的核心紐帶,在教學中潛移默化地灌輸與培養這種思想與思維模式,對學生思維能力培養具有重要意義。建立了向馮諾依曼計算機結構落地、向計算思維層次撥高的教學內容組織思路。根據馮諾依曼計算機結構將教材(C程序設計—譚浩強)章節順序微調形成程序設計知識點向計算機結構三大部件CPU(運算器+控制器)、存儲器、I/O(輸入輸出設備)的映射:計算思維導論(第一章C語言概述、第二章算法、第三章最簡單的C程序設計);CPU(第四章選擇結構程序設計、第五章循環結構程序設計、第七章用函數實現模塊化程序);存儲器(第六章利用數組處理批量數據、第八章善于利用指針、第九章用戶建立數據類型);I/O(第十章對文件的輸出輸入)。
四、教學細節
1.課堂授課。我們改變以往單純以課堂講授為主要活動的教學模式,將教學環節細化為集體備課、課堂講授、討論、輔導答疑、作業和考核六個主要環節,通過將六個環節做深、做細狠抓教學質量。課堂的主角是學生,激發學生的學習興趣,才能保障教學順利高效完成。在課堂環節中提倡互動式授課,鼓勵學生提問,引導學生動腦思考,培養學生的自學和創新能力。程序設計授課不能紙上談兵,要注重實踐。課堂內所有講解知識點都有具體的編程實例相匹配。每一個實例都會現場編譯運行,容易出錯的實例會有目的地修改后再運行,讓學生在實踐中理解和掌握相關知識點。在講課過程中會故意給出典型錯誤的案例,例如:在講到變量時設計變量未賦值即使用的錯誤;講到數組時設置數組元素溢出的錯誤,然后由學生來調試解決這些編程錯誤,大大提高了教學質量。原教材各知識點的案例之間相互獨立,沒有前后承接關系,不利于學生對知識點的全面掌握。通過改造和引入新的案例內容形成連續性強的案例,隨著章節知識點的推進,學生可以不斷加深對程序設計的認識。例如從第三章的溫度轉換案例展開,不斷在隨后章節中加以擴展:第三章中,分別用常量方式、符號常量方式、常變量方式實現溫度轉換;第四章中,用選擇語句實現溫度表示方法的切換;第五章中,用循環實現輸入合法性檢查;第七章中,用函數改造已有的程序;第六章中,用數組實現批量數據的溫度轉換;第八章中,用指針改造已有的程序;第十章中,用文件增加數據存儲的功能。通過這種漸近方式,使學生掌握知識點間的關系及理論向實踐的轉化過程。
2.上機實驗。作為大學期間第一門程序設計課程,在實際教學過程中必須將理論教學與實驗教學緊密結合,相互促進。實驗教學內容采用循序漸進方法,分為驗證型實驗、設計型實驗和綜合型實驗。驗證型實驗目的是掌握C語言的基礎知識,是計算思維方法的簡單模仿,要求學生參考教師給出的實例完成實驗內容。設計型實驗目的是掌握C語言的中高級知識,是計算思維方法的初步運用,要求學生運用計算思維方法分析和解決簡單問題。綜合型實驗目的是培養學生的計算思維和應用創新能力,是計算思維方法的高級運用,要求學生綜合運用計算思維算思維方法分析和解決實際問題。實驗的具體安排為:驗證型實驗(C上機環境、表達式與基本的輸入輸出、選擇結構、循環結構)、設計型實驗(函數定義與調用、遞歸函數、數組、指針、文件)和綜合型實驗(綜合型程序設計題目)。為了更進一步地培養學生解決問題的能力,我們會結合學習進度給出一組綜合型程序設計題目。這些題目都是以生活中某個具體問題為基礎,其解決需要學生綜合運用學習到的知識。為盡可能模擬真實開發環境,我們通常要求2—3名學生協同完成。在評定成績時,我們要求每組選出一個代表講解和演示程序,由老師和其他學生代表一起打分形成最終成績。綜合型程序設計既能讓學生綜合運用所學知識,還可以讓學生身臨其境解決問題提高自信心,提升學生學習熱情和積極性,培養學生的計算思維和團體協作能力。
五、總結與展望
目前將計算思維融會貫通于計算機專業教育的各個環節之中已經成為大勢所趨。通過這幾年的實踐證明,以培養計算思維能力為核心展開教學改革,不僅有助于學生深刻掌握課程內容,而且能夠培養學生用計算機學科的思維方式來求解問題的能力,取得了良好的教學效果。
參考文獻:
[1]Jeannette M.Wing.Computational Thinking[J].Communications of ACM,2010,49(3):33-35.
[2]教育部高等學校計算機基礎課程教學指導委員會.高等學校計算機基礎教學發展戰略研究報告暨計算機基礎課程教學基本要求[M].北京:高等教育出版社,2009.
[3]譚浩強.C程序設計[M].第4版.北京:清華大學出版社,2010.
[4]陳國良,董榮勝.計算思維與大學計算機基礎教育[J].中國大學教學,2011,(1):7-11,32.