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