潘艷
【摘 要】隨著人工智能等計算機技術的應用和普及,擁有計算思維和編程實踐能力成為智能化時代的入場券,這對C語言程序設計課程的教學提出了挑戰。本文從課程中引入計算思維的必要性入手,重點從教學理念、教學內容、教學方法和實踐考核方式幾個方面進行改革,以到計算思維培養的課程目標。
【關鍵詞】計算思維;C語言程序設計;教學
一、引言
《國家教育事業發展“十三五”規劃》中指出“在提高教育質量方面,著力提升學生思想道德水平、社會責任感和法治意識,培養創新創業精神與能力,強化實踐動手能力。”對于計算機各相關專業開設的第一門專業課程C語言程序設計來說,培養學生的計算思維和編程的實踐能力是課程建設的方向和目標。
二、計算思維的引入
隨著人工智能等計算機技術的飛速發展與廣泛應用,計算機技術的應用場合也不在局限于計算機學科,眾多的科學領域被冠以“計算”之名,如計算物理學、計算生物學、計算化學等。因此,擁有利用計算機這一工具,解決實際問題的計算思維能力,成為目前智能化時代的入場券。
計算思維是美國卡內基·梅隆大學計算機科學系主任周以真教授在2006年美國計算機權威期刊《Communications of the ACM》提出的。她認為:計算思維是運用計算機科學的基礎概念進行問題求解、系統設計、以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動。計算思維不僅是計算機學科的思維方式,是每個人都要掌握的一種解決實際問題的技能。
目前,計算機專業培養的學生普遍存在著思維固化、缺乏計算思維等問題,這是導致其創新能力薄弱的重要原因,這就對計算機課程教學提出了嚴峻的挑戰。C語言作為接近計算機硬件的一種語言,普遍被用于計算機各相關專業開設的入門課程,是理解計算機世界的有效途徑。因此,C語言程序設計課程有著不可替代的重要意義。
一直以來,很多院校仍將C語言程序設計課程定位在知識傳授上,C語言教學都是圍繞語法知識這個主線展開,雖然這種教學模式可以循序漸進地把C語言的結構化程序設計思想和知識傳授給學生,但是很難培養計算思維和創新能力。因此,在C語言程序設計課程的教學中,轉變為以計算思維培養為核心的課程改革勢在必行。
三、基于計算思維的C語言程序設計課程的教學改革
(一)更新教學理念
在C語言程序設計課程教學改革中,首要轉變的是教學理念,必須從傳統重分數的應試教育轉變為重能力的素質教育,從傳統的傳授知識為核心轉變為以培養計算思維和創新能力為核心,從傳統的教師為中心,轉變為學生為中心,尤其是網絡教育資源共享化的今天,必須從傳統的課堂教學為主轉變為學生自主學習主。要讓學生在學習過程中不斷構建自己的知識體系,養成主動的、不斷探索的、自我更新、學以致用和優化知識的終身學習習慣。因此,在課程教學內容、教學過程的各個環節的設計上以及教學方法的使用上,要遵從學生為主體,教師為主導,以學生感興趣的實際應用問題為出發點,吸引其主動參與到教學活動,采用以問題為導向的教學方法為主,逐步引導學生自主探究解決問題的所需要的知識和方法,從而形成分析問題、解決問題的計算思維能力。
(二)重構教學內容
傳統的以C語言的知識為主線的教學內容組織方式重視語法知識的完整表達,側重語法帶動程序設計過程的理解,其一般順序為概述、基本語法規則、程序控制結構、數組、函數、結構體和文件,這種形式,這使得語法的學習比較單調枯燥。尤其是基本語法規則的教學,實際應用性不強,容易讓學生產生厭學情緒,這也是很多學生學不好C語言的重要原因。基于計算思維的教學內容組織方式側重結構和思想的深入理解帶動基本語法的理解,其一般順序為概述、簡單程序、程序控制結構、數組引入、函數思想、結構體和鏈表的應用和文件的應用。重構后的教學內容將基本語法規則滲透到了各個知識點的教學過程中,并在教學過程中往往以有趣的或者實際問題為切入點,激發學生學習興趣,課堂上以問題求解為核心,引導學生主動探索問題的解決思路,最后幫助學生運用新知識實現此問題。例如:在分支結構的教學內容的組織上,設計基于交通測速儀實現超速記分系統的實際用提出問題,讓學生探索解決問題的思路和方法,介紹分支結構的不同實現語句,同時嵌入了比較、關系運算符和條件運算符的使用,讓學生在解決實際應用過程中掌握知識、應用知識,最后引導學生實現此超速記分系統,從而達到計算思維和實踐能力培養的目標。
(三)更新教學方法
傳統的C語言程序設計課程采用將知識和結論直接傳授給學生的講授式為主的教學方法,學生對知識的掌握是被動的行為,是一種間接的體驗,容易形成思維定式,限制了學生的想象力和創造能力,不適合學生的個性化學習需求。隨著大規模的大型開放式網絡課程(MOOC)資源的開放和共享,基于問題導向的學習(PBL)的教學方法尤為適合當前的情形,PBL以解決問題為中心,以學生的主動學習為主,強調教師的引導作用,把學習設置到復雜的、有意義的真實問題情景中,充分調用了學習的積極性和主動性,通過多種學習途徑,學生自主探究和合作來解決問題,從而學習隱含在問題背后的科學知識,形成解決問題的技能和自主學習的能力,從而達到對計算思維、溝通合作能力的培養目標。
(四)完善考核方式
C語言程序課程是一門實踐性很強的課程,以往的教學過程中教師授課偏重語法,考核形式也以語法和語義的理解以及簡單程序設計進行考核,一般采用閉卷筆試的形式為主,上機實踐考核為輔。這種考核方式使得學生重語法輕實踐,不能很好的檢驗學生的計算思維和實踐動手編程能力。因此,改變原有的考核方式具有積極的引導作用。采用類ACM競賽類型題或者基于某一需要解決的實際問題進行上機實踐考核與解決具體實際問題的實踐項目開放式實踐考核的形式更適合C語言程序設計課程。
四、結語
隨著人工智能技術的飛速發展與廣泛應用,擁有計算思維和編程實踐能力成為智能化時代的入場券,C語言程序設計課程作為第一門入門語言,自然肩負著從現實世界過渡到計算機世界,理解計算機世界的處理問題的思維方式——計算思維的重任。加之互聯網上大量的優質MOOC資源的開放和共享,促使我們不得不對現有的C語言程序設計的教學進行改革。因此,必須將計算思維貫穿到C語言程序設計的教學中來,更新以學生為主體,教師為主導的教學理念,以注重實踐為導向,對C語言教學內容進行全方位的重構,通過多中教學方式和方法的使用,充分調用學生學習的積極性和主動性,從而提高教學質量,以達到課程培養具有計算思維和實踐編程能力的培養目標。
【參考文獻】
[1] J.M. Wing. Computational Thinking[J]. Communications of the ACM, 2006, 49(3): 33-35.
[2] Barrows H S . Problem‐based learning in medicine and beyond: A brief overview[J]. New Directions for Teaching & Learning, 2010, 1996(68):3-12.
[3]蘇小紅, 車萬翔, 王甜甜, et al. 如何在程序設計課程中培養計算思維能力[J]. 工業和信息化教育, 2013(6):32-36.