孫培鋒
摘要:C程序設(shè)計課程作為工科專業(yè)學(xué)生的一門公共基礎(chǔ)課程,其旨在培養(yǎng)學(xué)生的抽象思維能力,而計算思維的核心就是抽象思維能力。本文針對當(dāng)前C程序設(shè)計課程教學(xué)中存在的問題,分析產(chǎn)生這些問題的主要原因,并提出了以培養(yǎng)學(xué)生計算思維為核心的C程序設(shè)計課程模式改革方法。
關(guān)鍵詞:計算思維;C程序設(shè)計;教學(xué)模式
一、計算思維與程序設(shè)計
2006年,美國卡內(nèi)基梅隆大學(xué)的周以真教授在計算機(jī)權(quán)威期刊《Communications of the ACM》雜志上指出:“計算思維是運用計算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計、人類行為理解等涵蓋計算機(jī)科學(xué)之廣度的一系列思維活動” [1]。她指出,計算思維是每個人的基本技能,不僅僅屬于計算機(jī)科學(xué)家,我們應(yīng)當(dāng)使每個孩子在培養(yǎng)解析能力時不僅掌握閱讀、寫作和算術(shù)(Reading,Writing,and aRithmetic,3R),還要學(xué)會計算思維。計算思維是一種形式規(guī)整、問題求解和人機(jī)共存的思維。計算思維概念一經(jīng)提出,就引起了國內(nèi)外研究者的注意。2010年,在西安交通大學(xué)舉辦的首屆“九校聯(lián)盟(C9)計算機(jī)基礎(chǔ)教學(xué)課程研討會”上,明確提出計算機(jī)基礎(chǔ)教學(xué)的核心任務(wù)是計算思維能力的培養(yǎng)。
計算思維能力培養(yǎng)是計算機(jī)學(xué)科教學(xué)的核心任務(wù),涉及計算機(jī)學(xué)科專業(yè)能力培養(yǎng)的目標(biāo)是對計算機(jī)的認(rèn)知能力和應(yīng)用計算機(jī)的問題求解能力[2]。計算思維培養(yǎng)的本質(zhì)是培養(yǎng)問題求解能力,而程序設(shè)計課程重點體現(xiàn)了計算機(jī)語言的問題求解方法,這與計算思維能力培養(yǎng)的主要內(nèi)容相吻合。當(dāng)然一門課程并不能包含計算思維的所有內(nèi)容,需要一系列計算機(jī)基礎(chǔ)應(yīng)用課程協(xié)作完成計算思維能力的培養(yǎng)。因此,計算思維能力的培養(yǎng)為今后學(xué)生應(yīng)用計算機(jī)技術(shù)解決專業(yè)問題奠定了堅實的基礎(chǔ)。
作為計算機(jī)類專業(yè)基礎(chǔ)課,程序設(shè)計是將分析和解決問題的思維活動轉(zhuǎn)化成計算機(jī)程序的過程。學(xué)生在學(xué)習(xí)程序設(shè)計課程中,可以通過問題分析、算法設(shè)計、程序?qū)崿F(xiàn)來體驗問題求解的思維訓(xùn)練過程。所以,學(xué)習(xí)程序設(shè)計課程的目的不應(yīng)是單純掌握某門程序設(shè)計語言的語法規(guī)范或單純學(xué)習(xí)一門程序設(shè)計語言,而是學(xué)習(xí)利用計算機(jī)分析和解決問題的基本過程和思維方法[3]。
二、現(xiàn)有程序設(shè)計課程存在的問題
1.計算機(jī)類課程課時頻頻遭減,但為保證完成必要的教學(xué)內(nèi)容,無疑會為了追求進(jìn)度而放棄深度和引導(dǎo)學(xué)生自行思考解決的課時,學(xué)生來不及理解消化所學(xué)內(nèi)容。
2.教師在課程講授的過程中過于重視程序語法細(xì)節(jié),而忽視了需求分析、功能劃分、編程思路以及算法設(shè)計等,導(dǎo)致學(xué)生在學(xué)習(xí)的過程中常一知半解的狀態(tài),從而在編程的過程中存在缺乏思路、條理不清、代碼使用不規(guī)范等問題。
3.隨著各種校外考試機(jī)構(gòu)主辦的證書考試在校園內(nèi)廣泛開展,學(xué)生學(xué)習(xí)“程序設(shè)計”課程的目的正在發(fā)生變化,相當(dāng)多的學(xué)生只是為了一紙證書在學(xué)習(xí),一些學(xué)校也在為證書忙碌,能力最大化經(jīng)常被晾在一邊,正常的教學(xué)活動與教學(xué)改革受到?jīng)_擊。
4.“學(xué)不致用”的質(zhì)疑聲一直實際伴隨著程序設(shè)計課程。不同于傳統(tǒng)的公共基礎(chǔ)課程,程序設(shè)計課程具有鮮明的應(yīng)用性,而“學(xué)不致用”是一種致命的質(zhì)疑。筆者對計算機(jī)相關(guān)專業(yè)的200名畢業(yè)生的進(jìn)行問卷調(diào)查,結(jié)果如表1所示。
通過表1可以發(fā)現(xiàn),調(diào)查對象可以分為三種人群:Ⅰ類為有需求并使用的人;Ⅱ類為有需求但沒有能力使用的人;Ⅲ類為沒有需求的人。此外,調(diào)查過程中發(fā)現(xiàn):Ⅲ類人中一部分人認(rèn)同“學(xué)習(xí)編程沒有用處”的觀點,即認(rèn)同“學(xué)不致用”;而另一部分人則認(rèn)同“并不是自己的工作不需要編程,而是自己的水平無法勝任編程從而選擇不需要編程的工作”的觀點,這一部分人肯定程序設(shè)計課程的應(yīng)用性而未能實踐其應(yīng)用性,即“學(xué)不能用”。而Ⅰ類人中部分人則認(rèn)同“僅靠學(xué)校學(xué)到的編程知識是不能勝任工作需要的,要編出程序還需自己繼續(xù)學(xué)習(xí)、查閱許多資料”的說法,這從反面也印證了“學(xué)不致用”現(xiàn)象的客觀存在。
三、程序設(shè)計課程改革的必要性
傳統(tǒng)的程序設(shè)計教學(xué)模式一般為:
①介紹該語言數(shù)據(jù)類型及運算符、表達(dá)式;
②介紹其語法規(guī)則,講解例題;
③最后布置作業(yè)。
這種教學(xué)模式以教師為中心,雖然能較好地保證知識的系統(tǒng)性,但因知識枯燥,在影響學(xué)生學(xué)習(xí)積極性的同時,也束縛了學(xué)生思維的發(fā)展,學(xué)生實踐能力不足,綜合分析能力及創(chuàng)新能力薄弱,難以滿足當(dāng)今社會對人才培養(yǎng)的要求。
近年來,教育部高等學(xué)校大學(xué)計算機(jī)課程教學(xué)指導(dǎo)委員會提出了“大學(xué)計算機(jī)基礎(chǔ)課程教學(xué)基本要求”,明確了以計算思維為導(dǎo)向的計算機(jī)基礎(chǔ)教學(xué)改革方向,目的是通過梳理核心知識體系,改革教學(xué)內(nèi)容和教學(xué)方法,將計算思維培養(yǎng)建立在知識理解和應(yīng)用能力培養(yǎng)基礎(chǔ)上[4],以提升學(xué)生的計算思維能力。計算思維能力的培養(yǎng)已經(jīng)成為高校計算機(jī)基礎(chǔ)教學(xué)改革的目標(biāo)。因此,急需將程序設(shè)計課程的編程基礎(chǔ)和計算思維的培養(yǎng)結(jié)合起來,對程序設(shè)計課程進(jìn)行教學(xué)改革,以提高程序設(shè)計課程的教學(xué)質(zhì)量,培養(yǎng)學(xué)生的編程能力、計算思維能力及應(yīng)用創(chuàng)新能力。
四、基于計算思維的C程序設(shè)計課程教學(xué)模式改革
作為工科專業(yè)學(xué)生的一門公共基礎(chǔ)課程,C程序課程教學(xué)的目標(biāo)是幫助學(xué)生學(xué)習(xí)計算機(jī)分析和解決問題的基本過程和思路,而不是成為程序員。因此,改革的方向應(yīng)當(dāng)是幫助學(xué)生降低學(xué)習(xí)門檻,逐步展現(xiàn)計算思維方法和程序設(shè)計過程,從而幫助學(xué)生培養(yǎng)分析問題與通過程序設(shè)計解決問題的能力。具體做法如下:
(一)教學(xué)內(nèi)容改革
適當(dāng)?shù)Z法細(xì)節(jié),在“以程序抽象為主線”的思想指導(dǎo)下,對程序設(shè)計語言本身進(jìn)行適當(dāng)裁剪,去除較為復(fù)雜、較難理解、使用很少、不太規(guī)范的部分。將教學(xué)重心放在計算思維能力和程序設(shè)計能力的培養(yǎng)上,將分解、抽象、自動化、約簡、轉(zhuǎn)化、遞歸、迭代、啟發(fā)式、折中等計算思維的主要特征融入到程序設(shè)計教學(xué)過程中,如通過順序結(jié)構(gòu)把復(fù)雜工作分解為一系列較簡單的工作;通過分支結(jié)構(gòu),把整體處理分解為對一些互不相交、更為簡單的分支處理;通過循環(huán),把復(fù)雜問題的處理分解為一系列類似處理;通過函數(shù)機(jī)制實現(xiàn)功能模塊的分解和抽象;采用抽象、分解來解決相對比較復(fù)雜的問題,通過約簡、轉(zhuǎn)化、遞歸、迭代來實現(xiàn)復(fù)雜問題的分而治之等。endprint
(二)教學(xué)過程改革
引入基于問題的互動教學(xué),精選反映計算思維思想的問題案例或者相關(guān)知識模塊的引導(dǎo)性問題,通過課堂互動討論等方式,討論問題的分析、分解和精確化,找出問題解決的主要步驟,確定函數(shù)抽象,找出循環(huán)迭代、條件控制結(jié)構(gòu),最后進(jìn)行程序?qū)崿F(xiàn)。做完之后還應(yīng)該分析討論所設(shè)計程序的優(yōu)點和缺點,考慮其他設(shè)計實現(xiàn)的可能性。
(三)實驗內(nèi)容改革
C程序設(shè)計課程是理論與實踐并重的課程,在實際教學(xué)過程中必須將理論教學(xué)與實踐教學(xué)緊密結(jié)合,使其相互促進(jìn)。為了解決學(xué)生對所學(xué)知識缺乏必要的感性認(rèn)識的問題,必須設(shè)計合理的實驗教學(xué)內(nèi)容,將知識傳授、技能訓(xùn)練、能力培養(yǎng)融于一體,讓學(xué)生做中學(xué),學(xué)中做,使所學(xué)理論知識在實驗中得到驗證和應(yīng)用。依據(jù)“理論夠用,突出實踐”的原則,將C程序設(shè)計實驗教學(xué)內(nèi)容采用循序漸進(jìn)、由淺入深的方法,分為驗證型實驗、設(shè)計型實驗、綜合型實驗,使學(xué)生在記憶中理解,在理解中應(yīng)用,在應(yīng)用中創(chuàng)新。
(四)考核方式改革
傳統(tǒng)的C 程序設(shè)計課程一般采取閉卷紙質(zhì)考試的方式,題型主要包括:選擇、填空、判斷和程序設(shè)計題等。而C程序設(shè)計課程培養(yǎng)的是學(xué)生的思維能力和實際操作能力[5],以往的考核方式只能考核學(xué)生對于書本知識的掌握情況,并不能真正考查學(xué)生的實操能力。學(xué)生即使通過了閉卷考核,相關(guān)知識點掌握得很好,但獨立設(shè)計算法和動手編程能力卻并不強(qiáng),在上機(jī)解決實際問題時依然舉步維艱。
因此考核方式應(yīng)采用上機(jī)考試代替紙質(zhì)考試。依據(jù)課程要求,事先將考試題目導(dǎo)入考試系統(tǒng)。學(xué)生需要在規(guī)定的考試時間內(nèi)提交完整的程序,測試通過即為合格。如果測試未通過,教師會通過查看源代碼,依據(jù)學(xué)生的答題情況,給出合適的成績。
五、結(jié)語
計算思維包含的內(nèi)容不是一門課程所能承擔(dān)的。計算和計算思維是計算機(jī)基礎(chǔ)課程的基本理論和基本思維,早期的計算機(jī)課程教學(xué)強(qiáng)調(diào)技能培養(yǎng)和能力培養(yǎng),計算思維的引入,將計算機(jī)課程對于大學(xué)生科學(xué)思維能力培養(yǎng)的重要性提升到了前所未有的高度。在大學(xué)計算機(jī)課程里面有目的地引入計算思維,并且加以適當(dāng)訓(xùn)練,有利于提高學(xué)生對于計算機(jī)科學(xué)的理解和認(rèn)識,有利于訓(xùn)練科學(xué)思維的素質(zhì)和能力。
C程序設(shè)計課程是高校計算機(jī)教育的重要基礎(chǔ)課程。通過基于計算思維的程序設(shè)計公共基礎(chǔ)課程教學(xué)改革,可以使學(xué)生在掌握程序語言語法規(guī)則的基礎(chǔ)上,培養(yǎng)學(xué)生計算思維能力和創(chuàng)新能力,從而進(jìn)一步提高C程序設(shè)計公共基礎(chǔ)課程的教學(xué)質(zhì)量。
【參考文獻(xiàn)】
[1]Jeannette M. Wing. Computational Thinking.Communications of the ACM, 2006(03).
[2]王榮良.計算思維教育[M].北京:上??萍冀逃霭嫔纾?2014.
[3]陳國良.計算思維與大學(xué)計算機(jī)基礎(chǔ)教育[C].濟(jì)南:第六屆大學(xué)計算機(jī)課程報告論壇,2010.
[4]牟琴,譚良.計算思維的研究及其進(jìn)展[J].計算機(jī)科學(xué),2011(03).
[5]吳文虎,徐明星.程序設(shè)計基礎(chǔ)[M].北京:清華大學(xué)出版社,2008.endprint