• <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é)改革
    亚洲电影在线观看av| 亚洲欧美清纯卡通| h日本视频在线播放| 中文字幕免费在线视频6| 卡戴珊不雅视频在线播放| 男女下面进入的视频免费午夜| 少妇熟女aⅴ在线视频| 精品99又大又爽又粗少妇毛片| 久久99热这里只有精品18| 女的被弄到高潮叫床怎么办| 亚洲国产欧美人成| 大型黄色视频在线免费观看| 波多野结衣巨乳人妻| 免费看日本二区| 性插视频无遮挡在线免费观看| 人人妻人人澡欧美一区二区| 少妇的逼水好多| 国产一级毛片在线| 国产精品久久视频播放| 99久久精品热视频| 看十八女毛片水多多多| 亚洲在线自拍视频| 国产日本99.免费观看| 国产成人a∨麻豆精品| 亚洲国产欧美在线一区| 亚洲一区二区三区色噜噜| 中国美白少妇内射xxxbb| 免费看日本二区| 亚洲va在线va天堂va国产| 亚洲av成人av| 成人毛片a级毛片在线播放| 亚洲欧美成人精品一区二区| 男人狂女人下面高潮的视频| 美女内射精品一级片tv| 国产精品人妻久久久影院| 人人妻人人澡欧美一区二区| 欧美区成人在线视频| 免费观看精品视频网站| 国产精品伦人一区二区| 欧美激情久久久久久爽电影| 我要看日韩黄色一级片| 久久这里只有精品中国| 国内少妇人妻偷人精品xxx网站| 亚洲第一区二区三区不卡| 成人三级黄色视频| 在线观看一区二区三区| 亚洲国产欧洲综合997久久,| 亚洲熟妇中文字幕五十中出| 国产精品爽爽va在线观看网站| 欧美性感艳星| 99riav亚洲国产免费| 亚洲一区高清亚洲精品| 日本一本二区三区精品| 亚洲在久久综合| 国产免费一级a男人的天堂| 18禁黄网站禁片免费观看直播| 黑人高潮一二区| 岛国在线免费视频观看| 男人和女人高潮做爰伦理| 日本撒尿小便嘘嘘汇集6| 在线播放国产精品三级| 国产精品野战在线观看| 国产精品1区2区在线观看.| 久久热精品热| 免费观看a级毛片全部| 亚洲精品色激情综合| 一夜夜www| 六月丁香七月| 美女 人体艺术 gogo| 中文字幕精品亚洲无线码一区| 国模一区二区三区四区视频| 亚洲五月天丁香| 欧美bdsm另类| or卡值多少钱| 一级毛片我不卡| 久久久久网色| 美女高潮的动态| 久久精品国产鲁丝片午夜精品| 亚洲av中文字字幕乱码综合| 午夜免费男女啪啪视频观看| 天堂中文最新版在线下载 | 国产精品电影一区二区三区| 99久久精品一区二区三区| 国产乱人偷精品视频| 久久久久久久久中文| 小蜜桃在线观看免费完整版高清| 成人二区视频| 男女视频在线观看网站免费| 国产国拍精品亚洲av在线观看| 青青草视频在线视频观看| 少妇裸体淫交视频免费看高清| 亚洲欧美清纯卡通| 午夜精品在线福利| 18禁裸乳无遮挡免费网站照片| 在线免费十八禁| 成人av在线播放网站| 久久精品国产99精品国产亚洲性色| 亚洲国产色片| 最近视频中文字幕2019在线8| 少妇的逼好多水| 亚洲国产欧美在线一区| 麻豆乱淫一区二区| 观看免费一级毛片| 波多野结衣高清无吗| 淫秽高清视频在线观看| 国产亚洲精品久久久com| 天堂影院成人在线观看| 欧美日韩综合久久久久久| 九九久久精品国产亚洲av麻豆| av在线天堂中文字幕| 国产视频内射| 国产精品蜜桃在线观看 | 亚洲不卡免费看| 在线观看66精品国产| 边亲边吃奶的免费视频| 舔av片在线| 日韩一区二区三区影片| 日韩一区二区视频免费看| 日韩欧美 国产精品| 一区福利在线观看| 精品一区二区三区视频在线| 成年av动漫网址| 国产精品一区二区在线观看99 | 亚洲欧美日韩高清在线视频| 欧美日韩综合久久久久久| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 欧美日韩国产亚洲二区| 少妇丰满av| 美女xxoo啪啪120秒动态图| 免费看av在线观看网站| 国产伦一二天堂av在线观看| 免费av毛片视频| 亚洲av第一区精品v没综合| 精品99又大又爽又粗少妇毛片| 亚洲在线观看片| 久久热精品热| 少妇裸体淫交视频免费看高清| 国产69精品久久久久777片| 国产精品乱码一区二三区的特点| 此物有八面人人有两片| 我的女老师完整版在线观看| 久久久久性生活片| 人人妻人人看人人澡| 久久久久久久久久久丰满| 日本熟妇午夜| 波多野结衣高清作品| 一边摸一边抽搐一进一小说| 国产亚洲av片在线观看秒播厂 | 岛国在线免费视频观看| 狂野欧美白嫩少妇大欣赏| 精品99又大又爽又粗少妇毛片| 大香蕉久久网| 97人妻精品一区二区三区麻豆| 国产高清有码在线观看视频| 成年免费大片在线观看| 欧美激情久久久久久爽电影| 26uuu在线亚洲综合色| 男人的好看免费观看在线视频| 亚洲av电影不卡..在线观看| 国产免费一级a男人的天堂| 日韩中字成人| 国产精品久久久久久精品电影小说 | 欧美激情在线99| 国内久久婷婷六月综合欲色啪| 国产成人freesex在线| 婷婷色综合大香蕉| 午夜免费激情av| 成人亚洲精品av一区二区| 99视频精品全部免费 在线| 九草在线视频观看| 综合色av麻豆| 欧洲精品卡2卡3卡4卡5卡区| 成人高潮视频无遮挡免费网站| 亚洲综合色惰| 久久6这里有精品| 国产精品麻豆人妻色哟哟久久 | 亚洲人成网站高清观看| 国产真实伦视频高清在线观看| 亚洲无线在线观看| 最近最新中文字幕大全电影3| kizo精华| 久久精品国产自在天天线| 在线观看美女被高潮喷水网站| 天堂影院成人在线观看| 在线观看av片永久免费下载| 国产精品久久视频播放| 国产探花在线观看一区二区| 三级男女做爰猛烈吃奶摸视频| 又粗又硬又长又爽又黄的视频 | 国产成人一区二区在线| 人人妻人人澡欧美一区二区| 久久国内精品自在自线图片| 成人亚洲精品av一区二区| 久久久久久久亚洲中文字幕| 久久久久久九九精品二区国产| 99在线人妻在线中文字幕| 成年免费大片在线观看| 大香蕉久久网| 深爱激情五月婷婷| 欧美另类亚洲清纯唯美| 国产精品久久久久久亚洲av鲁大| 成人漫画全彩无遮挡| 亚洲久久久久久中文字幕| 熟妇人妻久久中文字幕3abv| av福利片在线观看| 日韩中字成人| 99国产精品一区二区蜜桃av| 小蜜桃在线观看免费完整版高清| 国产精品av视频在线免费观看| 91久久精品国产一区二区成人| 成人av在线播放网站| 欧美激情久久久久久爽电影| 美女黄网站色视频| 蜜桃亚洲精品一区二区三区| 亚洲性久久影院| 国产精品一及| 久99久视频精品免费| 看免费成人av毛片| 男女做爰动态图高潮gif福利片| 在线免费十八禁| 国产激情偷乱视频一区二区| 日韩精品有码人妻一区| 99riav亚洲国产免费| 欧美日韩国产亚洲二区| 亚洲精品日韩av片在线观看| 97超视频在线观看视频| 黄色视频,在线免费观看| 午夜精品国产一区二区电影 | 欧美精品国产亚洲| 毛片女人毛片| 亚洲av成人精品一区久久| av免费观看日本| 一区二区三区四区激情视频 | 欧美日本亚洲视频在线播放| 久久人人爽人人爽人人片va| 国产精品美女特级片免费视频播放器| 国产精品电影一区二区三区| 色综合亚洲欧美另类图片| 久久午夜福利片| 性色avwww在线观看| 日韩大尺度精品在线看网址| 免费看a级黄色片| 乱人视频在线观看| 久久精品国产亚洲av天美| 日韩一本色道免费dvd| www.色视频.com| 成年免费大片在线观看| 国产毛片a区久久久久| 国产成人福利小说| 久久99热6这里只有精品| 美女脱内裤让男人舔精品视频 | 热99re8久久精品国产| 天堂av国产一区二区熟女人妻| 久久久久久久久久久免费av| 免费观看人在逋| 女的被弄到高潮叫床怎么办| 日韩一本色道免费dvd| 18禁在线播放成人免费| 亚洲精品456在线播放app| 国产精品一区二区在线观看99 | 最近中文字幕高清免费大全6| 美女高潮的动态| 边亲边吃奶的免费视频| 欧美性感艳星| 少妇的逼水好多| 欧美日韩一区二区视频在线观看视频在线 | 国产不卡一卡二| 精品人妻熟女av久视频| 九草在线视频观看| 免费看美女性在线毛片视频| 天堂影院成人在线观看| 欧美日韩在线观看h| 毛片一级片免费看久久久久| 男女那种视频在线观看| 成人毛片a级毛片在线播放| 淫秽高清视频在线观看| 免费人成在线观看视频色| 99国产极品粉嫩在线观看| 99久久精品国产国产毛片| 少妇的逼水好多| 欧美bdsm另类| 日本欧美国产在线视频| 一级黄片播放器| 亚洲国产高清在线一区二区三| 又粗又硬又长又爽又黄的视频 | 亚洲第一电影网av| 亚洲成人中文字幕在线播放| 久久久久久久午夜电影| 欧美3d第一页| 国产在视频线在精品| 国产乱人视频| 亚洲欧美清纯卡通| 亚洲无线观看免费| 我要看日韩黄色一级片| 精品久久久久久久久久久久久| 少妇人妻一区二区三区视频| 嫩草影院入口| 人人妻人人澡人人爽人人夜夜 | 22中文网久久字幕| 精华霜和精华液先用哪个| 亚洲内射少妇av| 国产精品伦人一区二区| 国产精品福利在线免费观看| 性色avwww在线观看| 老熟妇乱子伦视频在线观看| 亚洲欧美成人综合另类久久久 | 久99久视频精品免费| 高清在线视频一区二区三区 | 精品久久国产蜜桃| 欧美3d第一页| 国产三级在线视频| 最近手机中文字幕大全| 人人妻人人澡人人爽人人夜夜 | av黄色大香蕉| 不卡一级毛片| 国产亚洲av嫩草精品影院| 亚洲av成人精品一区久久| 亚洲av男天堂| av视频在线观看入口| 亚洲三级黄色毛片| 成人毛片a级毛片在线播放| 长腿黑丝高跟| 美女国产视频在线观看| 久久这里只有精品中国| 国产av不卡久久| 欧美性猛交黑人性爽| 嫩草影院新地址| 99国产精品一区二区蜜桃av| 一边摸一边抽搐一进一小说| 国产亚洲av嫩草精品影院| 欧洲精品卡2卡3卡4卡5卡区| 高清毛片免费看| 国产乱人偷精品视频| 免费在线观看成人毛片| 中文字幕制服av| 精品久久久久久久久久久久久| 精品久久久噜噜| 美女被艹到高潮喷水动态| 成人亚洲欧美一区二区av| 边亲边吃奶的免费视频| 午夜福利在线在线| 男女下面进入的视频免费午夜| 国产精品国产三级国产av玫瑰| 91在线精品国自产拍蜜月| 日韩欧美精品免费久久| 久99久视频精品免费| 欧美一区二区亚洲| 久久人人爽人人爽人人片va| 午夜福利在线观看吧| 男人的好看免费观看在线视频| 51国产日韩欧美| 久久草成人影院| 非洲黑人性xxxx精品又粗又长| 联通29元200g的流量卡| 看黄色毛片网站| 又爽又黄a免费视频| 看片在线看免费视频| 最近的中文字幕免费完整| 亚洲国产精品sss在线观看| 久久精品国产清高在天天线| av视频在线观看入口| 久久久国产成人免费| 干丝袜人妻中文字幕| 精品久久久久久久人妻蜜臀av| 熟妇人妻久久中文字幕3abv| 亚洲经典国产精华液单| 特级一级黄色大片| 日日啪夜夜撸| ponron亚洲| 国产精品无大码| 久久99精品国语久久久| 亚洲中文字幕日韩| av免费在线看不卡| 国产精品三级大全| 18禁在线播放成人免费| 亚洲高清免费不卡视频| av视频在线观看入口| 日本欧美国产在线视频| 精品久久久久久久久久免费视频| 中文字幕av在线有码专区| 成年版毛片免费区| 男女下面进入的视频免费午夜| 麻豆国产97在线/欧美| 日本免费a在线| 精品久久久久久成人av| 国产伦理片在线播放av一区 | av在线观看视频网站免费| 欧美一区二区国产精品久久精品| 麻豆精品久久久久久蜜桃| 国产伦一二天堂av在线观看| 色吧在线观看| 久久人人爽人人片av| 中文字幕人妻熟人妻熟丝袜美| av在线观看视频网站免费| 国国产精品蜜臀av免费| 亚洲人与动物交配视频| 久久久久国产网址| 久久久久久久久大av| 嘟嘟电影网在线观看| 麻豆成人av视频| 少妇丰满av| 三级毛片av免费| 麻豆成人av视频| 免费看a级黄色片| 久久久色成人| 97超碰精品成人国产| 亚洲精品久久久久久婷婷小说 | 在线天堂最新版资源| 免费av毛片视频| 国产老妇伦熟女老妇高清| 成人一区二区视频在线观看| 97人妻精品一区二区三区麻豆| 91久久精品国产一区二区成人| 亚洲欧美成人精品一区二区| 亚洲乱码一区二区免费版| 久久久久网色| 免费人成在线观看视频色| 欧美又色又爽又黄视频| 1024手机看黄色片| 亚洲成av人片在线播放无| www日本黄色视频网| 欧美在线一区亚洲| 精品一区二区三区视频在线| 看片在线看免费视频| 伦精品一区二区三区| 欧美日本亚洲视频在线播放| 男女视频在线观看网站免费| 欧洲精品卡2卡3卡4卡5卡区| 人体艺术视频欧美日本| 日日撸夜夜添| 青春草国产在线视频 | 欧美日韩精品成人综合77777| 国产麻豆成人av免费视频| 中文亚洲av片在线观看爽| 一夜夜www| 18+在线观看网站| 波多野结衣高清作品| 亚洲第一电影网av| 日本色播在线视频| 国产美女午夜福利| 你懂的网址亚洲精品在线观看 | 国产成人影院久久av| 久久鲁丝午夜福利片| 九九热线精品视视频播放| 啦啦啦观看免费观看视频高清| 最新中文字幕久久久久| 亚洲五月天丁香| 特级一级黄色大片| 99久久中文字幕三级久久日本| 久久精品综合一区二区三区| 精品午夜福利在线看| 亚洲婷婷狠狠爱综合网| 麻豆乱淫一区二区| 欧美一区二区精品小视频在线| 成年女人永久免费观看视频| 免费在线观看成人毛片| 国产综合懂色| 欧美日韩一区二区视频在线观看视频在线 | 麻豆乱淫一区二区| 亚洲国产精品合色在线| 99九九线精品视频在线观看视频| 免费黄网站久久成人精品| 日本五十路高清| av卡一久久| 午夜精品一区二区三区免费看| 久久这里只有精品中国| 热99re8久久精品国产| 黄片无遮挡物在线观看| 最近的中文字幕免费完整| 18禁黄网站禁片免费观看直播| 99热全是精品| 婷婷色综合大香蕉| 国产一级毛片在线| 免费av毛片视频| 亚洲不卡免费看| 哪里可以看免费的av片| 亚洲三级黄色毛片| 久久综合国产亚洲精品| 成人欧美大片| 女人十人毛片免费观看3o分钟| 小蜜桃在线观看免费完整版高清| а√天堂www在线а√下载| 免费一级毛片在线播放高清视频| 国产黄片视频在线免费观看| 联通29元200g的流量卡| 欧美一区二区亚洲| 午夜视频国产福利| 岛国在线免费视频观看| 天堂中文最新版在线下载 | 丰满的人妻完整版| av专区在线播放| 国产一区亚洲一区在线观看| 亚洲性久久影院| 中国国产av一级| 夫妻性生交免费视频一级片| 黑人高潮一二区| 欧美最黄视频在线播放免费| 我要搜黄色片| 国产免费男女视频| 高清毛片免费观看视频网站| 在线观看免费视频日本深夜| 丰满乱子伦码专区| 亚洲三级黄色毛片| av在线播放精品| 国产免费男女视频| 午夜精品在线福利| h日本视频在线播放| 午夜爱爱视频在线播放| 波野结衣二区三区在线| 亚洲婷婷狠狠爱综合网| 国产三级中文精品| 久久精品夜色国产| avwww免费| 国产精品美女特级片免费视频播放器| 在线观看一区二区三区| 麻豆精品久久久久久蜜桃| 色综合亚洲欧美另类图片| 日本黄色片子视频| 久久久久久久久久黄片| 久久亚洲国产成人精品v| 国产一区二区亚洲精品在线观看| 亚洲色图av天堂| 久久6这里有精品| 亚洲中文字幕一区二区三区有码在线看| 毛片一级片免费看久久久久| 在线观看av片永久免费下载| 99久久精品国产国产毛片| 日本五十路高清| 日韩欧美国产在线观看| 日韩欧美三级三区| 亚洲在久久综合| 偷拍熟女少妇极品色| 小说图片视频综合网站| 在线免费十八禁| 国产三级中文精品| av黄色大香蕉| 在线观看一区二区三区| 亚洲不卡免费看| 寂寞人妻少妇视频99o| 免费av观看视频| 日韩中字成人| 性欧美人与动物交配| 天堂中文最新版在线下载 | 日本三级黄在线观看| 国产高潮美女av| av女优亚洲男人天堂| 日韩,欧美,国产一区二区三区 | 91aial.com中文字幕在线观看| 国内精品宾馆在线| 青春草视频在线免费观看| av国产免费在线观看| 久久九九热精品免费| 久久久久国产网址| 亚洲中文字幕一区二区三区有码在线看| 男人和女人高潮做爰伦理| 看免费成人av毛片| 欧美xxxx黑人xx丫x性爽| 国产精品不卡视频一区二区| 久久综合国产亚洲精品| 99热精品在线国产| 毛片一级片免费看久久久久| 精品不卡国产一区二区三区| 久久久久性生活片| 亚洲精品亚洲一区二区| 最近最新中文字幕大全电影3| 99九九线精品视频在线观看视频| 九草在线视频观看| 少妇人妻精品综合一区二区 | 成人国产麻豆网| 亚洲av中文字字幕乱码综合| 欧美激情在线99| 插逼视频在线观看| 久久草成人影院| 亚洲欧美成人综合另类久久久 | 久久久久久久亚洲中文字幕| 亚洲一级一片aⅴ在线观看| 不卡视频在线观看欧美| 夜夜爽天天搞| 波多野结衣高清无吗| 成人二区视频| 亚洲欧洲日产国产| 中文资源天堂在线| 一本久久精品| 免费一级毛片在线播放高清视频| 97热精品久久久久久| av在线观看视频网站免费| 成熟少妇高潮喷水视频| a级毛片a级免费在线| av在线亚洲专区| 在线免费十八禁| 国产高清激情床上av| 国产 一区 欧美 日韩| 一夜夜www| 天天一区二区日本电影三级| 欧美xxxx性猛交bbbb| 99热网站在线观看| 国产成人a区在线观看| 少妇猛男粗大的猛烈进出视频 | 国产精品福利在线免费观看| 亚洲成a人片在线一区二区| 国产成人精品婷婷| 久久久久久久久久久免费av| 国产精品嫩草影院av在线观看| 亚洲欧洲国产日韩| 波多野结衣巨乳人妻| 少妇裸体淫交视频免费看高清| 男的添女的下面高潮视频| 国产精品一二三区在线看| 床上黄色一级片| 国产伦精品一区二区三区四那| 亚洲高清免费不卡视频| 伦理电影大哥的女人| 久久精品久久久久久久性| 国产一区二区激情短视频| 国产精品99久久久久久久久|