鎮(zhèn)江船艇學院信息技術教研室 杜曉靜 何秋燕 楊 珍
以計算思維為導向的程序設計基礎教育探索
鎮(zhèn)江船艇學院信息技術教研室 杜曉靜 何秋燕 楊 珍
本文簡要介紹了計算思維的概念和特征,從程序設計理論和實踐教學入手, 探討對學生計算思維能力的培養(yǎng)。
教學;程序設計;計算思維
2010年“第六屆大學計算機課程報告論壇”中,陳國良院士指出,計算思維能力是大學計算機基礎課程教育過程中一個重要的培養(yǎng)目標。人類科學發(fā)展的三大支柱是理論科學、實驗科學和計算科學,與之相對應的是人們認識世界、改造世界的三種思維方式,即理論思維、實驗思維和計算思維[1]。
程序設計基礎課程是高校非計算機專業(yè)必修的公共課,教學目標是培訓學員的基本編程能力、邏輯思維能力和抽象思維能力。當前程序設計基礎的教學中存在如下兩個主要問題:第一,學員的計算機理論知識儲備不夠,沒有成體系的專業(yè)知識結構,因此,學員對計算機的“思維方式”與傳統(tǒng)解題方式的區(qū)別難以理解,接受較慢。第二,在實踐中出現“重結果、輕過程”,“重編碼,輕算法”的現象。學員往往把學習重心放到基礎語法的學習上,全神貫注于看到程序“運行結果”,不注重從宏觀的角度總結問題,也不注重求解的構建過程,忽略了思維方式的鍛煉。因此,在教學中的首要問題應該是培養(yǎng)學員的程序設計和計算思維能力。
目前國際上廣泛認同的計算思維定義來自美國卡內基·梅隆大學的周以真(J.M.Wing)教授,周教授于2006年提出:計算思維是運用計算機科學的基礎概念進行問題求解、系統(tǒng)設計和人類行為理解,它是涵蓋計算機科學之廣度的一系列思維活動[2]。計算思維的本質是抽象(abstraction)和自動化(automation)[3]。抽象是通過簡化、轉換、遞歸、嵌入等方法,將一個復雜問題轉換成許多簡單的子問題并進行求解的過程,這是所有科學發(fā)現的必然過程;自動化是充分利用計算機運算能力來實現問題求解,以彌補人的計算缺陷,這將豐富計算機的應用范圍。因此計算思維是一種形式規(guī)整、問題求解和人機共存的思維。
需要指出的是:計算思維不是俠義的計算,而是運用計算機基本概念去求解問題、設計系統(tǒng)和理解人類的行為[2]。
思維方法比知識本身更重要,作為從事計算機基礎教學的一線教師,應該在日常教學中潛移默化地訓練和培養(yǎng)學員的計算思維能力,提高他們的計算思維素養(yǎng),從而進一步培養(yǎng)和鍛煉學員的創(chuàng)新能力。
教師對學員進行直接教學指導產生應該保證基于計算思維,然后再運用其它教學手段和方法來輔助和引導學員進行知識點的構建和學習問題的思考與解決。通過計算思維的一系列方法——遞歸,關注點分析,抽象和分解,保護、冗余、容錯、糾錯和恢復,利用啟發(fā)式推理來尋求解答,在不確定情況下的規(guī)劃、學習和調度等,達到引出問題,深入探究、找尋答案,討論交流、得出結論,反思自評、內化知識的目的。當學員掌握了知識點的同時也掌握計算思維方法之后,再通過已獲得的知識和方法自主建構學習的知識和學習的框架,相互間交流協作,同時運用計算思維方法達到遷移拓展科學知識的目的。在這整個學習過程中,所有的學習過程都通過一系列基于計算思維的學習方法展開。
程序設計基礎課程是理論與實踐并重的課程,在實際教學過程中兩部分的教學都必須以面向計算機思維為導向,否則該課程的教育就是不完善不成功的。
將計算思維與程序設計課程教學的結合主要體現在兩個方面:首先要保證在整個教學過程中要貫穿抽象和自動化這兩個核心思想,其次要根據講授的具體知識點恰當地引入計算思維中所有的其他基本概念和思維方法。
傳統(tǒng)教學一般是先講解本次課所學語法的基本結構,接著講解具體的例子,最后總結、布置作業(yè)的過程。從計算思維的角度出發(fā),教學內容采用“問題導入語法、語法引入應用、應用面向實踐”的方式,突出知識點與技術點的關聯性,注重內容在應用上的層次性。
以循環(huán)結構為例,該結構要求程序根據對某個特定條件的判斷來決定是否重復多次進行某一特定的相同操作。教學可分以下幾步進行:
①初始時結合學員日常生活舉例:列隊報數,沒有報到隊尾時每名學員要在前一名學員數字上加1后大聲報出,使整個教學顯得過渡自然,給同學們展示了現在所學的知識已經實實在在存在于我們的日常生活中,不僅可以拉近與他們的距離,更重要是讓他們覺得所講授的內容比較簡單,為后續(xù)教學活動的開展埋下了伏筆。
②采用抽象的方法,提煉出循環(huán)結構的基本結構,然后再引入學員中學就已熟悉的等比數列;接著把等比數列前n項求和的算術問題轉換成對應的循環(huán)結構,這樣不露聲色把數學的思想灌輸給學員。
③在學員已經基本掌握的基礎上,再增加一次實踐的機會,給出現實生活中一個例子:如求班級平均分問題;鼓勵學員積極思考,同時引入計算思維的約簡、嵌入、轉化等方法,把復雜的問題轉分解易于解決的問題并加以實現。
④再進一步拓展,從問題入手,例如:九九乘法口訣表,引入多層循環(huán)嵌套結構,著重分析基本結構與多層循環(huán)嵌套結構的異同和適用的范圍,使整個知識點鏈自然形成。
在整個教學過程中,運用問題誘發(fā)學員使用抽象的思想和方法,學習用抽象方法去表達自己的想法并建模,能夠透過現象看本質,通過持續(xù)的訓練達到完全掌握抽象這個工具。
計算思維目前是程序設計類課程教學關注的熱點。最終目的是提高學生的程序設計能力和分析解決問題的能力。因此,我們要充分認識到計算思維的重要性。在教學的實施過程中要突出運用計算機知識解決問題的思想,培養(yǎng)并訓練學生運用計算思維去思考并解決問題。
[1]陳國良.計算思維與大學計算機基礎教育[R].濟南:第六屆大學計算機課程報告論壇,2010.
[2]Jeannette M W.Computational Thinking[J].Communications of ACM,2006,49(3):33-35.
[3]董榮勝,古天龍.計算思維與計算機方法論[J].計算機科學,2009(1):1-4.
[4]賈茹,郝長勝,裴衣非.VB程序設計課程的計算思維教學實踐[J].電腦知識與技術,2011(25):6266-6268.
[5]吳紹兵.計算思維和程序設計能力的培養(yǎng)[J].計算機教育,2011(16):11-4.
[6]周顯春,劉東山.基于計算思維能力培養(yǎng)的程序設計課程教學研究[J].電腦知識與技術,2012(35):8475-8477.
杜曉靜(1975—),女,鎮(zhèn)江船艇學院講師,研究方向:網絡安全。
何秋燕(1981—),女,鎮(zhèn)江船艇學院講師,研究方向:網絡安全。
楊珍(1977—),女,鎮(zhèn)江船艇學院講師,研究方向:分布式數據庫。