前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的程序設(shè)計(jì)基本結(jié)構(gòu)主題范文,僅供參考,歡迎閱讀并收藏。
結(jié)構(gòu)程序化設(shè)計(jì)方法如下:
結(jié)構(gòu)化程序設(shè)計(jì)方法是按照模塊劃分原則以提高程序可讀性和易維護(hù)性、可調(diào)性和可擴(kuò)充性為目標(biāo)的一種程序設(shè)計(jì)方法。在結(jié)構(gòu)化的程序設(shè)計(jì)中,只允許三種基本的程序結(jié)構(gòu)形式,它們是順序結(jié)構(gòu)、分支結(jié)構(gòu)、(包括多分支結(jié)構(gòu))和循環(huán)結(jié)構(gòu),這三種基本結(jié)構(gòu)的共同特點(diǎn)是只允許有一個(gè)流動(dòng)入口和一個(gè)出口,僅有這三種基本結(jié)構(gòu)組成的程序稱為結(jié)構(gòu)化程序。結(jié)構(gòu)化程序設(shè)計(jì)適用于程序規(guī)模較大的情況,對(duì)于規(guī)模較小程序也可采用非結(jié)構(gòu)化程序設(shè)計(jì)方法。
(來源:文章屋網(wǎng) )
關(guān)鍵詞:Visual Basic;必修課;選修課;區(qū)別
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-7712 (2013) 06-0204-01
一、簡(jiǎn)介
隨著計(jì)算機(jī)科學(xué)和技術(shù)的發(fā)展,大學(xué)計(jì)算機(jī)課程的設(shè)置有了很大變化。大學(xué)計(jì)算機(jī)教學(xué)不再以基礎(chǔ)操作為主,而變?yōu)榛静僮?、?yīng)用軟件、程序設(shè)計(jì)、計(jì)算機(jī)原理等知識(shí)的綜合。為此本校在開設(shè)了Visual Basic(以下簡(jiǎn)稱VB)程序設(shè)計(jì)課程。但是,由于專業(yè)特點(diǎn),某些班級(jí)無法開設(shè)過多的計(jì)算機(jī)課程。為此,經(jīng)過與學(xué)校教務(wù)、學(xué)院、系等部門多次商定,本校的VB程序設(shè)計(jì)分為兩個(gè)層次。必修層次課時(shí)為54,包含28課時(shí)講授和26課時(shí)上機(jī)操作。選修課為36課時(shí),包含講授和上機(jī)操作各18課時(shí)。
二、教材與知識(shí)結(jié)構(gòu)分析
我校選擇的教材為高等教育出版社的《Visual Basic程序設(shè)計(jì)教程》(第3版)。選用該教材的原因是其內(nèi)容條理性好,適合非工科專業(yè)學(xué)習(xí)。有可能在短時(shí)間內(nèi)幫助學(xué)生建立起程序設(shè)計(jì)的基本概念,并能快速的解決實(shí)際問題。從目錄看,該教材教學(xué)內(nèi)容條理清晰,從基礎(chǔ)開始由淺入深。其內(nèi)容分為10章,如表1。
從歷年的教學(xué)經(jīng)驗(yàn)看,對(duì)該教材的教學(xué)內(nèi)容分析如下。第1章作為與計(jì)算機(jī)文化基礎(chǔ)課程的銜接,介紹了VisualBasic6.0集成開發(fā)環(huán)境的使用。第2章介紹了面向?qū)ο缶幊痰幕靖拍睿侯?對(duì)象,屬性-事件-方法等。第3章介紹了VB語(yǔ)言的基本語(yǔ)法。一般認(rèn)為,這三章是該門課程的基礎(chǔ)性內(nèi)容,可以采用與文化基礎(chǔ)類似的教學(xué)手段,使用講授和驗(yàn)證性實(shí)驗(yàn)結(jié)合,幫助學(xué)生快速的學(xué)會(huì)集成開發(fā)環(huán)境的使用,并按照程序設(shè)計(jì)的五個(gè)步驟,完成并熟悉簡(jiǎn)單VB程序設(shè)計(jì)。
本書的第4章到第6章是核心內(nèi)容,具體講授了VB程序設(shè)計(jì)。其中第4章講授了順序、分支、循環(huán)三種基本的程序設(shè)計(jì)方法。第5章介紹了數(shù)組這一最基本的數(shù)據(jù)結(jié)構(gòu)。第6章則介紹了過程與函數(shù),將VB程序劃分為更細(xì)致的結(jié)構(gòu)。第7、8兩章的內(nèi)容相對(duì)獨(dú)立,可以認(rèn)為是對(duì)前面學(xué)習(xí)的總結(jié)。第7章介紹了界面設(shè)計(jì),第8章介紹了VB的基本輸入輸出。本書的最后兩章介紹了VB在圖形和數(shù)據(jù)庫(kù)兩方面的應(yīng)用。
三、授課計(jì)劃分析
對(duì)于涉及的8章教學(xué)內(nèi)容制定授課計(jì)劃如下。第1章,首先回顧計(jì)算機(jī)文化基礎(chǔ)課程中關(guān)于二進(jìn)制、編碼等知識(shí)。這些知識(shí)有助于學(xué)生進(jìn)一步認(rèn)識(shí)計(jì)算機(jī)中信息處理的方式,即所有信息數(shù)字化的方式。這樣充分利用基礎(chǔ)知識(shí),可以幫助學(xué)生快速的熟悉環(huán)境,降低進(jìn)一步學(xué)習(xí)的難度。第2章介紹面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念,并利用最常見對(duì)象的屬性、時(shí)間和方法,給出了驗(yàn)證性的實(shí)驗(yàn)。通過簡(jiǎn)單的編程操作,完成輸入、輸出等任務(wù)。第3章講授表達(dá)式的書寫。通過量(包括變量和常量)、運(yùn)算符和函數(shù),將實(shí)際問題轉(zhuǎn)換為表達(dá)式,然后由計(jì)算機(jī)求解。
接下來的4、5、6三章,是本課程的核心內(nèi)容。第4章的內(nèi)容被分為三部分,按照順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)組織,在三次講授中分別介紹具體內(nèi)容。在順序結(jié)構(gòu)中,介紹賦值語(yǔ)句、輸入/輸出語(yǔ)句。選擇結(jié)構(gòu)則以If和Select語(yǔ)句為主,介紹了最基本的二分支結(jié)構(gòu)程序設(shè)計(jì)和由此演變而來的單分支、多分支。這一部分著重提示學(xué)生,盡管程序書寫順序仍舊為從上到下,但是并不是每條語(yǔ)句都會(huì)執(zhí)行。通過動(dòng)畫演示程序根據(jù)不同的輸入,計(jì)算分段函數(shù)值。循環(huán)結(jié)構(gòu)則結(jié)合第5章的數(shù)組進(jìn)行介紹。指出“循環(huán)變量控制數(shù)組下標(biāo)”這一經(jīng)典組合可以解決大量的實(shí)際問題。對(duì)于第4、5章剩余的部分則單獨(dú)利用課時(shí),講解組合框控件、程序調(diào)試等知識(shí)。因自定義類型與數(shù)據(jù)庫(kù)相關(guān),因此刪去不講。第6章則介紹過程與函數(shù)的概念,幫助學(xué)生建立對(duì)復(fù)雜問題“分而治之”的原則,化簡(jiǎn)問題方便求解。
在本課程的最后以“溫故而知新”的方式,幫助學(xué)生一邊回顧已有知識(shí),一邊豐富現(xiàn)有的程序。從軟件的界面的美化,到添加菜單、對(duì)話框等功能模塊,再到計(jì)算和處理問題結(jié)果的保存。學(xué)生此時(shí)對(duì)以往知識(shí)進(jìn)行總結(jié),結(jié)合較為簡(jiǎn)單的內(nèi)容,進(jìn)一步豐富和鞏固程序設(shè)計(jì)的知識(shí)和技巧。
在選修層次的教學(xué)中,因?qū)W生選課時(shí),已經(jīng)要求有一定的程序設(shè)計(jì)學(xué)習(xí)經(jīng)驗(yàn)。經(jīng)過調(diào)查顯示,大部分學(xué)生是在自學(xué)了C/VB等語(yǔ)言后才來參加學(xué)習(xí),加之學(xué)生已經(jīng)對(duì)計(jì)算機(jī)基礎(chǔ)知識(shí)有一定的了解和掌握,因此在必修課程教學(xué)計(jì)劃的基礎(chǔ)上,刪除了對(duì)第1章和第2、3章部分內(nèi)容的講授。由于選修課課時(shí)分配為每周3課時(shí),因此這一部分內(nèi)容,在第1次講課時(shí)完成,并在第1次上機(jī)課加以操作驗(yàn)證。從歷年經(jīng)驗(yàn)看,效果尚可。接下來的三個(gè)單元,與必修課要求一致,分別介紹程序設(shè)計(jì)的三大結(jié)構(gòu)。剩余的兩個(gè)單元?jiǎng)t針對(duì)學(xué)生對(duì)閱讀程序、解決問題的實(shí)際需求,加重講授第6章的內(nèi)容,并在最后讀取、演示大量的實(shí)際程序,幫助學(xué)生理解他人編寫的程序,并能從其中取長(zhǎng)補(bǔ)短,提高自己程序設(shè)計(jì)的水平。
關(guān)鍵詞:程序設(shè)計(jì)基礎(chǔ);數(shù)據(jù)結(jié)構(gòu);計(jì)算思維;教學(xué)銜接
0、引言
程序設(shè)計(jì)基礎(chǔ)與數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)類專業(yè)的兩門專業(yè)基礎(chǔ)課,在計(jì)算機(jī)類專業(yè)教學(xué)中具有舉足輕重的作用,都旨在培養(yǎng)學(xué)生的編程能力和計(jì)算思維能力,并為后續(xù)課程打下堅(jiān)實(shí)的專業(yè)基礎(chǔ),但在這兩門課程的教學(xué)過程中,存在一系列問題,嚴(yán)重影響課程的教學(xué)效果。筆者分析和研究產(chǎn)生這些實(shí)際問題的原因,對(duì)這兩門課程的知識(shí)融合、內(nèi)容銜接以及教學(xué)實(shí)踐等進(jìn)行探討,提出切實(shí)可行的解決方案,更好地實(shí)現(xiàn)兩門課程的教學(xué)目標(biāo)。
1、課程教學(xué)內(nèi)容和教學(xué)目標(biāo)
程序設(shè)計(jì)基礎(chǔ)課程是學(xué)生接觸的第一門專業(yè)基礎(chǔ)課,也是進(jìn)行計(jì)算機(jī)編程的入門課程。課程的教學(xué)目標(biāo)是使學(xué)生掌握程序設(shè)計(jì)的基本方法,培養(yǎng)其擁有良好的程序設(shè)計(jì)風(fēng)格、較強(qiáng)的軟件開發(fā)能力以及一定的計(jì)算思維能力,為后續(xù)課程打下良好的基礎(chǔ)。
數(shù)據(jù)結(jié)構(gòu)是繼程序設(shè)計(jì)基礎(chǔ)課程之后的一門綜合專業(yè)基礎(chǔ)課,是計(jì)算機(jī)類專業(yè)的核心課程之一,具有舉足輕重的作用。它是程序設(shè)計(jì)基礎(chǔ)課程所講知識(shí)的自然延伸和具體應(yīng)用。對(duì)數(shù)據(jù)結(jié)構(gòu)的理解、掌握和應(yīng)用拓展,將對(duì)學(xué)生解決具體實(shí)際問題時(shí)的數(shù)據(jù)分析、數(shù)據(jù)組織、數(shù)據(jù)處理和編程能力有著深遠(yuǎn)的影響。課程的教學(xué)目標(biāo)是培養(yǎng)學(xué)生縝密的邏輯思維和數(shù)據(jù)抽象能力以及學(xué)生在軟件設(shè)計(jì)領(lǐng)域中科學(xué)的計(jì)算思維能力,幫助學(xué)生將數(shù)據(jù)結(jié)構(gòu)和算法與具體的編程實(shí)現(xiàn)相結(jié)合并靈活地應(yīng)用到實(shí)踐和工程實(shí)際中。
2、兩門課程間的關(guān)系
從程序與數(shù)據(jù)結(jié)構(gòu)本身的關(guān)系來說,一個(gè)好的程序離不開合適的數(shù)據(jù)結(jié)構(gòu),而數(shù)據(jù)結(jié)構(gòu)中算法的實(shí)現(xiàn)離不開具體的程序設(shè)計(jì)。在計(jì)算機(jī)類專業(yè)的課程體系中,數(shù)據(jù)結(jié)構(gòu)和程序設(shè)計(jì)基礎(chǔ)課程雖然獨(dú)立開設(shè),但是它們之間的聯(lián)系是緊密的。在課程設(shè)置上,程序設(shè)計(jì)基礎(chǔ)是數(shù)據(jù)結(jié)構(gòu)的前導(dǎo)課程,兩門課程一脈相承,不可分割。
學(xué)生對(duì)程序設(shè)計(jì)基礎(chǔ)課程的掌握程度、具備的計(jì)算思維和編程能力,直接關(guān)系到以程序設(shè)計(jì)語(yǔ)言實(shí)現(xiàn)算法的數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)效果。數(shù)據(jù)結(jié)構(gòu)課程通過創(chuàng)造性思維的訓(xùn)練,重點(diǎn)突出數(shù)據(jù)抽象與程序抽象能力的培養(yǎng),從而進(jìn)一步提升學(xué)生的計(jì)算思維能力和編程能力,但兩門課程在實(shí)際教學(xué)中存在一些問題,主要原因是課程設(shè)置、教學(xué)內(nèi)容、教學(xué)方法和教學(xué)實(shí)踐方式等多方面存在缺陷。經(jīng)分析,對(duì)程序設(shè)計(jì)基礎(chǔ)和數(shù)據(jù)結(jié)構(gòu)課程進(jìn)行知識(shí)整合和內(nèi)容銜接,采用適當(dāng)?shù)慕虒W(xué)方式,改進(jìn)教學(xué)實(shí)踐是探討和研究的主要內(nèi)容。
3、兩門課程在實(shí)際教學(xué)中存在的銜接問題
3.1 兩門課程教學(xué)內(nèi)容的脫離
目前,在實(shí)際教學(xué)中,程序設(shè)計(jì)基礎(chǔ)和數(shù)據(jù)結(jié)構(gòu)課程雖然關(guān)系緊密,但是一直被設(shè)定為兩門完全獨(dú)立的課程,而且教師在制訂教學(xué)大綱和教學(xué)目標(biāo)時(shí)容易忽視兩門課程問的聯(lián)系,在教學(xué)過程中出現(xiàn)一些盲區(qū),要么兩門課程在教學(xué)內(nèi)容上出現(xiàn)不同程度的交叉,要么出現(xiàn)知識(shí)銜接的斷層,令學(xué)生對(duì)兩門課程的內(nèi)在聯(lián)系沒有整體概念和認(rèn)識(shí),從而導(dǎo)致不能深入系統(tǒng)地學(xué)習(xí)相關(guān)知識(shí)。尤其是先行課程序設(shè)計(jì)基礎(chǔ)的教學(xué)內(nèi)容和課程案例完全脫離了數(shù)據(jù)結(jié)構(gòu)課程,使數(shù)據(jù)結(jié)構(gòu)中最頻繁使用的知識(shí)和內(nèi)容在程序設(shè)計(jì)基礎(chǔ)課程中甚少提及,不能為數(shù)據(jù)結(jié)構(gòu)課程的講解打下扎實(shí)的程序設(shè)計(jì)基礎(chǔ)。
3.2 程序設(shè)計(jì)編程語(yǔ)言與數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)語(yǔ)言不一致
程序設(shè)計(jì)基礎(chǔ)課程所教授的編程語(yǔ)言與數(shù)據(jù)結(jié)構(gòu)教材或?qū)嶒?yàn)所使用的實(shí)現(xiàn)語(yǔ)言不一致,如將C++語(yǔ)言作為程序設(shè)計(jì)基礎(chǔ)的教授語(yǔ)言,而在數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)上選擇c語(yǔ)言或Java語(yǔ)言,以至于數(shù)據(jù)結(jié)構(gòu)的理論教學(xué)與具體上機(jī)編程實(shí)現(xiàn)脫節(jié),嚴(yán)重影響了上機(jī)實(shí)驗(yàn)和課程設(shè)計(jì)環(huán)節(jié)。
3.3 程序設(shè)計(jì)方法與數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)方法不一致
程序設(shè)計(jì)基礎(chǔ)課程中或注重面向過程的程序設(shè)計(jì)方法,或注重面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,但在數(shù)據(jù)結(jié)構(gòu)課程中卻很難利用前導(dǎo)課程中學(xué)到的程序設(shè)計(jì)方法實(shí)現(xiàn)相關(guān)的數(shù)據(jù)結(jié)構(gòu)和算法,從而影響了學(xué)生對(duì)數(shù)據(jù)結(jié)構(gòu)課程知識(shí)的應(yīng)用與實(shí)現(xiàn)。另一方面,學(xué)生在學(xué)習(xí)過程中沒有充分理解數(shù)據(jù)結(jié)構(gòu)課程的作用和實(shí)際意義,以至于在實(shí)際項(xiàng)目和問題中不知使用什么方法(面向過程或面向?qū)ο螅┓治鼋鉀Q問題,不知如何運(yùn)用數(shù)據(jù)結(jié)構(gòu)知識(shí)解決實(shí)際問題。
3.4 前導(dǎo)課程對(duì)后續(xù)課程實(shí)踐環(huán)節(jié)的影響
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)環(huán)節(jié)相對(duì)課堂理論環(huán)節(jié)較薄弱。此問題的存在多半是因?yàn)閿?shù)據(jù)結(jié)構(gòu)具體實(shí)現(xiàn)的關(guān)鍵技術(shù)在程序設(shè)計(jì)基礎(chǔ)課中未被講解或強(qiáng)調(diào),在進(jìn)行數(shù)據(jù)結(jié)構(gòu)算法從理論到偽代碼、再由偽代碼到真代碼轉(zhuǎn)換的過程中難以真正編程實(shí)現(xiàn),使學(xué)生對(duì)數(shù)據(jù)結(jié)構(gòu)的理解和掌握僅停留在抽象層、概念層、理論層,難以上升到實(shí)現(xiàn)層,從而影響學(xué)生的學(xué)習(xí)興趣和積極性。同時(shí),課程中的實(shí)踐項(xiàng)目過于單一且相對(duì)獨(dú)立,使實(shí)踐環(huán)節(jié)與實(shí)際項(xiàng)目的聯(lián)系過于松散,學(xué)生運(yùn)用所學(xué)知識(shí)解決實(shí)際問題的能力和實(shí)際工程能力很難得以鍛煉。
3.5 缺少計(jì)算思維能力的培養(yǎng),缺乏理論知識(shí)與實(shí)際應(yīng)用的聯(lián)系
提高學(xué)生計(jì)算思維能力是程序設(shè)計(jì)基礎(chǔ)和數(shù)據(jù)結(jié)構(gòu)課程共同的目標(biāo)。計(jì)算思維是抽象的多個(gè)層次上的思維,而抽象是表達(dá)實(shí)際的方法。然而,現(xiàn)行教學(xué)方法過多關(guān)注程序設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)知識(shí)點(diǎn)的講解,缺乏對(duì)學(xué)生思維能力的培養(yǎng)。
如果缺乏理論聯(lián)系實(shí)際,那么將影響學(xué)生計(jì)算思維的培養(yǎng)。數(shù)據(jù)結(jié)構(gòu)中的知識(shí)又太抽象,如果缺乏相應(yīng)的實(shí)際案例對(duì)抽象知識(shí)加以應(yīng)用,那么就會(huì)導(dǎo)致學(xué)生不知道怎樣將所學(xué)的知識(shí)應(yīng)用到實(shí)際中,缺乏具體問題具體分析和解決的能力。
3.6 教師本身知識(shí)結(jié)構(gòu)欠缺,上機(jī)實(shí)踐指導(dǎo)教師數(shù)量不足
授課教師知識(shí)結(jié)構(gòu)的缺乏將導(dǎo)致一些現(xiàn)實(shí)問題:如果程序設(shè)計(jì)基礎(chǔ)的教師不懂?dāng)?shù)據(jù)結(jié)構(gòu),那么其自然不會(huì)將相關(guān)知識(shí)引入課堂,同時(shí)也缺乏用所教授的語(yǔ)言具體實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)中結(jié)構(gòu)和算法的能力;如果數(shù)據(jù)結(jié)構(gòu)的教師缺乏相關(guān)編程語(yǔ)言知識(shí),那么就會(huì)給上機(jī)輔導(dǎo)帶來困難。同時(shí),兩門課程具有很強(qiáng)的實(shí)踐性,若上機(jī)實(shí)踐輔導(dǎo)教師不足,將不利于學(xué)生編程能力的提升以及相關(guān)軟件大賽學(xué)生的培養(yǎng)和輔導(dǎo)。
針對(duì)以上實(shí)際教學(xué)中存在的問題,可知為提高程序設(shè)計(jì)基礎(chǔ)與數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)效果,根據(jù)計(jì)算機(jī)類專業(yè)這兩門課程教學(xué)內(nèi)容和目標(biāo),對(duì)兩門課程進(jìn)行知識(shí)整合和內(nèi)容銜接的必要性,對(duì)課程銜接的方法和思路等進(jìn)行探討勢(shì)在必行。同時(shí),課程教學(xué)不僅要關(guān)注知識(shí)的傳授,還要培養(yǎng)學(xué)生主動(dòng)獲取知識(shí)并綜合已有知識(shí)創(chuàng)造新知識(shí)的能力。
4、程序設(shè)計(jì)基礎(chǔ)和數(shù)據(jù)結(jié)構(gòu)課程銜接的新方法和思路
4.1 做好兩門課程教學(xué)內(nèi)容的融合和銜接
教師需緊密結(jié)合計(jì)算機(jī)類專業(yè)的培養(yǎng)目標(biāo),精心設(shè)計(jì)程序設(shè)計(jì)基礎(chǔ)和數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)內(nèi)容,既要滿足課程的專業(yè)基礎(chǔ)性,又要滿足后續(xù)課程學(xué)習(xí)的需要,嚴(yán)密制訂教學(xué)大綱,做好程序設(shè)計(jì)基礎(chǔ)與數(shù)據(jù)結(jié)構(gòu)教學(xué)內(nèi)容的銜接以及相關(guān)教材的選定。
在程序設(shè)計(jì)基礎(chǔ)課程教學(xué)中,教師需要關(guān)注學(xué)生計(jì)算思維能力的培養(yǎng),將重點(diǎn)放在講解思路上,教學(xué)生如何對(duì)問題進(jìn)行抽象,還要介紹一些簡(jiǎn)單的基礎(chǔ)算法和數(shù)據(jù)結(jié)構(gòu)。程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)的聯(lián)系過程必須做到循序漸進(jìn),若引入的數(shù)據(jù)結(jié)構(gòu)相關(guān)知識(shí)過難,會(huì)打擊學(xué)生的學(xué)習(xí)積極性。例如,教師講數(shù)組時(shí)可引入幾種數(shù)據(jù)結(jié)構(gòu)中簡(jiǎn)單的排序算法冒泡排序、選擇排序等;講完指針和結(jié)構(gòu)體后可引入最基本的數(shù)據(jù)結(jié)構(gòu)――鏈表;講完嵌套函數(shù)調(diào)用后可引入“遞歸”,它是數(shù)據(jù)結(jié)構(gòu)中解決問題的常見思想和算法,可以通過簡(jiǎn)單的遞歸函數(shù)幫助學(xué)生理解遞歸思想和遞歸調(diào)用過程,這些是理解數(shù)據(jù)結(jié)構(gòu)中復(fù)雜遞歸函數(shù)的基礎(chǔ)。在程序設(shè)計(jì)基礎(chǔ)教學(xué)中,只講遞歸函數(shù)的簡(jiǎn)單應(yīng)用,而在數(shù)據(jù)結(jié)構(gòu)教學(xué)中,需要介紹遞歸函數(shù)的復(fù)雜應(yīng)用:棧、樹、八皇后問題、N個(gè)數(shù)的全排列等。圍繞“遞歸”這一重要知識(shí)點(diǎn),從易到難并結(jié)合課程本身特點(diǎn)進(jìn)行理論分析,將有益于整合課程教學(xué)內(nèi)容,引導(dǎo)學(xué)生循序漸進(jìn)地學(xué)習(xí)和思考。
針對(duì)在程序設(shè)計(jì)基礎(chǔ)課程中不重要但在數(shù)據(jù)結(jié)構(gòu)及算法中被廣泛使用的知識(shí)點(diǎn),教師需要在講解程序設(shè)計(jì)課程時(shí)將其點(diǎn)出并告訴學(xué)生此知識(shí)在后續(xù)數(shù)據(jù)結(jié)構(gòu)課中的重要性,引起學(xué)生對(duì)該知識(shí)點(diǎn)的興趣和重視,如指針的靈活使用、結(jié)構(gòu)體類型的復(fù)雜應(yīng)用、類型重命名、類的拷貝構(gòu)造函數(shù)(深拷貝)、函數(shù)模板、類模版等。
同時(shí),教師要對(duì)程序設(shè)計(jì)基礎(chǔ)課程內(nèi)容進(jìn)行適當(dāng)補(bǔ)充和擴(kuò)充,如增加c++函數(shù)模板、類模板的相關(guān)知識(shí),為將泛型程序設(shè)計(jì)、c++的STL引人數(shù)據(jù)結(jié)構(gòu)課程奠定知識(shí)基礎(chǔ),縮小教學(xué)知識(shí)與實(shí)際運(yùn)用的距離,提高學(xué)生的動(dòng)手編程能力和知識(shí)運(yùn)用能力。
4.2 保證程序設(shè)計(jì)編程語(yǔ)言與數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)語(yǔ)言的一致
程序設(shè)計(jì)基礎(chǔ)課程所教授的編程語(yǔ)言要與數(shù)據(jù)結(jié)構(gòu)教材或?qū)嶒?yàn)所使用的編程語(yǔ)言一致,這樣不僅能大大提高學(xué)生的編程能力,還有利于數(shù)據(jù)結(jié)構(gòu)課程的上機(jī)實(shí)現(xiàn)。
4.3 將面向?qū)ο笏枷胍氤绦蛟O(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)中
隨著程序設(shè)計(jì)方法從傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)演化到面向?qū)ο蟪绦蛟O(shè)計(jì),數(shù)據(jù)結(jié)構(gòu)在面向?qū)ο蟪绦蛟O(shè)計(jì)中也將成為面向?qū)ο蟮臄?shù)據(jù)結(jié)構(gòu),且將隨著程序設(shè)計(jì)理論和技術(shù)的發(fā)展而不斷變化發(fā)展。在程序設(shè)計(jì)基礎(chǔ)課程中講授面向?qū)ο蟮木幊陶Z(yǔ)言如c++語(yǔ)言,既可以實(shí)現(xiàn)面向過程的數(shù)據(jù)結(jié)構(gòu),又能實(shí)現(xiàn)面向?qū)ο蟮臄?shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)課程采用面向?qū)ο蟮挠^點(diǎn)講授并以C++語(yǔ)言作為算法的描述工具,從而強(qiáng)化數(shù)據(jù)結(jié)構(gòu)基本知識(shí)和面向?qū)ο蟾呒?jí)程序設(shè)計(jì)基本能力的雙基訓(xùn)練以及實(shí)際動(dòng)手能力培養(yǎng)。在設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)實(shí)踐項(xiàng)目時(shí),將面向?qū)ο蟮某绦蛟O(shè)計(jì)思想、面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言和數(shù)據(jù)結(jié)構(gòu)課程教學(xué)內(nèi)容恰當(dāng)?shù)厝诤?,有效整合兩門課程中的重疊部分,突出各自的側(cè)重點(diǎn),符合當(dāng)前軟件設(shè)計(jì)思想和軟件開發(fā)趨勢(shì)。
4.4 加強(qiáng)課程中計(jì)算思維能力的培養(yǎng)
在程序設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)的教學(xué)方法上,將面向語(yǔ)法為中心的教學(xué)逐漸轉(zhuǎn)變?yōu)槊嫦騿栴}求解的教學(xué),從問題出發(fā)采用適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu),將其抽象成解決問題的算法描述,用程序設(shè)計(jì)語(yǔ)言實(shí)現(xiàn)問題求解,使課程從過去的僅講授孤立的知識(shí)點(diǎn),轉(zhuǎn)變?yōu)橹v授計(jì)算思維和問題求解的過程,從而達(dá)到突出思維方法訓(xùn)練的目的。在程序設(shè)計(jì)基礎(chǔ)和數(shù)據(jù)結(jié)構(gòu)授課時(shí)盡量將理論聯(lián)系實(shí)際,將知識(shí)點(diǎn)解釋和應(yīng)用為身邊容易理解的真實(shí)案例。例如,講“圖”時(shí),可以把現(xiàn)在流行的復(fù)雜網(wǎng)絡(luò)、社交網(wǎng)絡(luò)引入其中;講解“隊(duì)列”時(shí),可將春節(jié)買票引入其中,讓學(xué)生從身邊的例子理解理論知識(shí)的具體應(yīng)用。對(duì)有些案例可以提倡“一題多解”,不局限于一種數(shù)據(jù)結(jié)構(gòu)、解題思路和實(shí)現(xiàn)方法,通過一題多問、一題多解帶動(dòng)學(xué)生探索、比較、尋求更好的解決途徑,達(dá)到學(xué)生分析解決問題能力的提高和計(jì)算思維能力的培養(yǎng)。
4.5 提升教師能力,配備充足的上機(jī)輔導(dǎo)教師
學(xué)校要加強(qiáng)程序設(shè)計(jì)基礎(chǔ)與數(shù)據(jù)結(jié)構(gòu)課程相關(guān)授課教師整體能力的提升。教師不僅要掌握自己所教授課程的知識(shí),還要對(duì)該課程的前續(xù)及后續(xù)課程內(nèi)容有所了解,便于維護(hù)教學(xué)的整體秩序和融合學(xué)生的知識(shí)體系。同時(shí),教師要積極參與各種軟件大賽和企業(yè)培訓(xùn),將教授的理論知識(shí)和實(shí)際項(xiàng)目相結(jié)合,達(dá)到應(yīng)用知識(shí)解決復(fù)雜問題的目的。此外,兩門課程的上機(jī)實(shí)踐環(huán)節(jié)要配備足量的輔導(dǎo)教師,不讓學(xué)生輸在編程入門的起跑線上。
4.6 依托程序設(shè)計(jì)競(jìng)賽,提高學(xué)生的編程能力
依托全國(guó)軟件大賽、ACM大賽等程序設(shè)計(jì)競(jìng)賽,將競(jìng)賽題目引入程序設(shè)計(jì)基礎(chǔ)和數(shù)據(jù)結(jié)構(gòu)課堂中。此類題目強(qiáng)調(diào)考查學(xué)生對(duì)各種算法的應(yīng)用能力,綜合性較強(qiáng),非常適合輔助學(xué)生學(xué)習(xí)和體會(huì)數(shù)據(jù)結(jié)構(gòu)的妙用,提升學(xué)生分析和解決實(shí)際問題的能力,引導(dǎo)學(xué)生將所學(xué)知識(shí)準(zhǔn)確而靈活地運(yùn)用到實(shí)際生活中,大大提高學(xué)生的實(shí)踐動(dòng)手和程序設(shè)計(jì)能力,促進(jìn)其知識(shí)的融會(huì)貫通。另外,通過競(jìng)賽等多種活動(dòng)可以為學(xué)生提供展現(xiàn)程序設(shè)計(jì)能力的舞臺(tái),激發(fā)學(xué)生學(xué)習(xí)的主動(dòng)性,培養(yǎng)其計(jì)算思維能力。
例如,在教授程序設(shè)計(jì)基礎(chǔ)時(shí),講完邏輯表達(dá)式和多重循環(huán)結(jié)構(gòu)后,可以將大賽中的邏輯推理題目引入教學(xué)中并引出常見的解題方法和思路一枚舉法,從而加深對(duì)枚舉法的認(rèn)識(shí)。通過采用數(shù)據(jù)結(jié)構(gòu)中的雙向鏈表和線性數(shù)組兩種方式實(shí)現(xiàn)大賽中常見的約瑟夫環(huán)問題。
4.7 引入OJ平臺(tái)。加強(qiáng)課程實(shí)踐環(huán)節(jié)
引人在線判題(Online Judge,oJ)系統(tǒng),提高學(xué)生的實(shí)踐能力。能力需要以豐富的知識(shí)作為支撐,而實(shí)踐是能力賴以生長(zhǎng)的土壤。在OJ系統(tǒng)中,學(xué)生可以在線提交程序源代碼,系統(tǒng)對(duì)源代碼進(jìn)行編譯和執(zhí)行并通過預(yù)先設(shè)計(jì)的測(cè)試數(shù)據(jù)檢驗(yàn)程序源代碼的正確性。引入0J系統(tǒng)不僅可以輔助教師批改作業(yè),減輕教師工作壓力,還可以促使學(xué)生加強(qiáng)平時(shí)上機(jī)編程練習(xí),通過編程排名方式提高學(xué)生的學(xué)習(xí)興趣。OJ系統(tǒng)中擁有大量題庫(kù),可以讓學(xué)生進(jìn)行上機(jī)實(shí)踐,培養(yǎng)自身的計(jì)算思維能力,提高編程能力。0J系統(tǒng)不僅可以作為程序設(shè)計(jì)基礎(chǔ)課程的實(shí)踐平臺(tái),還可作為數(shù)據(jù)結(jié)構(gòu)課程的實(shí)踐平臺(tái)。
關(guān)鍵詞:應(yīng)用型人才;教學(xué)模式;軟件開發(fā);課程群
作者簡(jiǎn)介:劉書紅(1978-),女,吉林通榆人,吉林建筑工程學(xué)院城建學(xué)院,助教;劉清雪(1977-),女,吉林農(nóng)安人,吉林建筑工程學(xué)院城建學(xué)院,講師。(吉林?長(zhǎng)春?130111)
基金項(xiàng)目:本文系2010年吉林建筑工程學(xué)院城建學(xué)院教育教學(xué)研究項(xiàng)目(項(xiàng)目編號(hào):院科字2010010)的研究成果。
中圖分類號(hào):G647?????文獻(xiàn)標(biāo)識(shí)碼:A?????文章編號(hào):1007-0079(2012)25-0071-02
20世紀(jì)80年代以來,國(guó)際高教界逐漸形成了一股新的潮流,那就是普遍重視實(shí)踐教學(xué)、強(qiáng)化應(yīng)用型人才培養(yǎng)。國(guó)內(nèi)的諸多高校近年也紛紛在教育教學(xué)改革的探索中注重實(shí)踐環(huán)境的強(qiáng)化,教育部也批準(zhǔn)新升格了一些應(yīng)用型本科院校。這些院校要以體現(xiàn)時(shí)代精神和社會(huì)發(fā)展要求的人才觀、質(zhì)量觀和教育觀為先導(dǎo),培養(yǎng)具有較強(qiáng)社會(huì)適應(yīng)能力和競(jìng)爭(zhēng)能力的高素質(zhì)應(yīng)用型人才。
在計(jì)算機(jī)專業(yè)教學(xué)中,“高級(jí)語(yǔ)言程序設(shè)計(jì)”、“數(shù)據(jù)結(jié)構(gòu)”和“面向?qū)ο蟪绦蛟O(shè)計(jì)”三門課是計(jì)算機(jī)專業(yè)核心課的主要組成部分,構(gòu)成了一條以“數(shù)據(jù)結(jié)構(gòu)”為中心的課程鏈。目前中國(guó)信息產(chǎn)業(yè)快速發(fā)展,需要大量的應(yīng)用型IT人才,如何通過三門課的理論學(xué)習(xí)和實(shí)踐環(huán)節(jié)使學(xué)生獲得軟件開發(fā)的能力,成為社會(huì)需要的應(yīng)用型IT人才,為學(xué)生今后的工作打下牢固的基礎(chǔ),是應(yīng)用型本科院校計(jì)算機(jī)專業(yè)非常重要的課題。
一、三門課程介紹
“C語(yǔ)言程序設(shè)計(jì)”是計(jì)算機(jī)軟件專業(yè)中一門非常重要的專業(yè)基礎(chǔ)課,目的在于培養(yǎng)學(xué)生的程序設(shè)計(jì)理念、掌握程序設(shè)計(jì)的基本方法,為“數(shù)據(jù)結(jié)構(gòu)”、“面向?qū)ο蟪绦蛟O(shè)計(jì)”等后續(xù)課程打下堅(jiān)實(shí)的基礎(chǔ)。[1]
“數(shù)據(jù)結(jié)構(gòu)”是計(jì)算機(jī)程序設(shè)計(jì)的重要理論技術(shù)基礎(chǔ),是計(jì)算機(jī)專業(yè)的必修、主干課程之一,是“C語(yǔ)言程序設(shè)計(jì)”的后繼課、“面向?qū)ο蟪绦蛟O(shè)計(jì)”的前導(dǎo)課,也是其他計(jì)算機(jī)專業(yè)課的基礎(chǔ)。它主要研究的是計(jì)算機(jī)加工對(duì)象的邏輯結(jié)構(gòu)及其在計(jì)算機(jī)中的存儲(chǔ)結(jié)構(gòu)以及實(shí)現(xiàn)各種基本操作的算法,它為理解、應(yīng)用和開發(fā)程序提供技術(shù)和方法支持,是程序設(shè)計(jì)的基礎(chǔ)。[2]
“面向?qū)ο蟪绦蛟O(shè)計(jì)”是計(jì)算機(jī)類各專業(yè)的一門最重要的基礎(chǔ)課程,主要介紹C++語(yǔ)言的基本概念和面向?qū)ο蟪绦蛟O(shè)計(jì)方法與思想。目標(biāo)是培養(yǎng)學(xué)生成為用面向?qū)ο笏枷腴_發(fā)出具有可擴(kuò)展性、可維護(hù)性和可復(fù)用性的軟件系統(tǒng)的計(jì)算機(jī)專業(yè)創(chuàng)新型應(yīng)用人才。
二、教學(xué)中存在的主要問題
1.課程之間的銜接出現(xiàn)矛盾,導(dǎo)致學(xué)生前導(dǎo)課基礎(chǔ)差,后繼課沒信心
“C語(yǔ)言程序設(shè)計(jì)”是“數(shù)據(jù)結(jié)構(gòu)”的前導(dǎo)課,“數(shù)據(jù)結(jié)構(gòu)”又是“面向?qū)ο蟪绦蛟O(shè)計(jì)”的前導(dǎo)課,“面向?qū)ο蟪绦蛟O(shè)計(jì)”又是其他計(jì)算機(jī)專業(yè)課的前導(dǎo)課。每門前導(dǎo)課的知識(shí)點(diǎn)都是其后繼課的基礎(chǔ),課程間出現(xiàn)銜接矛盾是指后繼課用到的前導(dǎo)課的知識(shí)點(diǎn)前導(dǎo)課并沒有講解或講解不深入,導(dǎo)致銜接矛盾的原因有以下幾點(diǎn):
(1)教師把教學(xué)時(shí)間的大部分花費(fèi)在基本概念及簡(jiǎn)單程序的編寫上,對(duì)復(fù)雜知識(shí)點(diǎn)學(xué)習(xí)不夠,尤其是與后繼課程相關(guān)的復(fù)雜知識(shí)點(diǎn)的學(xué)習(xí)不夠,結(jié)果導(dǎo)致后繼課程的學(xué)習(xí)難上加難。比如,在學(xué)習(xí)“C語(yǔ)言程序設(shè)計(jì)”時(shí),多數(shù)老師只重視基本數(shù)據(jù)類型、基本控制語(yǔ)句。對(duì)于稍復(fù)雜的知識(shí)點(diǎn)指針、函數(shù)、結(jié)構(gòu)體等講解不夠細(xì)致,而這些稍復(fù)雜的知識(shí)點(diǎn)又是其后繼課“數(shù)據(jù)結(jié)構(gòu)”中頻繁使用的知識(shí)點(diǎn),因?yàn)榛局R(shí)不扎實(shí),再用心去聽效果也不明顯,慢慢地就失去了學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的信心。[3]
(2)每門課程都是各自為政,相互孤立,任課老師只管本門課的知識(shí)點(diǎn),并沒有適當(dāng)?shù)貙?duì)前導(dǎo)課相關(guān)知識(shí)進(jìn)行復(fù)習(xí),出現(xiàn)知識(shí)點(diǎn)斷帶時(shí),任課教師直接把責(zé)任推給前導(dǎo)課教師。
2.教學(xué)模式重理論,輕實(shí)踐
應(yīng)用型本科院校的計(jì)算機(jī)專業(yè)培養(yǎng)的軟件開發(fā)型人才最注重的就是實(shí)踐,對(duì)將要從事軟件開發(fā)的學(xué)生而言,只懂理論而動(dòng)手能力差意味著無法勝任以后的工作。傳統(tǒng)教學(xué)中的課程實(shí)驗(yàn)和課程設(shè)計(jì)并沒有完全發(fā)揮其提高動(dòng)手能力的作用,主要有以下原因:
第一,實(shí)踐選題一成不變,其內(nèi)容雖然能反映大綱要求但缺少實(shí)用性,結(jié)果導(dǎo)致學(xué)生對(duì)抽象概念的理解不深入,理論與實(shí)踐脫軌,無法調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性。例如,有關(guān)棧的實(shí)驗(yàn)練習(xí),學(xué)生只要實(shí)現(xiàn)入棧、出棧,判斷??盏炔僮鞯某绦蚓涂梢粤耍劣谌绾温?lián)系實(shí)際應(yīng)用于現(xiàn)實(shí)生活中卻是模糊不懂。
第二,傳統(tǒng)的實(shí)驗(yàn)教學(xué)形式基本上以模擬、驗(yàn)證為主,學(xué)生按照一定的要求、一定的形式進(jìn)行設(shè)計(jì),很少有讓學(xué)生自己發(fā)揮的設(shè)計(jì)題目,這種實(shí)踐模式能夠傳授知識(shí)但不利學(xué)生創(chuàng)新能力的培養(yǎng),學(xué)生的學(xué)習(xí)主動(dòng)性也沒有得到充分的發(fā)揮。
第三,學(xué)生遇到問題一般都是老師幫忙調(diào)試解決,學(xué)生獨(dú)立思考、獨(dú)立解決問題的能力沒有得到培養(yǎng)。
第四,學(xué)生更看重成績(jī)而忽略能力,許多學(xué)校并沒有把實(shí)踐環(huán)節(jié)的評(píng)定加入總成績(jī)內(nèi),導(dǎo)致大多數(shù)教師和學(xué)生都不太重視實(shí)驗(yàn),源于實(shí)驗(yàn)課的分?jǐn)?shù)并不會(huì)影響最后成績(jī)。
3.考試、考核機(jī)制不合理
大多數(shù)院校計(jì)算機(jī)專業(yè)相關(guān)課程的考試形式仍然采用全部試題筆試的考試方式,題型主要包括填空、選擇、程序設(shè)計(jì)等,平時(shí)成績(jī)(20%)+期末考試成績(jī)(80%)的形式對(duì)學(xué)生學(xué)習(xí)成績(jī)進(jìn)行評(píng)定。由于考試機(jī)制的制約,多數(shù)學(xué)生更加不重視實(shí)踐環(huán)節(jié),理論知識(shí)也是到期末才埋頭苦學(xué)、硬背,雖然有時(shí)候也能取得好的成績(jī),但這樣高分低技能的學(xué)生走上工作崗位后,計(jì)算機(jī)的操作技能根本不過關(guān),大學(xué)計(jì)算機(jī)課程的學(xué)習(xí)真的成了“紙上談兵”。
【關(guān)鍵字】 C/C++ 實(shí)踐教學(xué) 創(chuàng)新教材 上機(jī)實(shí)踐
一、引言
“C/C++程序設(shè)計(jì)”是理工科非計(jì)算機(jī)專業(yè)本科學(xué)生計(jì)算機(jī)系列課程的核心課程。內(nèi)容抽象,概念和語(yǔ)法規(guī)則較多,要求學(xué)生能夠編制有一定難度的實(shí)用程序,具有較高的上機(jī)實(shí)踐能力和水平。高校的教學(xué)不能停留在高中那樣以背誦為主的教學(xué)方式,應(yīng)該想辦法提高學(xué)生的思考能力、動(dòng)手能力、上機(jī)實(shí)踐能力。這對(duì)于剛從高中升到大學(xué)的大一學(xué)生,是一個(gè)艱巨的挑戰(zhàn)。對(duì)于該課程的任課教師,要求有更好的應(yīng)對(duì)思考與實(shí)踐。長(zhǎng)期以來,很多高校都在不斷地探索和實(shí)踐關(guān)于“C/C++程序設(shè)計(jì)”課程的教學(xué)改革,但仍然存在很多問題。以注重實(shí)踐教學(xué),更好地提高學(xué)生的動(dòng)手能力、編程能力為出發(fā)點(diǎn),對(duì)傳統(tǒng)教材內(nèi)容進(jìn)行了重新組織,由易而難,盡最大努力幫助學(xué)生在上機(jī)實(shí)踐中逐漸學(xué)習(xí)計(jì)算機(jī)編程的基本概念和方法,培養(yǎng)和提高編程實(shí)踐能力。“C/C++程序設(shè)計(jì)”教材正是在此理念基礎(chǔ)上編寫而成。
二、教材建設(shè)的思考與實(shí)現(xiàn)
應(yīng)用型本科生的C語(yǔ)言教學(xué),要注重學(xué)生的上機(jī)實(shí)踐能力的培養(yǎng),培養(yǎng)學(xué)生腳踏實(shí)地、嚴(yán)格細(xì)致的工作作風(fēng)、嚴(yán)密的邏輯思維能力,分析問題、解決問題的能力。作為學(xué)習(xí)效果的檢驗(yàn),多數(shù)高校要求學(xué)生參加全國(guó)高校計(jì)算機(jī)水平考試并獲得通過,很多學(xué)校將水平考試的分?jǐn)?shù)與學(xué)生最終的本科學(xué)位掛鉤。全國(guó)高校計(jì)算機(jī)水平考試是由各省市教育廳組織的計(jì)算機(jī)證書考試。廣東省每年舉行兩次,實(shí)行機(jī)考,概念部分只有四選一選擇題,占20分,編程部分為4-5題的編程題,占80分。從考試形式和分值比例就可以看出,水平考試很好地考核了學(xué)生們的實(shí)際動(dòng)手能力,突破了中國(guó)學(xué)生一貫死記硬背的應(yīng)試考試模式,具有非常重要的意義。廣東省的二級(jí)計(jì)算機(jī)水平考試只有C++,沒有C語(yǔ)言。為了兼顧C(jī)語(yǔ)言教學(xué)和計(jì)算機(jī)二級(jí)水平考試的要求,我們編寫了“C/C++程序設(shè)計(jì)”教材,已經(jīng)由清華大學(xué)出版社出版。
2.1 合理取舍教材內(nèi)容
C/C++語(yǔ)言的內(nèi)容非常繁雜,而作為學(xué)生來說能夠抓住主要問題,解決絕大部分問題,在獲得基礎(chǔ)知識(shí)和解決問題的基本能力之后,再深入細(xì)致地學(xué)習(xí)就容易得多。所以教材避開了一些偏和難的內(nèi)容。
輸入輸出方面,在比較了C的printf、scanf函數(shù)和C++的cin、cout對(duì)象的使用特點(diǎn)后,選擇了cin、cout來輸入輸出數(shù)據(jù),簡(jiǎn)化了輸入輸出格式,避免學(xué)生們?cè)谳斎胼敵龈袷椒矫婊ㄙM(fèi)太多的時(shí)間,影響基礎(chǔ)知識(shí)的學(xué)習(xí),這也滿足C++編程的需求。教材的所有例題和習(xí)題也采用cin、cout輸入輸出格式。
指針是C語(yǔ)言區(qū)別于其他高級(jí)語(yǔ)言的重要特色,教材介紹了指針的基本特性、與一般變量的區(qū)別和在數(shù)組、函數(shù)中的應(yīng)用后,沒有像一般教材那樣介紹鏈的概念、鏈的建立和刪除等應(yīng)用。一般來說這部分內(nèi)容屬于較復(fù)雜的編程應(yīng)用,在掌握了指針基本知識(shí)基礎(chǔ)后,再深入學(xué)習(xí)也不難。
從C的結(jié)構(gòu)體(適當(dāng)簡(jiǎn)化了結(jié)構(gòu)體的內(nèi)容)出發(fā),通過類比的方法引入C++的類的概念,然后用眾多具體例題講述了面向?qū)ο蟪绦蛟O(shè)計(jì)的封裝性、繼承性和多態(tài)性,建立起C++編程的基本概念。
2.2 循序漸進(jìn)安排教學(xué)內(nèi)容
教材以非傳統(tǒng)的組織結(jié)構(gòu)為創(chuàng)新點(diǎn),以全程伴隨上機(jī)實(shí)踐為特色,簡(jiǎn)潔、通俗、直觀、易懂地講述C/C++程序設(shè)計(jì)。
C語(yǔ)言的基礎(chǔ)知識(shí),包括數(shù)據(jù)類型、變量、表達(dá)式以及順序、分支、循環(huán)三大結(jié)構(gòu)語(yǔ)句及其編程[1-3]。這部分內(nèi)容是C/C++程序設(shè)計(jì)的基礎(chǔ)內(nèi)容,不打好這個(gè)基礎(chǔ),后面的學(xué)習(xí)幾乎無從談起。因此這部分內(nèi)容的掌握是非常重要的[1-3]。
教材在基礎(chǔ)知識(shí)內(nèi)容介紹方面打破傳統(tǒng)的內(nèi)容安排順序,以“C/C++語(yǔ)言概述”、“編程基礎(chǔ)Ⅰ”、“C語(yǔ)言基礎(chǔ)知識(shí)”、“編程基礎(chǔ)Ⅱ”和“編程進(jìn)階”五章,從簡(jiǎn)到難,循序漸進(jìn)地增加學(xué)習(xí)難度,從一開始學(xué)習(xí)就可以輔以上機(jī)練習(xí),使計(jì)算機(jī)――這個(gè)程序設(shè)計(jì)最好的老師全程伴隨學(xué)習(xí)者,發(fā)揮最大的作用。既最大化地調(diào)動(dòng)學(xué)生上機(jī)操作的積極性,又有助于各知識(shí)點(diǎn)的掌握以及學(xué)習(xí)興趣的培養(yǎng)和良好的學(xué)習(xí)習(xí)慣的養(yǎng)成。
內(nèi)容安排由簡(jiǎn)到難,逐步深入,免得學(xué)習(xí)者失去學(xué)習(xí)信心。一開始就使學(xué)習(xí)者可以上機(jī)實(shí)踐,之后全程理論和實(shí)踐互補(bǔ)學(xué)習(xí),利于掌握程序設(shè)計(jì)的技巧,提高編程能力。
6-9章介紹C語(yǔ)言的重點(diǎn)部分,包括數(shù)組、函數(shù)和指針。10-12章是提高部分,包括結(jié)構(gòu)體、類、文件系統(tǒng)等。
在引入類的概念之前,先講解了結(jié)構(gòu)數(shù)據(jù)類型的定義和使用,然后在結(jié)構(gòu)體的基礎(chǔ)上,引入類的概念,并仿照函數(shù)的三部曲講解類的三部曲,進(jìn)而介紹C++中面向?qū)ο蟪绦蛟O(shè)計(jì)的基本知識(shí)。
2.3 各部分知識(shí)點(diǎn)的系統(tǒng)化、條理化
知識(shí)點(diǎn)的適當(dāng)總結(jié)有利于學(xué)生們的理解、記憶和應(yīng)用,比如簡(jiǎn)單程序結(jié)構(gòu)三步驟、循環(huán)結(jié)構(gòu)三種形式、變量使用三步驟、函數(shù)三部曲、指針?biāo)拇蠊δ?、類三部曲、面向?qū)ο蟪绦蛟O(shè)計(jì)的三大特性。將相關(guān)知識(shí)點(diǎn)的特征與數(shù)字聯(lián)系起來,學(xué)生們能夠記憶、聯(lián)想相關(guān)內(nèi)容。
每章也對(duì)本章的知識(shí)點(diǎn)進(jìn)行了總結(jié),并列表指出經(jīng)常容易犯的錯(cuò)誤,對(duì)上機(jī)實(shí)踐很有幫助,全書最后還對(duì)各種數(shù)據(jù)類型和各種編程語(yǔ)言進(jìn)行了對(duì)比總結(jié)。
2.4 注重程序的動(dòng)態(tài)調(diào)試
學(xué)習(xí)基礎(chǔ)知識(shí),學(xué)習(xí)編程,從程序運(yùn)行細(xì)節(jié)到程序結(jié)構(gòu)的理解,都離不開對(duì)程序每一步運(yùn)行情況的了解。因此,學(xué)會(huì)動(dòng)態(tài)調(diào)試是學(xué)習(xí)C語(yǔ)言程序設(shè)計(jì)的重要手段。教材在第5章學(xué)習(xí)完基礎(chǔ)知識(shí)和第8章又學(xué)完數(shù)組和函數(shù)后,兩處增加了動(dòng)態(tài)調(diào)試的方法和多個(gè)實(shí)例。
動(dòng)態(tài)調(diào)試是綜合訓(xùn)練學(xué)生動(dòng)心、動(dòng)腦、動(dòng)手的一個(gè)過程,能夠真正調(diào)動(dòng)學(xué)生學(xué)習(xí)的主觀能動(dòng)性,提高發(fā)現(xiàn)問題、解決問題的實(shí)踐能力。
2.5 適應(yīng)學(xué)生的閱讀習(xí)慣
現(xiàn)在的年輕人,已經(jīng)是“讀圖”一代了。他們對(duì)于傳統(tǒng)教材的大段文字描述沒有多少耐心,故而我們?cè)趦?nèi)容上盡量減少大段的文字描述,對(duì)重點(diǎn)內(nèi)容加了陰影和警示,適時(shí)提出問題,講究版面編排,盡量將程序、運(yùn)行結(jié)果和相關(guān)解釋組織在一起,增加重點(diǎn)概念的圖解,更好地幫助學(xué)生們做最基本的實(shí)踐――讀書。
2.6 啟發(fā)學(xué)生學(xué)會(huì)編程
在學(xué)習(xí)基本編程知識(shí)后,進(jìn)行具體編程實(shí)踐是學(xué)習(xí)C/C++程序設(shè)計(jì)的重要任務(wù),而學(xué)習(xí)編程的過程,是從模仿開始到獨(dú)立完成程序設(shè)計(jì)[6]。教材增加了大量例題,引導(dǎo)學(xué)生自己學(xué)會(huì)如何編程,并且兩次集中講解和總結(jié)典型題目和經(jīng)典難題。第一次,在三大結(jié)構(gòu)講完后,講解了有關(guān)算法類程序設(shè)計(jì),總結(jié)一般編程方法和技巧;第二次,在數(shù)組、函數(shù)講完后,專設(shè)了第8章,本著“授人以魚、不如授人以漁”的思想,形象地稱之為“三根魚竿兒”。
第一根魚竿兒――順竿兒爬,主要講解編程思想,對(duì)一些感到無從下手的編程題,如何去思考?如何按照題目的敘述,把題目的敘述過程變換成程序的實(shí)現(xiàn)過程。
第二根魚竿兒――一節(jié)節(jié)加長(zhǎng),主要講解復(fù)雜程序的結(jié)構(gòu)化實(shí)現(xiàn),大程序的逐步完善猶如魚竿,要一節(jié)節(jié)加長(zhǎng),逐步完善程序代碼,化繁為簡(jiǎn),逐步完成復(fù)雜題目的編程。
第三根魚竿兒――盲人用桿兒步步試探,程序設(shè)計(jì)一般都要經(jīng)過動(dòng)態(tài)調(diào)試,檢查邏輯錯(cuò)誤,修改程序,完善程序,這樣才可以編制出好的程序。
2.7 配套的Flas設(shè)計(jì)
針對(duì)教材中學(xué)生們比較難以理解的概念,我們還采用Flas的方式進(jìn)行更為細(xì)致和形象的描述,比如三大循環(huán)結(jié)構(gòu)、函數(shù)、數(shù)組、指針和類等。通過幽默的動(dòng)畫表達(dá)晦澀的概念,增強(qiáng)學(xué)生們的記憶,同時(shí)活躍了課堂氣氛,提高了學(xué)生們的學(xué)習(xí)興趣。
三、結(jié)束語(yǔ)
《C/C++程序設(shè)計(jì)》凝聚了作者多年的教學(xué)實(shí)踐經(jīng)驗(yàn),在注重培養(yǎng)學(xué)生編程能力方面進(jìn)行了有益的嘗試,通過我校兩屆學(xué)生的使用,基本上實(shí)現(xiàn)了我們編寫教材的目的,學(xué)生們的編程能力有了明顯的提高,計(jì)算機(jī)水平考試成績(jī)也有較大的進(jìn)步。教材建設(shè)要結(jié)合學(xué)生的特點(diǎn),讓學(xué)生能看書、愛看書、看懂書,另外程序設(shè)計(jì)是一門實(shí)踐性很強(qiáng)的課程,不要忘了“計(jì)算機(jī)”,這個(gè)默默無聞、無所不能的老師。本書試圖讓學(xué)生最大程度的受益于計(jì)算機(jī)這個(gè)老師。使計(jì)算機(jī)――這個(gè)程序設(shè)計(jì)最好的老師全程伴隨學(xué)習(xí)者,發(fā)揮最大的作用。希望教材能使更多的老師和學(xué)生從中受益,有利于C/C++的教和學(xué)。
參 考 文 獻(xiàn)
[1]譚浩強(qiáng).《程序設(shè)計(jì)》(第四版)[M],北京:清華大學(xué)出版社,2010.
[2]王敬華.《C語(yǔ)言程序設(shè)計(jì)教程》(第二版)[M],北京:清華大學(xué)出版社,2010.
[3]王麗娟,榮政等.《C程序設(shè)計(jì)》[M],西安:西安電子科技大學(xué)出版社,2000.
[4]張正明,盧晶琦,王麗娟等.《C/C++程序設(shè)計(jì)》[M],北京:清華大學(xué)出版社,2013.
關(guān)鍵詞:C語(yǔ)言程序設(shè)計(jì);教學(xué)改革;并重;分階段;側(cè)重點(diǎn)
基金項(xiàng)目:河北北方學(xué)院教育教學(xué)改革課題(項(xiàng)目編號(hào):JG201142);張家口市科學(xué)技術(shù)研究與發(fā)展計(jì)劃項(xiàng)目(項(xiàng)目編號(hào):1311020C); 科技部項(xiàng)目“農(nóng)村醫(yī)療衛(wèi)生知識(shí)庫(kù)及遠(yuǎn)程醫(yī)學(xué)服務(wù)系統(tǒng)及應(yīng)用”(項(xiàng)目編號(hào):2012BAH05F04).
中圖分類號(hào):G642.0 文獻(xiàn)標(biāo)識(shí)碼:A
一、引 言
《C語(yǔ)言程序設(shè)計(jì)》是高校計(jì)算機(jī)類專業(yè)最先開設(shè)的一門程序設(shè)計(jì)課程[1,2]。多數(shù)學(xué)生在此之前缺乏軟件開發(fā)知識(shí),更沒有動(dòng)手編程經(jīng)歷。在此情況下,該課程的教學(xué)改革不能像有些學(xué)者提出的那樣一改到底,由過去“重語(yǔ)法輕實(shí)踐”轉(zhuǎn)而走向“輕語(yǔ)法重實(shí)踐”,從一個(gè)極端轉(zhuǎn)向另一個(gè)極端[3-5]。在沒有積累必備知識(shí)的情況下就要求學(xué)生動(dòng)手編寫程序,違反人類認(rèn)知規(guī)律,最終會(huì)導(dǎo)致學(xué)生學(xué)得一頭霧水,進(jìn)而產(chǎn)生畏難情緒,學(xué)習(xí)熱情受挫,對(duì)后續(xù)專業(yè)課程的學(xué)習(xí)產(chǎn)生不良影響?!捌ぶ淮妫珜⒀筛健保晕覀儜?yīng)該讓學(xué)生在開始學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言時(shí)就打下堅(jiān)實(shí)的理論基礎(chǔ),養(yǎng)成良好的編程習(xí)慣,在此基礎(chǔ)上對(duì)其適當(dāng)提高要求,從而為其將來學(xué)習(xí)其它程序設(shè)計(jì)語(yǔ)言或從事軟件開發(fā)工作奠定基礎(chǔ)。
二、教改思想
本教改思想強(qiáng)調(diào)理論與實(shí)踐并重,不同教學(xué)階段側(cè)重點(diǎn)不同。初期重視基本理論、語(yǔ)法的教學(xué),后期則側(cè)重于程序設(shè)計(jì)的指導(dǎo)。
(一) 理論知識(shí)
理論知識(shí)的教學(xué)從學(xué)期初的詳細(xì)講解到點(diǎn)撥指導(dǎo),直至不單獨(dú)講解,而是讓學(xué)生在做程序設(shè)計(jì)過程中琢磨理解。對(duì)于重點(diǎn)、難點(diǎn)及易錯(cuò)語(yǔ)法則需通過案例反復(fù)強(qiáng)化,以便學(xué)生熟練掌握運(yùn)用。
(二) 程序設(shè)計(jì)
程序設(shè)計(jì)要遵循由易到難的規(guī)律,從模仿到自主編寫簡(jiǎn)單的小程序,再到編寫較復(fù)雜的大型程序,最后合作完成綜合型的課程設(shè)計(jì)。
總之,本教改思想強(qiáng)調(diào)語(yǔ)法理論和程序設(shè)計(jì)并重,編程中滲透理論,理論中摻雜編程,相互促進(jìn)。最終培養(yǎng)學(xué)生的編程思想,養(yǎng)成良好的編程習(xí)慣,提高學(xué)生的編程能力。
三、教學(xué)過程
根據(jù)學(xué)生認(rèn)知和接受知識(shí)的規(guī)律,本教改方案將教學(xué)過程分為四個(gè)階段。
(一)側(cè)重理論教學(xué)階段
在學(xué)期初理論教學(xué)課堂上,教師需詳細(xì)講解C語(yǔ)言的基本語(yǔ)法理論知識(shí),并輔以具體范例進(jìn)行演示,讓學(xué)生對(duì)相關(guān)理論知識(shí)有所掌握,在實(shí)驗(yàn)課上,學(xué)生應(yīng)在教師指導(dǎo)下模仿案例編寫簡(jiǎn)單的程序。在本階段學(xué)生需重點(diǎn)掌握基本的語(yǔ)法知識(shí),包括數(shù)據(jù)類型、輸入輸出函數(shù)、三種基本結(jié)構(gòu)等,以便為后續(xù)程序設(shè)計(jì)奠定堅(jiān)實(shí)的基礎(chǔ)。
如在講解if語(yǔ)句時(shí),引入將三個(gè)數(shù)a、b和c按從小到大的順序輸出的例子。首先利用課件講解if語(yǔ)句的功能、用法等知識(shí);然后引入例題的算法分析;最后用if語(yǔ)句將算法表示出來。比較兩個(gè)數(shù)的大小時(shí)會(huì)有a>b和a≤b兩種情況。我們只給學(xué)生詳細(xì)講解當(dāng)a>b時(shí),比較三個(gè)數(shù)大小的算法思想,然后學(xué)生就可以模仿給出a≤b的情況下,三個(gè)數(shù)如何比較大小,這樣就建立起了分析問題的思路,完整的程序需要學(xué)生在實(shí)驗(yàn)課上自己模仿寫出,并調(diào)試運(yùn)行,由此學(xué)生就會(huì)更好地掌握if語(yǔ)句的使用。
(二)理論與程序設(shè)計(jì)同步階段
在學(xué)生有了一定的理論基礎(chǔ)后,要適當(dāng)加快理論授課的進(jìn)度,為后期課程設(shè)計(jì)留有足夠的時(shí)間,在此期間要相應(yīng)地增加編程練習(xí),同時(shí)不斷提高程序的難度,以此訓(xùn)練學(xué)生的動(dòng)手編程能力,并養(yǎng)成勤于動(dòng)腦、動(dòng)手的良好編程習(xí)慣。
本階段涉及的主要知識(shí)點(diǎn)有數(shù)組、指針及結(jié)構(gòu)體等。在這一階段的學(xué)習(xí)過程中,要求學(xué)生提前預(yù)習(xí),教師減少理論知識(shí)的講解,上課時(shí)先簡(jiǎn)單講解基本語(yǔ)法,重點(diǎn)解釋學(xué)生自學(xué)時(shí)遇到的不懂、不理解的知識(shí)點(diǎn);然后布置任務(wù),安排與本次課需要掌握的內(nèi)容難易程度適當(dāng)?shù)陌咐寣W(xué)生通過自己動(dòng)手編程完成。
例如在講解結(jié)構(gòu)體時(shí),要求學(xué)生提前預(yù)習(xí),初步理解結(jié)構(gòu)體類型定義、結(jié)構(gòu)體變量、結(jié)構(gòu)體數(shù)組及結(jié)構(gòu)體指針變量的相關(guān)知識(shí)。課上粗略講解基本知識(shí)點(diǎn),而著重講解學(xué)生迷惑的問題,如結(jié)構(gòu)體的本質(zhì),強(qiáng)調(diào)其是一種數(shù)據(jù)類型而非變量。引入案例時(shí),先由學(xué)生提出在描述一個(gè)學(xué)生的基本信息時(shí)需體現(xiàn)的屬性有:姓名、性別、學(xué)習(xí)成績(jī)等內(nèi)容,這時(shí)我們可以定義一個(gè)描述學(xué)生基本信息的結(jié)構(gòu)體,然后定義兩個(gè)結(jié)構(gòu)體變量,對(duì)每個(gè)結(jié)構(gòu)體變量的學(xué)習(xí)成績(jī)求總分,并比較兩個(gè)結(jié)構(gòu)體變量總分的大小關(guān)系。接下來學(xué)生在實(shí)驗(yàn)課上完成:設(shè)計(jì)簡(jiǎn)單學(xué)生檔案管理程序,對(duì)10名學(xué)生的總分進(jìn)行排序,要求使用結(jié)構(gòu)體。由于具備了相關(guān)知識(shí),并已理解老師所講實(shí)例,所以學(xué)生能夠輕松掌握。
(三)編寫程序階段
本階段的教學(xué)任務(wù)是教師在課堂上確立較復(fù)雜的實(shí)戰(zhàn)題目,引導(dǎo)學(xué)生分析、設(shè)計(jì),然后由學(xué)生自主進(jìn)行程序的編寫工作。在此過程中,學(xué)生是主體,教師只起輔助指導(dǎo)作用。
涉及的主要知識(shí)是文件和位運(yùn)算,對(duì)于這兩部分知識(shí)滲透到程序設(shè)計(jì)和調(diào)試過程中講解。在實(shí)踐過程中強(qiáng)化學(xué)生對(duì)難重點(diǎn)、易錯(cuò)語(yǔ)法知識(shí)的理解和運(yùn)用。對(duì)具有共性的編程錯(cuò)誤給學(xué)生做重點(diǎn)展示,讓學(xué)生自己發(fā)現(xiàn)錯(cuò)誤并改正,達(dá)到既鍛煉了動(dòng)手能力又不輕視語(yǔ)法知識(shí)的目的。
如在講文件時(shí),可以要求學(xué)生輸入某公司30名職工的基本信息到文件newcp.txt中。要解決這個(gè)題目,首先引導(dǎo)學(xué)生分析出程序所要完成的功能、涉及的知識(shí)點(diǎn)(如文件指針變量、結(jié)構(gòu)體數(shù)組、循環(huán)結(jié)構(gòu)等內(nèi)容)。然后讓學(xué)生自己用流程圖將算法表示出來,最后著手編程實(shí)現(xiàn)。
在學(xué)生動(dòng)手完成程序后,要總結(jié)他們?cè)诰幊踢^程中容易犯的錯(cuò)誤,例如:打開文件時(shí)沒有對(duì)是否成功進(jìn)行判斷,導(dǎo)致程序出現(xiàn)異常;各種庫(kù)函數(shù)調(diào)用時(shí)參數(shù)不正確等。教師展示這些錯(cuò)誤,并讓學(xué)生自己予以糾正。由于有了前面編程過程中的經(jīng)驗(yàn)和教訓(xùn),學(xué)生對(duì)這些錯(cuò)誤和重點(diǎn)、難點(diǎn)語(yǔ)法就會(huì)有更深的認(rèn)識(shí),從而達(dá)到了在實(shí)踐中掌握語(yǔ)法的目的。
(四)課程設(shè)計(jì)階段
利用學(xué)期后三周時(shí)間給學(xué)生安排一個(gè)較大型的C語(yǔ)言程序設(shè)計(jì)任務(wù)。本課程知識(shí)掌握程度通過課程設(shè)計(jì)的方式考查。
教師首先將班內(nèi)同學(xué)按不超過3人的規(guī)模分組,并要求每組確定一個(gè)課程設(shè)計(jì)題目,如五子棋、貪吃蛇、掃雷、學(xué)籍管理系統(tǒng)等。設(shè)計(jì)題目可以由教師指定,亦可自擬。之后將課程設(shè)計(jì)按功能分解為不同模塊,由不同學(xué)生分別編寫。最后,大家通過查閱課外資料、請(qǐng)教老師、互相探討等多種方式和途徑共同協(xié)作完成整個(gè)課程設(shè)計(jì)。作品展示時(shí),每位同學(xué)都要闡述自己在設(shè)計(jì)中的貢獻(xiàn),根據(jù)所做貢獻(xiàn)、能力和態(tài)度,教師予以評(píng)分,這一分?jǐn)?shù)在本門課程的最終成績(jī)中所占比重為70%,其余比重由學(xué)生的出勤和平時(shí)實(shí)驗(yàn)報(bào)告成績(jī)構(gòu)成。
課程設(shè)計(jì)就是對(duì)學(xué)生的學(xué)習(xí)成果進(jìn)行驗(yàn)收,通過這樣一個(gè)小型的完整程序設(shè)計(jì),學(xué)生可以實(shí)際應(yīng)用所學(xué)知識(shí),同時(shí)也增強(qiáng)了學(xué)生的成就感,既培養(yǎng)了學(xué)生的編程思想,又培養(yǎng)了他們?cè)诠ぷ髦械暮献饕庾R(shí)和團(tuán)隊(duì)精神,并有利于后續(xù)專業(yè)課程的學(xué)習(xí)。
四、教學(xué)中需特別注意的事項(xiàng)
(一)明確學(xué)習(xí)C語(yǔ)言的重要性
在正式講授課程內(nèi)容之前,要從C語(yǔ)言的發(fā)展歷程、應(yīng)用領(lǐng)域和就業(yè)前景等方面闡述《C語(yǔ)言程序設(shè)計(jì)》課程的重要性,以此激發(fā)學(xué)生學(xué)習(xí)興趣,增加內(nèi)在動(dòng)力。
(二)增加算法課教學(xué)
在系統(tǒng)講授C語(yǔ)言基本知識(shí)以前,給學(xué)生增加一節(jié)算法課是非常必要的,因?yàn)閷W(xué)生要想利用C語(yǔ)言解決實(shí)際問題,就必須保持清醒的頭腦和對(duì)求解問題的準(zhǔn)確分析能力,而這就要求他們熟練掌握算法設(shè)計(jì)、算法復(fù)雜度分析等知識(shí)。
(三)滲透軟件工程思想
在后期的課程設(shè)計(jì)階段,我們可以引入適量的軟件工程知識(shí)。對(duì)于軟件開發(fā)中的各階段無需一一詳細(xì)講解,但可選取其中部分內(nèi)容,如可挑選需求分析,總體設(shè)計(jì)及軟件測(cè)試中的一些經(jīng)典的方法。通過實(shí)踐培養(yǎng)學(xué)生的軟件工程思想,為學(xué)生的后續(xù)發(fā)展奠定良好基礎(chǔ)。
五、結(jié)束語(yǔ)
C語(yǔ)言是一門基礎(chǔ)程序設(shè)計(jì)語(yǔ)言,在計(jì)算機(jī)類專業(yè)學(xué)生所修課程中占據(jù)舉足輕重的地位。提高教學(xué)質(zhì)量,達(dá)到良好教學(xué)效果,使學(xué)生掌握并能熟練使用C語(yǔ)言是我們的主要教學(xué)目標(biāo)。近兩年的教學(xué)實(shí)踐證明,“理論與實(shí)踐并重,不同階段不同側(cè)重”的教學(xué)理念取得了預(yù)期效果,不僅改變了學(xué)生過去“會(huì)學(xué)不會(huì)用”的狀態(tài),而且避免了輕理論重實(shí)踐導(dǎo)致的基礎(chǔ)不牢弊端。
參考文獻(xiàn):
[1] 譚浩強(qiáng). C語(yǔ)言程序設(shè)計(jì)[M],清華大學(xué)出版社,2005.
[2] 趙喜清. C語(yǔ)言程序設(shè)計(jì)[M],中國(guó)農(nóng)業(yè)科學(xué)技術(shù)出版社,2008.
[3] 盛波. 項(xiàng)目教學(xué)法在C語(yǔ)言教學(xué)改革實(shí)踐中的探索[J]. 科技風(fēng),2010,4:26.
關(guān)鍵詞 高職教育 C語(yǔ)言 結(jié)構(gòu)化編程 互聯(lián)網(wǎng)
如何提高高職計(jì)算機(jī)類專業(yè)學(xué)生非圖形模式下的結(jié)構(gòu)化編程能力,是高職計(jì)算機(jī)教育中的一個(gè)普遍問題。作者通過三年的努力,對(duì)“C語(yǔ)言程序設(shè)計(jì)”課程在教學(xué)內(nèi)容、教材建設(shè)、實(shí)訓(xùn)設(shè)計(jì)、網(wǎng)站建設(shè)和考核方式等諸多方面,進(jìn)行了大膽的改革和探索,將電子教材、電子教案、學(xué)習(xí)論壇、編程工具、學(xué)習(xí)資料等,整合成為學(xué)習(xí)網(wǎng)站,在教學(xué)過程中通過論壇程序不同版本,實(shí)施案例驅(qū)動(dòng),課后通過QQ群進(jìn)行輔導(dǎo)答疑,通過論壇、電子郵件進(jìn)行作業(yè)提交批改,建立了基于案例驅(qū)動(dòng)的結(jié)構(gòu)化編程教學(xué)模式。本文具體論述了基于案例驅(qū)動(dòng)的高職C語(yǔ)言結(jié)構(gòu)化編程教學(xué)的過程和方法。
1 教學(xué)內(nèi)容
在課程設(shè)計(jì)上,針對(duì)高職計(jì)算機(jī)專業(yè)學(xué)制短,技能要求高的特點(diǎn),提出了“一條線兩階段,三結(jié)構(gòu)四循環(huán)”的教學(xué)模式。
“一條線”是指在一年級(jí)的編程教學(xué)課中,貫徹C語(yǔ)言一條線。曾經(jīng)有一種觀點(diǎn),認(rèn)為高職計(jì)算機(jī)專業(yè)的編程語(yǔ)言教學(xué),直接從面向?qū)ο笳Z(yǔ)言開始學(xué)習(xí),可以節(jié)約時(shí)間。但是,70%的企業(yè)依然要求學(xué)生具備面向過程的結(jié)構(gòu)化編程能力。考慮到企業(yè)的需求,結(jié)合后續(xù)的課程安排,我們決定在一年級(jí)的課程安排上,貫徹C語(yǔ)言“一條線”,即在第一學(xué)期,開設(shè)“程序設(shè)計(jì)基礎(chǔ)”,第二學(xué)期,開設(shè)面向過程的“C語(yǔ)言程序設(shè)計(jì)”。
“兩階段’指課程安排分為“程序設(shè)計(jì)基礎(chǔ)”和“C語(yǔ)言程序設(shè)計(jì)”兩個(gè)階段。“程序設(shè)計(jì)基礎(chǔ)”解決程序的基本結(jié)構(gòu),重點(diǎn)在建立學(xué)生的結(jié)構(gòu)化程序的基本框架和概念;以C語(yǔ)言為基本語(yǔ)言,使學(xué)生能有實(shí)際操作的平臺(tái),但準(zhǔn)確把握“把C語(yǔ)言作為偽語(yǔ)言”的原則,不讓學(xué)生陷入C語(yǔ)言多變的泥淖,而把注意力放在結(jié)構(gòu)化程序的基本結(jié)構(gòu)上?!癈語(yǔ)言程序設(shè)計(jì)”放在解決C語(yǔ)言的使用上,把握“C語(yǔ)言”是編程工具而不是研究對(duì)象的原則,根據(jù)企業(yè)的編程規(guī)范,對(duì)“C語(yǔ)言”進(jìn)行簡(jiǎn)化,重點(diǎn)是如何使用C語(yǔ)言解決一般復(fù)雜程度的結(jié)構(gòu)化編程問題。
“三結(jié)構(gòu)”是指在一年的學(xué)習(xí)中,學(xué)生要學(xué)習(xí)三個(gè)成績(jī)管理軟件的編程,分別是基于一維數(shù)組、二維數(shù)組和動(dòng)態(tài)結(jié)構(gòu)數(shù)組。從企業(yè)實(shí)際應(yīng)用來看,動(dòng)態(tài)空間的使用,可以用動(dòng)態(tài)數(shù)組解決。因此我們?nèi)サ袅随湵?,重點(diǎn)是讓學(xué)生寫出有工程實(shí)際意義的結(jié)構(gòu)化程序。
“四循環(huán)”是指編寫基于“三結(jié)構(gòu)”的每一個(gè)成績(jī)管理軟件過程中,教師四個(gè)以上的程序版本,引導(dǎo)學(xué)生改寫、增加函數(shù),讓學(xué)生直觀地看到軟件的功能是如何一步一步構(gòu)建起來的。
結(jié)構(gòu)化程序設(shè)計(jì)的教學(xué)中,如何讓學(xué)生建立起結(jié)構(gòu)化程序的框架是很困難的。一個(gè)簡(jiǎn)單的成績(jī)管理軟件,代碼就超過300行。對(duì)初學(xué)者來說,看懂超過100行的程序就需要很長(zhǎng)時(shí)間,學(xué)生又如何能在短短的課堂時(shí)間里通過增加/改寫函數(shù)來增加功能呢?這也就是很多學(xué)生學(xué)完了C語(yǔ)言程序設(shè)計(jì),依然不能編寫一個(gè)簡(jiǎn)單的應(yīng)用程序的主要原因。我們發(fā)現(xiàn)通過論壇程序版本,利用工具軟件BeyondCompare,比較不同的程序版本之間的差異,可以讓學(xué)生直觀地看到軟件的功能是如何一步一步構(gòu)建起來的,如圖1所示。程序的第一個(gè)版本,就是一個(gè)主函數(shù),不超過10行,只顯示程序的幾項(xiàng)功能菜單,學(xué)生很容易理解,然后通過第二個(gè)、第三個(gè)版本,每一個(gè)版本實(shí)現(xiàn)或改進(jìn)一個(gè)菜單的功能,直到最后版本。
通過圖1,我們可以看到程序功能的增加是由哪些代碼實(shí)現(xiàn)的,而通過不斷反復(fù)的比較,學(xué)生就可以掌握結(jié)構(gòu)化程序設(shè)計(jì)的過程和方法。
在教學(xué)過程中,通過比較版本,讓學(xué)生直觀地看到復(fù)雜的程序功能是如何由簡(jiǎn)單的函數(shù)一個(gè)一個(gè)構(gòu)成的。學(xué)生經(jīng)過“程序設(shè)計(jì)基礎(chǔ)”的課程設(shè)計(jì),基本掌握主函數(shù)與模塊函數(shù)的作用和相互關(guān)系,可以看懂超過100行的C語(yǔ)言源程序,理解基于一維數(shù)組的成績(jī)管理系統(tǒng);在“C語(yǔ)言程序設(shè)計(jì)”的課程設(shè)計(jì)中,學(xué)生對(duì)主函數(shù)與模塊函數(shù)的理解更加深入,可以看懂超過300行的C語(yǔ)言源程序,理解基于動(dòng)態(tài)結(jié)構(gòu)數(shù)組的成績(jī)管理系統(tǒng),掌握主函數(shù)的設(shè)計(jì)方法,并按照規(guī)范的格式寫出自己的函數(shù)。回想三年前,因?yàn)闆]有采用這種方法,只要是超過20行的程序,學(xué)生就普遍反映看不懂。由此可見,采用新的方法后,學(xué)生編程能力的提高十分明顯。
2 教材建設(shè)
2004年9月清華大學(xué)出版社出版了作者主編的21世紀(jì)高職高專規(guī)劃教材《程序設(shè)計(jì)基礎(chǔ)》,教材主要在三個(gè)方面進(jìn)行了改革。
(1)強(qiáng)調(diào)把生活中的問題轉(zhuǎn)化為程序的能力,使學(xué)生真正能夠編寫實(shí)用的程序
在教材編寫思想上,重點(diǎn)放在培養(yǎng)學(xué)生把生活中的問題轉(zhuǎn)變成為程序并進(jìn)行處理的能力,強(qiáng)調(diào)轉(zhuǎn)變講授思路,推行引導(dǎo)學(xué)生首先想清楚“我要做什么?”,然后才教給學(xué)生“如何做”,最后上機(jī)進(jìn)行驗(yàn)證的三步教學(xué)法。
在教材的編寫風(fēng)格上,對(duì)全書所有的例題進(jìn)行了通盤的考慮,在循環(huán)、數(shù)組、函數(shù)和結(jié)構(gòu)化設(shè)計(jì)等單元,所有的例子都有前后的聯(lián)系,強(qiáng)調(diào)內(nèi)容的前后銜接,特別注意工程規(guī)范的引入,在變量的命名、程序格式方面,均按工程要求進(jìn)行。在案例選擇上,全部采用工程實(shí)際和實(shí)際生活中的案例。
(2)提出了以“三大區(qū)域”為特色的c程序的基本框架
通過把一個(gè)基本的C程序從上到下分成預(yù)處理區(qū)、變量聲明區(qū)、執(zhí)行語(yǔ)句區(qū)“三大區(qū)域”為特色的C程序的基本框架,讓學(xué)生樹立正確的程序格式與規(guī)范?!叭髤^(qū)域”概念的提出,明確規(guī)定了程序的基本框架,讓學(xué)生從一開始就按固定的格式進(jìn)行編程,養(yǎng)成良好的編程習(xí)慣。
(3)提出了使用函數(shù)的“三大步九要素”的基本方法,建立使用函數(shù)的清晰框架
我們提出的使用函數(shù)的“三大步九要素”的基本方法,在教學(xué)中取得了很好的效果。
所謂“三大步”,是指我們?cè)谑褂米远x的函數(shù)時(shí),對(duì)函數(shù)進(jìn)行聲明、定義和調(diào)用。三大步按順序進(jìn)行。
所謂“九要素”,是分別指函數(shù)聲明、定義、調(diào)用各有三要素共九點(diǎn):函數(shù)聲明的三要素:返回值的類型、函數(shù)的名字、形式參數(shù)。函數(shù)定義的三要素:形式參數(shù)、功能、返回值。函數(shù)調(diào)用的三要素:名字、實(shí)際參數(shù)、返回值。通過對(duì)“九要素”的理解掌握,學(xué)生能夠建立起使用函數(shù)的清晰框架。
3 實(shí)訓(xùn)設(shè)計(jì)
對(duì)高職學(xué)小的技能培養(yǎng),實(shí)訓(xùn)是很重要的環(huán)節(jié)。我們采用了項(xiàng)目驅(qū)動(dòng)的思想來設(shè)計(jì)實(shí)訓(xùn)項(xiàng)目,每一單元的實(shí)訓(xùn),都是構(gòu)成最終程序的不同版本,在“程序設(shè)計(jì)基礎(chǔ)”頭程序版本8個(gè),“C語(yǔ)言程序設(shè)計(jì)”共程序版本10個(gè),構(gòu)成了實(shí)用的軟件框架,學(xué)生相當(dāng)于參與了一個(gè)中等復(fù)雜程度的軟件開發(fā),積累了經(jīng)驗(yàn)。在今后的實(shí)際工作中,完全可以以此為模板,進(jìn)行結(jié)構(gòu)化程序的開發(fā)。
4 網(wǎng)站建設(shè)
利用互聯(lián)網(wǎng)技術(shù),建立基于互聯(lián)網(wǎng)的學(xué)習(xí)資源。2003年建立了“光華之窗”教學(xué)網(wǎng)站,在網(wǎng)站平臺(tái)上,將電子教材、電子教案、學(xué)習(xí)論壇,編程工具、學(xué)習(xí)資料等,整合成為學(xué)習(xí)網(wǎng)站,設(shè)計(jì)了“程序設(shè)計(jì)基礎(chǔ)”、“C語(yǔ)言程序設(shè)計(jì)”教學(xué)論壇,兩年來積累了完整的教學(xué)過程資料??梢哉f,網(wǎng)站的建設(shè)和運(yùn)行,為課程的質(zhì)量提供了保證,避免了“課隨老師走”的問題。
5 考核方式
關(guān)鍵詞:C語(yǔ)言程序設(shè)計(jì);教與學(xué);學(xué)習(xí)理論;教學(xué)設(shè)計(jì)
中圖分類號(hào):G712 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1674-9324(2014)09-0156-02
一、引言
C語(yǔ)言作為一門出色的程序設(shè)計(jì)語(yǔ)言,既有高級(jí)語(yǔ)言的特點(diǎn),又有匯編語(yǔ)言的特點(diǎn)。它以精練、靈活、可移植性好、應(yīng)用領(lǐng)域廣泛、目標(biāo)程序效率高而著稱。在高職院校中,C語(yǔ)言程序設(shè)計(jì)作為計(jì)算機(jī)應(yīng)用專業(yè)及相關(guān)專業(yè)的專業(yè)必修課,也是學(xué)生學(xué)習(xí)程序設(shè)計(jì)的入門課程。它在程序員的學(xué)習(xí)中起著非常重要的基礎(chǔ)作用。
二、C語(yǔ)言教學(xué)現(xiàn)狀分析
作為以重點(diǎn)培養(yǎng)學(xué)生技術(shù)應(yīng)用能力的高職院校,C語(yǔ)言程序設(shè)計(jì)作為一門理論性較強(qiáng)的課程,在實(shí)際教學(xué)中,將知識(shí)轉(zhuǎn)化為能力的教學(xué)效果往往并不理想。主要體現(xiàn)在C語(yǔ)言煩瑣的各種語(yǔ)言細(xì)節(jié)和抽象的設(shè)計(jì)理論上,學(xué)生在接觸大量難以記憶的概念、名詞和規(guī)則時(shí)常常會(huì)感到枯燥乏味。對(duì)于抽象的程序設(shè)計(jì)理論,不能較好地建立算法和基本編程思路。學(xué)生在獨(dú)立上機(jī)編程時(shí),常常感到無從下手,在調(diào)試程序中,由于效率較低,很難從學(xué)習(xí)中體會(huì)到成就感。很快學(xué)生對(duì)這門課程失去了興趣,喪失了學(xué)習(xí)信心。因此想要C語(yǔ)言教學(xué)中,收到良好的教學(xué)效果,就需要加大對(duì)C語(yǔ)言程序設(shè)計(jì)的教學(xué)內(nèi)容以及教學(xué)方法好好研究。本文將通過針對(duì)C語(yǔ)言中不同的教學(xué)內(nèi)容,采用不用的教育學(xué)習(xí)理論,探索相應(yīng)的教學(xué)方法,重點(diǎn)培養(yǎng)學(xué)生通過C語(yǔ)言的學(xué)習(xí),掌握程序設(shè)計(jì)的基本方法、基本思路和基本技術(shù)。讓C語(yǔ)言程序設(shè)計(jì)課程更加符合高職教育的目的。
三、幾種教學(xué)系統(tǒng)設(shè)計(jì)的應(yīng)用
1.以“教”為主的教學(xué)系統(tǒng)設(shè)計(jì)應(yīng)用。以“教”為主的教學(xué)設(shè)計(jì)理論和方法經(jīng)過幾十年來眾多專家的深入研究與發(fā)展,已形成一套完整嚴(yán)密的理論體系。主要基于行為主義學(xué)習(xí)理論和認(rèn)知學(xué)習(xí)理論,教學(xué)設(shè)計(jì)的焦點(diǎn)在教學(xué)上,強(qiáng)調(diào)教師的主導(dǎo)作用,突出循序漸進(jìn),按部就班,精密嚴(yán)密的應(yīng)用系統(tǒng)方法對(duì)教學(xué)進(jìn)行設(shè)計(jì)。特點(diǎn)是有利于教師主導(dǎo)地位的發(fā)揮,教師把握整個(gè)教學(xué)過程,它適用于基礎(chǔ)知識(shí)和系統(tǒng)知識(shí)的掌握和傳授,有利于教學(xué)目標(biāo)的完成。
C語(yǔ)言中基本知識(shí)的內(nèi)容比較適合此種教學(xué)設(shè)計(jì)模式,比如C語(yǔ)言概述、C語(yǔ)言的數(shù)據(jù)結(jié)構(gòu)類型、C語(yǔ)言的基本運(yùn)算符及表達(dá)式等內(nèi)容。教師依據(jù)教學(xué)大綱,把教學(xué)內(nèi)容細(xì)分為知識(shí)點(diǎn),確定各知識(shí)點(diǎn)的學(xué)習(xí)水平,比如了解、識(shí)記、理解、掌握及綜合應(yīng)用等。課前分析學(xué)生的基礎(chǔ),設(shè)計(jì)教學(xué)過程,靈活運(yùn)用多種教學(xué)方法,通過講授法讓學(xué)生對(duì)基本知識(shí)概念認(rèn)識(shí),通過案例法學(xué)生在例子中理解感念,通過討論法學(xué)生對(duì)學(xué)習(xí)的知識(shí)進(jìn)行交流和提問,通過測(cè)驗(yàn)驗(yàn)證學(xué)生的掌握情況。教師要監(jiān)控整個(gè)教學(xué)過程,通過嚴(yán)密的教學(xué)設(shè)計(jì),學(xué)生會(huì)對(duì)基礎(chǔ)知識(shí)有扎實(shí)的掌握。當(dāng)然此種教學(xué)模式也有其弊端,比如重教輕學(xué),忽視學(xué)生的自主學(xué)習(xí)、自主探究,容易造成學(xué)生對(duì)教師、對(duì)教材、對(duì)權(quán)威的迷信,使學(xué)生缺乏發(fā)散思維、批判思維的創(chuàng)建。但對(duì)于C語(yǔ)言中基本概念知識(shí)的內(nèi)容的特點(diǎn),這些弊端還是較好地回避了。
2.以“學(xué)”為主的教學(xué)系統(tǒng)設(shè)計(jì)應(yīng)用。建構(gòu)主義理論指導(dǎo)下的以“學(xué)”為主的教學(xué)系統(tǒng)設(shè)計(jì)認(rèn)為,在教學(xué)中體現(xiàn)以學(xué)生為中心,認(rèn)為在學(xué)習(xí)過程中充分發(fā)揮學(xué)生的主動(dòng)性,要體現(xiàn)學(xué)生的首選精神;要讓學(xué)生有多種機(jī)會(huì)在不同的情境中應(yīng)用所學(xué)的知識(shí);讓學(xué)生能根據(jù)自身的行動(dòng)的反饋信息來形成對(duì)客觀事物的認(rèn)識(shí)和解決實(shí)際問題的方案。重視發(fā)揮學(xué)生的首創(chuàng)精神,將知識(shí)外化和實(shí)現(xiàn)自我反饋。
C語(yǔ)言中的三大程序設(shè)計(jì)結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。主要培養(yǎng)學(xué)生架構(gòu)化程序設(shè)計(jì)的思想,讓學(xué)生理解掌握自頂向下,逐步求精的程序設(shè)計(jì),進(jìn)行模塊化程序設(shè)計(jì),應(yīng)用三種基本控制結(jié)構(gòu)解決復(fù)雜問題的能力。注重程序設(shè)計(jì)方法能力的培養(yǎng)。教師在教學(xué)設(shè)計(jì)中,以簡(jiǎn)單的程序?yàn)槔龑?dǎo)入學(xué)習(xí)內(nèi)容,讓學(xué)生通過自學(xué),理解程序流程,學(xué)生通過案例實(shí)驗(yàn),在做中理解程序設(shè)計(jì)思想。在學(xué)生掌握基本方法后,給學(xué)生提供豐富的實(shí)驗(yàn)資源,讓學(xué)生在實(shí)踐中舉一反三,達(dá)到知識(shí)的掌握,方法的理解,從而實(shí)現(xiàn)能力的獲得。當(dāng)然,在實(shí)施教學(xué)過程中,要注意避免其弊端的影響,比如不能忽視教學(xué)目標(biāo)的分析,學(xué)生在自主學(xué)習(xí)的自由度過大時(shí),容易偏離教學(xué)目標(biāo)的要求。不能忽視教師的指導(dǎo)作用,強(qiáng)調(diào)以學(xué)生為中心,要充分考慮體現(xiàn)學(xué)生的主導(dǎo)作用,就是要為學(xué)習(xí)者設(shè)計(jì)主動(dòng)建構(gòu)知識(shí)意義的學(xué)習(xí)環(huán)境,教師可通過任務(wù)驅(qū)動(dòng)法,比如先選擇結(jié)構(gòu)學(xué)習(xí)時(shí),用單循環(huán)結(jié)構(gòu)導(dǎo)入,再讓學(xué)生思考乘法表的編程方法,給學(xué)生基本的算法思路的提示,讓學(xué)生循序漸進(jìn)地掌握嵌套選擇的復(fù)雜結(jié)構(gòu)。要注意師生之間情感交流和情感因素在學(xué)習(xí)過程中的重要作用,學(xué)生在完成任務(wù)時(shí),要及時(shí)鼓勵(lì),通過優(yōu)秀作業(yè)的講解和總結(jié),讓學(xué)生獲得學(xué)習(xí)的信心和熱情。
3.教師為主導(dǎo)、學(xué)生為主體的“雙主”教學(xué)系統(tǒng)設(shè)計(jì)應(yīng)用?!半p主”教學(xué)設(shè)計(jì)理論既不是僅以教師為中心,也不完全是以學(xué)習(xí)者為中心,而是充分考慮兩者的有機(jī)融合,相互交流,相互溝通,雙邊互動(dòng),不但能夠發(fā)揮教師的主導(dǎo)作用,又充分體現(xiàn)學(xué)習(xí)者的認(rèn)知主體作用。在整個(gè)過程中教師處于中心地位,是教學(xué)過程的組織者、指導(dǎo)者、知識(shí)建構(gòu)的幫助者、促進(jìn)者。對(duì)于學(xué)習(xí)者并非在本過程中自始至終處于“傳授―接受”的學(xué)習(xí)狀態(tài),更多的時(shí)候是在教師幫助下進(jìn)行主動(dòng)思考與探索。而教學(xué)媒體在整個(gè)教學(xué)過程中有時(shí)作為輔助教學(xué)的工具,有時(shí)作為學(xué)習(xí)者自主學(xué)習(xí)的認(rèn)知工具,各個(gè)要素彼此相互聯(lián)系,從而形成一種新的教學(xué)設(shè)計(jì)模式。
C語(yǔ)言中數(shù)組、函數(shù)、指針、文件等內(nèi)容較適合采用此種教學(xué)模式。在教學(xué)中教師的角色發(fā)生了轉(zhuǎn)變,教師是教學(xué)活動(dòng)的組織者、執(zhí)行者,但是對(duì)教師能力的要求卻提出了更大的挑戰(zhàn)。教學(xué)課程內(nèi)容可以由課堂教學(xué)、分組教學(xué)、上機(jī)實(shí)踐和自學(xué)活動(dòng)等部分組成,教學(xué)項(xiàng)目的開發(fā)者。可以通過課前設(shè)計(jì)教學(xué)項(xiàng)目任務(wù)、教學(xué)雙邊活動(dòng)策劃、典型例程選擇、課堂隨機(jī)提問等手段來實(shí)現(xiàn)。分組教學(xué):分組教學(xué)強(qiáng)調(diào)環(huán)境因素對(duì)學(xué)生意義建構(gòu)的促進(jìn)作用。根據(jù)學(xué)生的具體情況進(jìn)行分組,分組既要考慮學(xué)生的互補(bǔ)性,又要設(shè)立小組成員的帶頭作用,實(shí)現(xiàn)良性自主學(xué)習(xí)策略,最終把因材施教內(nèi)容融入到該環(huán)節(jié)中去。上機(jī)實(shí)驗(yàn):程序設(shè)計(jì)掌握的關(guān)鍵是算法的編制和語(yǔ)言的運(yùn)用能力,因此上機(jī)實(shí)踐是必需的,在上機(jī)前可以設(shè)定一些貼近實(shí)際應(yīng)用的項(xiàng)目模塊,讓學(xué)生從項(xiàng)目需求、環(huán)境變量、算法流程、語(yǔ)言格式及模塊I/O等方面進(jìn)行練習(xí),教師可以在上機(jī)時(shí)間內(nèi)進(jìn)行相應(yīng)的實(shí)踐引導(dǎo)和結(jié)果評(píng)價(jià)工作。自學(xué)活動(dòng):學(xué)生在課余時(shí)間提供豐富的網(wǎng)絡(luò)學(xué)習(xí)資源,學(xué)生在通過網(wǎng)絡(luò)進(jìn)行深入研究學(xué)習(xí),教師也可提供一些實(shí)用的軟件項(xiàng)目供學(xué)生課余參與,通過比賽的形式學(xué)生在項(xiàng)目參與過程中提高了對(duì)知識(shí)的應(yīng)用能力,鍛煉了一定的程序員素質(zhì)和團(tuán)隊(duì)合作精神。
四、結(jié)語(yǔ)
實(shí)踐證明,針對(duì)不同教學(xué)內(nèi)容采用相應(yīng)的教學(xué)模式,課堂教學(xué)與實(shí)驗(yàn)教學(xué)效果都比過去有了明顯改善。通過對(duì)由淺入深的理論學(xué)習(xí)和循序漸進(jìn)的實(shí)驗(yàn)練習(xí),學(xué)生在學(xué)習(xí)中培養(yǎng)了程序設(shè)計(jì)的興趣和學(xué)習(xí)熱情。通過整合教學(xué)內(nèi)容、改進(jìn)教學(xué)方法,教師要通過研究教學(xué)內(nèi)容的特點(diǎn),采用相應(yīng)的教學(xué)模式,注意避弊取利,采用多種教學(xué)策略進(jìn)行補(bǔ)充完善,以實(shí)現(xiàn)C語(yǔ)言教學(xué)效果最優(yōu)化。
參考文獻(xiàn):
[1]夏瑜.基于雙主理論的程序設(shè)計(jì)教學(xué)方法[J].四川教育學(xué)院學(xué)報(bào),2009,(11).
關(guān)鍵詞:程序設(shè)計(jì)課程;教學(xué)改革
Abstract: This paper analysis the programming curriculum present situation, proposed this curriculum reform, and has carried on the exploration and the research.
Key words: programming curriculum; educational reform
程序設(shè)計(jì)能力是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)生必備的能力,隨著學(xué)科的發(fā)展和信息社會(huì)對(duì)人才素質(zhì)的要求,該課程的教學(xué)暴露出一些問題,本文結(jié)合當(dāng)前的教學(xué)實(shí)際,談一些想法。
1程序設(shè)計(jì)課程的教學(xué)現(xiàn)狀
1.1學(xué)生對(duì)課程設(shè)置的目的不明確
多年的教學(xué)經(jīng)歷發(fā)現(xiàn):很多學(xué)生在學(xué)習(xí)該課程的過程中,始終不明白學(xué)習(xí)該課程的目的和意義,很多教師在授課時(shí)基本是按教材章節(jié)順序授課,沒有強(qiáng)調(diào)開設(shè)此課程的目的和意義。筆者認(rèn)為,一定要上好第一節(jié)課,讓學(xué)生明白學(xué)習(xí)該課程的教學(xué)目的和意義,然后其他教學(xué)活動(dòng)才可由此展開。
1.2教學(xué)內(nèi)容與實(shí)際脫節(jié)
在教學(xué)內(nèi)容的處理上,許多教師把很大的精力甚至是主要精力放在程序設(shè)計(jì)語(yǔ)言的語(yǔ)法規(guī)則和語(yǔ)義上,把“程序設(shè)計(jì)”課變成“程序語(yǔ)言”課,考察的內(nèi)容不少是對(duì)不實(shí)用的怪、難、偏的語(yǔ)句語(yǔ)義的理解,脫離課程教學(xué)目的,脫離實(shí)際,反映不出學(xué)生真正的編程能力。這種做法在一定程度上誤導(dǎo)了學(xué)生對(duì)該課程學(xué)習(xí)目標(biāo)、學(xué)習(xí)內(nèi)容的理解,導(dǎo)致了學(xué)生學(xué)習(xí)精力的偏移。
1.3教學(xué)方法不科學(xué)
教學(xué)方法上多數(shù)是傳統(tǒng)式的“灌輸法”,在有限的教學(xué)學(xué)時(shí)里,重復(fù)講授的東西太多。過多的指導(dǎo)書增強(qiáng)了學(xué)生的依賴性,從而導(dǎo)致學(xué)生分析問題、解決問題的獨(dú)立能力得不到充分提高。
1.4選擇語(yǔ)言工具存在盲目性,程序設(shè)計(jì)課過多過濫
在語(yǔ)言工具的選擇上盲目追求最新版本的流行軟件,在教學(xué)內(nèi)容的選擇上也片面強(qiáng)調(diào)社會(huì)的需求,有些學(xué)校甚至提出“社會(huì)需要什么,我們就教授什么”,而忽視了學(xué)生對(duì)基本理論、基本方法和基本技術(shù)的學(xué)習(xí)和研究。在加大了老師備課負(fù)擔(dān)的同時(shí),并沒能起到積極的作用。
目前多數(shù)高校以一門程序語(yǔ)言課作為計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)生程序設(shè)計(jì)課程的入門,老師通過C語(yǔ)言或C++對(duì)學(xué)生講授基本程序設(shè)計(jì)概念和程序設(shè)計(jì)方法,而在隨后的教學(xué)計(jì)劃中,涉及程序設(shè)計(jì)的課程卻多達(dá)3門~5門。結(jié)果是當(dāng)學(xué)生學(xué)完了多門語(yǔ)言的程序設(shè)計(jì)后,發(fā)現(xiàn)只是學(xué)習(xí)了各語(yǔ)言的基本語(yǔ)法。學(xué)生中真正能掌握程序設(shè)計(jì)方法、具有較好的編程能力、能具體解決實(shí)際問題的甚少。
2程序設(shè)計(jì)課程的改革
2.1明確培養(yǎng)目標(biāo)
計(jì)算機(jī)專業(yè)的畢業(yè)生應(yīng)有扎實(shí)的理論知識(shí)和實(shí)際應(yīng)用技術(shù),有理論聯(lián)系實(shí)踐的認(rèn)知能力和實(shí)踐能力,有應(yīng)對(duì)發(fā)展變化的良好素養(yǎng)。根據(jù)這一培養(yǎng)目標(biāo),除加強(qiáng)基礎(chǔ)理論教育外,更應(yīng)注重學(xué)生的內(nèi)涵發(fā)展。
2.2程序設(shè)計(jì)與程序語(yǔ)言相結(jié)合,建立良好的考核方式
可行的做法是把程序設(shè)計(jì)與程序語(yǔ)言結(jié)合起來,以程序語(yǔ)言為載體來講解程序設(shè)計(jì)。這樣能把程序設(shè)計(jì)的基本方法和對(duì)問題的求解思想,通過程序語(yǔ)言予以實(shí)現(xiàn),使學(xué)生看得到、摸得著,不僅可以激發(fā)學(xué)生的學(xué)習(xí)興趣,培養(yǎng)學(xué)生的創(chuàng)新意識(shí),而且在程序?qū)崿F(xiàn)的過程中能培養(yǎng)學(xué)生腳踏實(shí)地、求真務(wù)實(shí)的科學(xué)作風(fēng)。
一定要徹底改革傳統(tǒng)的死記硬背的考核方法,完全可以實(shí)行開卷考試,讓學(xué)生個(gè)人或幾個(gè)人一組完成一個(gè)小型系統(tǒng)的開發(fā),最大限度地發(fā)揮學(xué)生在學(xué)習(xí)過程的主動(dòng)性、積極性和創(chuàng)造性,既可以把對(duì)學(xué)生的創(chuàng)新思維和創(chuàng)新能力的培養(yǎng)貫穿到我們的教學(xué)環(huán)節(jié)中,又可以讓學(xué)生在開發(fā)系統(tǒng)過程中體會(huì)到學(xué)習(xí)的快樂、完成系統(tǒng)后體會(huì)到自己的成就感。成績(jī)?cè)u(píng)定可以采用學(xué)生答辯的方式,這樣可以鍛煉和培養(yǎng)學(xué)生的思維能力和表達(dá)能力。
2.3教學(xué)精講多練
精心組織好每一堂課程的教學(xué)內(nèi)容,力求做到重點(diǎn)突出、思路清晰、理論聯(lián)系實(shí)際,只有抓住教學(xué)的重點(diǎn)難點(diǎn)、合理地分配課時(shí),才能把學(xué)生必須掌握的內(nèi)容傳授給學(xué)生,并能讓學(xué)生把容易學(xué)的知識(shí)和技能牢牢地記住,不容易理解的能夠?qū)W會(huì)、理解并且能基本靈活應(yīng)用。
多練的含義包括課堂練習(xí)和上機(jī)實(shí)現(xiàn)兩部分。在進(jìn)行課堂練習(xí)過程中,選擇合適的題目非常重要。題目要有針對(duì)性最好結(jié)合學(xué)生知識(shí)結(jié)構(gòu),以激發(fā)學(xué)生的學(xué)習(xí)熱情,調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性。選擇好一個(gè)例題,對(duì)學(xué)生理解相關(guān)內(nèi)容會(huì)達(dá)到事半功倍之效果。作為實(shí)驗(yàn)性很強(qiáng)的課程,不僅要在課堂進(jìn)行必要的演示操作,更要注重實(shí)驗(yàn)教學(xué)。條件允許的情況下,最好的方法是在帶有多媒體教學(xué)設(shè)備的計(jì)算機(jī)實(shí)驗(yàn)室上課,老師先講一會(huì),讓學(xué)生就剛才講解的內(nèi)容再上機(jī)實(shí)驗(yàn)一遍,邊講邊練,使學(xué)生對(duì)老師剛講過的、剛演示完的內(nèi)容通過實(shí)驗(yàn)從感性認(rèn)識(shí)升華到理性認(rèn)識(shí),從而提高教學(xué)的效率。
2.4分階段選擇合適的語(yǔ)言載體
語(yǔ)言工具的選擇的依據(jù)是看這個(gè)語(yǔ)言在概念、結(jié)構(gòu)上是否滿足教學(xué)要求。新興的程序設(shè)計(jì)語(yǔ)言工具,往往強(qiáng)調(diào)的高效快捷的開發(fā)程序,而忽略或簡(jiǎn)化概念,并不能承擔(dān)起傳遞思想,理解概念的作用。針對(duì)當(dāng)今計(jì)算機(jī)程序設(shè)計(jì)領(lǐng)域的理論研究和工程實(shí)踐的具體情況,應(yīng)將面向?qū)ο篌w系作為程序設(shè)計(jì)類課程的核心,而不只是面向過程體系的附加和補(bǔ)充。程序設(shè)計(jì)課程體系包括:面向?qū)ο蟪绦蛟O(shè)計(jì)、面向?qū)ο髷?shù)據(jù)結(jié)構(gòu)、Java語(yǔ)言程序設(shè)計(jì)和Web程序設(shè)計(jì)等課程。這樣學(xué)生一開始就用面向?qū)ο蟮乃枷肴ヘ灤┑匠绦蛟O(shè)計(jì)課程的學(xué)習(xí)當(dāng)中,并通過面向?qū)ο蟮臄?shù)據(jù)結(jié)構(gòu)課程來強(qiáng)化對(duì)面向?qū)ο罄碚摰睦斫夂蛯?shí)踐的應(yīng)用。在此基礎(chǔ)上,通過Java語(yǔ)言課程的學(xué)習(xí)熟悉網(wǎng)絡(luò)編程、I/O編程、多線程編程等技術(shù),而不是現(xiàn)在簡(jiǎn)單的語(yǔ)法學(xué)習(xí)。最后在Web程序設(shè)計(jì)課程中學(xué)習(xí)如何綜合應(yīng)用上述技術(shù)進(jìn)行B/S模式的應(yīng)用系統(tǒng)的開發(fā),鍛煉學(xué)生整合業(yè)務(wù)流程和開放性的面向?qū)ο缶幊痰哪芰Α?/p>
3結(jié)束語(yǔ)
只有通過在教學(xué)過程中不斷發(fā)現(xiàn)問題、解決問題,不斷探討新的教學(xué)方法,才能使教學(xué)質(zhì)量不斷提高,這正是我們教師的任務(wù),也是我們的責(zé)任。相信通過我們共同努力,將會(huì)把我國(guó)的計(jì)算機(jī)專業(yè)教育推向一個(gè)新的臺(tái)階。
參考文獻(xiàn)
1 肖軍模.程序設(shè)計(jì)語(yǔ)言編譯方法[M].大連:大連理工大學(xué)出版社,1999
2 鄭人杰.軟件工程[M].北京:清華大學(xué)出版社,1999
級(jí)別:部級(jí)期刊
榮譽(yù):中國(guó)期刊全文數(shù)據(jù)庫(kù)(CJFD)
級(jí)別:部級(jí)期刊
榮譽(yù):中國(guó)期刊全文數(shù)據(jù)庫(kù)(CJFD)
級(jí)別:省級(jí)期刊
榮譽(yù):中國(guó)期刊全文數(shù)據(jù)庫(kù)(CJFD)
級(jí)別:省級(jí)期刊
榮譽(yù):中國(guó)期刊全文數(shù)據(jù)庫(kù)(CJFD)
級(jí)別:部級(jí)期刊
榮譽(yù):中國(guó)優(yōu)秀期刊遴選數(shù)據(jù)庫(kù)