摘要:在“卓越計劃”的背景下,針對石油相關專業(yè)C語言程序設計課程教學中存在的問題,在探討課程教學主線的基礎上,從教學內容、教學方法及教學手段等多個方面對課程改革的措施進行詳細闡述,提出培養(yǎng)學生的計算思維、創(chuàng)新意識以及工程能力的方法。
關鍵詞:C語言程序設計;卓越計劃;計算思維;教學實踐;創(chuàng)新;研究型;工程能力
0.引言
2010年我國教育部聯(lián)合其他有關部委,共同制定了“卓越計劃”的培養(yǎng)目標及實施方案,其目的是加速我國由工程教育大國向工程教育強國的轉變。為貫徹落實“卓越計劃”及《國家中長期教育改革和發(fā)展規(guī)劃綱要(2010-2020年)》的有關精神,培養(yǎng)學生創(chuàng)新意識和自主學習能力,中國石油大學(北京)從2010級開始,在石油工程、地質工程、化學工程等專業(yè)中新增了兩種重要的人才培養(yǎng)模式:創(chuàng)新班和卓越班。其目的是嘗試進行研討式、交流式小班授課,通過大量的課堂互動,強化學生的實習、設計和實踐能力。C語言程序設計作為學校的一門重要公共基礎課,在石油專業(yè)的本科教學中占有重要地位。由于學生在學習該課程之前,缺乏嚴格的程序設計訓練,傳統(tǒng)的教學模式也由于缺少有效的溝通而無法激發(fā)學生的學習興趣,導致學生的抽象思維能力和動手實踐能力都出現(xiàn)一些問題。為了適應石油行業(yè)發(fā)展對高素質人才多樣化的需求和貫徹研究型教學的要求,有必要針對創(chuàng)新班和卓越班學生的特點,制訂出更加切實可行的研究型的C語言程序設計教學內容和實踐方案。
1.課程教學存在的問題
傳統(tǒng)的C語言程序設計教學存在以下問題:
1)教育模式單一。
C語言概念多,應用靈活,傳統(tǒng)的教學方法注重講解C語言的基本語法,教師所選編程實例大多用于語法規(guī)則的驗證和說明,學生很難將所掌握的理論知識應用到實踐中。
2)缺乏計算思維。
石油專業(yè)學生對計算機課程的學習方法還不太適應。由于學生編程的邏輯思維方法還沒有形成,很難正確理解計算機學科的基礎概念,更不要說靈活運用各種思想、方法和技術解決實際能源行業(yè)的問題了。
3)師生之間缺乏實時溝通平臺與手段。
師生交流多局限在課堂上圍繞課程進行,對學生在課后的學習和實踐缺乏有效指導。學生遇到問題不能及時解決會嚴重影響學習進度,甚至影響學習的積極性。
4)課堂教學與專業(yè)背景脫節(jié)。
石油行業(yè)各相關專業(yè)的教育對信息技術的要求越來越高,而行業(yè)內不同專業(yè)之間對信息基礎教育的需求又存在著較大的差異。作為大學公共基礎課程的C語言程序設計是一門理論性和實踐性很強的課程,如何適應石油行業(yè)內各類專業(yè)要求,做到與專業(yè)背景盡可能“無縫連接”,是亟待解決的特殊課題。
針對上述問題,如何培養(yǎng)石油專業(yè)學生將計算機科學知識運用到專業(yè)實踐中去?需要我們在教學中將理論與學生專業(yè)背景相融合,讓學生結合專業(yè)知識加深對語言功能的理解,使他們真正體會到該課程是為專業(yè)實踐服務的。由于計算機在石油科技中的應用范圍十分廣泛,幾乎涉及石油科技領域的各個方面,作為石油專業(yè)本科生的C語言程序設計課程就必須涉及這些內容。因此,在理論和實驗課中如何聯(lián)系實際,激發(fā)石油專業(yè)學生的學習興趣,是教學改革的一個重點。同時,如何培養(yǎng)學生的計算思維,使他們將這種思維有效地運用在專業(yè)實踐中,也成為教學內容改革的指南和研究重點。
2.確立C語言教學主線
C語言基礎是語法,學生只有掌握了必要的語法知識,才能進行后續(xù)算法的學習。面對繁雜的C語言語法知識,教師如能將各章節(jié)的知識點串聯(lián)起來,形成一個“教學主線”,再配合計算機的內存變化,就可以幫助學生理解和記憶各知識點。因此,“教學主線”是綱,緊緊抓住“內存變化”這個主要矛盾,就可以達到“綱舉目張”效果。
C語言的核心內容有三個:數(shù)組、指針和函數(shù)。因此,在教學中只要抓住“數(shù)組一函數(shù)一指針”這條主線,通過示意圖描述數(shù)據(jù)在內存中的存儲和變化,就可以將紛繁的知識點化簡規(guī)約,從而形成清晰的知識脈絡。數(shù)組是具有相同數(shù)據(jù)類型的變量的集合。函數(shù)在程序設計過程中的主要任務是可以分解成多個功能獨立的模塊來實現(xiàn),這體現(xiàn)了“分而治之”的思想。函數(shù)的參數(shù)可以是普通變量、數(shù)組名或指針變量。當在函數(shù)間傳遞數(shù)字或字符的集合時可以采用數(shù)組名或指針變量作為函數(shù)參數(shù)進行地址傳遞,這樣實參與形參組合形式可以表達為:
①實參(數(shù)組)——形參(數(shù)組);
②實參(數(shù)組)——形參(指針);
③實參(指針)——形參(數(shù)組);
④實參(指針)——形參(指針)。
通過編寫經典的交換數(shù)據(jù)函數(shù)Swap就可以將函數(shù)調用以及數(shù)組和指針變量的4種組合形式聯(lián)合起來。
C語言最大的特點是程序能夠直接對內存地址進行操作。而對內存的操作主要是通過變量來實現(xiàn)的,變量代表了內存中具有特定屬性的一個存儲單元,用來存放程序運行期間的數(shù)據(jù),即變量的值。要正確推算到程序運行的結果,就必須掌握程序運行過程中內存空間值的演變過程,即變量值的變化過程。為此,我們在教學中采用樣例程序(如圖1所示)結合變量內存空間分配(如表1所示)的方式講述變量在內存中的變化狀態(tài),取得了較好的教學效果。
3.豐富教學方法與手段
德國教育學家第斯多惠曾說過:“教學的藝術不在于傳授本領,而在于激勵、呼喚和鼓舞?!被凇白吭接媱潯钡膶W生創(chuàng)新意識和自主學習能力的培養(yǎng)需經過一個長期的訓練過程。創(chuàng)新班和卓越班提供了一種探究式人才培養(yǎng)模式,其特點是促進人才培養(yǎng)模式由以課本和課堂為中心轉向以學習和學生為中心。在教學過程中,教師除了講授基本知識和程序設計方法外,更要注重培養(yǎng)學生的計算思維。在教學中如何引導學生的學習興趣,實現(xiàn)由“學會”到“會學”的轉變,是創(chuàng)新班和卓越班教學改革的主要目的。為此,我們采取以下幾方面措施。
3.1注重啟發(fā)引導
創(chuàng)新班和卓越班的教學目標應從注重知識傳授轉到注重智能的培養(yǎng)上來。在講授具體的知識點時,要注意加強前后知識的連貫性,對重點、難點問題要舉一反三,從多角度、多側面去闡述,將知識點擴展為知識面,擴大學生的思維空間。在此過程中,計算思維的培養(yǎng)是核心問題。通過多提問、鼓勵一題多解等措施,啟發(fā)學生運用計算機科學的基礎概念去求解問題、設計信息系統(tǒng),并在此基礎上促使他們了解信息技術在能源領域的廣泛應用,為將來創(chuàng)新性地解決石油行業(yè)問題奠定基礎。
3.2實行導師制
創(chuàng)新班和卓越班實行導師引導式培養(yǎng)方式,教師和學生實行雙向選擇,學生根據(jù)所在專業(yè)教師的研究方向和特點選擇相應的指導教師,指導老師也可以根據(jù)學生的能力和素養(yǎng)指定所帶學生。指導教師按照“傳幫帶”的培養(yǎng)方式,提出典型問題,讓學生進行抽象、分析和歸納,培養(yǎng)思維方式,凝練專業(yè)問題,提高掌握本學科前沿知識的能力,使其盡早進入科研狀態(tài)。同時,創(chuàng)新班實行小班上課模式,以利于學生和教師之間的良好互動。
3.3采用榜樣示范教學法
在C語言程序設計課程中,榜樣示范教學法是提高學生分析和解決問題能力的有效辦法。大學生的行為習慣多源于模仿他人,由于處在確立“事業(yè)觀”的關鍵時期,榜樣的力量對他們尤為重要。為此,我們邀請企業(yè)資深的工程師、校軟件協(xié)會的優(yōu)秀學生以及中國石油大學(北京)畢業(yè)的學長為學生做講座,探討C語言在石油領域的應用方向,以及企業(yè)需求和學校教學在C語言上的差異,為學生進一步學習指明了目標。如我院與中關村信息產業(yè)園中的許多公司建立良好的合作關系,就程序代碼編寫規(guī)范以及C語言實訓等內容進行了廣泛的交流合作。從分析實際應用問題開始,到對問題的解決進行整體規(guī)劃,在需求分析、系統(tǒng)設計到系統(tǒng)實現(xiàn)、系統(tǒng)測試等多個方面,鍛煉學生實際動手能力。在教學中融入軟件工程思想,使學生在掌握C語言的基本語法知識的同時,更深入理解程序設計的最終目的是解決實際應用問題。
3.4面向ACM程序大賽,構建研究型、小組討論的學習模式
為了能夠及時、全面地關注到每位學生的學習狀態(tài),充分調動學生的積極性,我們采取分組方式進行教學控制和管理。4名學生構成1組,每組設組長1名,組長由組員輪流擔任,每人任期4周。老師每周抽出固定時間對組長進行培訓,讓他們做一些ACM程序大賽訓練中難度較高、與實際生活接近的題目,并加以輔導,引導他們掌握良好的編程思想,選拔其中的優(yōu)秀組參加ACM程序大賽。在課堂研討和實踐課時間,由組長全權負責本小組的學習探究,這有利于培養(yǎng)學生的組織領導才能以及團結協(xié)作精神。這種變被動接受為“自主研究”型的學習模式,滿足了學生學習方式的個性化。
3.5實施項目驅動教學法
為提升學生運用計算思維處理專業(yè)問題的創(chuàng)新綜合能力,在實踐教學環(huán)節(jié),我們采用結合學生專業(yè)的項目驅動模式,根據(jù)學生具體專業(yè)設置選取適當?shù)捻椖浚瑥木帉懞唵蔚男〕绦蛑鸩竭^渡到解決一定難度的實際問題上。為了最大限度地涉及專業(yè)內容,我們在實驗指導書中簡要介紹了常用石油儀器的實際采集數(shù)據(jù)格式,對石油數(shù)據(jù)處理方法應用進行一定深度的展開,并在具體數(shù)據(jù)以及數(shù)據(jù)之間的關系上進行廣度的拓展。同時,對石油科技中用到的計算模型進行了分類歸納,引導學生將同類問題放在一起進行分析比較。每類模型充分體現(xiàn)了計算思維的思想并經過有限次操作就能夠完成,有利于提高學生實際處理問題的能力,培養(yǎng)其敏銳的思維能力。
4.改革教學條件與環(huán)境
4.1融合Prezi與FreeMind的教學方式
多種教學手段相互補充,適時融入特點突出的教學手段。多媒體教學方式的特點是信息量大,圖文直觀,便于算法的動態(tài)演示。目前,比較主流的輔助手段是運用Powerpoint制作課件,但Powerpoint不能很好地體現(xiàn)人的思維過程,學生在單頁中得到的只是具體的信息,想要理清課件的基本思路,需要繁瑣的翻頁操作,不利于學生對教學內容的宏觀理解和整體把握。為此我們制作了基于Prezi的教學輔助課件,在一頁當中呈現(xiàn)全部的授課內容以及授課的基本思路,以一種符合人類思維習慣的呈現(xiàn)方式與學生進行交互。同時,把C語言程序設計課程的邏輯思維圖中各個知識環(huán)節(jié)按照概念導圖的方式進行組織、關聯(lián)和鋪展,由此形成了基于FreeMind的思維導圖。它包括一個課程邏輯思維圖和多個章節(jié)知識結點的邏輯思維圖,可以讓整張思維導圖“活”起來,隨著授課過程可以任意地伸展每一個關鍵分支。
4.2常規(guī)教學與“教學網站+飛信”互動教學相結合
以常規(guī)教學滿足大多數(shù)學生的學習需求,在保留傳統(tǒng)的教師與學生面對面答疑方式的基礎上,以“教學網站+飛信”交流平臺作為課堂教學和實驗教學的有益補充。平臺支持在線答疑方式,使答疑不受時間和空間的限制,很好地支撐了學生的自主學習。
4.3搭建基于Sloodle的C語言綜合網絡管理平臺
Sloodle平臺整合了多用戶分布式虛擬學習環(huán)境Second Life和Moodle學習管理系統(tǒng),為學生和教師提供了逼真、直觀、沉浸式的學習環(huán)境。將基于Sloodle的部分虛擬現(xiàn)實技術應用到C語言程序設計課程的教學活動中,可豐富教學環(huán)境,突破傳統(tǒng)教科書和某些硬件設施短缺的限制,多角度地展示教學內容。如在中海油工程專業(yè),教師為了展示海上石油鉆井平臺的結構和構造,不可能將真實的整套井架系統(tǒng)拆開來講解和示范,但是基于Sloodle平臺,教師用3D虛擬世界展示實物配件,將實際操作中的海上平臺控制模塊映射到虛擬現(xiàn)實世界里。為了完善Sloodle平臺的Moodle學習管理部分,使之具有在線程序測試評價功能,我們開發(fā)了程序在線評測插件,除了用于ACM大賽以及學?;驅W院舉辦的程序設計競賽外,還具有程序教學輔助功能。教師通過查看學生提交的代碼長度、執(zhí)行時間、占用內存值和提交時間等信息,能快速地發(fā)現(xiàn)代碼拷貝現(xiàn)象。同時通過觀察學生提交的正確的和錯誤的代碼,總結出一般性問題,在課堂上有針對性地講解,以達到更好的教學效果。該平臺經過進一步完善,還將被引入到C語言的后續(xù)課程,如高級語言程序設計、數(shù)據(jù)結構、算法分析等實踐教學中。
5.結語
石油行業(yè)“卓越計劃”是高等工程教育滿足國家能源戰(zhàn)略需求,強化學生主動服務石油企業(yè)思想,完善校企聯(lián)合培養(yǎng)人才機制的新型教改課題。我們通過改革教學方法與手段、改善教學條件來培養(yǎng)石油院校學生的計算思維和工程意識,教學實踐表明,這些改革措施有利于學生深入了解和掌握與本專業(yè)相關的計算機知識和技能,大大激發(fā)了他們的求知欲。當然,作為新生事物的“卓越計劃”的實施仍然任重道遠,還需要不斷完善并建立科學的實踐教學體系。我們將繼續(xù)在C語言程序設計的教學改革上拓展新的領域,在能源行業(yè)尋求新的信息化切入點,將課程的理論教學和工程實際應用更協(xié)調、更緊密地結合起來,培養(yǎng)出更多適應信息化社會的能源類復合型、應用型人才。
(編輯:彭遠紅)