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