• 
    

    
    

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

      程序設(shè)計(jì)課程中學(xué)生良好編程習(xí)慣的培養(yǎng)研究

      2018-09-13 11:22:00于莉莉蘇曉光李晶
      電腦知識與技術(shù) 2018年17期
      關(guān)鍵詞:規(guī)范性程序設(shè)計(jì)

      于莉莉 蘇曉光 李晶

      摘要:針對普通高校程序設(shè)計(jì)課程中學(xué)生的良好編程習(xí)慣和興趣培養(yǎng),提出了從規(guī)范性和優(yōu)化算法提高效率角度轉(zhuǎn)變教學(xué)思路,讓學(xué)生認(rèn)識到程序復(fù)雜度和語法規(guī)范的重要性,從而提高學(xué)生計(jì)算思維能力,為后續(xù)課程提供更好的支撐。

      關(guān)鍵詞:程序設(shè)計(jì);規(guī)范性;程序復(fù)雜度;算法優(yōu)化

      中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)17-0188-02

      1 引言

      隨著人工智能的興起,培養(yǎng)既有特定工程背景,又有程序設(shè)計(jì)、計(jì)算思維能力的人才,已逐漸成為各應(yīng)用領(lǐng)域的普遍需要。因此,程序設(shè)計(jì)類課程作為普通高校大一各個專業(yè)開設(shè)的通識課程顯得尤為重要,通過該課程的不同程度地提高學(xué)生的程序設(shè)計(jì)能力,運(yùn)用計(jì)算思維理念及程序設(shè)計(jì)方法來解決生活和專業(yè)中實(shí)際問題,課程受眾廣泛。

      程序設(shè)計(jì)類課程教學(xué)中,很多教師往往注重程序的正確性,往往忽視了程序的規(guī)范性和質(zhì)量。我們的教學(xué)目標(biāo)不但要培養(yǎng)學(xué)生的編程思想和能力,更要注重規(guī)范學(xué)生良好的編程習(xí)慣,編寫出高質(zhì)量的代碼。

      2 程序的規(guī)范性

      規(guī)范的程序編寫可以增加可讀性,同時也便于錯誤的查找和改進(jìn)。教師在教學(xué)的初期就要嚴(yán)格規(guī)范學(xué)生的編程習(xí)慣,讓程序設(shè)計(jì)優(yōu)化思想貫穿整個學(xué)習(xí)過程,對今后的工作和學(xué)習(xí)是

      2.1 命名的規(guī)范

      讓學(xué)生建立良好的命名規(guī)范,不是符合命名規(guī)則的名字語法編譯通過即可,而是要見名思議,我么編寫的程序最終是要給別人看的,所以慎用單字符的變量名,最好用英文單詞和連字符結(jié)合的方式,增加程序的可讀性。

      2.2 運(yùn)算符的規(guī)范

      C語言以簡潔、靈活而著稱,但是不能一味地追求代碼的簡潔而忽視程序的可讀性及安全性,特別是自加和自減運(yùn)算符的合理使用。很多C語言考試試題追求難度,在自加、自減上大做文章,讓學(xué)生認(rèn)為C語言的學(xué)習(xí)重點(diǎn)在于語法的細(xì)節(jié),同時大量的語法細(xì)節(jié)束縛了學(xué)生的手腳,困在其中慢慢對C語言失去興趣。我們的教學(xué)目的是利用C語言解決生活和專業(yè)中的實(shí)際問題,提高學(xué)生解決問題的能力,所以在教學(xué)中不能舍本逐末。

      其中sum=i+++i+++i++語句涉及++和+的結(jié)合性及優(yōu)先級別的問題,我們就應(yīng)該規(guī)范學(xué)生的編程習(xí)慣,盡量避免此類可讀性差的語句,可以添加括號的方法提高可讀性,即sum=(i++)+(i++)+(i++)。但是上面語句在確定優(yōu)先級別的情況下,不同的編譯系統(tǒng)得出的結(jié)果也不同。所以不要拿這些題目來測試學(xué)生對C語言自增運(yùn)算符的理解程度,讓學(xué)生慎用自增運(yùn)算符來達(dá)到簡化程序的目的。特別是對于剛接觸C語言的學(xué)生,對編譯器不是很了解的情況下,一旦運(yùn)行時出錯很難定位錯誤的原因而浪費(fèi)大量的時間,也不利于建立學(xué)生的編程自信。

      2.3 規(guī)范程序模塊化設(shè)計(jì)思想

      一般的教材結(jié)構(gòu)通常函數(shù)是在順序、選擇、循環(huán)三大結(jié)構(gòu)和數(shù)組之后的章節(jié),但是很多軟件測試平臺都采用的是模塊化代碼進(jìn)行測試評分的,如果按照傳統(tǒng)的教材順序講授,學(xué)生很難在初期培養(yǎng)模塊化設(shè)計(jì)思想和良好的編程習(xí)慣,而且對于編程平臺的運(yùn)用也有理解障礙。所以,建議課程開始就滲透模塊化設(shè)計(jì)思想和函數(shù)概念,模塊化編程理念貫徹整個教學(xué)和實(shí)踐始終。先從無參數(shù)傳遞的函數(shù)調(diào)用再到有參數(shù)的函數(shù)設(shè)計(jì),由淺入深循序漸進(jìn)。隨著學(xué)習(xí)內(nèi)容的深入,可以設(shè)計(jì)相對復(fù)雜的實(shí)驗(yàn)項(xiàng)目,分配小組協(xié)作完成,不同的小組負(fù)責(zé)不同的模塊,最后統(tǒng)一整合。學(xué)生工程實(shí)踐能力和團(tuán)隊(duì)協(xié)作精神都得到了很大的提升。

      3 注重算法和程序的優(yōu)化思想教學(xué)

      求解同一個問題的算法可能有多種,進(jìn)行算法設(shè)計(jì)的優(yōu)劣往往在一定程度上體現(xiàn)出設(shè)計(jì)者的計(jì)算機(jī)應(yīng)用能力,所以,我們要學(xué)會如何對一個算法進(jìn)行分析并進(jìn)行優(yōu)化[1,2]。一個算法不一定能說它是最優(yōu)的,我們所說的最優(yōu)算法是指在某一種衡量標(biāo)準(zhǔn)下,優(yōu)于解決該問題的所有可能的算法。一般地,解決某個問題的最優(yōu)算法是指在時間復(fù)雜度的基礎(chǔ)上的最優(yōu)性,時間復(fù)雜度是指算法執(zhí)行的時間長短,通過把算法的核心操作執(zhí)行的次數(shù)作為算法的時間度量[3]。

      3.1 冒泡排序法的改進(jìn)

      冒泡排序算法是經(jīng)典的排序算法,C語言中利用循環(huán)嵌套來實(shí)現(xiàn)N個數(shù)的升(降)序排序。N個數(shù)要進(jìn)行N-1趟比較,第i趟中要進(jìn)行N-i次兩兩比較,如果不符合排序規(guī)律還要進(jìn)行交換。可是我們發(fā)現(xiàn),如果給定的排序數(shù)列本身就符合排序標(biāo)準(zhǔn)了,如果進(jìn)行N-i趟比較無疑是做無用功。通過設(shè)計(jì)標(biāo)記變量(flag)的方法,若有交換flag=1,沒有交換則flag=0。通過flag的值來確定上一輪是否排序成功,提前退出循環(huán)結(jié)束排序。改進(jìn)的冒泡排序算法的程序段如下:

      基本的算法的描述是教學(xué)的重點(diǎn),但是如果僅僅讓學(xué)生掌握了算法的基本思想和熟悉代碼是不健全的,更需要樹立算法優(yōu)化思想,發(fā)現(xiàn)算法設(shè)計(jì)的不足并尋找改進(jìn)措施,從而提高學(xué)生算法設(shè)計(jì)能力。

      3.2 百錢買百雞的優(yōu)化算法

      “百錢買百雞問題”是計(jì)算機(jī)程序設(shè)計(jì)中的經(jīng)典算法例題,中國古代數(shù)學(xué)家張丘建在他的《算經(jīng)》中提出了著名的:雞翁一,值錢五,雞母一,值錢三,雞雛三,值錢一,百錢買百雞,問翁、母、雛各幾何?我們通常采用窮舉法來實(shí)現(xiàn)。我們設(shè)公雞數(shù)為cock,母雞數(shù)為hen,小雞數(shù)為chicken。那么學(xué)生最容易理解的算法就是利用三重循環(huán),公雞從1至100,母雞從1至100,小雞從1至100,來逐一測試每一種方案的可能。這種算法重復(fù)執(zhí)行循環(huán)體的次數(shù)為100*100*100(106),時間復(fù)雜度非常之高。

      讓學(xué)生思考如何優(yōu)化算法,即排除不合理不可能的方案。學(xué)生會發(fā)現(xiàn)100文錢,最多能買20只公雞,最多能買33只母雞,如果都買小雞由于受只數(shù)的限制也只能買100只且錢有剩余,三重循環(huán)只需對公雞和母雞可能的枚舉范圍進(jìn)行修改。即公雞的取值范圍1~19,因?yàn)楫?dāng)公雞為20時,100文錢正好買20只雞與題意不符。同理,母雞的取值范圍為1~33,小雞的價(jià)格是1/3文,那么小雞的只數(shù)就一定是3的倍數(shù)才合理。這樣三重循環(huán)的范圍縮小為1~19,1~33,1~33。循環(huán)執(zhí)行次數(shù)為19*33*33=20691次,通過分析大大降低了算法的復(fù)雜度。

      我們分析發(fā)現(xiàn),算法的復(fù)雜度的決定因素是循環(huán)的執(zhí)行次數(shù),那么是否可以從簡化循環(huán)的重度來降低算法的復(fù)雜度呢?答案是肯定的??梢酝ㄟ^題目中隱含的條件,當(dāng)公雞和母雞只數(shù)確定的情況下(循環(huán)執(zhí)行次數(shù)為19*33),小雞的只數(shù)即為100-cock-hen ,同理也可以變化為母雞和小雞確定(循環(huán)執(zhí)行次數(shù)為33*33)或公雞和小雞只數(shù)確定(循環(huán)執(zhí)行次數(shù)為19*33)。這樣三重循環(huán)可以簡化為二重循環(huán),其中最優(yōu)的算法是第一種公雞和母雞只數(shù)確定的方案,循環(huán)執(zhí)行次數(shù)為19*33=627,算法復(fù)雜度大大降低。

      循環(huán)次數(shù)為4次,正好是最終的4種方案。

      從上面最初的算法語句的執(zhí)行頻率為106到最后的4,可以看出算法的優(yōu)化對時間復(fù)雜度的影響可見一斑。所以要引導(dǎo)學(xué)生不斷優(yōu)化算法,不能只局限于算法的正確性,更要注重算法的效率。

      4 結(jié)語

      計(jì)算機(jī)程序設(shè)計(jì)課程是普通高校的通識課程,該課程旨在提高學(xué)生分析問題和解決問題的能力,我們在教學(xué)中要培養(yǎng)學(xué)生良好的編程習(xí)慣,在講授知識的同時更要注重計(jì)算思維能力的培養(yǎng),讓學(xué)生開闊思維、不斷的優(yōu)化算法,培養(yǎng)編程自信和興趣,為課程的開展打下良好的基礎(chǔ)。

      猜你喜歡
      規(guī)范性程序設(shè)計(jì)
      規(guī)則與有效——論哈貝馬斯言語行為的規(guī)范性
      基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
      自然資源部第三批已廢止或者失效的規(guī)范性文件目錄
      從細(xì)節(jié)入手,談PLC程序設(shè)計(jì)技巧
      電子制作(2019年9期)2019-05-30 09:42:04
      作為非規(guī)范性學(xué)科的法教義學(xué)
      法律方法(2018年3期)2018-10-10 03:20:38
      規(guī)范性文件在行政訴訟中的司法適用問題
      行政法論叢(2018年2期)2018-05-21 00:48:38
      我國知識產(chǎn)權(quán)判例的規(guī)范性探討
      高職高專院校C語言程序設(shè)計(jì)教學(xué)改革探索
      OBE理念下基于Greenfoot的Java程序設(shè)計(jì)課程教學(xué)改革
      PLC梯形圖程序設(shè)計(jì)技巧及應(yīng)用
      炎陵县| 丹东市| 五指山市| 伊宁县| 荆州市| 阳高县| 建宁县| 当雄县| 文登市| 青铜峡市| 宜宾市| 盐源县| 牙克石市| 五寨县| 特克斯县| 铁岭市| 卓资县| 泸水县| 雷州市| 靖西县| 常州市| 周宁县| 大港区| 勐海县| 盐边县| 遂宁市| 北京市| 当涂县| 渭源县| 衡山县| 万荣县| 罗定市| 宁德市| 纳雍县| 临漳县| 郓城县| 类乌齐县| 溧阳市| 铁岭市| 政和县| 甘肃省|