曾瑩
【摘 要】培養大學生的計算思維能力是C語言程序設計課程的重要任務。通過對當前課程教學中存在的問題進行分析,闡明了面向計算思維的教學理念,提出了基于計算思維的案例教學法,并詳細介紹了該教學方法的教學實踐過程。實踐表明,基于計算思維的案例教學有助于挖掘算法的思想內涵,從而使學生對知識的理解更加深入,同時有利于培養學生的計算思維能力,并提高其分析問題和解決問題的能力。
【關鍵詞】計算思維;C語言程序設計;案例教學法;教學理念
計算思維是運用計算機科學的基礎概念去求解問題、設計系統和理解人類的行為[1]。與傳統的數學思維不同,計算思維不關注邏輯推理、演算的精準程度,而是注重問題分析和解決的實踐過程。作為我國高校非計算機專業必修的計算機基礎課程之一,C語言程序設計課程的教學目標就是培養學生運用計算機的思維和方法進行問題求解,這需要通過強化計算思維訓練來實現。
1 課程教學現狀分析
多年來,我國高校的計算機基礎教育一直奉行“實用主義”,強調計算機應用技能的訓練,而忽視對學生的思維力及創造力的培養。受這種教學理念的影響,非計算機專業的學生們普遍對程序設計類課程不重視,片面的認為程序設計與專業學習沒有關聯,不是必備的基本技能,因此學習缺乏主動性。同時,C語言本身語法結構比較復雜,對邏輯思維能力要求較高,而傳統的C語言課程教學手段、形式比較單一,大部分時間是老師一個人在臺上講,學生只能被動接受,課堂枯燥乏味,教學內容則偏重于基本概念和語法規則,與專業學習聯系不緊密,因此,對于初學者來說,學習和理解起來比較困難,容易產生畏難情緒,有甚者干脆放棄學習。
2 樹立以計算思維為導向的教學理念
計算思維能力是大學計算機基礎課程教育工程中一個重要的培養目標[2]。近些年來,隨著計算機技術的飛速發展,大學生的計算機應用能力普遍提高,因此在計算機基礎教學過程中,應打破“計算機工具論”的局限,加強訓練學生的實踐能力和創新能力,教學重心應由原來的知識和技能培養逐漸轉變為計算思維能力培養,這意味著程序設計類課程在計算機基礎教育課程體系中的地位要顯著提升,這樣學生才能真正認識到該類課程的重要性。另外,在第一節理論課時,教師要讓學生明確學習程序設計的目的,讓他們認識到課程的學習不僅為掌握編程語言,更重要的是培養令之終身受益的計算思維能力。所謂“磨刀不誤砍柴工”,學生只有在課程學習之初明確學習目的,端正學習態度,才能更加積極主動進行后續學習,才能自發的加強對自身計算思維的培養。
3 融入計算思維的案例教學法
所謂案例教學法是指利用已經發生或將來可能發生的問題作為個案形式讓學習者去分析和研究,并提出各種解決問題的方案,從而提高其解決實際問題能力的一種教學方法[3]。傳統的C語言程序設計教學方法是以教師講授為中心,只告訴學生怎么去做,而且其教學內容在實踐中可能不實用,且非常乏味無趣,學生的主觀能動性及創新性難以得到發揮。面向計算思維的案例教學法以培養學生計算思維能力為目標,通過精心設計包含知識點的案例,為學生創建問題情境,引導學生對案例進行分析和討論,在解決問題的實踐中增強對算法的理解,掌握相關的理論知識;在教學過程中,沒人會告訴你應該怎么辦,而是要自己去思考、去體會知識中所蘊含的方法之巧妙,使得學習由枯燥乏味變得生動活潑,也培養了學生主動思考和積極探索的習慣。 4 基于計算思維的案例教學實踐
4.1 案例設計
大多數C語言教材都是按知識的邏輯結構體系進行編排的。一開始介紹數據類型、表達式等比較抽象的概念,這樣不僅有悖于學生的認知規律,而且容易挫傷學生學習編程的積極性。因此,在第一堂C語言理論課時,可以針對學生的興趣點,演示一些諸如貪吃蛇、打地磚等C語言開發的小游戲,為學生開設輕松愉悅的學習情境,讓他們充分感受到C語言程序設計的魅力,認識到C語言的實用性。
案例質量的好壞直接影響到課堂教學的效果,因此,在教學過程中,教師應根據特定的教學內容謹慎選擇教學案例。通常,設計的教學案例應具備以下特點:
(1)相關性。案例是為教學目標服務的[4],因此所選案例首先要注意緊扣教學內容,能夠合理地反映所對應的理論知識點,這樣,通過后續的案例分析來使學生加深對所學理論知識的理解并能運用到實踐中。
(2)針對性。案例不求多而求精,每個知識點或者相關聯的多個知識點選用一個具有代表性的案例即可。
(3)可拓展性。選用的案例既要涵蓋當前要學的知識點,也可以涉及到后續的學習內容,具有舉一反三、觸類旁通的作用。后續知識雖然還沒有學習,但教師可先做簡單介紹以埋下伏筆,讓學生先嘗試自學,然后帶著問題進入新的知識。
(4)趣味性。教師們在設計案例時,應針對當代大學生的特點,盡量選擇貼近生活且具有一定趣味性的案例,以激發學生的學習熱情。
4.2 課堂實施
課堂實施是基于計算思維的案例教學法的關鍵。例如,在講一維數組時,本文設計案例:求20名學生某門課程成績的平均分,并統計高于平均分的人數。
案例分析:首先定義變量分別存儲20名學生的成績及平均分,那么要定義多少個變量呢?按照前面學過的知識,至少定義21個變量,這樣程序中涉及的變量是不是太繁多了?如果學生人數增至200名,難道要定義200個變量保存其成績嗎?顯然這種方法不可行,進而教師引出新的知識點——數組。通過這一系列的提問,學生很容易理解數組在程序設計中的意義。接下來詳細介紹數組的基本概念及一維數組的定義方法,啟發學生如何運用一維數組編寫算法。
編程實現:得到了問題的求解思路之后,接下來就要鼓勵學生使用C語言編寫程序,并進行調試運行。由于本案例還涉及之前學過的選擇、循環結構等知識,所以在案例實現過程中,教師可根據學生對這些知識點的掌握程度,適當的進行復習鞏固。
總結與拓展:舉一反三,提出類似的問題,鼓勵學生獨立思考,應用一維數組編程實現。對案例進一步拓展:如果每名學生有三門課程,如何統計呢?從而引出新的知識點——多維數組。
5 結束語
C語言課程中處處蘊含著計算思維,筆者在教學過程中運用了融合計算思維的案例教學法,引導學生自主探索,積極拓展思路解決問題,大大提高學生的計算思維能力和創新能力。通過對課程的學習,學生不僅掌握了C語言編程技巧,更重要的是從中領悟到“何謂計算思維,怎樣運用計算思維解決實際問題”,并能在實踐中自主構建自己的計算思維,從而為將來的學習、工作和研究具備創新思維和創新能力奠定基礎。
【參考文獻】
[1]Wing J M.Computational thinking[J]. Communications of the ACM,2006(3):35.
[2]劉紅霞.基于計算思維的C語言程序設計教學模式改革[J].大學教育,2015(8):22-23.
[3]靳玉樂.案例教學原理[M].重慶:西南師范大學出版社,2003:56-61.
[4]張旭紅.案例教學法在VB程序設計教學中的應用[J].科技信息,2008(27):578-592.
[責任編輯:張濤]