趙丹楓

摘 要: C語言程序設計的教學目標是使學生利用C語言結合算法解決簡單的實際問題。要實現該目標不僅要熟練掌握C語言本身的基本語法和結構,還要具備設計合理算法的思維能力。然而,當前各高校課程教學往往忽略思維能力的培養。本文提出通過實際應用案例將計算思維與程序設計語言有機結合的方法,在教學過程中利用實際案例激發學生的興趣,將計算思維貫穿于程序設計語言的學習過程中,提高學生的主動性,以數組為例介紹該方法的實際應用,通過實際對比數據證明該方法具有較好的教學效果。
關鍵詞: 計算思維 程序設計 案例
1.計算思維的概念
計算思維是運用計算機科學的基礎概念求解問題、設計系統和理解人類行為的一系列思維活動。計算思維的本質就是抽象(Abstraction)與自動化(Automation)[1]。
計算思維包括“0和1”思維、“程序”思維、“遞歸”思維、“算法”思維和“系統”思維。0和1是實現任何計算的基礎,是最基本的抽象與自動化機制;程序是基本動作(指令)的各種組合,是控制計算系統的基本手段;遞歸是最典型的構造程序的手段;算法是計算的靈魂,在有限的時間空間內,設計盡可能快速的算法,要考慮可計算性與計算復雜性;系統化復雜為簡單,強調結構性、可靠性、安全性等[2]。
沒有思維的程序設計語言教學是無意義的;沒有落腳點的計算思維永遠只是浮于紙面的理論,因此將二者結合在一起進行教學實踐,并實際案例推動理論知識的學習,對學生的學習具有十分重要的意義[3,4]。
2.利用案例融合計算思維與C語言教學
從計算思維的角度可以將C語言的教學分成幾個大模塊:
(1)算法。算法是程序設計的靈魂,遇到問題時要按下面的過程才能將人類的基本解決辦法最終轉換為計算機能夠執行的指令:基本想法—算法—程序—指令。其中算法是連接基本想法和計算機語言的重要橋梁。
(2)時間。C語言程序設計的三大基本結構:順序結構、選擇結構、循環結構,以及C語言模塊化程序設計的基本實現單位-函數,這四部分內容的靈活應用是提高程序執行效率的基礎。
(3)空間。基本數據類型、數組、指針、結構體、鏈表、共用體等內容的學習,使得學生掌握如何靈活有效地利用計算機存儲單元。
在這些模塊的學習過程中,植入一些學生喜聞樂見的案例,將這些案例貫穿始終,能有效地激發學生的興趣,吸引學生自主地體驗程序,感受利用計算思維和程序解決問題的過程,使學生更仔細認真地學習理論知識,同時也愿意進行更多的實踐與探索,這種引導是這門課程的重點。經過反復摸索實踐,學生感興趣并能夠貫穿始終的幾個案例包括:π的求解、費伯納西數列的計算、成績最值及排序問題等。
3.“利用數組解決排序問題”—以數組為例解析教學設計
數組在C語言中的重要性在于空間存儲特點,便于計算節省時間。因此,可構建如下教學設計。
(1)問題的引入。向學生拋出一個應用排序的常見場合。我們在外出時常常利用大眾點評、口碑網、yelp等尋找美食等,這些應用可以按照我們的要求以“距離”等指數進行排序。我們使用這種服務的時候,是否想過這類網站是如何實現這種排序的呢?這是現在學生都非常熟悉的內容,能夠馬上引起共鳴和好奇感。
(2)思維的培養。對于該問題,學生用已有知識會想到定義很多的變量進行存儲,再不斷地比較大小實現排序,然而,數據量非常大的時候,問題很難解決。因此,帶領學生思考需要怎樣的數據類型能快速解決該問題,引出數組的概念。
(3)演示及分析。動態演示程序執行過程并強調相關理論知識,如數組元素的存儲、數組元素的遍歷與循環的關系等,如圖1所示。理論和實踐相結合,分析用數組解決這個問題的優點:①節約空間,由于數組中元素的存儲是順序并連續的,避免多個普通變量存儲的隨機性造成空間利用上的浪費;②節約時間,元素的順序可標識性化簡了對大量數據的計算復雜度。因此數組的應用是計算思維的體現,尤其反映了其中的算法思維和系統思維。
4.方法驗證
根據筆者的實際教學過程,2013年采用傳統的教學模式,單純講解程序設計語言,2014年在部分章節如計算思維的引入、循環、數組等嘗試應用該方法,2015年全面應用,按照三年的學生成績,得到各個知識點的教學達成度,總分為5。結果表明,學生對計算思維的認識與運用得到了極大的強化,也帶動了各知識點的成績大幅度提升,因此該方法取得了良好的教學效果。
5.結語
本文提出了通過實際應用案例將計算思維與程序設計語言相結合的教學方法,實際案例的引入可以激發學生的熱情,計算思維與C語言教學融合在一起,讓學生認識到解決實際問題離不開編程語言中語法、句法的細節學習,也離不開計算思維的運用。該方法極大地提高了課堂教學效率,使學生更主動地進行程序實踐與探索,也提升學生對理論知識的掌握程度,不僅學會知識點,更學會靈活運用知識的思維方式。
參考文獻:
[1]劉向永,周以真,王榮良,李冬梅.計算思維改變信息技術課程[J].中國信息技術教育,2013,06:5-11.
[2]李廉.計算思維—概念與挑戰[J].中國大學教學,2012(01):7-12.
[3]楊杏芳.新的知識觀課程觀與大學教育教學改革[J].貴州師范大學學報:社會科學版,2005,5(1):17-111.
[4]游子毅.非計算機專業“C語言”教改方案的探討與實踐.科技創新導報,2015,NO.10:106-107.