• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      逆向思維在C++程序設(shè)計教學(xué)中的應(yīng)用

      2012-06-17 05:55:32張雪伍常晉義
      常熟理工學(xué)院學(xué)報 2012年6期
      關(guān)鍵詞:數(shù)組程序設(shè)計逆向

      張雪伍,常晉義

      (常熟理工學(xué)院 計算機(jī)科學(xué)與工程學(xué)院,江蘇 常熟 215500)

      逆向思維是對司空見慣的似乎已成定論的事物或觀點(diǎn)反過來思考的一種思維方式。C++程序設(shè)計中的諸多抽象復(fù)雜的概念和規(guī)則,除了用傳統(tǒng)思維方式去理解外,還可通過逆向思維的方式進(jìn)行思考,以加深學(xué)生對知識的理解,促使其進(jìn)行創(chuàng)造性、多角度的主動思考,培養(yǎng)其創(chuàng)新能力,增強(qiáng)創(chuàng)新意識。

      一、逆向思維教學(xué)的基本思想

      逆向思維是一種重要的思維方法,具有普適性、批判性和新穎性。它在研究問題時,能突破常規(guī),從常規(guī)思維的反向進(jìn)行探索,除了加深理論知識的理解和活用外,有時還能在常規(guī)思維方式無法求解的情況下,獲得出奇制勝的效果。

      逆向思維的思考方法主要有:反轉(zhuǎn)型逆向思維法,即從已知問題的相反方向進(jìn)行思考;轉(zhuǎn)換型逆向思維法,即變換問題的思考角度的思維方法。在C++程序設(shè)計的教學(xué)過程中,對抽象、難理解的概念和問題,在常規(guī)思維的基礎(chǔ)上,引導(dǎo)學(xué)生通過逆向思維,從反向、側(cè)面、缺點(diǎn)利化的角度對問題進(jìn)行充分理解,通過肯定、否定的思維方式,加深問題理解、增強(qiáng)思維的靈活性,提升學(xué)生的創(chuàng)新能力。

      C++程序設(shè)計課程的主要內(nèi)容可以分成過程程序設(shè)計和對象程序設(shè)計兩部分。C++程序設(shè)計課程內(nèi)容多且抽象難懂,因此應(yīng)根據(jù)開課學(xué)生專業(yè)和基礎(chǔ)知識掌握情況對教學(xué)內(nèi)容進(jìn)行適當(dāng)?shù)牟眉簟?/p>

      過程程序設(shè)計部分主要是講述C++程序語言的基本語法規(guī)則,教學(xué)過程中需要強(qiáng)調(diào)記憶且很難實施逆向思維教學(xué);面向?qū)ο蟪绦蛟O(shè)計部分著重強(qiáng)調(diào)現(xiàn)實世界的抽象、表達(dá)以及基于它們的程序設(shè)計,具有較強(qiáng)的思維靈活性,使用傳統(tǒng)的教學(xué)方法只能從正面進(jìn)行講授,若將其與逆向思維相結(jié)合,從問題的反面或側(cè)面進(jìn)行教學(xué),會收到更好的教學(xué)效果。

      二、逆向思維的教學(xué)應(yīng)用

      (一)反轉(zhuǎn)型逆向思維教學(xué)案例

      反轉(zhuǎn)型逆向思維,即從事物的相反方向進(jìn)行思考,從而使問題得到很好的解決。在C++程序設(shè)計教學(xué)過程中,主要針對較難理解的概念和語法規(guī)則,通過與常規(guī)教學(xué)方法相結(jié)合,從問題的反方向來進(jìn)行思考,加深問題的理解和掌握。

      1.類與對象逆向思維教學(xué)

      類、對象的概念及其相互關(guān)系是面向?qū)ο蟪绦蛟O(shè)計教學(xué)中非常重要的概念之一,對其的理解是否透徹直接影響后面內(nèi)容的繼續(xù)學(xué)習(xí)。

      傳統(tǒng)的類與對象的教學(xué)思路主要是通過類與結(jié)構(gòu)體的對比來說明類的特性,并對類中的數(shù)據(jù)和方法進(jìn)行講授,利用類進(jìn)行對象構(gòu)建來演示類與對象的關(guān)系、對象的使用方法,如圖1所示。采用傳統(tǒng)的教學(xué)方式講授,學(xué)生雖能夠掌握類的概念和使用方法,但對現(xiàn)實世界的抽象過程和類的創(chuàng)建過程比較陌生,很難活用。

      圖1 傳統(tǒng)的類與對象的教學(xué)模式

      圖2 逆向思維的類與對象教學(xué)模式

      基于逆向思維的類與對象教學(xué)模式如圖2所示。所采用的教學(xué)方式是將現(xiàn)實世界中的同類對象作為教學(xué)的起點(diǎn),分析同類現(xiàn)實對象,并對其進(jìn)行泛化來構(gòu)建概念對象,它包含了現(xiàn)實對象的描述屬性和動作;基于封裝思想構(gòu)建相應(yīng)的類,將概念對象的屬性和動作轉(zhuǎn)化成類的數(shù)據(jù)成員和相應(yīng)的操作方法,并對類的定義和構(gòu)建方法進(jìn)行講授;通過對類進(jìn)行實例化創(chuàng)建多個對象,通過不同的對象來影射現(xiàn)實世界中不同的現(xiàn)實對象,并通過對象的數(shù)據(jù)來描述現(xiàn)實對象,利用類方法來模擬現(xiàn)實世界中現(xiàn)實對象的相應(yīng)動作及其相互關(guān)系?;谀嫦蛩季S,以真實對象作為教學(xué)的起點(diǎn)和歸宿,在講授概念和語法的同時,還重點(diǎn)強(qiáng)調(diào)了類的構(gòu)建過程,從而加深對概念的理解和語法的活用。

      2.靜態(tài)數(shù)據(jù)成員的逆向思維教學(xué)

      類的靜態(tài)成員是C++程序設(shè)計語言中一個重要的概念,但由于課時有限,往往采用快速的傳統(tǒng)教學(xué)方式,即首先介紹靜態(tài)成員的概念,然后結(jié)合一個程序示例進(jìn)行分析。由于概念本身較難懂,學(xué)生對其理解不夠深刻,感覺似懂非懂,更談不上合理的應(yīng)用。對于此種情況,可以采用逆向思維教學(xué)模式進(jìn)行教學(xué),采取實例—理論—實例的教學(xué)方式,即首先通過實例展示靜態(tài)成員與普通成員的區(qū)別,然后結(jié)合實例介紹概念和相應(yīng)的理論,最后再給出一個適合運(yùn)用靜態(tài)成員解決的實際問題,并對其進(jìn)行分析,最后通過靜態(tài)成員高效地解決問題,進(jìn)而在傳授學(xué)生靜態(tài)成員知識的同時,也教會了學(xué)生如何獨(dú)立地分析問題和解決問題,具體過程如圖3所示。

      圖3給出了基于逆向思維的靜態(tài)數(shù)據(jù)成員的教學(xué)過程。在CTestClass類中分別定義了靜態(tài)數(shù)據(jù)成員和普通數(shù)據(jù)成員,并給出了相應(yīng)的操作方法,在main函數(shù)中分別創(chuàng)建a和b兩個對象,并在設(shè)置數(shù)據(jù)成員前后分別對靜態(tài)數(shù)據(jù)成員和普通數(shù)據(jù)成員進(jìn)行輸出,比較它們的差異;然后結(jié)合示例講授靜態(tài)數(shù)據(jù)成員的概念;最后結(jié)合倉庫管理員統(tǒng)計貨物重量的實際問題,對靜態(tài)數(shù)據(jù)成員的應(yīng)用進(jìn)行分析,并解決問題。

      圖3 逆向思維的靜態(tài)數(shù)據(jù)成員教學(xué)模式

      (二)轉(zhuǎn)換型逆向思維教學(xué)案例

      轉(zhuǎn)換型逆向思維是指在研究某一問題時,由于正常解決問題的方法受阻而轉(zhuǎn)換思考角度,從而使得問題得以順利解決的思維方法。

      1.冒泡排序的逆向思維教學(xué)

      通用的教材中,無論是遞增還是遞減的冒泡排序均是自頂向下進(jìn)行的,首先對排序的數(shù)列中的第1對數(shù)進(jìn)行沉底交換操作,直至第n對數(shù),完成第一趟;第二趟,仍然從第1對數(shù)開始,直至第n-1對數(shù)據(jù);如此下去,重復(fù)以上過程,直至最終完成排序(n為數(shù)的個數(shù))?;谀嫦蛩季S,將傳統(tǒng)的冒泡排序的操作方法進(jìn)行逆轉(zhuǎn),即從底向上的操作順序,先從第n對數(shù)進(jìn)行冒泡交換操作,然后是第n-1數(shù)進(jìn)行冒泡排序交換,直至第n對數(shù)。傳統(tǒng)與逆向思維方式的冒泡排序過程如圖4所示。

      圖4 傳統(tǒng)與逆向思維方式的冒泡排序

      逆向思維的冒泡排序代碼:

      在實施冒泡排序教學(xué)時,先使用傳統(tǒng)的冒泡排序方法講授,在學(xué)生掌握了該方法后,對其進(jìn)行逆向啟發(fā),啟發(fā)他們從另一個角度思考冒泡的操作方向,并結(jié)合示例程序?qū)ζ溥M(jìn)行介紹。通過不同思維方式的冒泡排序,可以活躍學(xué)生的思維方式,加深其對排序本質(zhì)的理解,更重要的是可以培養(yǎng)其創(chuàng)新能力。

      2.數(shù)組篩選的逆向思維教學(xué)

      對于給定的一個整數(shù)數(shù)組arr[n],數(shù)組中不包括0和1,n為數(shù)組元素的個數(shù),輸出數(shù)組中的所有的合數(shù)。常規(guī)的思維方式是通過循環(huán)對數(shù)組中的各個整數(shù)進(jìn)行合數(shù)判斷,若是合數(shù)則放在構(gòu)建好的臨時數(shù)組中,最后將其作為計算結(jié)果返回。

      可以啟發(fā)學(xué)生采用逆向思維進(jìn)行如下思考:問題要求尋找出數(shù)組中的合數(shù),可以從問題的反面來操作,找出數(shù)組中的非合數(shù),即素數(shù),并把這些素數(shù)從數(shù)組中剔除出來,那么原始數(shù)組中剩下的數(shù)組元素就是問題的解。由于素數(shù)有著清晰的定義和算法,實現(xiàn)起來較為容易。

      對數(shù)組的訪問是通過數(shù)組下標(biāo)進(jìn)行的。常規(guī)的循環(huán)篩選方向是從第一個元素向最后一個元素進(jìn)行循環(huán),由于在篩選過程中會刪除部分?jǐn)?shù)組元素,致使數(shù)組個數(shù)發(fā)生變化,但循環(huán)次數(shù)的結(jié)束條件和訪問數(shù)組元素的遞增的下標(biāo)沒有變化,當(dāng)前被刪除的元素的下標(biāo)指示位置會被其后的元素占據(jù),而下標(biāo)在下一次循環(huán)后依然會遞增,從而漏掉該元素,數(shù)組元素的數(shù)目也會減少但循環(huán)結(jié)束的條件未變,訪問數(shù)組元素時會產(chǎn)生數(shù)組越界的問題?;谀嫦蛩季S,將循環(huán)方向進(jìn)行逆轉(zhuǎn),即從最后一個數(shù)據(jù)元素向第一數(shù)據(jù)元素進(jìn)行循環(huán),訪問元素的下標(biāo)是遞減的,篩選過程中刪除的元素位于循環(huán)的后面,且循環(huán)結(jié)束的條件是止于第一個元素,因此不會出現(xiàn)遺漏數(shù)據(jù)元素和數(shù)組越界的問題。

      基于逆向思維的數(shù)組求合數(shù)的代碼如下:

      三、逆向思維教學(xué)應(yīng)注意的問題

      (一)逆向思維的主從關(guān)系

      從教學(xué)過程來看,教學(xué)內(nèi)容和問題是思維的對象,學(xué)生應(yīng)該是思維主體,教師是學(xué)生思維的引導(dǎo)者。教師思維不能代替學(xué)生思維,又不能讓學(xué)生在別人思維途徑上進(jìn)行模仿,因此要把握好引導(dǎo)的度,在講授知識的同時,啟發(fā)學(xué)生的逆向思維,引導(dǎo)學(xué)生主動地逆向思考,尋找問題的解決方法。

      (二)遵循可接受原則

      逆向思維教學(xué)是比較靈活的教學(xué)方式,旨在傳授知識的同時,提高學(xué)生的思維能力,因此必須針對學(xué)生的知識、思維能力和教學(xué)內(nèi)容,做到因材施教,按學(xué)生的認(rèn)知規(guī)律,遵循可接受原則,使學(xué)生的思維能力得以自然形成。

      (三)教師應(yīng)更新教育觀念

      教師要充分認(rèn)識到逆向思維對提高計算機(jī)類專業(yè)學(xué)生素質(zhì)和技能的重要性。在常規(guī)教學(xué)方式中,要盡可能多地穿插逆向思維訓(xùn)練,提高學(xué)生的思維能力。

      四、結(jié) 語

      逆向思維的思考方式具有很好的啟發(fā)性,在拓寬學(xué)生的思維方式、調(diào)動學(xué)生的學(xué)習(xí)積極性、提升其分析問題解決問題的能力、培養(yǎng)學(xué)生創(chuàng)新思維等方面具有較大的優(yōu)勢。但是逆向思維教學(xué)也存在一定的弊端,主要有:(1)備課時間較長;(2)要求教師對問題有深刻的理解,并具備較強(qiáng)的思維能力;(3)課程的課時要比較充分。逆向思維是一種異于常規(guī)思維的思考方式,在將其運(yùn)用到教學(xué)中時,需要根據(jù)問題本身的難易程度,與常規(guī)的思維教學(xué)方式相結(jié)合,取長補(bǔ)短,從而在活躍學(xué)生思維方式的同時,使教學(xué)內(nèi)容更易理解和掌握,將教學(xué)效果提升一個層次。逆向思維教學(xué)方式何時、以何種方式與其他教學(xué)方法進(jìn)行有機(jī)地結(jié)合,取長補(bǔ)短、相得益彰,是一個值得深入研究的課題。

      [1]肖明.案例教學(xué)法在“C++語言程序設(shè)計”教學(xué)中的應(yīng)用[J].計算機(jī)教育,2010(6):83-86.

      [2]夏承遺,李文杰,孫世溫.問題驅(qū)動的“C++程序設(shè)計”教學(xué)方法研究[J].計算機(jī)教育,2010(1):122-125.

      [3]杜少武,張毅,黃海宏,等.電力電子技術(shù)課程的逆向思維教學(xué)法研究[J].電氣電子教學(xué)學(xué)報,2007,29(4):94-97.

      [4]向華.如何在C++教學(xué)中引入初步的設(shè)計模式思想[J].長江大學(xué)學(xué)報(自然科學(xué)版),2009,6(2):388-389.

      猜你喜歡
      數(shù)組程序設(shè)計逆向
      逆向而行
      JAVA稀疏矩陣算法
      電腦報(2022年13期)2022-04-12 00:32:38
      基于Visual Studio Code的C語言程序設(shè)計實踐教學(xué)探索
      JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
      電腦報(2020年24期)2020-07-15 06:12:41
      從細(xì)節(jié)入手,談PLC程序設(shè)計技巧
      電子制作(2019年9期)2019-05-30 09:42:04
      逆向解答
      高職高專院校C語言程序設(shè)計教學(xué)改革探索
      尋找勾股數(shù)組的歷程
      PLC梯形圖程序設(shè)計技巧及應(yīng)用
      逆向工程技術(shù)及應(yīng)用
      西乌珠穆沁旗| 丰原市| 通榆县| 光泽县| 五原县| 镇平县| 南木林县| 呼图壁县| 金塔县| 绍兴市| 全州县| 临桂县| 新龙县| 青海省| 彭泽县| 宁津县| 肥西县| 黎川县| 凌云县| 兴业县| 东乡县| 西藏| 洛阳市| 崇信县| 九龙县| 房产| 苗栗市| 砚山县| 蒲城县| 施秉县| 雅江县| 延安市| 炉霍县| 肇源县| 菏泽市| 库伦旗| 汉川市| 错那县| 松溪县| 盐城市| 五华县|