摘要:計(jì)算機(jī)語(yǔ)言學(xué)習(xí)是大學(xué)工科學(xué)生的重點(diǎn)學(xué)習(xí)內(nèi)容,作者分析了C語(yǔ)言的教學(xué)特點(diǎn),以自動(dòng)化專(zhuān)業(yè)為例,探討了如何改善C語(yǔ)言教學(xué)的若干方法和途徑。作者將所教的專(zhuān)業(yè)特色、學(xué)生前期基礎(chǔ)和興趣特點(diǎn)和C語(yǔ)言結(jié)合起來(lái)。在充分挖掘?qū)W生已有基礎(chǔ)的前提下加強(qiáng)學(xué)生的專(zhuān)業(yè)技能培養(yǎng)。在這其中,C語(yǔ)言不僅僅是一門(mén)所教課程,而且是一個(gè)貫穿整個(gè)專(zhuān)業(yè)學(xué)習(xí)始終的工具。師生間的互動(dòng),教學(xué)相長(zhǎng),有力地提升了教學(xué)的效果。
關(guān)鍵詞:C語(yǔ)言教學(xué);自動(dòng)化專(zhuān)業(yè);專(zhuān)業(yè)技能;專(zhuān)業(yè)特色
中圖分類(lèi)號(hào):GDP42 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)13-3111-03
隨著信息技術(shù)在全社會(huì)的進(jìn)一步普及,就業(yè)單位對(duì)大學(xué)生的計(jì)算機(jī)技能有了更高的要求。作為計(jì)算機(jī)教學(xué)的主要方面—計(jì)算機(jī)語(yǔ)言的講授,也成為了高等院校教學(xué)改革的一個(gè)重點(diǎn)內(nèi)容[1]。計(jì)算機(jī)語(yǔ)言已不再是一門(mén)孤立的課程,而是漸漸地作為一個(gè)必不可少的工具滲透到所在專(zhuān)業(yè)的整個(gè)學(xué)習(xí)進(jìn)程中來(lái)。隨著中小學(xué)階段計(jì)算機(jī)課程的開(kāi)設(shè),大學(xué)新生的計(jì)算機(jī)基礎(chǔ)也在日益提升。同時(shí),由于我國(guó)人口素質(zhì)的進(jìn)一步提高,對(duì)計(jì)算機(jī)應(yīng)用已不再滿(mǎn)足于傳統(tǒng)的簡(jiǎn)單編程,而是希望將計(jì)算機(jī)作為一個(gè)真正的工具,為生產(chǎn)生活服務(wù)。因此,高校計(jì)算機(jī)語(yǔ)言教學(xué)改革的迫切性進(jìn)一步增強(qiáng)。如何適應(yīng)新時(shí)期下學(xué)生、社會(huì)、用人單位對(duì)計(jì)算機(jī)語(yǔ)言水平的要求,是擺在教學(xué)人員面前的一個(gè)重要課題[2,3]。
該文以C語(yǔ)言為例探討計(jì)算機(jī)語(yǔ)言在自動(dòng)化專(zhuān)業(yè)學(xué)生中教學(xué)的一些改革途徑[4]。作為一門(mén)適應(yīng)性很廣的計(jì)算機(jī)語(yǔ)言,C語(yǔ)言有著很強(qiáng)的生命力。它具備豐富的教材來(lái)源、大量的可參考教案和程序?qū)嵗齕5]。是在我國(guó)從985重點(diǎn)高校到各類(lèi)職業(yè)技術(shù)學(xué)院中工科學(xué)生學(xué)習(xí)最廣的一門(mén)計(jì)算機(jī)語(yǔ)言,具有很強(qiáng)的代表性。對(duì)自動(dòng)化專(zhuān)業(yè)的學(xué)生而言,學(xué)好C語(yǔ)言有助于加深對(duì)計(jì)算機(jī)程序設(shè)計(jì)思想的理解,為學(xué)習(xí)匯編語(yǔ)言和其他計(jì)算機(jī)高級(jí)語(yǔ)言打下良好的基礎(chǔ)。同時(shí)為學(xué)習(xí)后續(xù)專(zhuān)業(yè)課程以及進(jìn)行相應(yīng)的課程設(shè)計(jì)做好專(zhuān)業(yè)知識(shí)的儲(chǔ)備。
當(dāng)然,應(yīng)該指出的是,該文所列舉的很多方法并不僅適用于C語(yǔ)言。不同計(jì)算機(jī)語(yǔ)言具有大量的共性,該文所提出的不少思路完全可以在作適當(dāng)增刪之后移植到其他計(jì)算機(jī)語(yǔ)言的教學(xué)中。同樣,適應(yīng)專(zhuān)業(yè)也不一定局限在自動(dòng)化專(zhuān)業(yè),很多方法也可供其他專(zhuān)業(yè)參考。
1 教學(xué)過(guò)程的組織實(shí)施(Plan of teaching process)
1.1 C語(yǔ)言思想的引入
作為C語(yǔ)言教學(xué)的開(kāi)始,教師有必要向?qū)W生介紹C語(yǔ)言的特點(diǎn),培養(yǎng)學(xué)生對(duì)程序設(shè)計(jì)的興趣。同時(shí)需要解答學(xué)生在學(xué)習(xí)C語(yǔ)言初期遇到的一些常見(jiàn)問(wèn)題,使他們不至于一開(kāi)始就對(duì)C語(yǔ)言的學(xué)習(xí)產(chǎn)生畏難情緒。就筆者的教學(xué)經(jīng)驗(yàn)而言,教學(xué)初期一般會(huì)面臨如下問(wèn)題:
1)學(xué)了它有什么用?
這個(gè)問(wèn)題可能是大學(xué)新生問(wèn)得最多的一個(gè)問(wèn)題?這時(shí),教師并不一定說(shuō):“到時(shí)候你們就知道了”,而是可以從學(xué)生所在專(zhuān)業(yè)特色開(kāi)始深入淺出地談一下C語(yǔ)言的特點(diǎn)和一些容易理解的直觀的應(yīng)用??梢越o學(xué)生介紹一下計(jì)算機(jī)程序在工廠過(guò)程自動(dòng)化控制中的應(yīng)用。因?yàn)閷W(xué)生將來(lái)都要去工廠進(jìn)行實(shí)習(xí)的,事先給他們介紹一下這些背景知識(shí)可以有效地提高他們對(duì)C語(yǔ)言學(xué)習(xí)的好奇和渴望。同時(shí)也是為他們的專(zhuān)業(yè)課程學(xué)習(xí)做好鋪墊。
2)我能學(xué)好嗎?
由于我國(guó)一些農(nóng)村中學(xué)計(jì)算機(jī)教學(xué)的局限,一些新生在看到其他有些同學(xué)具備較為熟練的計(jì)算機(jī)操作能力可能會(huì)產(chǎn)生焦慮情緒。這時(shí),教師在課堂舉例時(shí),應(yīng)當(dāng)多舉淺顯易懂的例子。興趣是最好的老師。C語(yǔ)言教學(xué)不是數(shù)學(xué)學(xué)習(xí),不應(yīng)該拿復(fù)雜的公式編程來(lái)使學(xué)生望而生畏。例如:如果要使學(xué)生熟悉條件語(yǔ)言、循環(huán)語(yǔ)句的使用,用最簡(jiǎn)單的數(shù)學(xué)四則運(yùn)算舉例即可。不要讓學(xué)生把注意力過(guò)多地放在數(shù)學(xué)背景上。
3)考試怎么考?
關(guān)注自己的成績(jī)是每個(gè)學(xué)生的權(quán)利,作為老師也有義務(wù)向?qū)W生講述考試的題型和方式。在這里,我們的經(jīng)驗(yàn)是鼓勵(lì)學(xué)生多看其他的講授C語(yǔ)言的書(shū)籍。大學(xué)不像中學(xué),由于知識(shí)的經(jīng)典性,中學(xué)的教材一般是統(tǒng)一的。而大學(xué)教材則體現(xiàn)了不同專(zhuān)業(yè),不同編者的個(gè)性風(fēng)格。在這里,我們希望學(xué)生能汲取各家之長(zhǎng)。如果某個(gè)知識(shí)點(diǎn)在一本教材里沒(méi)有看懂,那么就試圖去另外一本教材里去找找。這種做法另一個(gè)好處是破除了學(xué)生對(duì)知識(shí)會(huì)一成不變的迷信。讓學(xué)生明白:知識(shí)是不斷發(fā)展的,必須不斷學(xué)習(xí)才能不斷地充實(shí)自己。
4)今后還會(huì)用到嗎?
在中學(xué),雖然每個(gè)學(xué)期所學(xué)的知識(shí)在不斷的變化,但課程名卻總是那么幾個(gè)。但是在大學(xué),課程名會(huì)隨著所學(xué)內(nèi)容的變化在不斷地更新。如果說(shuō)新生對(duì)大一的英語(yǔ)、數(shù)學(xué)、政治理論等課程名還似曾相識(shí)的話(huà),那么面對(duì)高年級(jí)的一堆陌生的課程名就有點(diǎn)迷茫了。面對(duì)這個(gè)問(wèn)題,我們可以在講授C語(yǔ)言各個(gè)章節(jié)時(shí)用適當(dāng)?shù)臅r(shí)間舉例講授一下該部分內(nèi)容在未來(lái)的哪些課程里面會(huì)有所涉及。通過(guò)這樣的講述,學(xué)生不但從感性上認(rèn)識(shí)了將來(lái)要學(xué)習(xí)的課程的一些特點(diǎn),也更進(jìn)一步加深了對(duì)目前學(xué)的C語(yǔ)言的理解。
1.2 注重論述C語(yǔ)言和其他課程的相關(guān)性
作為自動(dòng)化專(zhuān)業(yè)的一門(mén)課程,C語(yǔ)言既是整個(gè)自動(dòng)化專(zhuān)業(yè)課程體系的一部分,同時(shí)也是一個(gè)貫穿專(zhuān)業(yè)學(xué)習(xí)始終的工具。我們?cè)谥v授C語(yǔ)言時(shí),沒(méi)有將它與其他課程割裂開(kāi)來(lái),而是時(shí)而不時(shí)有目的地貫輸了C語(yǔ)言如何在其他的知識(shí)領(lǐng)域中的一些應(yīng)用。在這里所需要指出的的,或許有老師認(rèn)為對(duì)新生談及一些專(zhuān)業(yè)課內(nèi)容可能會(huì)使他們無(wú)所適從(因?yàn)樗麄兩袩o(wú)太多的專(zhuān)業(yè)基礎(chǔ))。就我們的實(shí)踐經(jīng)驗(yàn)來(lái)看,這種擔(dān)心沒(méi)有太多必要?,F(xiàn)在大部分學(xué)生的自學(xué)能力和理解能力較過(guò)去已大大增強(qiáng),而且目前高校給予學(xué)生的專(zhuān)業(yè)熏陶較之過(guò)去也已不可同日而語(yǔ)。新生完全有能力理解老師所講的一些簡(jiǎn)易的專(zhuān)業(yè)內(nèi)容?,F(xiàn)舉一些C語(yǔ)言與其他專(zhuān)業(yè)課結(jié)合的例子如下:
《數(shù)字電子技術(shù)》的一個(gè)基礎(chǔ)內(nèi)容是與門(mén)、或門(mén)、非門(mén)等邏輯門(mén)電路的講解。而這部分內(nèi)容又恰好對(duì)應(yīng)了C語(yǔ)言中的與、或、非三種邏輯運(yùn)算。我們?cè)谥v授C語(yǔ)言邏輯運(yùn)算的同時(shí)也介紹了該部分內(nèi)容與《數(shù)字電子技術(shù)》內(nèi)容的吻合性。同時(shí),電子技術(shù)中又涉及到數(shù)/模、模/數(shù)的轉(zhuǎn)化問(wèn)題。我們?cè)谥v循環(huán)語(yǔ)句時(shí)就要求學(xué)生嘗試編一個(gè)十進(jìn)制數(shù)和二進(jìn)制數(shù)轉(zhuǎn)化的程序(其算法在更早的《大學(xué)計(jì)算機(jī)基礎(chǔ)》課程里就已經(jīng)講授到)。使學(xué)生對(duì)硬件邏輯和軟件邏輯的概念具有了直觀的概念。
計(jì)算機(jī)控制的一個(gè)特點(diǎn)在于它控制指令的離散性?!队?jì)算機(jī)控制》課程中一個(gè)很重要的知識(shí)點(diǎn)是控制量的遞推運(yùn)算。我們?cè)谥v述一維數(shù)組時(shí)有意識(shí)地強(qiáng)化了數(shù)組元素的遞推編程。并且通過(guò)設(shè)置標(biāo)志位,對(duì)某些具有特定意義的元素進(jìn)行了定位標(biāo)示。使學(xué)生在今后接觸到相關(guān)課程時(shí)感到有章可循。
《微型計(jì)算機(jī)原理》是自動(dòng)化專(zhuān)業(yè)中一門(mén)重要課程。在這門(mén)課程中,指令地址的概念是一個(gè)較難理解的問(wèn)題。我們?cè)谥vC語(yǔ)言的指針部分時(shí)有意識(shí)地涉及到了該部分內(nèi)容。試圖通過(guò)講述指針為今后學(xué)習(xí)指令尋址打下基礎(chǔ),反之,也試圖通過(guò)介紹指令地址,使學(xué)生明確指針一節(jié)的地位和重要性。
作為一門(mén)工具性與理論性兼?zhèn)涞恼n程,《數(shù)據(jù)庫(kù)技術(shù)》里面的內(nèi)容較為繁雜。在講述結(jié)構(gòu)體這一章時(shí),我們有意識(shí)地介紹了數(shù)據(jù)庫(kù)的基本組成思想。要求學(xué)生用結(jié)構(gòu)體知識(shí)編一個(gè)小型的數(shù)據(jù)管理程序。任務(wù)雖然簡(jiǎn)單,但已經(jīng)涉及到了數(shù)據(jù)庫(kù)組成的主干思想。使學(xué)生對(duì)這門(mén)課程不再神秘。
MATLAB語(yǔ)言的講授是《計(jì)算機(jī)仿真技術(shù)》課程的骨干內(nèi)容??紤]到仿真技術(shù)對(duì)于自動(dòng)化專(zhuān)業(yè)的重要性,我們?cè)谥v授C語(yǔ)言語(yǔ)句的同時(shí),也適量介紹了它在MATLAB語(yǔ)言中所對(duì)應(yīng)的代碼。這樣做的目的是為學(xué)生破除“世界上只有C語(yǔ)言”這一誤解。為他們更好地理解程序員的含義打下基礎(chǔ)。
通過(guò)諸如此類(lèi)內(nèi)容的引入,學(xué)生學(xué)習(xí)C語(yǔ)言不再感到單一乏味。同時(shí),由于我們對(duì)相關(guān)內(nèi)容點(diǎn)到為止,并沒(méi)有增加學(xué)生的負(fù)擔(dān)。而當(dāng)學(xué)生將來(lái)接觸到對(duì)應(yīng)的知識(shí)點(diǎn)時(shí),就會(huì)享受到以前學(xué)習(xí)的基礎(chǔ)了。
2 教學(xué)案例分析
本節(jié)就我們講述C語(yǔ)言時(shí)的相關(guān)案例進(jìn)行探討。意圖拋磚引玉,進(jìn)一步完善C語(yǔ)言教學(xué)。如前所述,興趣是最好的老師。如果學(xué)生有了學(xué)習(xí)的興趣,自然教學(xué)會(huì)事半功倍。因此,我們將興趣的培養(yǎng)貫穿了C語(yǔ)言教學(xué)的始終。
計(jì)算機(jī)編程的一個(gè)核心思想之一是通過(guò)不斷循環(huán)執(zhí)行一些簡(jiǎn)單的語(yǔ)句來(lái)實(shí)現(xiàn)對(duì)目標(biāo)的搜索,并且在搜索的過(guò)程中需要判斷搜索的終止條件是否已經(jīng)達(dá)到。因而條件語(yǔ)句和循環(huán)語(yǔ)句的教學(xué)是C語(yǔ)言教學(xué)的一項(xiàng)重點(diǎn)內(nèi)容。為了培養(yǎng)學(xué)生的興趣,結(jié)合學(xué)生理工科的專(zhuān)業(yè)背景,我們?cè)诮虒W(xué)中引入了不少數(shù)論名題作為例子,要求學(xué)生編程予以驗(yàn)證。例如:3x+1猜想是一個(gè)很有趣的問(wèn)題[6]。這個(gè)猜想是:任意給一個(gè)自然數(shù),如果它是偶數(shù),則除以2;如果它是奇數(shù),則乘以3再加上1.所得結(jié)果再按如上規(guī)則進(jìn)行運(yùn)算,最終結(jié)果一定是1.例如,對(duì)數(shù)字7,其后續(xù)的運(yùn)算結(jié)果是;22,11,34,17,52,26,13,40,20,20,5,16,8,4,2,1.針對(duì)這個(gè)問(wèn)題,我們要求學(xué)生用條件語(yǔ)句判斷數(shù)字的奇偶性,然后用循環(huán)語(yǔ)句實(shí)現(xiàn)這個(gè)數(shù)列的計(jì)算。更推廣一步,我們還要求學(xué)生用隨機(jī)數(shù)發(fā)生器生成一個(gè)隨機(jī)整數(shù),然后分別用while循環(huán)和do-while循環(huán)來(lái)實(shí)現(xiàn)這個(gè)過(guò)程,并且要學(xué)生記錄下達(dá)到1時(shí)一共產(chǎn)生了幾個(gè)數(shù)?如何實(shí)現(xiàn)到1就退出循環(huán)?在這一循環(huán)過(guò)程中的最大值是多少?由于3x+1問(wèn)題的淺顯易懂,且因?yàn)槠渖形吹玫阶C明所具有強(qiáng)大挑戰(zhàn)性,使學(xué)生對(duì)編程產(chǎn)生了濃厚的興趣。不少學(xué)生紛紛試圖去驗(yàn)證自己所提出的數(shù)的正確性。還有學(xué)生則試圖進(jìn)一步通過(guò)函數(shù)調(diào)用的方式來(lái)改善程序。也有學(xué)生在程序中插入了各種有趣的提示性語(yǔ)句。這個(gè)例子的提出,滿(mǎn)足了不同層次學(xué)生的不同要求。一下子就把他們帶進(jìn)了豐富多彩的代碼世界中。
輸入輸出語(yǔ)句的編寫(xiě)是人機(jī)交互的關(guān)鍵環(huán)節(jié)??偹苤⒄Z(yǔ)學(xué)習(xí)是我國(guó)廣大大中學(xué)生學(xué)習(xí)的一個(gè)主要課程。幾乎所有的大專(zhuān)院校都把學(xué)生能否通過(guò)某種英語(yǔ)水平考試作為其能否順利畢業(yè)的核心條件之一。我們也注意到個(gè)別學(xué)生由于擔(dān)心英語(yǔ)的壓力而在課堂上記憶英語(yǔ)單詞。對(duì)此,我們采用了引導(dǎo)的辦法。在針對(duì)3x+1問(wèn)題編程的訓(xùn)練中,我們要求學(xué)生用英文寫(xiě)出對(duì)應(yīng)代碼的提示和答案。在此之前,不少學(xué)生是用漢語(yǔ)拼音或簡(jiǎn)單的“yes”、“no”,甚至僅是“?”來(lái)表示問(wèn)題的。通過(guò)我們的這一要求,學(xué)生積極地去尋求許多詞匯的英文表述。這樣一來(lái),他們希望看懂C語(yǔ)言編譯器所給出的英文錯(cuò)誤提示的熱情也越來(lái)越高了。通過(guò)這樣的訓(xùn)練,有些學(xué)生開(kāi)始漸漸能?chē)L試看一些關(guān)于C語(yǔ)言的英文著作了。如此不斷循環(huán),學(xué)生的計(jì)算機(jī)能力、英語(yǔ)能力都得到了提高,應(yīng)該說(shuō)是實(shí)現(xiàn)了雙贏。
3 結(jié)束語(yǔ)
計(jì)算機(jī)語(yǔ)言的教學(xué)工作是工科專(zhuān)業(yè)教學(xué)的一個(gè)重點(diǎn)環(huán)節(jié)。科技發(fā)展的客觀要求使得我們更加重視教學(xué)課程的一體化。作為一門(mén)在專(zhuān)業(yè)學(xué)習(xí)初期階段開(kāi)設(shè)的課程,C語(yǔ)言有它自身的一些教學(xué)特點(diǎn)。我們?cè)诳偨Y(jié)自己的一些教學(xué)經(jīng)驗(yàn)的基礎(chǔ)上,試圖更好地將C語(yǔ)言這個(gè)工具融入到學(xué)生的整個(gè)專(zhuān)業(yè)學(xué)習(xí)體系中。讓學(xué)生從享受編程的快樂(lè)開(kāi)始,無(wú)形中回答了自己前期的一些疑惑,同時(shí)也不知不覺(jué)地為將來(lái)的其他課程學(xué)習(xí)以及自己專(zhuān)業(yè)素質(zhì)的培養(yǎng)打下了良好的基礎(chǔ)。
參考文獻(xiàn):
[1] 謝寶榮.計(jì)算機(jī)教學(xué)設(shè)計(jì)藝術(shù)[M].清華大學(xué)出版社,2007.
[2] 陳國(guó)良,董榮勝.計(jì)算思維與大學(xué)計(jì)算機(jī)基礎(chǔ)教育[J].中國(guó)大學(xué)教學(xué),2011(1):7-12.
[3] 馮博琴.計(jì)算機(jī)基礎(chǔ)教育新階段的教學(xué)改革研究[J].中國(guó)大學(xué)教育,2004(9):7-10.
[4] 王鵬遠(yuǎn),蘇虹.高校非計(jì)算機(jī)專(zhuān)業(yè)C語(yǔ)言教學(xué)改革與實(shí)踐[J].計(jì)算機(jī)教育,2011(2):15-18.
[5] 譚浩強(qiáng).C程序設(shè)計(jì)[M]. 3版.清華大學(xué)出版社,2005.
[6] Jeffrey C. Lagarias, The Ultimate Challenge: The 3x+1 Problem [M].American Mathematical Society, 2010.