• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Android平臺(tái)上基于卷積神經(jīng)網(wǎng)絡(luò)的手寫(xiě)數(shù)字識(shí)別實(shí)驗(yàn)

    2017-11-09 08:46:51朱虎明緱水平田小林焦李成張小華
    計(jì)算機(jī)教育 2017年11期
    關(guān)鍵詞:程序設(shè)計(jì)教材

    朱虎明,羅 政,緱水平,田小林,焦李成,張小華

    (西安電子科技大學(xué) 電子工程學(xué)院,陜西 西安 710071)

    劉喜平, 萬(wàn)常選, 舒 蔚, 駱?biāo)刮?/p>

    (江西財(cái)經(jīng)大學(xué) 信息管理學(xué)院, 江西 南昌 330013)

    Android平臺(tái)上基于卷積神經(jīng)網(wǎng)絡(luò)的手寫(xiě)數(shù)字識(shí)別實(shí)驗(yàn)

    朱虎明,羅 政,緱水平,田小林,焦李成,張小華

    (西安電子科技大學(xué) 電子工程學(xué)院,陜西 西安 710071)

    卷積神經(jīng)網(wǎng)絡(luò)算法由于良好的性能已經(jīng)廣泛使用在自動(dòng)駕駛、語(yǔ)音識(shí)別和圖像分類等領(lǐng)域,為增強(qiáng)學(xué)生學(xué)習(xí)和利用卷積神經(jīng)網(wǎng)絡(luò)算法的能力,文章設(shè)計(jì)在Android平臺(tái)上基于TensorFlow卷積神經(jīng)網(wǎng)絡(luò)的手寫(xiě)數(shù)字識(shí)別實(shí)驗(yàn),并說(shuō)明實(shí)施過(guò)程,同時(shí)介紹卷積神經(jīng)網(wǎng)絡(luò)算法、Android平臺(tái)相關(guān)技術(shù)原理和實(shí)驗(yàn)過(guò)程。

    卷積神經(jīng)網(wǎng)絡(luò); 手寫(xiě)數(shù)字識(shí)別;Android; TensorFlow

    1 背 景

    2006年加拿大多倫多大學(xué)的Hinton教授提出了基于“逐層訓(xùn)練”和“精調(diào)”的兩階段策略,解決深度神經(jīng)網(wǎng)絡(luò)中參數(shù)訓(xùn)練的難題,此后紐約大學(xué)的LeCun、蒙特利爾大學(xué)的Bengio和斯坦福大學(xué)的Andrew Ng等人對(duì)深度神經(jīng)網(wǎng)絡(luò)展開(kāi)研究,并提出深度自編碼器(Deep Auto Encoder)、深度置信網(wǎng)(Deep Belief Networks)、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks)等深度模型[1]。深度神經(jīng)網(wǎng)絡(luò)獲得學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注,在圍棋和德州撲克等領(lǐng)域獲得突破性進(jìn)展,而且深度學(xué)習(xí)的相關(guān)課程也逐漸進(jìn)入高校。在國(guó)內(nèi),吳立德教授在復(fù)旦大學(xué)開(kāi)設(shè)了深度學(xué)習(xí)課程;在國(guó)外,一些知名高校也開(kāi)設(shè)了深度學(xué)習(xí)課程,如斯坦福大學(xué)、牛津大學(xué)、紐約大學(xué)等。目前,深度學(xué)習(xí)在本科教學(xué)中目前涉及的內(nèi)容還比較少,為幫助學(xué)生更好的理解和學(xué)習(xí)算法,筆者設(shè)計(jì)在Android平臺(tái)上進(jìn)行深度學(xué)習(xí)實(shí)驗(yàn),實(shí)驗(yàn)以卷積神經(jīng)網(wǎng)絡(luò)為例,利用TensorFlow深度學(xué)習(xí)框架并將其應(yīng)用于手寫(xiě)體識(shí)別。

    卷積神經(jīng)網(wǎng)絡(luò)是近年發(fā)展起來(lái)并引起廣泛重視的一種高效識(shí)別方法。20世紀(jì)60年代,Hubel和Wiesel在研究貓腦皮層中的神經(jīng)元時(shí)發(fā)現(xiàn)其獨(dú)特的網(wǎng)絡(luò)結(jié)構(gòu)可以有效地降低反饋神經(jīng)網(wǎng)絡(luò)的復(fù)雜性,繼而提出卷積神經(jīng)網(wǎng)絡(luò)?,F(xiàn)在,卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)成為眾多科學(xué)領(lǐng)域的研究熱點(diǎn)之一,特別是在模式分類領(lǐng)域,由于卷積神經(jīng)網(wǎng)絡(luò)算法避免了對(duì)圖像手工提取特征等步驟,因而得到更為廣泛的應(yīng)用。

    隨著智能終端在全球范圍內(nèi)的普及,目前主流的智能手機(jī)操作系統(tǒng)有谷歌公司的Android系統(tǒng)、蘋果公司的iOS系統(tǒng)和微軟公司的Windows Phone系統(tǒng),由于Android系統(tǒng)的開(kāi)源特性,使得華為、三星、小米等廠商的手機(jī)都采用了Android操作系統(tǒng)。2017年5月,NetMarketShare數(shù)據(jù)網(wǎng)站公布了手機(jī)操作系統(tǒng)市場(chǎng)份額,其中Android系統(tǒng)的占有率是65.19%,排名居首。鑒于Android系統(tǒng)越來(lái)越廣的使用領(lǐng)域,目前高校開(kāi)設(shè)了很多基于Android系統(tǒng)的實(shí)驗(yàn)類課程[23]。

    2015年11月9日,Google發(fā)布并開(kāi)源第二代人工智能學(xué)習(xí)系統(tǒng)TensorFlow[4],其命名源于本身的運(yùn)行原理。Tensor(張量)意味著N維數(shù)組,F(xiàn)low(流)意味著基于數(shù)據(jù)流圖的計(jì)算,TensorFlow為張量從流圖的一端流動(dòng)到另一端的計(jì)算,TensorFlow是將復(fù)雜的數(shù)據(jù)輸入至人工智能神經(jīng)網(wǎng)中進(jìn)行分析和處理過(guò)程的系統(tǒng),它可在小到一部智能手機(jī)、大到數(shù)千臺(tái)數(shù)據(jù)中心服務(wù)器的各種設(shè)備上運(yùn)行。

    2 卷積神經(jīng)網(wǎng)絡(luò)算法介紹

    卷積神經(jīng)網(wǎng)絡(luò)是一種前饋神經(jīng)網(wǎng)絡(luò)[5],其基本結(jié)構(gòu)一般包括兩層:其一為特征提取層,每個(gè)神經(jīng)元的輸入與前一層的局部感受相連,并提取該局部的特征[5],一旦該局部特征被提取后,它與其他特征間的位置關(guān)系也隨之確定下來(lái);其二是特征映射層,網(wǎng)絡(luò)的每個(gè)計(jì)算層由多個(gè)特征映射組成,每個(gè)特征映射是一個(gè)平面,平面上所有神經(jīng)元的權(quán)值相等。

    卷積神經(jīng)網(wǎng)絡(luò)主要用來(lái)識(shí)別位移、縮放及扭曲不變性的二維圖像[68]。由于卷積神經(jīng)網(wǎng)絡(luò)的卷積層通過(guò)訓(xùn)練數(shù)據(jù)進(jìn)行學(xué)習(xí),所以在使用時(shí),避免了顯式的特征提取,而隱式地從訓(xùn)練數(shù)據(jù)中進(jìn)行學(xué)習(xí);再者由于同一特征映射面上的神經(jīng)元權(quán)值相同,所以網(wǎng)絡(luò)可以并行學(xué)習(xí)。

    本次實(shí)驗(yàn)的卷積神經(jīng)網(wǎng)絡(luò)是由兩個(gè)卷積層(conv)、兩個(gè)池化層(pool)和兩個(gè)全連接層(fc)以及一個(gè)softmax組成。第一層卷積層有32個(gè)5*5的卷積核,網(wǎng)絡(luò)采用了Relu(Recti fi ed Linear Unit 修正線性函數(shù))作為激活函數(shù)。第二層是最大池化層,求取特征圖后,用大小為2*2池化窗口對(duì)特征圖進(jìn)行池化操作。第三層中,有64個(gè)5*5的卷積核,同樣采用Relu作為激活函數(shù)。第四層也是池化窗口為2*2的最大池化層。第五層是全連接層,有1024個(gè)神經(jīng)元。為了減少過(guò)擬合,在輸出層之前加入dropout算子。只在訓(xùn)練過(guò)程中啟用dropout。第六層也是全連接層,有10個(gè)神經(jīng)元。最后添加一個(gè)softmax層,將網(wǎng)絡(luò)輸出值轉(zhuǎn)換成概率值,網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。

    3 實(shí)驗(yàn)步驟

    實(shí)驗(yàn)過(guò)程分為兩個(gè)部分,訓(xùn)練過(guò)程和推理過(guò)程。在訓(xùn)練過(guò)程中,首先要建立卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu),同時(shí)設(shè)置訓(xùn)練過(guò)程的一些超參數(shù),如學(xué)習(xí)率、動(dòng)力因子、最大迭代次數(shù)等,接著使用訓(xùn)練集對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行訓(xùn)練,但在部分情況下,會(huì)把訓(xùn)練集劃分出一部分作為驗(yàn)證集用來(lái)交叉驗(yàn)證。推理過(guò)程是用測(cè)試集對(duì)模型進(jìn)行驗(yàn)證。實(shí)驗(yàn)流程如圖2所示。

    圖1 卷積神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)結(jié)構(gòu)

    圖2 實(shí)驗(yàn)流程

    3.1 訓(xùn)練過(guò)程

    卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程在計(jì)算機(jī)上完成,分為3個(gè)步驟:①建立卷積神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)結(jié)構(gòu);②利用帶有GPU的計(jì)算機(jī)訓(xùn)練模型;③保存模型。

    (1)建立卷積神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)結(jié)構(gòu)。

    TensorFlow深度學(xué)習(xí)框架提供了python語(yǔ)言的API接口,因此利用python編程語(yǔ)言編寫(xiě)訓(xùn)練代碼,建立卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu),本次實(shí)驗(yàn)參考TensorFlow官方給出的Deep MNIST for Experts模型訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)。

    (2)利用帶有GPU的計(jì)算機(jī)訓(xùn)練模型。

    在建立好網(wǎng)絡(luò)結(jié)構(gòu)之后,下一步是訓(xùn)練模型,訓(xùn)練模型的時(shí)間一般比推理時(shí)間長(zhǎng)很多,且模型的超參數(shù)會(huì)影響正確率,所以一般需要多次訓(xùn)練,一般采用安裝有GPU的計(jì)算機(jī)進(jìn)行訓(xùn)練,由于GPU強(qiáng)大的計(jì)算能力,可以大大縮短深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時(shí)間。

    本次實(shí)驗(yàn)采用的是MNIST數(shù)據(jù)集,手寫(xiě)數(shù)字MNIST數(shù)據(jù)庫(kù)包含一個(gè)訓(xùn)練樣本集和一個(gè)測(cè)試樣本集,訓(xùn)練樣本集包含60,000個(gè)樣例,測(cè)試樣本集包含10,000個(gè)樣例。圖片被歸一化成一張放在中間部位的28*28像素的灰度圖。該數(shù)據(jù)集包含0~9共10類阿拉伯?dāng)?shù)字。數(shù)據(jù)集共包含4個(gè)文件,它們分別是訓(xùn)練樣本數(shù)據(jù)集、訓(xùn)練數(shù)據(jù)樣本標(biāo)簽集、測(cè)試用例數(shù)據(jù)集和測(cè)試用例數(shù)據(jù)標(biāo)簽集。MNIST的部分樣例如圖3所示。

    圖3 MNIST數(shù)據(jù)集樣例

    本實(shí)驗(yàn)中,訓(xùn)練優(yōu)化方法分別采用Adagrad、GradienDescent和Adam,其中GradienDescent優(yōu)化方法測(cè)試了多組參數(shù),對(duì)比識(shí)別的準(zhǔn)確率(見(jiàn)表1)發(fā)現(xiàn),GradientDescent(學(xué)習(xí)率為0.001)的正確率最高,因此網(wǎng)絡(luò)采用GradientDescent(學(xué)習(xí)率為0.001)的優(yōu)化算法。

    (3)保存模型。

    在模型訓(xùn)練結(jié)束后,使用TensorFlow的API函數(shù)tf.g fi le.FastGFile()將模型保存為.pb文件,該函數(shù)既能保存模型的結(jié)構(gòu),又能夠保存模型中參數(shù)的值。

    表1 優(yōu)化算法對(duì)比表

    3.2 推理過(guò)程

    推理過(guò)程分為兩個(gè)步驟:①搭建Android平臺(tái)上的卷積神經(jīng)網(wǎng)絡(luò)系統(tǒng);②系統(tǒng)性能測(cè)試。

    (1)搭建Android平臺(tái)上的卷積神經(jīng)網(wǎng)絡(luò)。

    本次實(shí)驗(yàn)所用到的集成開(kāi)發(fā)軟件為Android工具Android studio IDE,設(shè)計(jì)開(kāi)發(fā)的Android應(yīng)用程序分為兩個(gè)部分,第一部分是UI界面的設(shè)計(jì),第二部分是將采集的測(cè)試樣本進(jìn)行推理。

    UI界面設(shè)計(jì)主要是和用戶進(jìn)行交互,實(shí)驗(yàn)中使用了兩個(gè)Button和一個(gè)Bitmap控件。系統(tǒng)界面布局如圖4所示,本次實(shí)驗(yàn)中Android應(yīng)用通過(guò)Bitmap和Canvas操作使得界面自適應(yīng)屏幕大小。通過(guò)Android觸控屏記錄手寫(xiě)過(guò)程的軌跡,并將手寫(xiě)軌跡存儲(chǔ)為圖像數(shù)據(jù)即可生成了手寫(xiě)體數(shù)據(jù)。執(zhí)行圖像預(yù)處理,即后臺(tái)處理生成bitmap,作為模型的輸入。一個(gè)Button用作清屏,另一個(gè)Button用作觸發(fā)推理事件,即調(diào)用訓(xùn)練好的模型進(jìn)行推理,并且將返回推理結(jié)果更新到界面上。

    圖4 系統(tǒng)界面布局

    接下來(lái)是將TensorFlow移植到Android平臺(tái)上,首先編譯在Android平臺(tái)上調(diào)用TensorFlow模型需要的jar包和so文件;接著將訓(xùn)練好的模型pb文件放入項(xiàng)目中app/src/main/assets位置,添加jar包和so文件;接下來(lái)是創(chuàng)建接口和實(shí)現(xiàn)調(diào)用,分為四步:導(dǎo)入jar包、導(dǎo)入so文件、Tensor fl ow 接口初始化和模型的調(diào)用。

    然后接下來(lái)的主要工作就是安卓項(xiàng)目的編譯以及將編譯完的apk文件安裝到手機(jī),這部分內(nèi)容與一般的安卓項(xiàng)目沒(méi)有區(qū)別。

    (2)系統(tǒng)性能測(cè)試。

    基于卷積神經(jīng)網(wǎng)絡(luò)的手寫(xiě)數(shù)字識(shí)別APP設(shè)計(jì)完成且安裝到Android設(shè)備后,在運(yùn)行時(shí),利用Android的觸屏功能記錄軌跡,手寫(xiě)完成后,單擊測(cè)試按鈕,調(diào)用模型,進(jìn)行識(shí)別,并輸出結(jié)果到用戶界面。在測(cè)試完成后,單擊清除按鈕,會(huì)將繪圖區(qū)域內(nèi)生成的手寫(xiě)數(shù)字以及識(shí)別結(jié)果清除。

    4 實(shí)驗(yàn)結(jié)果展示

    本次實(shí)驗(yàn)結(jié)果如圖5、圖6所示,由圖5可知,在Android上實(shí)現(xiàn)的手寫(xiě)數(shù)字識(shí)別算法取得了較好的識(shí)別效果。圖6則是無(wú)法正確識(shí)別的實(shí)例,比如當(dāng)字符比較小的時(shí)候或者字符出現(xiàn)在Bitmap的邊緣的時(shí)候,識(shí)別效果不太理想。

    筆者下一步將著重從圖像預(yù)處理方面改善因字符太小和書(shū)寫(xiě)位置偏離中心位置等原因造成手寫(xiě)數(shù)字識(shí)別度不高的問(wèn)題。

    圖5 手寫(xiě)數(shù)字識(shí)別圖—識(shí)別正確

    圖6 手寫(xiě)數(shù)字識(shí)別圖—識(shí)別錯(cuò)誤

    [1] Hinton G E, Salakhutdinov R R. Reducing the dimensionality of data with neural networks[J]. Science, 2006(5786): 504-507

    [2] 劉春.以Android應(yīng)用為案例的軟件工程教學(xué)[J]. 計(jì)算機(jī)教育,2015(11):75-77.

    [3] 劉成明,李瑋瑋. Android手機(jī)開(kāi)發(fā)課程的案例教學(xué)法[J]. 計(jì)算機(jī)教育, 2015(14): 37-40.

    [4] Abadi M, Agarwal A, Barham P, et al. TensorFlow: Large-Scale machine learning on heterogeneous distributed systems[EB/OL].(2016-03-14)[2017-04-05]. http://download. tensor fl ow.ong/paper/white paper 2015.pdf.

    [5] 吳岸城. 神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)[M]. 北京: 電子工業(yè)出版社. 2016.

    [6] 周飛燕, 金林鵬, 董軍. 卷積神經(jīng)網(wǎng)絡(luò)研究綜述[J]. 計(jì)算機(jī)學(xué)報(bào), 2017(7): 1-23.

    [7] 余濱, 李紹滋, 徐素霞, 等. 深度學(xué)習(xí): 開(kāi)啟大數(shù)據(jù)時(shí)代的鑰匙[J]. 工程研究——跨學(xué)科視野中的工程, 2014(3): 234-235.

    [8] 焦李成, 楊淑媛, 劉芳, 等. 神經(jīng)網(wǎng)絡(luò)七十年: 回顧與展望[J]. 計(jì)算機(jī)學(xué)報(bào), 2016(8): 1697-1716.

    1672-5913(2017)11-0159-04

    G642

    西安電子科技大學(xué)新實(shí)驗(yàn)開(kāi)發(fā)與新實(shí)驗(yàn)設(shè)備研制及實(shí)驗(yàn)教學(xué)改革(SY1408)。

    朱虎明,男,副教授,研究方向?yàn)楦咝阅苡?jì)算及其應(yīng)用,zhuhum@mail.xidian.edu.cn。

    (編輯:史志偉)

    教材建設(shè)

    器—術(shù)—道:程序設(shè)計(jì)教材建設(shè)經(jīng)驗(yàn)談

    劉喜平, 萬(wàn)常選, 舒 蔚, 駱?biāo)刮?/p>

    (江西財(cái)經(jīng)大學(xué) 信息管理學(xué)院, 江西 南昌 330013)

    文章編號(hào):1672-5913(2017)11-0163-04

    中圖分類號(hào):G642

    摘 要:介紹編程能力培養(yǎng)的3個(gè)層次:器—術(shù)—道,分析這3個(gè)層次對(duì)能力的要求,然后探討《C程序設(shè)計(jì):方法與實(shí)踐》教材在夯實(shí)編程之器、提煉編程之術(shù)、引導(dǎo)編程之道3個(gè)方面中的做法。

    關(guān)鍵詞:程序設(shè)計(jì); 教材; C語(yǔ)言; 器—術(shù)—道

    基金項(xiàng)目:江西省2013年度普通本科高校卓越工程師教育培養(yǎng)計(jì)劃項(xiàng)目(贛教高字[2013]78 號(hào));江西省高等學(xué)校省級(jí)教改立項(xiàng)重點(diǎn)項(xiàng)目(JXJG-16-4-6);江西財(cái)經(jīng)大學(xué)“3+7+x”專業(yè)主干課程建設(shè)項(xiàng)目(教務(wù)通知字[2017]33號(hào))。

    作者簡(jiǎn)介:劉喜平,男,副教授,研究方向?yàn)閿?shù)據(jù)庫(kù)和數(shù)據(jù)挖掘,lewislxp@gmail.com;

    萬(wàn)常選(通信作者),男,教授,研究方向?yàn)樾畔z索和數(shù)據(jù)挖掘,wanchangxuan@263.net。

    0 引 言

    程序設(shè)計(jì)的境界有3種:器—術(shù)—道。在程序設(shè)計(jì)能力培養(yǎng)方面,一般由“器”入門,通過(guò)熟悉“術(shù)”,最終達(dá)到“道”的境界。在編寫(xiě)程序設(shè)計(jì)教材的時(shí)候,要注意這3個(gè)層次的內(nèi)容安排,并注意它們之間的過(guò)渡。

    1 編程中的“器術(shù)道”

    1.1 編程中的“器”

    《易經(jīng)》曰“形而下者謂之器”,說(shuō)得通俗一些,“器”就是具體工具。在編程中,“器”首先指編程語(yǔ)言,如Java、C/C++。“器”的另一層意思是具體特性。要學(xué)好一門語(yǔ)言,首先要掌握語(yǔ)言的基本特性,如選擇、循環(huán)、函數(shù)等;其次要掌握好這門語(yǔ)言的獨(dú)特特性,如指針操作之于C?!捌鳌钡牡谌龑右馑际蔷唧w的開(kāi)發(fā)和調(diào)試工具。學(xué)任何語(yǔ)言的時(shí)候,初學(xué)者都要熟練掌握一種開(kāi)發(fā)和調(diào)試工具,如C/C++編程,在Linux下要學(xué)會(huì)使用GDB調(diào)試,在Windows下,要會(huì)使用Visual Studio或者其他工具開(kāi)發(fā)。

    1.2 編程中的“術(shù)”

    “術(shù)”是中國(guó)古人對(duì)技藝、技巧、技能的一個(gè)稱謂,比如武術(shù)?!靶g(shù)”強(qiáng)調(diào)的是應(yīng)用,是對(duì)“器”非常熟練基礎(chǔ)上的靈活運(yùn)用。

    在編程中,“術(shù)”對(duì)應(yīng)套路、思路和算法。比如,在C文件編程中,要把一個(gè)二進(jìn)制文件中的某些記錄刪除,直觀的做法是:逐個(gè)記錄掃描,如果記錄需要?jiǎng)h除,則將后面的記錄往前挪動(dòng)。兩種常見(jiàn)的套路是:①創(chuàng)建一個(gè)新的文件,將需要保留的數(shù)據(jù)復(fù)制到新文件中,需要?jiǎng)h除的記錄則跳過(guò),最后將舊文件刪除,將新文件重命名為舊文件,這種刪除套路稱為硬刪除;②軟刪除,不真正地刪除記錄,而是標(biāo)上記號(hào)。這兩種套路各有優(yōu)缺點(diǎn),需要靈活選用。再比如,在一個(gè)應(yīng)用中如果需要將商品按照銷量排序,那么需要用到某種排序算法;如果經(jīng)常需要排序的話,需要考慮用某種數(shù)據(jù)結(jié)構(gòu),如B樹(shù)、堆等。

    1.3 編程中的“道”

    《易經(jīng)》說(shuō)“形而上者謂之道”,也就是說(shuō),“道”是對(duì)事物蘊(yùn)含思想、哲理的反思。掌握了編程之“道”的人,看透了編程工具和語(yǔ)言背后的差別,不再執(zhí)著于某種工具和語(yǔ)言,通常談?wù)摰氖羌軜?gòu)、設(shè)計(jì)模式、框架、抽象、分解等概念。如果要用一個(gè)簡(jiǎn)單的詞語(yǔ)概括編程中的“道”,那就是常說(shuō)的“計(jì)算思維”[1]。

    舉兩個(gè)簡(jiǎn)單的例子說(shuō)明“道”和“術(shù)”在編程上的區(qū)別。對(duì)于二分查找算法,得“術(shù)”者看到的是這個(gè)算法的運(yùn)用前提(數(shù)據(jù)存儲(chǔ)在線性表中且有序)、算法的基本思路等,而得“道”者看到的是這個(gè)算法背后的分治思想;當(dāng)應(yīng)用某一種框架的時(shí)候,得“術(shù)”者看到的是這個(gè)框架的組成、交互方式等,得“道”者看到的是這個(gè)框架背后的思維,如模型、視圖和控制相分離的原則。

    2 編程中的“器術(shù)道”在程序設(shè)計(jì)教材中的體現(xiàn)

    面向初學(xué)者的程序設(shè)計(jì)課程的目標(biāo),是讓學(xué)生掌握“器”,熟悉“術(shù)”,并引導(dǎo)他們感悟“道”。

    2.1 夯實(shí)編程之“器”

    C程序設(shè)計(jì)是一門非常基礎(chǔ)的課程,在“器”這個(gè)層面上,必須要掌握兩部分:一是C語(yǔ)言的知識(shí)點(diǎn);二是C語(yǔ)言的開(kāi)發(fā)和調(diào)試工具。

    大部分教材介紹C語(yǔ)言知識(shí)點(diǎn)的時(shí)候,把這些知識(shí)點(diǎn)分割成若干個(gè)條塊。一種常見(jiàn)的知識(shí)點(diǎn)劃分見(jiàn)圖1,其中虛線框部分可以并列,其先后順序比較隨意。

    圖1 C語(yǔ)言知識(shí)點(diǎn)條塊結(jié)構(gòu)圖

    這種條塊式結(jié)構(gòu)的優(yōu)點(diǎn)是:結(jié)構(gòu)清晰,方便教學(xué)。學(xué)校的教學(xué)實(shí)踐,初期也采取這種教學(xué)模式,但是在實(shí)踐中發(fā)現(xiàn),這種條塊式結(jié)構(gòu)存在以下不足:

    (1)知識(shí)點(diǎn)之間的滲透不夠。

    (2)教學(xué)初期的例子比較簡(jiǎn)單、單調(diào)。

    (3)學(xué)生的綜合訓(xùn)練比較少。

    考慮到這些問(wèn)題,筆者采取一種新的層級(jí)式結(jié)構(gòu):先介紹C語(yǔ)言的內(nèi)核,再系統(tǒng)地介紹C語(yǔ)言知識(shí)點(diǎn),這個(gè)內(nèi)核包含的內(nèi)容如下。

    · C程序的構(gòu)成;

    · 最常見(jiàn)的數(shù)據(jù)類型:int、 fl oat和 double、char 4種基本數(shù)據(jù)類型;

    · 輸入輸出:printf和scanf函數(shù)(只介紹常用的格式控制符);

    · 常量和變量的概念;

    · 運(yùn)算符與表達(dá)式:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符;

    · 語(yǔ)句:簡(jiǎn)單語(yǔ)句、語(yǔ)句塊、if語(yǔ)句、for語(yǔ)句、while語(yǔ)句;

    · 函數(shù)調(diào)用。

    在此基礎(chǔ)上,系統(tǒng)地介紹C語(yǔ)言的知識(shí)點(diǎn)。按照順序分別是:數(shù)據(jù)類型與輸入輸出、運(yùn)算符與表達(dá)式、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、函數(shù)、指針與數(shù)組、C程序運(yùn)行原理、結(jié)構(gòu)體、文件和其他。在這些章節(jié)中,有幾個(gè)部分值得特別介紹。

    (1)數(shù)據(jù)類型與輸入輸出。這一部分與其他教材差別很大。除了基本數(shù)據(jù)類型及其輸入和輸出,也介紹了:

    · 數(shù)組、字符串及其輸入輸出。這里介紹了數(shù)組是如何創(chuàng)建、初始化和遍歷的(用for、while語(yǔ)句),還介紹了puts、gets等常見(jiàn)的字符串輸入和輸出函數(shù),但沒(méi)有直接引入指針的概念。

    · 文本文件輸入輸出,包括fscanf和fprintf兩個(gè)格式化輸入輸出函數(shù)。

    (2)循環(huán)結(jié)構(gòu)。在介紹循環(huán)結(jié)構(gòu)的時(shí)候,引入了選擇排序、冒泡排序、楊輝三角、字符串單詞統(tǒng)計(jì)、文本文件字符統(tǒng)計(jì)等例子,一方面讓學(xué)生更好地掌握復(fù)雜的循環(huán)結(jié)構(gòu),另一方面加強(qiáng)了知識(shí)點(diǎn)的融合,擴(kuò)大了知識(shí)面。

    (3)C程序運(yùn)行原理。這一章包含了所有系統(tǒng)底層的介紹,包括計(jì)算機(jī)的存儲(chǔ)器體系結(jié)構(gòu)、程序的內(nèi)存布局、變量的存儲(chǔ)類型等。這一章的目的是更好地培養(yǎng)學(xué)生的系統(tǒng)觀。

    (4)文件。由于在前面章節(jié)中已經(jīng)對(duì)文本文件的讀寫(xiě)操作進(jìn)行了很多演練,因此這一章主要圍繞二進(jìn)制文件的讀寫(xiě)進(jìn)行。特別地介紹了二進(jìn)制文件記錄的讀、寫(xiě)、刪、查等操作場(chǎng)景。通過(guò)這些例子,可以讓學(xué)生更熟悉文件操作,也更側(cè)重實(shí)際應(yīng)用。

    通過(guò)這樣的安排,不僅加強(qiáng)了知識(shí)點(diǎn)之間的融合,而且大大提高了例題的多樣性,還可以在教學(xué)過(guò)程中安排更多的綜合訓(xùn)練,比如文本文件處理。

    另一方面,“器”還強(qiáng)調(diào)對(duì)工具的使用,這里最主要的是調(diào)試工具。筆者在教材中安排一章介紹常見(jiàn)開(kāi)發(fā)環(huán)境的使用(介紹了Visual Studio Community和Code::Blocks),可以幫助初學(xué)者掌握調(diào)試技巧。

    2.2 提煉編程之“術(shù)”

    程序設(shè)計(jì)中的“術(shù)”就是應(yīng)用基本的程序設(shè)計(jì)知識(shí)點(diǎn)解決問(wèn)題的模式[2]、套路和算法。因此,它是知識(shí)點(diǎn)的綜合應(yīng)用,是一些解決問(wèn)題的有效思路。為了讓學(xué)生盡快熟悉編程之術(shù),在教材中采取了以下策略。

    (1)精選例題,從例題中引申出編程之術(shù)。筆者安排了綜合性、有代表性的例子,例如在循環(huán)結(jié)構(gòu)這一章,介紹了選擇排序和冒泡排序兩種排序算法;在函數(shù)這一章,安排了輸出日歷以及簡(jiǎn)單四則運(yùn)算的例子,通過(guò)分析這些問(wèn)題,學(xué)生可以學(xué)習(xí)到程序分解的過(guò)程以及關(guān)于日期的操作;在結(jié)構(gòu)體這一章,介紹了基于鏈表的學(xué)生學(xué)籍信息管理實(shí)例,讓學(xué)生掌握與記錄操作相關(guān)的套路;在文件這一章,展示了如何從二進(jìn)制文件中刪除滿足某些條件的記錄的思路。

    (2)注重總結(jié),提煉出編程之術(shù)。初學(xué)者往往不善于總結(jié),因此教材中加入了大量的總結(jié)和提煉。首先,每一章結(jié)束后都有本章小結(jié),對(duì)本章的知識(shí)點(diǎn)、常見(jiàn)套路和算法進(jìn)行了總結(jié)。其次,在一些代表性的例題后面,對(duì)例題中的關(guān)鍵算法進(jìn)行了總結(jié)。第三,介紹一些知識(shí)點(diǎn)的時(shí)候,順便介紹該知識(shí)點(diǎn)相關(guān)的常見(jiàn)套路。例如介紹了字符之后,總結(jié)大小寫(xiě)字符之間的轉(zhuǎn)換等;在介紹浮點(diǎn)數(shù)的時(shí)候,提醒浮點(diǎn)數(shù)比較的注意事項(xiàng);在介紹循環(huán)結(jié)構(gòu)的時(shí)候,提煉窮舉算法的思想和注意事項(xiàng);在講解遞歸函數(shù)調(diào)用的時(shí)候,總結(jié)遞歸這一技巧應(yīng)用的要點(diǎn)。

    (3)及時(shí)訓(xùn)練,鞏固編程之術(shù)。在習(xí)題和實(shí)驗(yàn)中,設(shè)計(jì)了相關(guān)題目,要求學(xué)生及時(shí)應(yīng)用學(xué)到的套路和算法。

    在編程實(shí)踐中,還有大量與編程風(fēng)格和編程效率有關(guān)的經(jīng)驗(yàn)和技巧,這些也屬于“術(shù)”的范疇。這些內(nèi)容在教材中的8個(gè)“編程實(shí)踐”章節(jié)中有所涉及,如代碼風(fēng)格、命名、程序計(jì)時(shí)、軟件測(cè)試、實(shí)用字符串處理、程序設(shè)計(jì)與操作系統(tǒng)、中文處理等。這8個(gè)章節(jié)的內(nèi)容可以擴(kuò)大學(xué)生的知識(shí)面,激發(fā)學(xué)生的興趣。在實(shí)際教學(xué)中,這8個(gè)章節(jié)不一定由教師講授,完全可以讓學(xué)生自學(xué)。

    2.3 感悟編程之“道”

    對(duì)初學(xué)者來(lái)說(shuō),編程之“道”,或者說(shuō)計(jì)算思維,往往比較抽象,難以理解。因此,需要對(duì)學(xué)生加以引導(dǎo)和點(diǎn)化。本教材中,很多地方都點(diǎn)出了程序背后的“道”。

    (1)專門開(kāi)辟了一個(gè)章節(jié)“復(fù)雜問(wèn)題的求解算法”,介紹了很多面向問(wèn)題求解的思想,如分治、貪心、動(dòng)態(tài)規(guī)劃和回溯。對(duì)于每種思想,描述了其思維模式,指出其應(yīng)用范圍和優(yōu)缺點(diǎn),并給出多個(gè)例子演示其應(yīng)用。這樣,對(duì)于這些抽象思想,學(xué)生就有了比較感性的認(rèn)識(shí)。

    (2)在介紹知識(shí)點(diǎn)的時(shí)候適時(shí)點(diǎn)化。比如,緩存的思想在計(jì)算機(jī)硬件和軟件中經(jīng)常用到。教材在介紹計(jì)算機(jī)存儲(chǔ)體系的時(shí)候,不是直接介紹這些存儲(chǔ)器,而是把內(nèi)存看作CPU和磁盤之間的緩存,L2 cache看作CPU和內(nèi)存之間的緩存,L1 cache又是CPU和L2 cache之間的高速緩存。最后,指出其中存在緩存思路的反復(fù)應(yīng)用:為了彌補(bǔ)高速處理器和低速存儲(chǔ)器之間的速度差異,可以在它們之間插入一個(gè)更小但更快的存儲(chǔ)器,換句話說(shuō),中間存儲(chǔ)器是低速存儲(chǔ)器的高速緩存。

    類似這樣的例子還有很多。通過(guò)這些例子,點(diǎn)出一些典型的計(jì)算思維,也許學(xué)生不一定馬上就能夠應(yīng)用這些思維解決問(wèn)題,但是可以引導(dǎo)學(xué)生從一個(gè)更高的角度看待問(wèn)題,這對(duì)學(xué)生理解程序設(shè)計(jì)的本質(zhì)和計(jì)算機(jī)系統(tǒng)無(wú)疑是有巨大幫助的。

    當(dāng)然,真正讓學(xué)生感悟這些“道”,還需要教師在教學(xué)過(guò)程中的引導(dǎo)。

    3 教材結(jié)構(gòu)

    教材《C程序設(shè)計(jì):方法與實(shí)踐》[3](以下簡(jiǎn)稱本教材)的前身是2009年出版的《C語(yǔ)言與程序設(shè)計(jì)方法》第1版[4]和第2版[5]。在本教材正式出版之前,初稿于2015—2016年在本校試用了兩年,并根據(jù)反饋意見(jiàn)進(jìn)行了修改、定稿,最后由清華大學(xué)出版社于2017年5月出版。

    3.1 教材的章節(jié)內(nèi)容

    本教材的章節(jié)目錄和內(nèi)容見(jiàn)表1。

    與現(xiàn)有教材相比,本教材在結(jié)構(gòu)上有所突破,在內(nèi)容組織上有所創(chuàng)新,精選了例題,并強(qiáng)調(diào)工程化和規(guī)范化的開(kāi)發(fā),這些在前面都已提到,此處不再重復(fù)。

    表1 教材目錄和章節(jié)內(nèi)容

    3.2 教材的輔助資源

    為了配合這本教材的使用,筆者在書(shū)中安排了9個(gè)實(shí)驗(yàn),其中每個(gè)實(shí)驗(yàn)包含了若干個(gè)實(shí)驗(yàn)項(xiàng)目。每個(gè)實(shí)驗(yàn)經(jīng)過(guò)精心設(shè)計(jì),題目類型多樣,可以有效地鞏固所學(xué)內(nèi)容。

    另外,為了方便教師教學(xué),教材編寫(xiě)組精心準(zhǔn)備了前13章的教學(xué)課件,該教學(xué)課件是作者教學(xué)中使用并若干次修改和增補(bǔ)而來(lái),內(nèi)容非常豐富,可以直接用于教學(xué)。

    4 結(jié) 語(yǔ)

    在本教材出版之前,筆者在教學(xué)實(shí)踐中一直在思考和嘗試,進(jìn)行了一系列的教學(xué)改革。本教材的出版是筆者的教學(xué)成果之一。跟本教材配套,筆者在教學(xué)方法上進(jìn)行了一系列的調(diào)整,如實(shí)施了翻轉(zhuǎn)教學(xué)、加大了實(shí)踐訓(xùn)練的力度等。實(shí)踐證明,圍繞這一教材展開(kāi)的教學(xué)改革有明顯成效,學(xué)生的學(xué)習(xí)興趣明顯提升,實(shí)踐動(dòng)手能力有大的改進(jìn)。

    參考文獻(xiàn):

    [1] Wing J M. Computational thinking [J]. Communications of the ACM, 2006, 49(3): 33-35.

    [2] 張俊, 張彥鐸. 模式在程序設(shè)計(jì)教學(xué)中的應(yīng)用[J]. 計(jì)算機(jī)教育, 2010(3): 108-111.

    [3] 劉喜平, 萬(wàn)常選, 舒蔚. C程序設(shè)計(jì): 方法與實(shí)踐[M]. 北京: 清華大學(xué)出版社, 2017.

    [4] 萬(wàn)常選, 舒蔚, 駱?biāo)刮? C語(yǔ)言與程序設(shè)計(jì)方法[M]. 北京: 科學(xué)出版社, 2005.

    [5] 萬(wàn)常選, 舒蔚, 駱?biāo)刮? C語(yǔ)言與程序設(shè)計(jì)方法[M]. 2版. 北京:科學(xué)出版社, 2009.

    (編輯:孫怡銘)

    猜你喜歡
    程序設(shè)計(jì)教材
    教材精讀
    教材精讀
    教材精讀
    教材精讀
    教材精讀
    基于Visual Studio Code的C語(yǔ)言程序設(shè)計(jì)實(shí)踐教學(xué)探索
    教材精讀
    從細(xì)節(jié)入手,談PLC程序設(shè)計(jì)技巧
    電子制作(2019年9期)2019-05-30 09:42:04
    高職高專院校C語(yǔ)言程序設(shè)計(jì)教學(xué)改革探索
    OBE理念下基于Greenfoot的Java程序設(shè)計(jì)課程教學(xué)改革
    久久久久国内视频| 日韩中文字幕欧美一区二区| 狂野欧美激情性xxxx| 女性生殖器流出的白浆| 国产亚洲av高清不卡| 夫妻午夜视频| 亚洲av熟女| 国产在线观看jvid| 国产成+人综合+亚洲专区| 国产成人欧美在线观看 | 久久国产精品人妻蜜桃| 制服诱惑二区| a级片在线免费高清观看视频| 麻豆成人av在线观看| 高清av免费在线| 99国产精品一区二区蜜桃av | 国产麻豆69| 欧美激情高清一区二区三区| av天堂在线播放| 亚洲成人手机| 人人妻人人澡人人看| 久久国产精品大桥未久av| 国产一区二区三区综合在线观看| 老熟妇仑乱视频hdxx| 啦啦啦在线免费观看视频4| 人人妻人人澡人人看| 久久中文字幕一级| 久久国产精品男人的天堂亚洲| 岛国在线观看网站| 欧美国产精品一级二级三级| 电影成人av| 亚洲国产看品久久| 精品福利观看| 久久久久精品国产欧美久久久| a在线观看视频网站| 老汉色av国产亚洲站长工具| ponron亚洲| 丁香六月欧美| 免费观看a级毛片全部| 亚洲精品美女久久久久99蜜臀| 亚洲精品国产区一区二| 少妇猛男粗大的猛烈进出视频| 极品人妻少妇av视频| 亚洲九九香蕉| 午夜福利乱码中文字幕| 日韩中文字幕欧美一区二区| 91大片在线观看| 久久性视频一级片| 在线免费观看的www视频| 国产深夜福利视频在线观看| 国产成+人综合+亚洲专区| 久久影院123| 热99re8久久精品国产| 亚洲精品自拍成人| 中文字幕人妻熟女乱码| 国产国语露脸激情在线看| 欧美成人免费av一区二区三区 | 国产成人免费无遮挡视频| 99精品在免费线老司机午夜| 国产亚洲欧美精品永久| 日日爽夜夜爽网站| 欧美性长视频在线观看| 久久国产亚洲av麻豆专区| 久久国产精品影院| av线在线观看网站| 好男人电影高清在线观看| 色在线成人网| 欧美黑人欧美精品刺激| 久热这里只有精品99| 国产欧美日韩一区二区三| 男女床上黄色一级片免费看| 国产精品九九99| 亚洲精品国产精品久久久不卡| 久久久久精品人妻al黑| 欧美在线黄色| 99国产精品一区二区三区| 天天躁日日躁夜夜躁夜夜| 国产乱人伦免费视频| 91字幕亚洲| 久久久精品免费免费高清| 亚洲少妇的诱惑av| 啦啦啦免费观看视频1| 国产精品免费一区二区三区在线 | 国产亚洲欧美在线一区二区| 免费高清在线观看日韩| 国产成人精品久久二区二区91| 欧美色视频一区免费| 国产熟女午夜一区二区三区| 国产精品偷伦视频观看了| 亚洲国产欧美一区二区综合| 中文字幕另类日韩欧美亚洲嫩草| 黄片小视频在线播放| 欧美日韩中文字幕国产精品一区二区三区 | 欧美日韩国产mv在线观看视频| 成人影院久久| 亚洲在线自拍视频| 大码成人一级视频| 两个人看的免费小视频| 国产激情久久老熟女| xxxhd国产人妻xxx| 91在线观看av| 色婷婷久久久亚洲欧美| 女性被躁到高潮视频| 悠悠久久av| 精品国产亚洲在线| 老司机靠b影院| av中文乱码字幕在线| 十八禁高潮呻吟视频| 国产精品影院久久| 久久精品国产亚洲av香蕉五月 | 丰满人妻熟妇乱又伦精品不卡| av天堂久久9| 亚洲在线自拍视频| 亚洲av成人一区二区三| 久久影院123| 国产日韩一区二区三区精品不卡| 50天的宝宝边吃奶边哭怎么回事| 精品国产国语对白av| 欧美精品啪啪一区二区三区| 欧美黑人精品巨大| 一级片免费观看大全| 国产97色在线日韩免费| 亚洲在线自拍视频| 久久久精品区二区三区| 在线天堂中文资源库| 国产黄色免费在线视频| www.精华液| 免费在线观看日本一区| 色婷婷久久久亚洲欧美| 欧美在线黄色| 最新的欧美精品一区二区| 女警被强在线播放| 嫁个100分男人电影在线观看| 国产精品香港三级国产av潘金莲| 欧美日韩中文字幕国产精品一区二区三区 | 少妇 在线观看| 亚洲精品在线观看二区| 中文字幕另类日韩欧美亚洲嫩草| 嫁个100分男人电影在线观看| e午夜精品久久久久久久| 久久精品国产99精品国产亚洲性色 | 日韩欧美三级三区| 国产成人精品无人区| 人人妻人人澡人人看| 国产aⅴ精品一区二区三区波| 少妇 在线观看| 国产高清激情床上av| 亚洲一码二码三码区别大吗| 欧美成人免费av一区二区三区 | 国产免费现黄频在线看| 又大又爽又粗| 制服人妻中文乱码| 成年人午夜在线观看视频| 涩涩av久久男人的天堂| 一区福利在线观看| 巨乳人妻的诱惑在线观看| 欧美日韩乱码在线| 久久人妻福利社区极品人妻图片| 亚洲黑人精品在线| 91国产中文字幕| 在线观看免费午夜福利视频| 亚洲国产中文字幕在线视频| 久久精品国产99精品国产亚洲性色 | 国产激情久久老熟女| 国产精品国产高清国产av | 色综合欧美亚洲国产小说| 岛国在线观看网站| 日韩欧美国产一区二区入口| 国产精品av久久久久免费| 在线观看免费午夜福利视频| 91大片在线观看| 成年人午夜在线观看视频| 国产深夜福利视频在线观看| 精品久久久久久久毛片微露脸| 男人操女人黄网站| 50天的宝宝边吃奶边哭怎么回事| 国产精品影院久久| 69av精品久久久久久| 久久这里只有精品19| 精品国产国语对白av| 免费看a级黄色片| 国产伦人伦偷精品视频| 最新美女视频免费是黄的| 亚洲三区欧美一区| 国产欧美亚洲国产| 夜夜夜夜夜久久久久| 国产成+人综合+亚洲专区| 天天影视国产精品| 免费高清在线观看日韩| av网站在线播放免费| 淫妇啪啪啪对白视频| 久久婷婷成人综合色麻豆| 欧美黄色片欧美黄色片| 国产熟女午夜一区二区三区| 成人精品一区二区免费| 亚洲第一av免费看| 国产精品二区激情视频| 亚洲av欧美aⅴ国产| 狂野欧美激情性xxxx| 国产片内射在线| 咕卡用的链子| xxxhd国产人妻xxx| 捣出白浆h1v1| 在线天堂中文资源库| 国产熟女午夜一区二区三区| 在线观看免费午夜福利视频| 嫁个100分男人电影在线观看| 国产精品一区二区在线不卡| 欧美乱码精品一区二区三区| 欧美乱色亚洲激情| 成人特级黄色片久久久久久久| 亚洲全国av大片| 国产主播在线观看一区二区| 一进一出好大好爽视频| 女人被躁到高潮嗷嗷叫费观| 午夜福利,免费看| 啪啪无遮挡十八禁网站| 一进一出抽搐动态| 国产单亲对白刺激| 最近最新中文字幕大全电影3 | 女警被强在线播放| 久久这里只有精品19| 成人影院久久| 又黄又爽又免费观看的视频| 亚洲全国av大片| 1024香蕉在线观看| а√天堂www在线а√下载 | 久久人人97超碰香蕉20202| 搡老岳熟女国产| 男女床上黄色一级片免费看| 亚洲人成电影免费在线| 亚洲欧美精品综合一区二区三区| 一二三四社区在线视频社区8| 欧美日韩一级在线毛片| 水蜜桃什么品种好| 日韩三级视频一区二区三区| 老司机福利观看| 老司机在亚洲福利影院| 人人妻人人澡人人爽人人夜夜| 亚洲成国产人片在线观看| 无限看片的www在线观看| 国产蜜桃级精品一区二区三区 | 国产精品影院久久| 亚洲人成电影观看| 午夜91福利影院| 精品国产国语对白av| av在线播放免费不卡| a在线观看视频网站| 一级毛片女人18水好多| 色在线成人网| 免费女性裸体啪啪无遮挡网站| 成人影院久久| 伊人久久大香线蕉亚洲五| 国产精品一区二区在线观看99| 欧美人与性动交α欧美精品济南到| 亚洲 欧美一区二区三区| 精品亚洲成国产av| 国产av又大| 热re99久久国产66热| 亚洲国产毛片av蜜桃av| 99热国产这里只有精品6| 亚洲午夜理论影院| 国产精品免费一区二区三区在线 | 王馨瑶露胸无遮挡在线观看| 欧美黑人精品巨大| 久久香蕉激情| 免费在线观看视频国产中文字幕亚洲| 亚洲精品一二三| 很黄的视频免费| 亚洲欧美激情在线| 精品国产一区二区三区久久久樱花| 777米奇影视久久| 亚洲精品在线美女| 香蕉丝袜av| 国产高清videossex| 12—13女人毛片做爰片一| 亚洲性夜色夜夜综合| 午夜成年电影在线免费观看| 免费看a级黄色片| 国产精品偷伦视频观看了| 精品国产国语对白av| 亚洲精品久久成人aⅴ小说| 久99久视频精品免费| 欧美日韩瑟瑟在线播放| 女人久久www免费人成看片| 久久久久国产一级毛片高清牌| 国产亚洲av高清不卡| 成在线人永久免费视频| 人人澡人人妻人| videos熟女内射| 一区二区三区精品91| 热99国产精品久久久久久7| 国产精品九九99| 最近最新中文字幕大全电影3 | 午夜老司机福利片| 亚洲精品中文字幕在线视频| 最新的欧美精品一区二区| 欧美国产精品va在线观看不卡| 精品乱码久久久久久99久播| 一进一出抽搐动态| 超碰97精品在线观看| 国产成人精品久久二区二区91| 精品高清国产在线一区| 亚洲精品美女久久久久99蜜臀| 大片电影免费在线观看免费| 国产亚洲精品第一综合不卡| 久9热在线精品视频| 9191精品国产免费久久| 人妻一区二区av| 香蕉国产在线看| a级毛片黄视频| 国产免费现黄频在线看| 国产99久久九九免费精品| 18禁观看日本| 久久久久久久久久久久大奶| 欧美日韩国产mv在线观看视频| 一进一出好大好爽视频| 亚洲avbb在线观看| 日本五十路高清| 男女下面插进去视频免费观看| 一级毛片精品| av欧美777| 午夜精品久久久久久毛片777| 色婷婷久久久亚洲欧美| 天天添夜夜摸| 成人影院久久| 国产不卡一卡二| 久久这里只有精品19| 999精品在线视频| 国产有黄有色有爽视频| 黄色a级毛片大全视频| 亚洲第一av免费看| 久久精品国产99精品国产亚洲性色 | 久久午夜亚洲精品久久| 欧美日韩瑟瑟在线播放| 国产精品自产拍在线观看55亚洲 | 亚洲av日韩精品久久久久久密| 丰满迷人的少妇在线观看| 国产高清视频在线播放一区| 亚洲国产欧美一区二区综合| 免费一级毛片在线播放高清视频 | 免费黄频网站在线观看国产| 欧美乱妇无乱码| 精品少妇一区二区三区视频日本电影| 久久天躁狠狠躁夜夜2o2o| 国产亚洲精品一区二区www | 国产精品一区二区精品视频观看| 在线天堂中文资源库| svipshipincom国产片| 亚洲 国产 在线| 黑丝袜美女国产一区| 日本vs欧美在线观看视频| 国产99久久九九免费精品| 国产99久久九九免费精品| 777久久人妻少妇嫩草av网站| 精品无人区乱码1区二区| 一边摸一边抽搐一进一出视频| 日韩成人在线观看一区二区三区| av超薄肉色丝袜交足视频| 电影成人av| 制服诱惑二区| 99精品在免费线老司机午夜| 亚洲精品久久成人aⅴ小说| 国产麻豆69| 欧美乱码精品一区二区三区| av在线播放免费不卡| 男人操女人黄网站| 日日夜夜操网爽| 女人被躁到高潮嗷嗷叫费观| 免费在线观看完整版高清| 国产色视频综合| 亚洲一区中文字幕在线| 成年版毛片免费区| 高清欧美精品videossex| 日韩欧美一区二区三区在线观看 | 精品第一国产精品| 亚洲精品一卡2卡三卡4卡5卡| 天天躁狠狠躁夜夜躁狠狠躁| 欧美成狂野欧美在线观看| 免费在线观看视频国产中文字幕亚洲| 久久久久精品人妻al黑| 三级毛片av免费| 老司机亚洲免费影院| 在线免费观看的www视频| 国产成人av教育| 老司机亚洲免费影院| av欧美777| 无人区码免费观看不卡| 亚洲专区字幕在线| 宅男免费午夜| 亚洲免费av在线视频| 黑人巨大精品欧美一区二区mp4| 老司机影院毛片| 免费在线观看亚洲国产| www日本在线高清视频| 日韩三级视频一区二区三区| 成年女人毛片免费观看观看9 | 女性生殖器流出的白浆| 黑人猛操日本美女一级片| 极品少妇高潮喷水抽搐| 十八禁人妻一区二区| 欧美大码av| 欧美在线黄色| 午夜老司机福利片| 精品一区二区三区视频在线观看免费 | 黄色毛片三级朝国网站| 国产主播在线观看一区二区| 最近最新中文字幕大全电影3 | 亚洲精品国产色婷婷电影| 他把我摸到了高潮在线观看| av一本久久久久| 亚洲av美国av| 脱女人内裤的视频| 十八禁网站免费在线| 欧美最黄视频在线播放免费 | 狠狠狠狠99中文字幕| 中文字幕av电影在线播放| 久久香蕉国产精品| 一本大道久久a久久精品| 岛国毛片在线播放| 黄色怎么调成土黄色| 亚洲片人在线观看| 成人亚洲精品一区在线观看| 十八禁网站免费在线| 久久久国产成人精品二区 | 国产精品亚洲av一区麻豆| 精品少妇一区二区三区视频日本电影| 色精品久久人妻99蜜桃| 精品高清国产在线一区| 日本黄色日本黄色录像| 91老司机精品| 精品人妻在线不人妻| 人妻久久中文字幕网| 巨乳人妻的诱惑在线观看| 中国美女看黄片| 777久久人妻少妇嫩草av网站| 精品久久久久久久毛片微露脸| 怎么达到女性高潮| 丰满的人妻完整版| 欧美成人免费av一区二区三区 | 狠狠狠狠99中文字幕| 欧美日韩国产mv在线观看视频| 国产欧美亚洲国产| 亚洲在线自拍视频| 欧美午夜高清在线| 欧美日韩亚洲国产一区二区在线观看 | 欧美精品高潮呻吟av久久| 18禁黄网站禁片午夜丰满| 国产精品久久久久久精品古装| 在线观看午夜福利视频| 欧美日韩av久久| 亚洲七黄色美女视频| 91九色精品人成在线观看| 天堂√8在线中文| 两个人看的免费小视频| 国产免费av片在线观看野外av| 亚洲人成77777在线视频| 黄片播放在线免费| 国产精品国产av在线观看| 亚洲国产中文字幕在线视频| 天天影视国产精品| 十分钟在线观看高清视频www| 丝瓜视频免费看黄片| 欧美日韩一级在线毛片| 亚洲精品国产区一区二| 一区二区三区精品91| 一边摸一边做爽爽视频免费| 国产精品久久视频播放| 一级a爱视频在线免费观看| 狠狠婷婷综合久久久久久88av| 国产成人av教育| 久久久久久免费高清国产稀缺| 亚洲一码二码三码区别大吗| 看免费av毛片| 一区二区日韩欧美中文字幕| 在线播放国产精品三级| 国产欧美日韩一区二区三| 午夜成年电影在线免费观看| 亚洲片人在线观看| 欧美国产精品一级二级三级| 久久天堂一区二区三区四区| 免费在线观看亚洲国产| 亚洲专区中文字幕在线| 一进一出抽搐动态| 国产精品综合久久久久久久免费 | 一本大道久久a久久精品| 欧美日韩乱码在线| 99国产精品一区二区三区| 国产有黄有色有爽视频| 中文字幕高清在线视频| 国产一区二区三区综合在线观看| 久久青草综合色| 99在线人妻在线中文字幕 | 在线天堂中文资源库| xxxhd国产人妻xxx| 亚洲熟妇中文字幕五十中出 | 欧美日韩国产mv在线观看视频| 黑丝袜美女国产一区| 欧美性长视频在线观看| 一夜夜www| www日本在线高清视频| 在线看a的网站| 欧美国产精品va在线观看不卡| 一夜夜www| 色老头精品视频在线观看| 亚洲aⅴ乱码一区二区在线播放 | 淫妇啪啪啪对白视频| 99re6热这里在线精品视频| 一级毛片女人18水好多| 欧美激情极品国产一区二区三区| 免费观看精品视频网站| 美女高潮到喷水免费观看| 少妇猛男粗大的猛烈进出视频| 午夜福利在线免费观看网站| 女人爽到高潮嗷嗷叫在线视频| 国产亚洲精品久久久久5区| 亚洲色图av天堂| 久久久久久久久久久久大奶| 欧美日韩精品网址| 女警被强在线播放| 久久久精品免费免费高清| 亚洲色图综合在线观看| 男女免费视频国产| 国产99白浆流出| 国产区一区二久久| 亚洲男人天堂网一区| 咕卡用的链子| 国产精品成人在线| 在线观看一区二区三区激情| 人人澡人人妻人| 男女之事视频高清在线观看| 久久婷婷成人综合色麻豆| 欧美一级毛片孕妇| 久久久水蜜桃国产精品网| 久久久久国产精品人妻aⅴ院 | 波多野结衣av一区二区av| 精品第一国产精品| 午夜亚洲福利在线播放| 国产精品久久久av美女十八| 制服人妻中文乱码| 狠狠婷婷综合久久久久久88av| 精品国产超薄肉色丝袜足j| 在线av久久热| 亚洲男人天堂网一区| 中文字幕精品免费在线观看视频| 久久午夜亚洲精品久久| 日韩 欧美 亚洲 中文字幕| 国产精品电影一区二区三区 | 国产99白浆流出| 两人在一起打扑克的视频| 亚洲,欧美精品.| 又黄又粗又硬又大视频| 国产欧美日韩一区二区精品| 日韩精品免费视频一区二区三区| 国产精品电影一区二区三区 | 老熟妇仑乱视频hdxx| www.精华液| 亚洲av电影在线进入| 一二三四在线观看免费中文在| 精品久久久久久电影网| 亚洲成人国产一区在线观看| 一本大道久久a久久精品| 成人黄色视频免费在线看| 亚洲国产看品久久| 亚洲中文日韩欧美视频| 免费看十八禁软件| 久久国产乱子伦精品免费另类| 午夜免费鲁丝| 欧美精品人与动牲交sv欧美| 亚洲伊人色综图| 欧美大码av| 国产精品.久久久| 欧美人与性动交α欧美软件| 国产精品 国内视频| 国产亚洲一区二区精品| 桃红色精品国产亚洲av| 午夜视频精品福利| 最近最新免费中文字幕在线| 亚洲黑人精品在线| 久久久久国产精品人妻aⅴ院 | 日韩免费高清中文字幕av| 日韩人妻精品一区2区三区| 一区二区三区激情视频| 亚洲人成电影免费在线| 亚洲成人免费av在线播放| 欧美另类亚洲清纯唯美| 一本一本久久a久久精品综合妖精| 一级毛片高清免费大全| 人成视频在线观看免费观看| 亚洲国产欧美日韩在线播放| 亚洲精品乱久久久久久| 国产精品久久久人人做人人爽| 两个人看的免费小视频| 欧美老熟妇乱子伦牲交| 免费一级毛片在线播放高清视频 | 一进一出抽搐gif免费好疼 | 久久ye,这里只有精品| 99在线人妻在线中文字幕 | 日韩欧美免费精品| 国产精品99久久99久久久不卡| 大香蕉久久成人网| 丝瓜视频免费看黄片| 一级片'在线观看视频| 亚洲av美国av| 91在线观看av| 久久亚洲真实| 妹子高潮喷水视频| 午夜老司机福利片| 国产淫语在线视频| 精品国产乱子伦一区二区三区| 亚洲性夜色夜夜综合| 国产精品99久久99久久久不卡| 欧美人与性动交α欧美精品济南到| 国产亚洲精品第一综合不卡| 亚洲欧洲精品一区二区精品久久久|