亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        計算機專業(yè)程序設計基礎(chǔ)課程教學改革探索

        2010-12-31 00:00:00郭艷燕張樹粹胡瀟琨
        計算機教育 2010年8期


          摘要:本文從優(yōu)化教學內(nèi)容、改進教學方法、完善教學環(huán)節(jié)這幾個方面對程序設計基礎(chǔ)課程提出了一系列新的教學改革思想,力爭提高程序設計基礎(chǔ)課程的教學質(zhì)量和教學效果,為今后的專業(yè)課程打下良好的基礎(chǔ)。
          關(guān)鍵詞:程序設計;c++;面向?qū)ο?;實例化教學
          文章編號:1672-5913(2010)08-0072-04
          中圖分類號:G642
          文獻標識碼:B
          
          作為第一門計算機專業(yè)課,程序設計基礎(chǔ)課程應該定位在培養(yǎng)學生良好的程序設計素養(yǎng)和對計算機科學的濃厚興趣上,為后續(xù)的專業(yè)課程奠定良好的基礎(chǔ)。本文就如何提高教學效果、培養(yǎng)學生的理論知識掌握能力和實踐編程能力,對程序設計基礎(chǔ)課程教學改革提出了一些切實可行的探索方法。從教學內(nèi)容,教學方法和教學環(huán)節(jié)這幾個方面論述了新的教學模式改革思想,力爭提高程序設計基礎(chǔ)課程的教學質(zhì)量和教學效果。
          
          1 優(yōu)化教學內(nèi)容
          
          1,1教學語言的選擇
          以往的程序設計基礎(chǔ)課程選用c語言作為編程語言,c語言是單純的面向過程的程序設計語言。但隨著程序設計的發(fā)展,面向過程的編程方式在實際應用中越來越顯示出它的不足之處,隨之出現(xiàn)面向?qū)ο蟮母呒壘幊陶Z言。所以光學習c語言跟不上時代發(fā)展的潮流,必須在程序設計基礎(chǔ)課程的學習中引入面向?qū)ο蟮母拍?,所以c語言必定會被一種高級語言所代替是時代發(fā)展的潮流。
          c++語言和Java語言是兩種典型的面向?qū)ο缶幊陶Z言,具有相似的特性,也具有各自的優(yōu)缺點。c++語言是從c語言發(fā)展起來的,它作為一種過渡性編程語言,既有面向過程的特性,又有面向?qū)ο蟮奶匦裕染哂信c計算機底層打交道的能力,又有許多和其它高級語言一樣的高級特性,并且學習起來更易理解。Java語言作為一種嚴格的完全的面向?qū)ο笳Z言,在很多方面與c++語言是相同或類似的,但是與C/C++語言相比,它的靈活度要差了許多。曾有調(diào)查表明,學生在熟練掌握C/C++語言之后,基本上只需要數(shù)周的時間就可以熟練掌握Java語言的開發(fā)技巧。而反過來,要求一個只熟悉Java語言而沒有任何C/C++知識的學生掌握c++語言往往要耗費數(shù)月時間,因此選取c++語言作為程序設計的先行語言會比選用JAVA語言更有優(yōu)越性。
          目前,有些高校的程序設計基礎(chǔ)課程仍然講授c語言,第二學期或者更高年級再來講授C++程序設計語言。但這兩門課程的內(nèi)容很多重復,導致的直接后果是學生經(jīng)過兩學期的學習,對于結(jié)構(gòu)化程序設計和面向?qū)ο蟪绦蛟O計仍然沒有形成概念,也沒有很好掌握基本程序設計方法。當學生進行一個c++程序設計題目時,經(jīng)常會沉浸在先前的c語言解題思路里,使用在c++中已經(jīng)不再適用的方法和語法,編寫出來的程序不僅在程序運行效率還是在程序的健壯性上都有所欠缺。所以直接講授c++語言教學效果會更好。
          
          1,2教學內(nèi)容的組織
          c++是從面向過程的c語言發(fā)展而來的,并非是純面向?qū)ο蟮恼Z言,因此在講授過程中,如果將面向過程和面向?qū)ο蠼虒W完全分離,將不利于學生掌握先進的面向?qū)ο蟪绦蛟O計方法。雖然使用c++主要是進行面向?qū)ο蟪绦蛟O計,但在進行面向?qū)ο箢惖脑O計過程中,對其成員函數(shù)的設計,是離不開面向過程的設計思想的,因此,面向過程的設計是貫穿于面向?qū)ο笤O計中,也是一個不可忽視的環(huán)節(jié)。
          教學內(nèi)容上要正確處理編程細節(jié)與總體構(gòu)架的關(guān)系:建議本課程一學年完成,在第一學期注重面向過程程序設計方法的講解,在教學中對算法的描述,側(cè)重于采用c++語言編程細節(jié)的講解。比例,講解數(shù)組知識點時,對未排序的數(shù)列進行排序,我們主要講解經(jīng)典的冒泡排序算法和選擇法排序算法。這兩個算法在今后講解別的知識點時會經(jīng)常用到,所以要求學生對此算法的思路要理解和掌握。建議在第二學期的教學中,注重面向?qū)ο蟪绦蛟O計方法的講解,主要講解程序整體框架結(jié)構(gòu)和實現(xiàn)機制,而不再注重內(nèi)部細節(jié)的實現(xiàn)。怎樣從一個現(xiàn)實問題抽象出其屬性和行為封裝成一個具體類;在代碼復用的問題上,采用的是組合還是繼承,以及程序是否用到多態(tài)機制,這些是我們第二學期學習的重點。
          由于教學內(nèi)容的組織先講授面向過程的思想,再講授面向?qū)ο蟮乃枷?。一旦講述到面向?qū)ο蟮乃枷霑r,以前用向過程的方法所能解決的問題都不應該提倡用面向過程的思路來解決,而應該提倡用面向?qū)ο蟮姆椒▉韺崿F(xiàn)。
          
          2 改進教學方法
          
          有了適當?shù)慕虒W內(nèi)容組織,加上好的教學方法,可以使教學難度大大下降,更有利于學生接受和掌握。以下從4個方面來談一下教學方法的改革思路。
          
          2,1學習計算機系統(tǒng)的基礎(chǔ)知識,做好課程入門前的準備工作
          對于剛接觸程序設計的學生來說,程序設計語言入門之前相關(guān)知識的掌握是至關(guān)重要的。程序設計語言的教學應與計算機系統(tǒng)緊密結(jié)合。對計算機系統(tǒng)有足夠的認識和深刻的理解,才能掌握程序設計語言的精髓和充分發(fā)揮程序設計語言的潛能。因此,教師本人應該對計算機系統(tǒng)的一些特性和原理理解深刻,對程序設計語言的背景理解透徹,如果教師僅僅從純語言的角度講授語言,一系列類似問題得不到正確解釋,致使學生不能知其所以然,會直接影響教學質(zhì)量。
          所以,在正式開始講解程序設計語言之前,應該先講授與編程相關(guān)的計算機基礎(chǔ)知識,讓學生對計算機運行機制產(chǎn)生一個初步的認識,尤其對于那些在開設程序設計基礎(chǔ)課程之前沒有開設過計算機文化基礎(chǔ)課程的院校是極其必要的。計算機基本組成部分、計算機運行的基本原理、計算機怎樣運行程序,組成程序的指令代碼、機器代碼是二進制形式、各種計算機數(shù)值進制種類以及之間的換算方法、計算機中數(shù)據(jù)的存儲,以及內(nèi)存分配的問題,這些都屬于基本的計算機系統(tǒng)知識,理解了這些相關(guān)知識,對于學生以后理解程序設計語言的語法和基本概念以及各種其實現(xiàn)機制都會達到事半功倍的效果。
          比如,如果學生已經(jīng)理解了內(nèi)存分配的相關(guān)知識,那就更容易明白為什么定義變量或?qū)ο蟮臅r候必須要指定類型,因為不同的類型決定了為此變量在內(nèi)存中開辟空間的大小,內(nèi)存空間的大小同時也限定了表數(shù)的范圍?!盀槭裁磧蓚€正數(shù)相加有時在計算機中會顯示負數(shù)的結(jié)果”,就此問題從語言角度是無法解釋的,但從計算機系統(tǒng)角度看,數(shù)的表示是有一定范圍的,超過范圍就會產(chǎn)生溢出,所出現(xiàn)的負數(shù)實際上就是溢出后的錯誤數(shù)據(jù)。同時,C++中的動態(tài)內(nèi)存分配和釋放符new和delete的應用,都與內(nèi)存分配問題分不開。
          再如,學生已經(jīng)理解計算機程序的運行機制,那么學生更容易理解為什么一個程序從編寫到運行必須要經(jīng)歷:編輯-編譯-聯(lián)接-調(diào)試-運行這幾個基本步驟,這和計算機不能直接運行高級語言,只能直接運行機器代碼這點基礎(chǔ)知識是分不開的,從而理解為什么每個c++程序都需要編譯這個重要環(huán)節(jié)。
          
          2,2采用同一例題不同的實現(xiàn)方法進行知識點的分析對比,培養(yǎng)學生的創(chuàng)新精神
          教師要啟發(fā)學生自己去發(fā)現(xiàn)和擴展知識,這對于程序設計課程尤為重要。程序設計本身就是“活”的,任何一個問題都不僅只有一種解法,教師要經(jīng)常鼓勵學生充分發(fā)揮自己的聰明才智,啟發(fā)學生通過自己編程的實踐分析對比不同的算法,提高自己的實踐能力,培養(yǎng)他們的創(chuàng)新精神。
          由于程序設計思路的不唯一性,一個題目可運用不同的知識點來進行設計,運行出相同的正確結(jié)果。那么在講解問題的過程中,可以采用同一例題題目,但用不同的語法、算法實現(xiàn)。例如,函數(shù)參數(shù)傳遞,分別用變量名傳值、指針傳值、引用傳值這三種不同的傳值機制來完成兩個數(shù)的交換:再如,對于多個字符串的排序,我們可以利用字符數(shù)組,字符指針,指向字符數(shù)組的指針,指針數(shù)組,二級指針以及用運字符串類對象都能實現(xiàn):再如比較經(jīng)典的例題——Josephus問題,它的設計可以利用數(shù)組,結(jié)構(gòu)體數(shù)組或鏈表這種面向過程的程序設計方法解決,也可以通過設計成一個Josephus類這種面向?qū)ο蟮某绦蛟O計方法來完成。它們的分析思路、解題難度和運行效率都是不同的,通過比較它們各自的優(yōu)缺點,使學生能夠?qū)Σ煌R點進行比較分析,并且更有利于學生理解和掌握所運用的知識點,有助于他們在將來的程序設計工作中,不禁錮思路,有創(chuàng)新精神。
          
          2,3注重教學實例的選擇,將抽象的理論變得通俗易懂,注重新舊知識的融合
          實例教學法是教學過程中根據(jù)每章每節(jié)的具體教學要求、教學內(nèi)容選取恰當?shù)某绦驅(qū)嵗?br/>  c++語言中增加了許多抽象的面向?qū)ο蟮臋C制,這些機制是面向?qū)ο笏枷氲木A,卻又是c++語言中的難點,相對面向過程的思想來說,面向?qū)ο蟮乃枷敫映橄箅y理解,所以在實例的選取方面要精,要有代表性和典型性,同時更要考慮到學生的認知特點,好的通俗易懂的教學實例能幫助學生對抽象概念的理解。
          同時要注意到新知識總是舊知識的組合或擴展,針對這個特點,在教學實施中,通過某一實例,以舊知識為基點,提出在問題解決上存在的缺陷和不足,而這些缺陷和不足又是即將學到的新知識點能解決的問題,從而使學生在較為連貫的基礎(chǔ)上達到新知識點的擴展。
          在講解封裝、繼承、多態(tài)這一系列抽象概念時,應該從一個小的類例子逐步擴展。例如在講解封裝的概念時,我們可以舉人類這個例子,對于抽象的人,我們應該抽象出它的共性,設計成具體的類,實現(xiàn)人的屬性和行為的封裝,由于封裝性還體現(xiàn)在私有數(shù)據(jù)的安全性上,我們可以為人類增加一些隱私信息,不被外界所隨便訪問,c++類由訪問控制符來限定成員的訪問屬性。在講解繼承的概念時,我們?nèi)匀灰匀祟悶槔?,派生出一個父類,然后根據(jù)父親類再派生出一個兒子類,兒子可以繼承一些父親的共有財產(chǎn),可是卻不能繼承父親的一些隱私信息,這就體現(xiàn)了派生類對基公有成員和私有成員的訪問權(quán)限問題;對于多態(tài),我們可以在父親類和兒子類的這個例子上繼續(xù),由于父親類和兒子類都是以人類為最初的基類的,所有我們可以給他們發(fā)送同樣的消息來讓他們執(zhí)行行為,因為他們又是不同的具體類,所以即使發(fā)送的消息都是相同的,可是執(zhí)行的結(jié)果并非相同,這就體現(xiàn)了一個多態(tài)的概念。
          
          2,4采用多媒體教學課件、黑板、教學網(wǎng)站等多種教學媒體的有機結(jié)合
          在教學上采用黑板教授、多媒體教學課件以及教學網(wǎng)站手段的緊密結(jié)合,相互補充,發(fā)揮各自的長處,能夠促進教學效果的改進和教學質(zhì)量的提高。
          教學課堂上講授程序設計時,如果只用語言和文字表述會比較平淡,也比較抽象,讓學生抓不住重點,理解起來有一定的難度;而用多媒體課件進行課堂輔助教學,尤其是利用其圖示、圖例的方式來輔助講解,會使知識的表述的更加清晰易懂,利于學生理解和記憶。尤其是一些經(jīng)典算法,如查找、排序、鏈表、遞歸,用學生感興趣的Flash來進行動態(tài)的展示,可以很好的激發(fā)學生的學習興趣,也能幫助他們很好的理解和記憶算法,同時,多媒體課件可以幫助學生進行課下自學和復習。
          教學網(wǎng)站借助互聯(lián)網(wǎng)的優(yōu)勢,能及時發(fā)布更多新的教學內(nèi)容和學習資源,在突破傳統(tǒng)課程教材封閉性的同時,更為實施研究性學習等探究活動提供了便利,從以下四個方面得以體現(xiàn)。
          (1)通過教學網(wǎng)站能方便教師展示與課程相關(guān)的結(jié)構(gòu)化知識,把課程學習內(nèi)容相關(guān)的文本、多媒體課件等進行知識結(jié)構(gòu)化重組,方便學生課后參考。
          (2)教師可以將與課程相關(guān)的、擴展性的學習素材資源進行收集管理,教師可以將一些經(jīng)典的算法以及以往學生好的作品進行保存和展示,提供進行程序設計的各種編程工具的下載和提供相關(guān)資源網(wǎng)站的鏈接。
          (3)通過教學網(wǎng)站為師生提供了交流的平臺,例如論壇、聊天室等等構(gòu)建網(wǎng)上協(xié)商討論、答疑指導,以及進行作業(yè)和上機實驗任務的發(fā)布和進行網(wǎng)上作業(yè)提交等。
          (4)教師收集與本課程相關(guān)的思考性問題、形成性練習和總結(jié)性考查的評測資料供學生網(wǎng)上學習或下載,讓學習者能定期進行自我學習評價,檢查自己的學習程度。
          
          3 完善教學環(huán)節(jié)
          
          程序設計是一門實踐性很強的課程,僅僅滿足“老師講清、學生聽懂”是不夠的,學生的實際編程能力是更重要的培養(yǎng)目標。教學改革的重點是培養(yǎng)學生對計算機科學的興趣,強調(diào)實踐課程的重要性,著重培養(yǎng)學生的實際動手能力和協(xié)作開發(fā)能力。具體到程序設計這門課程上,教學環(huán)節(jié)應注重以下幾個方面。
          
          3,1課堂教學環(huán)節(jié)
          教師要培養(yǎng)學生的邏輯思維能力、程序設計能力和綜合解決問題的能力,自身要不斷提高程序設計的能力,積累開發(fā)經(jīng)驗和編程技巧。有實踐經(jīng)驗的教師,才能真正保證課堂教學的授課質(zhì)量,把理論上先進的思想付諸實施,同時把實踐中的體會用于教學,才能把程序設計語言課程講解得更生動、更貼近實際應用,更能培養(yǎng)學生的學習興趣,積極開展啟發(fā)式、互動性教學工作,保證教學質(zhì)量,提高教學效率。
          
          3,2實驗環(huán)節(jié)
          要強化實驗教學,注重實驗內(nèi)容和教學內(nèi)容的配套。實驗內(nèi)容要有針對性,就必須安排好基本內(nèi)容、提高內(nèi)容、綜合內(nèi)容三個層次的設計。對重點知識要加強訓練,要求學生按照一定的規(guī)范完成上機實驗。具體要求為“明確實驗目的,完成實驗內(nèi)容”。
          實驗輔導過程中,由具有豐富實際軟件開發(fā)經(jīng)驗的青年教師擔任實踐課程輔導教師,并且配備能夠使用c++熟練編程的指導學生輔助主講教師輔導學生,確保每個學生都可以得到一對一的實踐指導。在指導過程中,教師和指導學生會針對學生提出的程序問題進行相關(guān)講解,保證學生知道問題出在哪,為什么出錯,應該怎么修改,以保證學生得到甚解,從而達到對所學知識的理解和掌握。
          實驗課后,教師應該及時對上機情況進行總結(jié),對學生上機存在的普遍問題進行歸納,在理論課上進行強調(diào),因為這些問題是在學生學習過程中普遍忽視或出錯的問題。
          
          3,3課程設計環(huán)節(jié)
          在課程學習結(jié)束,安排學生進行一個周或者更長時間的課程設計,來培養(yǎng)和檢驗學生對本課程的綜合掌握能力、具體編程能力以及創(chuàng)新能力。實踐中能夠激發(fā)學生的創(chuàng)新思維,使學生的創(chuàng)新活動貫穿于整個學習過程,使創(chuàng)新成果通過程序設計更好的體現(xiàn)出來。
          
          3,4課程考核環(huán)節(jié)
          科學的課程考核方法可以有效地評價學生的學習情況。單一方面的考核是不能真實檢驗出學生對課程的真正掌握程度。筆試考試只能考核學生的理論知識,不能考核出學生的實際編程水平、綜合分析能力及創(chuàng)新能力。因此,考核的方面要相對全面,主要包括三方面:筆試、上機實踐、課程設計三大塊。教師通過筆試考試考查學生對程序設計理論知識的掌握:教師通過每次上機實驗檢查學生的程序并且提問與此程序相關(guān)的問題來了解學生的程序設計能力;通過課程設計,可以考查學生的綜合解決問題的能力、實際編程能力和創(chuàng)新能

        精品国产免费一区二区三区香蕉| 好看午夜一鲁一鲁一鲁| 亚洲免费av第一区第二区| 亚洲精品98中文字幕| 超碰97人人射妻| 亚洲碰碰人人av熟女天堂| 欧美中文字幕在线看| 一区二区三区手机看片日本韩国| 色婷婷色丁香久久婷婷| 成l人在线观看线路1| 在线观看91精品国产免费免费| 日韩精品精品一区二区三区| 国产精品成人自拍在线观看| 看全色黄大色黄大片 视频| 亚洲欧美精品伊人久久| 精品国产91久久久久久久a| 亚洲熟妇一区二区蜜桃在线观看| 亚洲乱码国产乱码精华| 依依成人精品视频在线观看| 精品国产AⅤ一区二区三区V免费| 91国产熟女自拍视频| 久久精品国产99久久无毒不卡| 国产人妻无码一区二区三区免费| 国产精品激情综合久久| 干出白浆视频在线观看| 少妇熟女天堂网av| 精品久久综合亚洲伊人| 在线观看国产精品自拍| 久久精品av在线观看| 久久精品噜噜噜成人| 人妻无码中文专区久久综合| 精品色老头老太国产精品| 18禁免费无码无遮挡不卡网站| 无码少妇一区二区三区| av无码特黄一级| 日本一区二区三区四区啪啪啪| 日本一本之道高清不卡免费| 爽妇网国产精品| 激情视频在线播放一区二区三区| 全免费a级毛片免费看无码| 一本一本久久a久久精品综合麻豆|