鄭 莉 閆兆乾 毛希平
文章編號(hào):1672-5913(2009)05-0052-04
摘要:計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)是一門在各學(xué)校、各專業(yè)都普遍開設(shè)的基礎(chǔ)課,其中多數(shù)以C語言作為入門語言。選擇什么樣的解釋和計(jì)算平臺(tái)能夠更有利于學(xué)生的學(xué)習(xí),從而有效地實(shí)現(xiàn)教學(xué)目標(biāo)呢?本文通過一組學(xué)生志愿者對(duì)不同學(xué)習(xí)軟件的應(yīng)用體驗(yàn)和評(píng)價(jià),說明了Ch解釋器可以作為C語言入門課程的一個(gè)很好的選擇。
關(guān)鍵詞:程序設(shè)計(jì);C語言;解釋計(jì)算平臺(tái);Ch
中圖分類號(hào):G642
文獻(xiàn)標(biāo)識(shí)碼:B
1引言
目前,計(jì)算機(jī)程序設(shè)計(jì)課程在各個(gè)學(xué)校都普遍作為基礎(chǔ)課開設(shè),而其中大多數(shù)都選擇用C語言作為入門語言。C語言在科研和工程實(shí)踐中有著非常廣泛的應(yīng)用,這也正是大多數(shù)學(xué)校將C語言作為入門語言來講授的主要原因之一。由于C語言本身的特點(diǎn),它并不是一個(gè)最好的教學(xué)語言,這就需要我們?cè)诮虒W(xué)內(nèi)容的設(shè)計(jì)和實(shí)驗(yàn)環(huán)境的選擇上更好地兼顧實(shí)用性與教學(xué)目標(biāo)。從實(shí)用性的角度考慮,選擇一個(gè)目前廣泛應(yīng)用的開發(fā)平臺(tái),可以使學(xué)生快速地學(xué)以致用;而從教學(xué)目標(biāo)來看,這門課的主要目的是講授程序設(shè)計(jì)的基本原理、方法,應(yīng)該選擇一個(gè)簡潔易用的編譯環(huán)境,使學(xué)生能夠集中精力,打好基礎(chǔ)。
本文從教學(xué)目標(biāo)出發(fā)討論計(jì)算機(jī)程序設(shè)計(jì)課程實(shí)驗(yàn)環(huán)境的選擇,重點(diǎn)列出了初學(xué)C語言的學(xué)生對(duì)幾種不同C語言環(huán)境應(yīng)用體驗(yàn)的對(duì)比。
2計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)的教學(xué)目標(biāo)
計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)是很多學(xué)校的程序設(shè)計(jì)入門課程,除了計(jì)算機(jī)專業(yè),絕大多數(shù)理工科專業(yè)也都開設(shè)了這門課程。很多學(xué)校的非計(jì)算機(jī)專業(yè)都只開設(shè)了這一門與計(jì)算機(jī)軟件相關(guān)的必修課,因此對(duì)于非計(jì)算機(jī)專業(yè)的程序設(shè)計(jì)課程來說,這門課承載了太多任務(wù)。
以清華大學(xué)全校性基礎(chǔ)課“計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)”為例,我們的課程教學(xué)目標(biāo)包括:介紹C語言的基本語法;講授程序設(shè)計(jì)的基本原理和方法;培養(yǎng)學(xué)生的計(jì)算思維;介紹數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)知識(shí)和簡單常用的算法;介紹軟件工程的基礎(chǔ)知識(shí)并使學(xué)生通過項(xiàng)目訓(xùn)練體驗(yàn)軟件開發(fā)的過程。
為了在有限的學(xué)時(shí)內(nèi)實(shí)現(xiàn)上述教學(xué)目標(biāo),我們將教學(xué)環(huán)節(jié)分為大課、基礎(chǔ)實(shí)驗(yàn)、項(xiàng)目訓(xùn)練幾個(gè)環(huán)節(jié),分別實(shí)現(xiàn)不同的教學(xué)目標(biāo)。大課主要講解原理、方法,培養(yǎng)學(xué)生的計(jì)算思維能力;基礎(chǔ)實(shí)驗(yàn)幫助學(xué)生驗(yàn)證和鞏固基礎(chǔ)語法、培養(yǎng)學(xué)生基本的編程能力;項(xiàng)目訓(xùn)練使學(xué)生體會(huì)一個(gè)完整的軟件開發(fā)過程和開發(fā)方法。
3初學(xué)者對(duì)幾種C語言開發(fā)環(huán)境的體驗(yàn)和評(píng)價(jià)
為了在上述各個(gè)環(huán)節(jié)中有效地實(shí)現(xiàn)不同的教學(xué)目標(biāo),我們?cè)趯?shí)驗(yàn)室配置了多元化的實(shí)驗(yàn)環(huán)境,包括不同的C語言開發(fā)平臺(tái):Ch 6.1[1]、Turbo C++ 3.0和微軟的Visual C++ 6.0、Visual C++ 2005。在基礎(chǔ)實(shí)驗(yàn)中,我們推薦學(xué)生使用Ch和Turbo C++ 這兩種比較簡單易用的語言環(huán)境;在項(xiàng)目訓(xùn)練中,學(xué)生自選題目,不限制語言工具。
我們從初學(xué)C語言的學(xué)生中募集了16位志愿者,以完成基礎(chǔ)實(shí)驗(yàn)為目標(biāo),對(duì)幾種環(huán)境進(jìn)行了比較。這16位學(xué)生分別來自經(jīng)管、化工、水利、材料、生物等非信息類專業(yè)。本次體驗(yàn)和評(píng)價(jià)活動(dòng)安排在開學(xué)初,參加活動(dòng)的16名學(xué)生剛剛上過3學(xué)時(shí)“計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)”大課、4學(xué)時(shí)實(shí)驗(yàn)課,除此以外沒有任何程序設(shè)計(jì)經(jīng)驗(yàn)。
(1) 活動(dòng)所用課時(shí):約6個(gè)小時(shí)。
(2) 實(shí)驗(yàn)方式:通過邊講邊練的方式學(xué)習(xí)C語言的語法,讓大家體會(huì)和掌握不同編譯器的使用,最后請(qǐng)大家完成調(diào)查問卷。
(3) 問卷設(shè)計(jì):為了對(duì)幾種開發(fā)環(huán)境進(jìn)行評(píng)估和比較,我們?cè)O(shè)計(jì)了一個(gè)調(diào)查問卷,請(qǐng)大家填寫,主要有這些指標(biāo):
●界面設(shè)置(友好,便于操作)
●基本操作(簡便、快捷)
●程序菜單(準(zhǔn)確、清晰、無歧義)
●出錯(cuò)信息(簡明準(zhǔn)確、易于查找)
●斷點(diǎn)設(shè)置(方便、有效)
●內(nèi)存變量查看(便捷、準(zhǔn)確)
●結(jié)果顯示(方便、美觀)
●項(xiàng)目管理(結(jié)構(gòu)清晰、科學(xué)高效)
●程序穩(wěn)定性(運(yùn)行穩(wěn)定,沒有bug)
(4) 活動(dòng)的課時(shí)安排
●第1、2小時(shí):軟件的基本操作
指導(dǎo)學(xué)生使用各種開發(fā)軟件,重點(diǎn)講解如何進(jìn)行編譯和調(diào)試,包括斷點(diǎn)設(shè)置、單步調(diào)試等功能。通過手把手一步一步的指導(dǎo),引導(dǎo)學(xué)生熟悉軟件的基本操作,掌握程序編譯或解釋、調(diào)試的基本過程。
●第3、4小時(shí):上機(jī)練習(xí)C語言的控制語句
練習(xí)使用C語言中的布爾變量、關(guān)系表達(dá)式和邏輯表達(dá)式、if分支和for循環(huán)等控制語句。通過使用邏輯表達(dá)式和控制語句,讓學(xué)生進(jìn)一步了解編譯器和調(diào)試工具。
●第5、6課時(shí):學(xué)生自由練習(xí),對(duì)編譯環(huán)境進(jìn)行評(píng)價(jià)
學(xué)生填寫調(diào)查問卷,并以自由陳述的方式寫出自己的看法。
學(xué)生根據(jù)自己的使用體會(huì),對(duì)Ch、Turbo C++和微軟的Visual C++打分,分為很好、還不錯(cuò)、一般、較差、很差五個(gè)等級(jí),分別打5、4、3、2、1分。將16位學(xué)生的評(píng)分進(jìn)行累加(總分為80分),結(jié)果如表1所示。
總地來講,學(xué)生對(duì)Ch的評(píng)價(jià)比較高,表1中最高的兩個(gè)分?jǐn)?shù)也都出自Ch,大部分學(xué)生都表示將會(huì)繼續(xù)使用Ch作為自己的學(xué)習(xí)工具。
與Visual C++和Turbo C++相比,這里列出學(xué)生對(duì)Ch解釋器的主要正面評(píng)價(jià):
●體積小,方便安裝
安裝簡單,適合初學(xué)者使用;安裝后無需重啟,適合在機(jī)房網(wǎng)吧等場所上機(jī);安裝過程簡單,無需復(fù)雜設(shè)置。例如,最新版的Ch不到90MB,而Visual C++ 有30多GB。
●操作過程簡單明了
新建項(xiàng)目時(shí)過程簡單,易于學(xué)生入手;可以在緩沖區(qū)里同時(shí)打開多達(dá)20個(gè)文件,編寫較大工程時(shí)非常方便;快捷鍵全面豐富,有助于提高編程和調(diào)試效率。圖1是Ch的界面。
●有專門的使用幫助文件
方便初學(xué)者查找,有利于初學(xué)者入手;清晰明了的圖示減輕了初學(xué)者學(xué)習(xí)的障礙;有全面的快捷鍵說明。
●界面美觀,具有人性化的設(shè)計(jì)
各個(gè)功能塊的作用明顯;調(diào)試時(shí)控制臺(tái)始終保持在最前,不必在代碼界面和調(diào)試控制臺(tái)之間頻繁切換,如圖2所示。
●調(diào)試功能全面
擁有一個(gè)典型的C語言開發(fā)環(huán)境所需要的所有運(yùn)行和調(diào)試功能:可以設(shè)置多個(gè)斷點(diǎn);單步調(diào)試時(shí)的提示清晰明確;單擊錯(cuò)誤提示就可以直接跳轉(zhuǎn)到有錯(cuò)誤的那一行;無需編譯鏈接就可以解釋代碼;在調(diào)試過程中可以更改變量的值,可以觀測任何含有變量的表達(dá)式的值,甚至可以在任何時(shí)候調(diào)用函數(shù)。
在學(xué)習(xí)控制結(jié)構(gòu)時(shí),學(xué)生可以改變變量的值,觀察每次不同的分支選擇結(jié)果,以及在什么時(shí)候會(huì)進(jìn)入無限循環(huán)。對(duì)一個(gè)寫好的程序,也可以通過這個(gè)方式測試其穩(wěn)定性。如圖3所示,在調(diào)試和單步執(zhí)行過程中,變量a和b及表達(dá)式sin(a)+cos(b)的值被監(jiān)視和顯示在調(diào)試窗格內(nèi)。
●出色的文本編輯功能
具有代碼塊的折疊展開功能,讓使用者在編寫程序時(shí)一目了然,易于理解;自動(dòng)對(duì)齊功能有助于初學(xué)者養(yǎng)成良好的書寫習(xí)慣;在有多重嵌套或者代碼較長的時(shí)候,對(duì)齊括號(hào)的功能方便使用者匹配括號(hào);可以自動(dòng)補(bǔ)齊文字,在變量、函數(shù)比較多的時(shí)候,使用者感覺非常方便;具有出色的文本查找替換以及書簽功能。
可以按照多種不同的語法標(biāo)記出不同的語言,可以用于以后其他語言的學(xué)習(xí)。支持C/Ch/C++、CSS、HTML、Make、SQL and PLSQL、TeX and LaTeX、XML。
●強(qiáng)大的Ch命令外殼(Command Shell)
可以直接執(zhí)行一個(gè)完整的C程序代碼,也可以單獨(dú)執(zhí)行一條語句,非常有利于學(xué)習(xí)。在學(xué)習(xí)關(guān)系運(yùn)算和邏輯運(yùn)算時(shí),Ch命令外殼的這一功能發(fā)揮了很大作用。學(xué)生能夠很直接地了解復(fù)雜表達(dá)式的值,而無須編寫一段完整的程序。
可以用作控制臺(tái)終端,執(zhí)行Windows或者Unix的命令。
可以作為一個(gè)功能豐富的計(jì)算器,進(jìn)行復(fù)雜的科學(xué)運(yùn)算。比如大型數(shù)值運(yùn)算、矩陣矢量運(yùn)算、復(fù)數(shù)運(yùn)算等。
可以作為一個(gè)簡單的計(jì)算機(jī)字典,查詢一些關(guān)鍵字的含義。Ch命令外殼各種有用的功能舉例如圖4所示。
與Visual C++ 和Turbo C++相比,Ch有諸如以上眾多的優(yōu)點(diǎn),但也有美中不足之處。在目前發(fā)行的版本中,Ch專門的使用幫助文件(含.html和.pdf文檔)只有英文和日文版,學(xué)生們期待早日推出中文版。
4結(jié)論
通常初學(xué)者對(duì)于復(fù)雜龐大的開發(fā)環(huán)境都有一種畏懼心理,不知如何下手,這嚴(yán)重影響了他們的動(dòng)手實(shí)踐積極性。根據(jù)這一組學(xué)生的體驗(yàn)情況來看,與Visual C++和Turbo C++相比,Ch比較適合作為C語言程序設(shè)計(jì)入門課程的實(shí)驗(yàn)環(huán)境,尤其是用于基礎(chǔ)實(shí)驗(yàn)。計(jì)算機(jī)程序設(shè)計(jì)是實(shí)踐性很強(qiáng)的一門課,必須通過大量的編程實(shí)踐才能掌握。Ch簡單易用而且功能完備,很受學(xué)生歡迎。
參考文獻(xiàn):
[1] Ch: An Embeddable C/C++ Interpreter,http://www.softintegration.com.