李 倩
(1.成都大學信息科學與技術學院 四川 610106;2.成都大學模式識別與智能信息處理四川省高校重點實驗室 四川 610106)
C語言程序設計課程是很多高校針對非計算機專業開設的計算機公共基礎課程,也是計算機專業及相關專業的專業基礎課。在該門課程的教學中一直存在一些問題:學生普遍反映課程內容枯燥、語法難懂、算法難以理解,沒有學習興趣;課程教學模式也不能滿足當今社會對于創新型人才培養的需求。教師們不斷探索課程改革方案,將任務驅動教學法、案例教學法或項目教學法等多種教學模式引入到課程教學中來,取得了一定成效。近年來,隨著“計算思維”概念的提出,各大高校相繼把“計算思維”引入到計算機類課程教學中,圍繞計算思維能力的培養開展課程教學。那么,究竟什么是“計算思維”?它和C語言程序設計課程有何關系?如何在 C語言程序設計課程中培養計算思維能力?以下針對這些問題談一下筆者的認識和看法。
2006年3月,美國卡內基·梅隆大學計算機科學系主任周以真(Jeannette M. Wing)教授在美國計算機權威期刊《Communications of the ACM》上給出并定義了“計算思維”(Computational Thinking)。計算思維的定義是:運用計算機科學的基礎概念進行問題求解、系統設計、以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動【1】。
程序設計課程是培養計算思維的重點課程。C語言程序設計課程的教學目標是通過理論和實踐教學,使學生較好地掌握C語言的語法知識,掌握常用算法,具備初步的算法設計能力,并能利用C語言集成開發環境編寫、編譯與調試C語言程序,解決一般編程問題。通過學習和應用計算機,進行算法設計并編程實現問題求解,改變了人們舊的思維方式和工作方式,培養了現代的科學思維方式和工作方式,即計算機提供了一種獨特的處理問題的思維方式【2】。實際上,一直以來,在C語言程序設計課程的教學過程中,在培養學生應用計算機編程解決問題的過程中就無意識、潛移默化地培養著計算思維。
實踐是檢驗真理的唯一標準。很多高校對以“計算思維”為導向的課程改革進行了廣泛而深入的探討并積極付諸實踐。以下圍繞計算思維能力的培養,重新審視課程教學的各個方面,從教學觀念、教學內容、教學方法、實驗教學及考核內容等方面對課程改革思路作了一些探討。
為了在課程中引入計算思維能力的培養,首先任課教師要轉變傳統的教學觀念,要與時俱進,并充分理解計算思維的含義和原理,統一思想。在課程中要有意識地培養學生的計算思維,其實也是為了讓學生能夠更好地利用計算機來解決實際問題。
C語言程序設計課程主要包括以下教學內容:C語言集成開發環境、C語言基本語法、控制結構、數組、函數、編譯預處理、指針、結構體和共用體、文件、位運算等。為了將計算思維能力的培養有意識地引入到這些內容的教學中,首先要對課程教學內容重新梳理,對能體現計算思維的內容重新改造編排,明確體現出對計算思維的引導。同時,編寫滿足教學需要的配套教材,在教材內容的安排和組織上體現出對計算思維能力的培養。在常用算法的教學內容上不要平鋪直敘,要體現出對計算思維的引導,突出算法設計的多樣性。
21世紀需要創新型人才,不僅要掌握分析問題和解決問題的方法,更要有主動提出問題的能力。將計算思維引入到教學過程中,使學生熟悉計算機工作的原理,并能利用C語言編程來實現問題求解。具體做法是:在體現計算思維的知識點的教學過程中,有意識地引導學生運用計算思維來分析問題和解決問題;除此之外,還要留給學生思考的空間,激活學生的創新思維,讓學生主動提出問題,并積極探索問題的求解思路。
C語言程序設計是一門實踐性很強的課程,實驗教學環節尤為重要。首先要確保實驗教學課時。其次,要圍繞計算思維能力的培養來設計實驗項目。具體做法是:合理設置驗證性、設計性和綜合性實驗的比例;實驗內容要具有一定的趣味性或實用性,從而激發學生學習的興趣,最好能與專業結合,體現對實際問題的求解;在實驗項目的各欄目內容安排上體現出對計算思維的引導,給學生一個創新的空間,培養學生主動發現問題、正確分析問題并有效解決問題,在此過程中提高學生的計算思維能力。此外,在實驗教學過程中,授課教師還要注意引導、啟發學生積極思考。
一直以來,C語言程序設計課程的考核內容主要是針對C語言語法知識的掌握、常用算法的識記和應用、初步的程序設計開發能力等方面來設置的,并沒有有意識地針對計算思維的運用來設置考核內容。注重計算思維能力培養的C語言程序設計課程應在考核內容設置上更多更明確地體現出對學生運用計算思維求解問題的能力的考核。例如,考核常用算法的識記和應用時,應側重對最初算法的改進或擴展用于實際問題求解的考核。
對于計算思維能力的培養不是一朝一夕就能完成的,也不是哪一門課程就能完全實現的,這需要進行長期的探索和實踐。
[1] Wing J M. Computational Thinking[J]. Communications of the ACM,2006,49(3):33-35.
[2]譚浩強. 研究計算思維,堅持面向應用[J]. 計算機教育,2012(21):45-49+56.