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

    軟件設(shè)計(jì)模式在Java程序設(shè)計(jì)課程教學(xué)中的應(yīng)用研究

    2017-09-23 15:09張璞夏英
    軟件工程 2017年7期
    關(guān)鍵詞:Java程序設(shè)計(jì)面向?qū)ο?/a>教學(xué)模式

    張璞 夏英

    摘 要:Java程序設(shè)計(jì)課程學(xué)習(xí)過程中,學(xué)生面臨面向?qū)ο缶幊趟季S方式轉(zhuǎn)換困難,難以靈活應(yīng)用面向?qū)ο筇匦缘葐栴}。針對這些問題,提出將軟件設(shè)計(jì)模式有機(jī)融入于課程教學(xué)的教學(xué)模式。闡述了教學(xué)模式的教學(xué)過程設(shè)計(jì)、在面向?qū)ο蟾拍罱虒W(xué)過程及Java SE類庫教學(xué)過程中軟件設(shè)計(jì)模式的應(yīng)用,最后,對上述內(nèi)容進(jìn)行了總結(jié)。

    關(guān)鍵詞:Java程序設(shè)計(jì);軟件設(shè)計(jì)模式;面向?qū)ο?;教學(xué)模式

    中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A

    Abstract:In the learning process of Java programming course,students face the difficulty of converting to object oriented programming thinking mode,and it is also difficult for students to flexibly apply object-oriented characteristics.In view of these problems,the paper puts forward that the software design pattern should be organically integrated into the course teaching mode.It expounds the teaching process design of the teaching mode,and the application of the software design pattern in the teaching process of the object-oriented concept and Java SE class library.Finally,the above contents are summarized.

    Keywords:Java programming;software design pattern;object-oriented;teaching mode

    1 引言(Introduction)

    作為一種面向?qū)ο蟪绦蛟O(shè)計(jì)語言,Java由于具有面向?qū)ο?、平臺無關(guān)、安全性、內(nèi)置多線程等眾多優(yōu)良特性[1],已被廣泛應(yīng)用于Web開發(fā)、智能手機(jī)、桌面應(yīng)用等不同領(lǐng)域,是當(dāng)前最流行的編程語言之一。作為程序設(shè)計(jì)教學(xué)的一個(gè)重要分支,國內(nèi)外眾多高校均開設(shè)了Java程序設(shè)計(jì)課程,該課程已成為一門重要的專業(yè)基礎(chǔ)課。

    Java程序設(shè)計(jì)課程教學(xué)過程中,需要將面向?qū)ο缶幊趟季S的培養(yǎng)作為重點(diǎn),并貫穿于教學(xué)過程始終,使學(xué)生能夠靈活運(yùn)用面向?qū)ο笏枷雭斫鉀Q實(shí)際問題。從實(shí)際情況來看,許多高校將C語言開設(shè)為第一門程序設(shè)計(jì)語言課程,因此,學(xué)習(xí)Java語言時(shí),學(xué)生已經(jīng)具備C語言基礎(chǔ)。由于受面向過程編程思想的影響,很多學(xué)生仍然存在由面向過程轉(zhuǎn)換為面向?qū)ο缶幊趟季S的困難。例如,在進(jìn)行類的設(shè)計(jì)時(shí),一些學(xué)生習(xí)慣于將許多靜態(tài)方法定義于一個(gè)類中,甚至覺得類只是在C語言函數(shù)的基礎(chǔ)上加個(gè)框而已。一些學(xué)生則陷于Java編程語法的記憶與機(jī)械理解之中,未能掌握面向?qū)ο缶幊陶Z言的基本特征及概念,不熟悉使用類進(jìn)行面向?qū)ο笤O(shè)計(jì)的基本原則,導(dǎo)致遇到具體問題時(shí),不能靈活應(yīng)用繼承、多態(tài)等面向?qū)ο筇匦裕鶎?shí)現(xiàn)代碼的可復(fù)用性、可擴(kuò)展性差。

    軟件設(shè)計(jì)模式是從許多優(yōu)秀軟件系統(tǒng)中總結(jié)出的可復(fù)用設(shè)計(jì)方案[2,3]。文獻(xiàn)[2]最先將設(shè)計(jì)模式的概念引入軟件開發(fā)領(lǐng)域,經(jīng)過分類編目后,歸納總結(jié)出了23種設(shè)計(jì)模式。已有研究表明[4,5],設(shè)計(jì)模式思想在面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)中有重要的作用,把設(shè)計(jì)模式引入教學(xué)過程中,能使學(xué)生更加深刻地理解面向?qū)ο笏枷?,了解面向?qū)ο笤O(shè)計(jì)的基本原則,提高編程能力,有助于開發(fā)更易維護(hù)、可擴(kuò)展性強(qiáng)、復(fù)用性好的系統(tǒng)。

    針對學(xué)生轉(zhuǎn)換面向?qū)ο缶幊趟季S困難,難以靈活應(yīng)用面向?qū)ο筇匦缘葐栴},通過教學(xué)實(shí)踐,筆者在不同教學(xué)模塊中有針對性、有目的性地引入一些經(jīng)典設(shè)計(jì)模式,在教學(xué)過程中有機(jī)融入設(shè)計(jì)模式,取得了良好效果。下面對軟件設(shè)計(jì)模式在Java課程教學(xué)中的應(yīng)用進(jìn)行介紹。

    2 教學(xué)過程設(shè)計(jì)(Design of the teaching process)

    面向?qū)ο蟪绦蛟O(shè)計(jì)課程的教學(xué)核心不是學(xué)習(xí)設(shè)計(jì)模式[4],因此,在教學(xué)過程中,不需要學(xué)習(xí)全部設(shè)計(jì)模式,而需要緊密結(jié)合教學(xué)內(nèi)容,挑選引入一部分設(shè)計(jì)模式來深化學(xué)生對面向?qū)ο缶幊趟枷氲睦斫夂挽`活運(yùn)用。表1給出了筆者在課程教學(xué)活動(dòng)中所引入的設(shè)計(jì)模式。

    表1中的“類和對象”“類的繼承”“接口”等教學(xué)模塊屬于Java中面向?qū)ο蟛糠值慕虒W(xué)內(nèi)容,而“集合框架”“輸入輸出流”“圖形用戶界面”“多線程”等教學(xué)模塊則屬于Java SE類庫部分的教學(xué)內(nèi)容。本文后續(xù)內(nèi)容將分別介紹設(shè)計(jì)模式在以上兩部分教學(xué)內(nèi)容中的應(yīng)用。

    在各個(gè)教學(xué)模塊的教學(xué)實(shí)施過程中,為了遵循學(xué)生的認(rèn)知規(guī)律,激發(fā)學(xué)生的學(xué)習(xí)興趣,通過精心設(shè)計(jì)教學(xué)案例,筆者采用了“案例驅(qū)動(dòng)”的設(shè)計(jì)模式教學(xué)過程,如圖1所示。

    由教師先描述案例,介紹所需要解決的問題,讓學(xué)生帶著問題進(jìn)入內(nèi)容的學(xué)習(xí),從而引起學(xué)生的好奇心。之后由教師對解決案例所用設(shè)計(jì)模式的意圖及模式結(jié)構(gòu)圖進(jìn)行介紹,根據(jù)模式結(jié)構(gòu)圖的UML圖形描述來介紹模式結(jié)構(gòu)中的各種角色,再從案例中分析得出各種角色所對應(yīng)的類或接口,并用Java語言進(jìn)行實(shí)現(xiàn),得到案例的解決方案。最后,由教師對設(shè)計(jì)模式的效果、其中體現(xiàn)的面向?qū)ο笏枷爰霸O(shè)計(jì)原則等進(jìn)行歸納總結(jié)。

    3 面向?qū)ο蠼虒W(xué)內(nèi)容中引入設(shè)計(jì)模式(Introducing

    design pattern into object-oriented teaching

    content)endprint

    3.1 通過設(shè)計(jì)模式來深化基本概念的理解

    面向?qū)ο蟮暮诵乃际菍?shù)據(jù)和對數(shù)據(jù)的操作封裝在一起形成對象,并通過抽象找出同一類對象的共同狀態(tài)和行為,從而得到類。Java程序的基本單位是類,編寫程序時(shí)要先定義好類,再由類實(shí)例化生成對象?!邦惡蛯ο蟆笔荍ava中的重要教學(xué)內(nèi)容。在教學(xué)過程中,學(xué)生會接觸到許多新概念,例如類、對象、構(gòu)造方法、類及成員的訪問權(quán)限、靜態(tài)變量、實(shí)例變量、靜態(tài)方法、實(shí)例方法等。在學(xué)習(xí)了這些基本概念的基礎(chǔ)上,筆者在教學(xué)過程中引入單例設(shè)計(jì)模式來加深學(xué)生對以上基本概念的理解。

    教學(xué)過程中,首先讓學(xué)生了解在實(shí)際編程中,有些對象僅需要一個(gè),例如操作系統(tǒng)中的打印池對象。繼而提出問題,如何保證設(shè)計(jì)的類在僅有一個(gè)實(shí)例對象。

    案例設(shè)計(jì):操作系統(tǒng)中,打印池(Print Spooler)是一個(gè)用于管理打印任務(wù)的應(yīng)用,在系統(tǒng)中只允許運(yùn)行一個(gè)打印池對象,要求使用單例模式來模擬打印池。

    描述了案例后,再由教師介紹單例模式的意圖和模式結(jié)構(gòu)圖,從案例入手,分析出單例角色類(PrintSpooler),給出案例的模式實(shí)現(xiàn)代碼:

    class PrintSpooler {

    private static PrintSpooler instance=null; //私有靜態(tài)成員變量

    private PrintSpooler(){ } //私有構(gòu)造方法

    public static PrintSpooler getInstance(){ //公有的靜態(tài)方法

    if(instance==null) {

    instance=new PrintSpooler();

    }

    return instance;

    }

    public void print(){//實(shí)例方法

    System.out.println("執(zhí)行打印任務(wù)");

    }

    }

    講解了模式實(shí)現(xiàn)代碼后,再由教師啟發(fā)學(xué)生思考并回答該模式的幾個(gè)要點(diǎn):單例類為何要定義私有構(gòu)造方法?為何要定義私有的靜態(tài)成員變量和公有靜態(tài)方法來保存和獲得對象實(shí)例?單例模式是如何保證對象實(shí)例的唯一性的?最后再總結(jié)單例模式的適用情況。通過將單例模式與Java面向?qū)ο笳Z法相結(jié)合,逐步深入講解來加深學(xué)生對面向?qū)ο蟾拍畹睦斫狻?/p>

    3.2 通過設(shè)計(jì)模式來深化面向?qū)ο笳Z言基本特征的理解

    在學(xué)習(xí)面向?qū)ο笳Z言的基本特征時(shí),學(xué)生普遍感覺多態(tài)的概念比較抽象,難以理解。因此,筆者將模板方法模式引入到“類的繼承”教學(xué)模塊中,設(shè)計(jì)了模板方法模式來模擬銀行業(yè)務(wù)辦理流程的案例。

    案例設(shè)計(jì):客戶在銀行辦理業(yè)務(wù)時(shí),一般都包含取號排隊(duì)、辦理具體業(yè)務(wù)、對工作人員進(jìn)行評分等步驟。無論具體業(yè)務(wù)是取款、存款還是轉(zhuǎn)賬,其基本流程都是固定的。要求使用模板方法模式來模擬銀行業(yè)務(wù)的辦理流程。

    敘述案例后,由教師介紹模板方法模式的意圖:定義一個(gè)操作中算法的骨架,而將一些步驟延遲到子類中,從而使子類可以不改變一個(gè)算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟。在此基礎(chǔ)上,給出模式的UML結(jié)構(gòu)圖來介紹模式中所包含的兩個(gè)角色:抽象類(AbstractClass)和具體子類(ConcreteClass),然后從案例中引導(dǎo)學(xué)生根據(jù)模式結(jié)構(gòu)圖來定義出案例中的抽象類和幾個(gè)具體子類,進(jìn)而給出案例的模板方法模式實(shí)現(xiàn)代碼:

    abstract class BankProcess{ //抽象類

    public void takeNumber() {

    System.out.println("取號排隊(duì)");

    }

    public abstract void transact();

    public void evaluate() {

    System.out.println("反饋評分");

    }

    public void process() { //模板方法

    this.takeNumber();

    this.transact();

    this.evaluate();

    }

    }

    class Deposit extends BankProcess { //具體子類:存款類

    public void transact() {

    System.out.println("存款");

    }

    }

    … …

    class Transfer extends BankProcess { //具體子類:轉(zhuǎn)賬類

    public void transact() {

    System.out.println("轉(zhuǎn)賬");

    }

    }

    進(jìn)行代碼講解后,由教師有意識地引導(dǎo)學(xué)生畫出上述實(shí)現(xiàn)代碼的UML類圖,如圖2所示,加深學(xué)生對程序結(jié)構(gòu)和模式結(jié)構(gòu)的理解。

    再由教師引導(dǎo)學(xué)生思考繼承及多態(tài)性等特征在該模式中的體現(xiàn),使學(xué)生認(rèn)識到在模板方法模式中,子類可以體現(xiàn)多態(tài)性。即子類可以根據(jù)各自的需要覆蓋父類中定義的方法,由于面向?qū)ο蟮亩鄳B(tài)性,子類對象執(zhí)行從父類繼承來的模板方法時(shí),其中的方法調(diào)用將通過動(dòng)態(tài)綁定方式來實(shí)現(xiàn)子類對父類行為的反向控制。最后,由教師總結(jié)歸納模板方法模式的適用情況。

    3.3 通過設(shè)計(jì)模式來深化面向?qū)ο笤O(shè)計(jì)原則的理解

    Java語言的學(xué)習(xí)過程中,掌握好面向?qū)ο蠡菊Z法和概念后,了解一下用類進(jìn)行面向?qū)ο笤O(shè)計(jì)的基本原則,如“開放—閉合”原則、聚合復(fù)用原則、依賴倒轉(zhuǎn)原則等,不僅有助于加深學(xué)生對面向?qū)ο缶幊趟枷氲睦斫?,還有助于編寫出易維護(hù)、易擴(kuò)展和易復(fù)用的程序代碼。endprint

    在學(xué)習(xí)Java中“接口”部分教學(xué)模塊時(shí),筆者引入了策略模式來幫助學(xué)生理解“開放—閉合”等設(shè)計(jì)原則。

    案例設(shè)計(jì):在多個(gè)裁判負(fù)責(zé)打分的比賽中,每位裁判給選手一個(gè)評分,選手的最后得分的評分方案(策略)可以有多種。如可以是所有評分的平均值,也可以是去掉一個(gè)最高分和一個(gè)最低分后的平均值。要求使用策略模式來從多種評分方案中選擇比賽的評分方案。

    和前述教學(xué)過程類似,通過對案例進(jìn)行描述及分析后,使學(xué)生了解清楚策略模式的意圖是定義及封裝一系列算法,并讓它們可以相互替換。然后再根據(jù)策略模式結(jié)構(gòu)圖中的上下文(Context)、策略(Strategy)和具體策略(ConcreteStrategy)等不同角色找出案例中的對應(yīng)類,進(jìn)行代碼實(shí)現(xiàn),并引導(dǎo)學(xué)生畫出如圖3所示的模式結(jié)構(gòu)圖。

    interface Strategy { //策略接口

    public double computeAverage(double [] a);

    }

    class AverageScore{ //上下文類

    Strategy strategy;

    public void setStrategy(Strategy strategy){

    this.strategy=strategy;

    }

    public double getAverage (double [] a){

    if(strategy!=null)

    return strategy.computeAverage(a);

    }

    }

    class StrategyA implements Strategy{ //具體策略類

    public double computeAverage(double [] a){

    double score=0,sum=0;

    for(int i=0;i

    sum=sum+a[i];

    }

    score=sum/a.length;

    return score;

    }

    }

    class StrategyB implements Strategy{ //具體策略類

    public double computeAverage(double [] a){

    if(a.length<=2) return 0;

    double score=0,sum=0;

    Arrays.sort(a); //排序數(shù)組

    for(int i=1;i

    sum=sum+a[i];

    }

    score=sum/(a.length-2);

    return score;

    }

    }

    接下來,由教師對模式中所涉及到的“開放—閉合”原則進(jìn)行分析。上下文類AverageScore只知道它要使用某一個(gè)實(shí)現(xiàn)Strategy接口類的實(shí)例,但不需要知道具體是哪一個(gè)類,因此,當(dāng)增加新的具體策略時(shí),不需要修改上下文類的代碼,上下文就可以引用新的具體策略的實(shí)例。最后,教師對策略模式的主要優(yōu)點(diǎn)及適用情況進(jìn)行總結(jié)。使學(xué)生掌握策略模式通過對“開放—閉合”原則的完美支持,在不修改原有系統(tǒng)的基礎(chǔ)上可以更換算法或者增加新的算法,從而能很好地管理多種評分方案,提高代碼可擴(kuò)展性。

    4 J2SE類庫教學(xué)內(nèi)容中引入設(shè)計(jì)模式(Introducing

    design pattern into J2SE class library teaching

    content)

    Java SE平臺的類庫設(shè)計(jì)中也應(yīng)用了大量的設(shè)計(jì)模式,因此,在API類庫教學(xué)過程中,介紹所涉及的設(shè)計(jì)模式,一方面可以使學(xué)生更好地掌握類庫中相關(guān)類和接口的作用及功能;另一方面,也能使學(xué)生對面向?qū)ο笏枷爰盎驹瓌t、設(shè)計(jì)模式的實(shí)際運(yùn)用有更深的體會。因此,筆者在進(jìn)行集合框架、輸入輸出、圖形用戶界面編程、多線程等內(nèi)容的教學(xué)過程中,對J2SE類庫中所涉及到的典型模式也作了相應(yīng)介紹。

    在學(xué)習(xí)Java集合框架時(shí),筆者引入了迭代器模式,通過介紹該模式來幫助學(xué)生更好地掌握集合框架的設(shè)計(jì)思想。JDK類庫中,Collection接口的iterator()方法返回一個(gè)Iterator類型的對象,java.util.Iterator接口就是迭代器模式的應(yīng)用。通過迭代器模式訪問一個(gè)列表(List)或者一個(gè)集合(Set)對象的內(nèi)容時(shí),無需了解聚合對象的內(nèi)部表示,使遍歷操作變得簡單。

    在學(xué)習(xí)輸入輸出流時(shí),Java中的I/O類庫由于其龐雜的特點(diǎn),一直是學(xué)生學(xué)習(xí)的難點(diǎn)。為此,筆者在介紹I/O類庫的過程中,引入了裝飾模式來幫助學(xué)生掌握I/O類庫結(jié)構(gòu)。在I/O處理中,Java將數(shù)據(jù)抽象為流(Stream),輸入流(Input Stream)、輸出流(OutputStream)類只提供最基本的數(shù)據(jù)讀寫功能。而FilterInputStream作為抽象裝飾類,BufferedInputStream、DataInputStream、BufferedOutputStream、DataOutputStream等類則作為具體裝飾類,這些類的設(shè)計(jì)很好地應(yīng)用了裝飾模式,以透明的方式動(dòng)態(tài)地給一個(gè)對象附加上更多的功能,這樣就可以在不需要?jiǎng)?chuàng)造更多子類的情況下,將對象的功能加以擴(kuò)展。

    在學(xué)習(xí)圖形用戶界面時(shí),隨著教學(xué)內(nèi)容的展開,筆者分別引入了組合模式、裝飾模式、策略模式、觀察者模式來介紹java.awt和javax.swing包中的類和接口。例如,介紹AWT/Swing庫中的組件類(Component)、容器類(Container)及系列子類的關(guān)系時(shí),通過組合模式的介紹,學(xué)生很快地掌握了類庫中的大量組件類、容器類之間的關(guān)系。介紹容器的布局管理方式時(shí),筆者有意識地啟發(fā)學(xué)生思考Java類庫中Container類、LayoutManager接口間的關(guān)系實(shí)際上就是策略模式的一個(gè)經(jīng)典應(yīng)用。介紹事件處理時(shí),為了幫助學(xué)生深刻理解事件處理機(jī)制,筆者相應(yīng)介紹了觀察者模式。在javax.swing包中,通過裝飾模式能動(dòng)態(tài)地給一些組件增加新的行為或改善其外觀顯示。例如,JList組件本身并不支持滾動(dòng)條功能,要?jiǎng)?chuàng)建可以滾動(dòng)的列表,則需要使用JScrollPane類來作為裝飾器。

    在學(xué)習(xí)多線程時(shí),針對“類和對象”教學(xué)模塊中的單例模式實(shí)現(xiàn)代碼,由教師分析在多線程環(huán)境下所可能產(chǎn)生的線程安全問題??梢约僭O(shè)這樣一種情況:當(dāng)?shù)谝粋€(gè)線程判斷引用變量為空之后,對象實(shí)例化過程尚未完成之前,第二個(gè)線程開始判斷引用變量是否為空。由于第一個(gè)線程尚未完成對象創(chuàng)建,因而引用變量instance還為空,這將導(dǎo)致第二個(gè)線程實(shí)例化第二個(gè)單例對象,從而導(dǎo)致不正常情況的發(fā)生。解決方法是通過線程同步控制機(jī)制,在getInstance()方法前加上synchronized關(guān)鍵字,通過對象鎖來實(shí)現(xiàn)線程安全的單例模式實(shí)現(xiàn)。

    5 結(jié)論(Conclusion)

    教學(xué)實(shí)踐證明,在Java程序設(shè)計(jì)課程教學(xué)過程中有機(jī)地引入設(shè)計(jì)模式的這種教學(xué)模式,將設(shè)計(jì)模式與面向?qū)ο蟮恼Z法、概念、設(shè)計(jì)原則相結(jié)合,對培養(yǎng)學(xué)生的面向?qū)ο缶幊趟季S方式,提高編程能力等方面均有積極作用。這種教學(xué)模式也得到了學(xué)生良好的評價(jià),學(xué)生的學(xué)習(xí)主動(dòng)性、靈活運(yùn)用面向?qū)ο筇匦越鉀Q問題的能力均得到了提高,為后續(xù)課程的學(xué)習(xí)及實(shí)踐應(yīng)用奠定了良好基礎(chǔ)。

    參考文獻(xiàn)(References)

    [1] 耿祥義,張躍平.Java面向?qū)ο蟪绦蛟O(shè)計(jì)(第2版)[M].北京:清華大學(xué)出版社,2013.

    [2] Erich G,et al.李英軍,等,譯.設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)[M].北京:機(jī)械工業(yè)出版社,2004.

    [3] 劉偉.設(shè)計(jì)模式實(shí)訓(xùn)教程[M].北京:清華大學(xué)出版社,2012.

    [4] 楊瑞龍,朱征宇,朱慶生.引入軟件設(shè)計(jì)模式的面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)方法[J].計(jì)算機(jī)教育,2012(10):97-100.

    [5] 章品正,於文雪.設(shè)計(jì)模式在C++課程教學(xué)中的運(yùn)用[J].計(jì)算機(jī)教育,2014,218(14):41-45.

    作者簡介:

    張 璞(1977-),男,博士,副教授.研究領(lǐng)域:數(shù)據(jù)挖掘,自然語言處理.

    夏 英(1972-),女,博士,教授.研究領(lǐng)域:數(shù)據(jù)庫與數(shù)據(jù)挖掘,時(shí)空大數(shù)據(jù)分析.

    猜你喜歡
    Java程序設(shè)計(jì)面向?qū)ο?/a>教學(xué)模式
    群文閱讀教學(xué)模式探討
    面向?qū)ο蟮挠?jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)軟件系統(tǒng)的開發(fā)
    面向?qū)ο蟮臄?shù)據(jù)交換協(xié)議研究與應(yīng)用
    《Java程序設(shè)計(jì)》課程網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)
    Java程序設(shè)計(jì)基礎(chǔ)課實(shí)踐教學(xué)中的分層教學(xué)模式研究
    基于實(shí)訓(xùn)項(xiàng)目的Java程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)模式改革與實(shí)踐
    基于工程思維的Java程序設(shè)計(jì)課程教學(xué)研究
    “一精三多”教學(xué)模式的探索與實(shí)踐
    面向?qū)ο骔eb開發(fā)編程語言的的評估方法
    “導(dǎo)航杯”實(shí)踐教學(xué)模式的做法與成效
    啦啦啦免费观看视频1| 久久国产精品男人的天堂亚洲| 成人亚洲精品一区在线观看| 欧美成狂野欧美在线观看| 欧美日韩亚洲国产一区二区在线观看 | 女性生殖器流出的白浆| 香蕉国产在线看| 成人影院久久| 麻豆乱淫一区二区| 欧美黑人欧美精品刺激| 麻豆国产av国片精品| 一级毛片电影观看| 久久国产精品影院| 另类亚洲欧美激情| 亚洲精品自拍成人| 精品第一国产精品| 12—13女人毛片做爰片一| 国产精品免费一区二区三区在线 | 波多野结衣一区麻豆| 国产精品免费大片| 免费日韩欧美在线观看| 精品一品国产午夜福利视频| 18在线观看网站| 国产精品久久电影中文字幕 | 精品国产超薄肉色丝袜足j| 久久久欧美国产精品| 69av精品久久久久久 | 国产伦理片在线播放av一区| 成人黄色视频免费在线看| 91大片在线观看| 女性被躁到高潮视频| 午夜福利视频在线观看免费| 99国产精品一区二区蜜桃av | 色婷婷久久久亚洲欧美| 久久亚洲精品不卡| 高清毛片免费观看视频网站 | 男女边摸边吃奶| 午夜激情久久久久久久| 热99国产精品久久久久久7| av天堂在线播放| videosex国产| 99热网站在线观看| 757午夜福利合集在线观看| 丁香六月天网| 纵有疾风起免费观看全集完整版| 国产高清videossex| 757午夜福利合集在线观看| 欧美精品高潮呻吟av久久| 中文字幕人妻丝袜制服| 欧美另类亚洲清纯唯美| 亚洲午夜精品一区,二区,三区| 久久国产精品男人的天堂亚洲| 亚洲七黄色美女视频| 在线av久久热| 手机成人av网站| 99re在线观看精品视频| 视频在线观看一区二区三区| 久久99热这里只频精品6学生| 美女视频免费永久观看网站| 久久国产精品大桥未久av| 国产麻豆69| 亚洲成人手机| 99re在线观看精品视频| 亚洲人成电影观看| 日本av手机在线免费观看| 另类精品久久| 国产一区二区三区在线臀色熟女 | 午夜精品久久久久久毛片777| 精品国产乱子伦一区二区三区| 国产一区二区三区视频了| 精品少妇黑人巨大在线播放| 久久久精品国产亚洲av高清涩受| av不卡在线播放| 国产在线观看jvid| 男女边摸边吃奶| 国产精品一区二区在线不卡| 久久久久久久国产电影| 中文字幕另类日韩欧美亚洲嫩草| 777米奇影视久久| 国产老妇伦熟女老妇高清| 国产真人三级小视频在线观看| 大型av网站在线播放| 国产精品免费大片| 每晚都被弄得嗷嗷叫到高潮| 极品教师在线免费播放| 久久久久视频综合| 黄色成人免费大全| 欧美日本中文国产一区发布| 极品人妻少妇av视频| 99久久99久久久精品蜜桃| 亚洲伊人色综图| 国产有黄有色有爽视频| 黄色丝袜av网址大全| 麻豆乱淫一区二区| 十八禁网站免费在线| 国产欧美日韩一区二区精品| 午夜91福利影院| 天天躁狠狠躁夜夜躁狠狠躁| 久久免费观看电影| 精品少妇久久久久久888优播| 欧美日韩黄片免| 亚洲精品粉嫩美女一区| av又黄又爽大尺度在线免费看| 在线 av 中文字幕| 亚洲成av片中文字幕在线观看| 午夜精品久久久久久毛片777| 一区二区三区国产精品乱码| 色在线成人网| 一区二区三区精品91| 黄色a级毛片大全视频| 飞空精品影院首页| 国产伦人伦偷精品视频| 久久久久精品国产欧美久久久| 麻豆乱淫一区二区| 大香蕉久久网| 成人三级做爰电影| 亚洲精品在线美女| 欧美激情高清一区二区三区| 国产aⅴ精品一区二区三区波| 另类精品久久| 91av网站免费观看| 国产片内射在线| 高清欧美精品videossex| 久久精品国产a三级三级三级| 亚洲精品美女久久久久99蜜臀| 国产不卡av网站在线观看| 桃红色精品国产亚洲av| av电影中文网址| 在线观看一区二区三区激情| 十八禁人妻一区二区| 啦啦啦中文免费视频观看日本| 午夜视频精品福利| 亚洲精品中文字幕一二三四区 | 亚洲精品粉嫩美女一区| 日韩中文字幕视频在线看片| 动漫黄色视频在线观看| 俄罗斯特黄特色一大片| 搡老乐熟女国产| 在线亚洲精品国产二区图片欧美| 男女下面插进去视频免费观看| 欧美精品av麻豆av| 老熟女久久久| 又大又爽又粗| 一区二区三区国产精品乱码| 午夜福利一区二区在线看| 国产精品成人在线| 日日爽夜夜爽网站| av欧美777| 嫁个100分男人电影在线观看| 国产99久久九九免费精品| 97在线人人人人妻| 国产成人影院久久av| 精品国内亚洲2022精品成人 | 少妇被粗大的猛进出69影院| 国产国语露脸激情在线看| 我要看黄色一级片免费的| 在线永久观看黄色视频| 久久久精品国产亚洲av高清涩受| 老司机亚洲免费影院| 国产精品国产av在线观看| 麻豆国产av国片精品| 香蕉久久夜色| 国产91精品成人一区二区三区 | 日韩视频在线欧美| 美女主播在线视频| 欧美精品亚洲一区二区| 五月开心婷婷网| 亚洲第一欧美日韩一区二区三区 | 大型av网站在线播放| 成人18禁高潮啪啪吃奶动态图| 91字幕亚洲| 最近最新中文字幕大全免费视频| av国产精品久久久久影院| 免费看a级黄色片| 欧美精品人与动牲交sv欧美| 亚洲午夜理论影院| a级片在线免费高清观看视频| 视频区图区小说| 一边摸一边抽搐一进一出视频| 亚洲男人天堂网一区| 99热网站在线观看| 欧美亚洲日本最大视频资源| 母亲3免费完整高清在线观看| 久久99热这里只频精品6学生| 在线观看人妻少妇| 男人操女人黄网站| 免费日韩欧美在线观看| 岛国毛片在线播放| 欧美国产精品一级二级三级| 精品亚洲乱码少妇综合久久| 国产精品成人在线| 两性午夜刺激爽爽歪歪视频在线观看 | 欧美精品亚洲一区二区| 极品教师在线免费播放| 亚洲欧美日韩高清在线视频 | 国产日韩一区二区三区精品不卡| 亚洲第一av免费看| 后天国语完整版免费观看| 搡老熟女国产l中国老女人| 久久久欧美国产精品| 精品一区二区三区四区五区乱码| 亚洲精品在线美女| 一夜夜www| 黑人欧美特级aaaaaa片| 日韩视频在线欧美| 欧美人与性动交α欧美精品济南到| 在线观看舔阴道视频| kizo精华| 亚洲人成伊人成综合网2020| 999久久久精品免费观看国产| 久久人妻熟女aⅴ| 天堂8中文在线网| 搡老岳熟女国产| 后天国语完整版免费观看| 欧美性长视频在线观看| 亚洲中文av在线| 国产男女内射视频| 好男人电影高清在线观看| 人成视频在线观看免费观看| 王馨瑶露胸无遮挡在线观看| a级片在线免费高清观看视频| av片东京热男人的天堂| 丝袜在线中文字幕| 亚洲av国产av综合av卡| 国产精品国产高清国产av | 女警被强在线播放| 日韩一区二区三区影片| 极品教师在线免费播放| 啦啦啦视频在线资源免费观看| 80岁老熟妇乱子伦牲交| 狂野欧美激情性xxxx| 天堂俺去俺来也www色官网| 中文字幕人妻丝袜制服| 一级毛片女人18水好多| 热99久久久久精品小说推荐| 大码成人一级视频| 久久久久久人人人人人| 成人手机av| 超碰成人久久| 午夜福利免费观看在线| 我的亚洲天堂| 日韩精品免费视频一区二区三区| 桃花免费在线播放| 天天躁夜夜躁狠狠躁躁| 91国产中文字幕| 不卡av一区二区三区| 岛国毛片在线播放| 高潮久久久久久久久久久不卡| 日韩 欧美 亚洲 中文字幕| 18禁黄网站禁片午夜丰满| 亚洲欧美日韩另类电影网站| 亚洲av第一区精品v没综合| 中文字幕av电影在线播放| 少妇被粗大的猛进出69影院| 欧美黄色淫秽网站| 久久人人97超碰香蕉20202| 亚洲一区二区三区欧美精品| 曰老女人黄片| 香蕉丝袜av| 我的亚洲天堂| 日韩欧美三级三区| 国产片内射在线| 亚洲国产毛片av蜜桃av| 亚洲国产av新网站| 999久久久国产精品视频| 亚洲精品自拍成人| 午夜激情av网站| 99国产综合亚洲精品| 看免费av毛片| 99精品欧美一区二区三区四区| 午夜激情久久久久久久| 国产精品久久久av美女十八| 亚洲国产av影院在线观看| 亚洲精品在线美女| 亚洲五月婷婷丁香| 麻豆成人av在线观看| 国内毛片毛片毛片毛片毛片| 久久99热这里只频精品6学生| 欧美变态另类bdsm刘玥| 少妇的丰满在线观看| 欧美日韩亚洲高清精品| 两性夫妻黄色片| 久久国产精品影院| 女人久久www免费人成看片| 国产成人免费观看mmmm| 人人妻,人人澡人人爽秒播| 免费观看人在逋| 欧美中文综合在线视频| 男女无遮挡免费网站观看| 日本撒尿小便嘘嘘汇集6| 精品一区二区三区视频在线观看免费 | 女同久久另类99精品国产91| 最近最新免费中文字幕在线| 欧美 亚洲 国产 日韩一| 亚洲av日韩精品久久久久久密| 精品第一国产精品| av视频免费观看在线观看| 国产成人欧美在线观看 | 国产精品av久久久久免费| 午夜免费鲁丝| 久久久欧美国产精品| 少妇的丰满在线观看| 乱人伦中国视频| 亚洲色图 男人天堂 中文字幕| 一级a爱视频在线免费观看| 欧美日韩亚洲综合一区二区三区_| 亚洲色图综合在线观看| 久久久水蜜桃国产精品网| 亚洲精品国产色婷婷电影| 精品国产一区二区三区四区第35| 免费不卡黄色视频| 老熟女久久久| 精品久久久久久电影网| 午夜免费成人在线视频| 日本vs欧美在线观看视频| 日韩免费av在线播放| 久久性视频一级片| 精品一区二区三区视频在线观看免费 | 免费在线观看影片大全网站| 成人黄色视频免费在线看| 亚洲熟女毛片儿| 夜夜爽天天搞| 欧美精品亚洲一区二区| 最近最新免费中文字幕在线| 在线观看66精品国产| 国产福利在线免费观看视频| 757午夜福利合集在线观看| 国内毛片毛片毛片毛片毛片| 无限看片的www在线观看| 午夜福利在线免费观看网站| 欧美日韩国产mv在线观看视频| 国产精品.久久久| 天堂8中文在线网| 欧美老熟妇乱子伦牲交| 国产精品一区二区免费欧美| 中文字幕人妻丝袜一区二区| 午夜免费鲁丝| 黄色视频不卡| 亚洲中文日韩欧美视频| 黑丝袜美女国产一区| 男男h啪啪无遮挡| 亚洲精品美女久久av网站| 天堂8中文在线网| 国产伦理片在线播放av一区| 国产成人av激情在线播放| 亚洲,欧美精品.| 国产人伦9x9x在线观看| 免费在线观看完整版高清| 正在播放国产对白刺激| a级片在线免费高清观看视频| 伦理电影免费视频| 18禁国产床啪视频网站| 9色porny在线观看| 亚洲精品美女久久av网站| 国产成人av激情在线播放| 一本一本久久a久久精品综合妖精| 亚洲精品国产色婷婷电影| av视频免费观看在线观看| 国产精品 欧美亚洲| 久久精品熟女亚洲av麻豆精品| 日韩中文字幕视频在线看片| 精品视频人人做人人爽| 男女高潮啪啪啪动态图| 久久中文看片网| 久久人妻av系列| 久久中文看片网| 久久午夜综合久久蜜桃| 欧美黑人欧美精品刺激| 国产av国产精品国产| 国产午夜精品久久久久久| 脱女人内裤的视频| 视频区欧美日本亚洲| 在线观看免费高清a一片| 国产一区二区激情短视频| 国精品久久久久久国模美| 国产一区二区激情短视频| 日日摸夜夜添夜夜添小说| 国产在线免费精品| 热re99久久国产66热| 露出奶头的视频| netflix在线观看网站| 国产精品av久久久久免费| 美国免费a级毛片| 精品国产一区二区三区久久久樱花| 精品国产国语对白av| 黑丝袜美女国产一区| 美国免费a级毛片| 国产精品av久久久久免费| 一本大道久久a久久精品| 一夜夜www| 岛国在线观看网站| 男女边摸边吃奶| 午夜两性在线视频| 99香蕉大伊视频| www.自偷自拍.com| 成人国语在线视频| 美女午夜性视频免费| 成人三级做爰电影| 一进一出好大好爽视频| 怎么达到女性高潮| 久久国产精品大桥未久av| 久久精品亚洲精品国产色婷小说| 大型av网站在线播放| 国产精品99久久99久久久不卡| 69av精品久久久久久 | 国产欧美日韩综合在线一区二区| 十八禁高潮呻吟视频| 女人精品久久久久毛片| 国产真人三级小视频在线观看| 国产精品免费大片| 午夜福利,免费看| 我的亚洲天堂| 午夜福利在线免费观看网站| 欧美国产精品va在线观看不卡| 满18在线观看网站| 日韩一区二区三区影片| 久久香蕉激情| 新久久久久国产一级毛片| av又黄又爽大尺度在线免费看| 一区福利在线观看| 国产一区二区 视频在线| 十八禁网站网址无遮挡| 亚洲午夜理论影院| 国产成人精品无人区| 国产精品98久久久久久宅男小说| 日本av免费视频播放| 狠狠精品人妻久久久久久综合| 性少妇av在线| 国产真人三级小视频在线观看| √禁漫天堂资源中文www| 久久天堂一区二区三区四区| 亚洲色图综合在线观看| 香蕉丝袜av| 手机成人av网站| 亚洲人成电影观看| 亚洲 国产 在线| 老司机午夜十八禁免费视频| 久久狼人影院| 两个人看的免费小视频| 亚洲中文av在线| 夜夜骑夜夜射夜夜干| 亚洲一码二码三码区别大吗| 黄网站色视频无遮挡免费观看| 久久久国产成人免费| 人人妻,人人澡人人爽秒播| 久久久久国产一级毛片高清牌| av视频免费观看在线观看| 精品一区二区三区av网在线观看 | 天堂8中文在线网| 女性生殖器流出的白浆| 欧美精品啪啪一区二区三区| 桃红色精品国产亚洲av| 韩国精品一区二区三区| 99热国产这里只有精品6| 女同久久另类99精品国产91| 最黄视频免费看| 亚洲成人免费av在线播放| 大片电影免费在线观看免费| h视频一区二区三区| 欧美精品av麻豆av| 国产一区二区三区综合在线观看| 天天躁日日躁夜夜躁夜夜| 大型av网站在线播放| 亚洲熟女毛片儿| 99热国产这里只有精品6| 免费黄频网站在线观看国产| 久久ye,这里只有精品| 啦啦啦 在线观看视频| 一本久久精品| 这个男人来自地球电影免费观看| 男人舔女人的私密视频| 欧美黄色淫秽网站| 蜜桃在线观看..| 国产精品电影一区二区三区 | 国产精品亚洲av一区麻豆| 久久久精品免费免费高清| 国产精品一区二区免费欧美| 国产精品自产拍在线观看55亚洲 | 午夜福利乱码中文字幕| 怎么达到女性高潮| 少妇裸体淫交视频免费看高清 | 日韩大片免费观看网站| 免费黄频网站在线观看国产| 亚洲精品乱久久久久久| 精品视频人人做人人爽| 欧美精品av麻豆av| 成人亚洲精品一区在线观看| 老司机在亚洲福利影院| 美女主播在线视频| 日韩视频在线欧美| 日本av手机在线免费观看| 叶爱在线成人免费视频播放| 下体分泌物呈黄色| 中文字幕人妻熟女乱码| 欧美在线黄色| 亚洲精品久久午夜乱码| 久久中文字幕一级| 中文亚洲av片在线观看爽 | 一区二区三区乱码不卡18| 天天操日日干夜夜撸| 精品国产超薄肉色丝袜足j| 日本vs欧美在线观看视频| 久热这里只有精品99| 亚洲精品久久午夜乱码| 精品免费久久久久久久清纯 | 亚洲精品美女久久久久99蜜臀| 天天躁日日躁夜夜躁夜夜| 亚洲精品自拍成人| 亚洲av成人不卡在线观看播放网| 国产亚洲午夜精品一区二区久久| 国产一区二区激情短视频| www日本在线高清视频| 嫁个100分男人电影在线观看| 国产精品影院久久| 黄色丝袜av网址大全| 久久精品人人爽人人爽视色| 欧美日韩av久久| 国产熟女午夜一区二区三区| 天天躁狠狠躁夜夜躁狠狠躁| 黄片播放在线免费| 性色av乱码一区二区三区2| 丰满饥渴人妻一区二区三| 国产一区二区在线观看av| 欧美变态另类bdsm刘玥| 国产成人精品久久二区二区免费| 欧美精品人与动牲交sv欧美| 亚洲全国av大片| www.精华液| 国产亚洲欧美在线一区二区| 国产精品一区二区精品视频观看| 精品熟女少妇八av免费久了| 国产xxxxx性猛交| 久久99热这里只频精品6学生| 亚洲欧美一区二区三区黑人| 亚洲精品国产区一区二| 91麻豆av在线| 啦啦啦 在线观看视频| a级毛片黄视频| 精品国产乱码久久久久久小说| 精品国产一区二区三区四区第35| 啦啦啦中文免费视频观看日本| 亚洲国产精品一区二区三区在线| 亚洲精品中文字幕在线视频| 婷婷丁香在线五月| 成年人免费黄色播放视频| 亚洲一区中文字幕在线| 国产精品美女特级片免费视频播放器 | 国产一区二区在线观看av| 欧美变态另类bdsm刘玥| 午夜91福利影院| 亚洲五月婷婷丁香| 国产一区有黄有色的免费视频| 午夜免费鲁丝| 人成视频在线观看免费观看| 嫩草影视91久久| svipshipincom国产片| 国产精品一区二区在线观看99| 一二三四在线观看免费中文在| 国产精品秋霞免费鲁丝片| 午夜福利一区二区在线看| 99久久99久久久精品蜜桃| a在线观看视频网站| 无遮挡黄片免费观看| 色视频在线一区二区三区| 久久99一区二区三区| 在线亚洲精品国产二区图片欧美| 欧美国产精品一级二级三级| 黄色视频,在线免费观看| 一边摸一边做爽爽视频免费| 日韩大片免费观看网站| 老汉色av国产亚洲站长工具| a级毛片黄视频| 久久久精品国产亚洲av高清涩受| 久久中文看片网| 99国产精品一区二区三区| 久久久国产成人免费| 久久亚洲精品不卡| 咕卡用的链子| 汤姆久久久久久久影院中文字幕| 国产在线观看jvid| 免费一级毛片在线播放高清视频 | 伊人久久大香线蕉亚洲五| 国产精品 欧美亚洲| 俄罗斯特黄特色一大片| 蜜桃国产av成人99| 亚洲国产中文字幕在线视频| 免费高清在线观看日韩| 热re99久久精品国产66热6| 一级片'在线观看视频| 日韩熟女老妇一区二区性免费视频| 亚洲专区国产一区二区| 在线av久久热| 啦啦啦 在线观看视频| 又紧又爽又黄一区二区| 久久精品国产99精品国产亚洲性色 | 免费观看a级毛片全部| 一区二区日韩欧美中文字幕| 久久精品国产综合久久久| 青草久久国产| 99re在线观看精品视频| 午夜日韩欧美国产| 视频在线观看一区二区三区| 欧美av亚洲av综合av国产av| 黄色毛片三级朝国网站| 又大又爽又粗| 啦啦啦免费观看视频1| 精品少妇内射三级| 成年人黄色毛片网站| 国产高清激情床上av| 欧美乱码精品一区二区三区| 久久久国产成人免费| 久久久欧美国产精品| 不卡av一区二区三区| 精品国产一区二区久久| 中文字幕人妻丝袜一区二区|