• 
    

    
    

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

      興趣導(dǎo)向的第三方庫案例教學(xué)探索與實(shí)踐
      ——以經(jīng)管類專業(yè)Java程序設(shè)計(jì)課程為例

      2023-07-16 08:16:44韓延明
      軟件導(dǎo)刊 2023年6期
      關(guān)鍵詞:經(jīng)管類程序設(shè)計(jì)程序

      韓延明

      (西南財(cái)經(jīng)大學(xué) 計(jì)算機(jī)與人工智能學(xué)院,四川 成都 610074)

      0 引言

      Java程序設(shè)計(jì)課程不但是計(jì)算機(jī)相關(guān)專業(yè)的專業(yè)基礎(chǔ)課,還是許多經(jīng)管類專業(yè)的一門熱門選修課。計(jì)算機(jī)相關(guān)專業(yè)開設(shè)Java程序設(shè)計(jì)課程的目的是使學(xué)生能建立面向?qū)ο缶幊痰挠?jì)算思維,實(shí)現(xiàn)以Java為核心的應(yīng)用程序開發(fā)。經(jīng)管類專業(yè)開設(shè)Java程序設(shè)計(jì)課程的主要目的是滿足信息化素養(yǎng)培養(yǎng)需求,使學(xué)生經(jīng)過學(xué)習(xí)與訓(xùn)練,具備用程序語言編寫具有一定實(shí)用價(jià)值的數(shù)據(jù)處理、文件操作等實(shí)用程序的能力[1]。針對這些素養(yǎng)和能力要求,Java程序設(shè)計(jì)課程教學(xué)模式必須進(jìn)行變革,教師須改變傳統(tǒng)的教育理念,在課程教學(xué)與實(shí)踐中注重提升學(xué)生學(xué)習(xí)興趣,培養(yǎng)學(xué)生的各項(xiàng)能力。

      國內(nèi)多所高校針對程序設(shè)計(jì)課程教學(xué)模式進(jìn)行相應(yīng)改革,并取得了一系列成果。石文兵等[2]在教學(xué)過程中構(gòu)建、實(shí)施了一種高級語言程序設(shè)計(jì)的智能化教學(xué)框架,促進(jìn)了課程教學(xué)質(zhì)量的全面提升。李飛等[3]針對非計(jì)算機(jī)專業(yè)學(xué)生的特點(diǎn),給出一種基于教學(xué)內(nèi)容特點(diǎn)的混合式教學(xué)體系,提高了學(xué)生的學(xué)習(xí)積極性和興趣,進(jìn)而提高學(xué)生的學(xué)習(xí)效率。張文慧[4]在非計(jì)算機(jī)專業(yè)C語言程序設(shè)計(jì)教學(xué)中,為提高學(xué)生學(xué)習(xí)興趣,培養(yǎng)學(xué)生用計(jì)算機(jī)解決實(shí)際問題的能力,進(jìn)行混合式教學(xué)改革。羅迅等[5]圍繞程序設(shè)計(jì)基礎(chǔ)能力培養(yǎng)目標(biāo),調(diào)整開課計(jì)劃,豐富教學(xué)內(nèi)容,增加實(shí)踐環(huán)節(jié),加強(qiáng)了在線教學(xué)平臺的使用。通過這種改革,有效提高了學(xué)生代碼的數(shù)量與質(zhì)量。李勝嵐等[6]改進(jìn)了Java課程授課形式和考核方式,致力于培養(yǎng)應(yīng)用型人才。然而,無論是智能化教學(xué)框架或是混合式教學(xué)改革,都是在增強(qiáng)線上教學(xué)環(huán)節(jié)上做文章,隨著線上授課的增加,教師和學(xué)生在課堂上面對面交流隨之減少,教師和學(xué)生都無法充分體驗(yàn)和感受大學(xué)課堂的真正意義。馮向萍[7]將斯坦福大學(xué)編程類課程教學(xué)模式應(yīng)用于Java課程教學(xué)中,激發(fā)學(xué)生學(xué)習(xí)興趣,鍛煉學(xué)生編程技能。但是,計(jì)算機(jī)專業(yè)的教學(xué)模式并不完全適合經(jīng)管類專業(yè)的學(xué)生。黃天羽等[8]在Python課程教學(xué)中提出“以圖形牽引興趣,開展Python案例教學(xué)”的教學(xué)觀點(diǎn),圖形化的案例有助于學(xué)生保持較高的學(xué)習(xí)熱情,取得良好的教學(xué)效果。Python語言的生態(tài)資源豐富,Python程序設(shè)計(jì)教材可提供豐富的圖形案例吸引學(xué)生的學(xué)習(xí)興趣,但Java程序設(shè)計(jì)教材上可吸引學(xué)生興趣的案例較少,有必要引入第三方庫充實(shí)教學(xué)案例,讓課堂更有趣。

      本文就西南財(cái)經(jīng)大學(xué)經(jīng)管類專業(yè)Java語言程序設(shè)計(jì)教學(xué)中存在的問題進(jìn)行分析并嘗試改進(jìn)教學(xué)模式,探索和嘗試在Java程序設(shè)計(jì)教學(xué)中引入第三方庫,以更好地激發(fā)學(xué)生的學(xué)習(xí)興趣并提高其學(xué)習(xí)效率。

      1 Java程序設(shè)計(jì)課程教學(xué)現(xiàn)狀分析

      程序設(shè)計(jì)及應(yīng)用是西南財(cái)經(jīng)大學(xué)經(jīng)管類專業(yè)一年級學(xué)生的通識基礎(chǔ)課,有Visual Basic、Python、C++和Java四門語言供學(xué)生選修,四門語言的教學(xué)實(shí)施方案有公共的部分,包括高級程序設(shè)計(jì)語言的基本元素、程序的基本結(jié)構(gòu)、數(shù)組和文件操作,其他內(nèi)容為各門語言的特色部分。

      Java語言涉及的知識點(diǎn)和概念較多,再加上學(xué)時(shí)有限,學(xué)習(xí)難度相對較大,學(xué)生面對抽象的概念和復(fù)雜的語法規(guī)則,往往不知所措,產(chǎn)生畏難情緒,這時(shí)需要進(jìn)行科學(xué)有效的引導(dǎo),讓學(xué)生盡快度過編程語言的難關(guān),體驗(yàn)到學(xué)習(xí)帶來的成就感。教學(xué)中的兩條主線是理論和實(shí)踐。在理論教學(xué)中要選取恰當(dāng)?shù)陌咐ㄟ^對案例的講解分析,讓學(xué)生分層次地理解相關(guān)理論知識。實(shí)踐主要是讓學(xué)生獨(dú)立或在教師指導(dǎo)下完成與理論內(nèi)容緊密聯(lián)系的上機(jī)任務(wù),鞏固所學(xué)知識,提高動(dòng)手能力,加深對理論的理解。

      在Java教學(xué)實(shí)踐過程中,存在以下問題:

      (1)教學(xué)時(shí)間短、知識點(diǎn)過多、教學(xué)進(jìn)度過快、缺乏學(xué)習(xí)樂趣、考試成為教學(xué)重點(diǎn),導(dǎo)致部分學(xué)生對Java語言產(chǎn)生畏難情緒,實(shí)踐能力得不到充分培養(yǎng)。2019年之前,學(xué)校執(zhí)行每學(xué)年三學(xué)期制,春季學(xué)期和秋季學(xué)期的教學(xué)時(shí)間只有16周,每周3課時(shí),如果湊巧趕上公共假期,總教學(xué)時(shí)數(shù)往往只有13~14周。最初制定教學(xué)大綱時(shí)對知識點(diǎn)又貪多求全,教學(xué)中教師授課的進(jìn)度一直比較快,未充分考慮學(xué)生的接受能力,學(xué)生在學(xué)習(xí)中沒有享受到學(xué)習(xí)的快樂,反而對Java語言產(chǎn)生了一定畏難情緒。再加上部分學(xué)生未能深入理解程序設(shè)計(jì)課程的教學(xué)目標(biāo),學(xué)習(xí)的主要目標(biāo)是拿到滿意的成績,對教師設(shè)計(jì)的案例和布置的任務(wù)興趣不濃,考試成了教學(xué)的指揮棒,教師不得不把大部分精力用于講解教綱要求的考核內(nèi)容,放松了對學(xué)生實(shí)踐能力的培養(yǎng)和訓(xùn)練。

      (2)部分學(xué)生缺乏主動(dòng)性,對開放任務(wù)不知所措,不愿意主動(dòng)獲取知識,只關(guān)注教學(xué)大綱范圍內(nèi)的內(nèi)容。部分學(xué)生學(xué)習(xí)比較被動(dòng),教師講什么,就跟著做什么,如果教師布置了開放性的任務(wù),不指定具體做什么、如何做,學(xué)生往往不知所措。還有部分學(xué)生不愿主動(dòng)獲取知識,如果教學(xué)內(nèi)容不在教學(xué)大綱范圍,學(xué)生就沒有太多興趣去學(xué)習(xí)了解。

      (3)課程時(shí)間短,教學(xué)案例過時(shí),學(xué)生缺乏實(shí)踐機(jī)會(huì),導(dǎo)致對Java語言實(shí)用價(jià)值產(chǎn)生疑問。由于課時(shí)相對較少,等學(xué)生儲(chǔ)備了足夠的知識和技能時(shí)已臨近期末,學(xué)生要忙于期末備考,沒有時(shí)間精力認(rèn)真完成后期布置的實(shí)踐任務(wù)。此外,課程選用的教學(xué)案例多年未變:在屏幕上打印HelloWorld、輸出九九乘法表、求解一元二次方程等,這些案例多數(shù)基于字符界面,與現(xiàn)有電子產(chǎn)品的圖形化界面差距巨大,學(xué)生完成相關(guān)任務(wù)時(shí),經(jīng)常會(huì)質(zhì)疑“Java語言是否有實(shí)用價(jià)值”,面對這樣的疑問,“Java能編寫跨平臺應(yīng)用程序”之類的回答顯得蒼白無力。

      在日常教學(xué)中,課程組采用多種教學(xué)手段:為加強(qiáng)課堂互動(dòng),部分內(nèi)容采用翻轉(zhuǎn)課堂教學(xué)模式;為培養(yǎng)學(xué)生理論聯(lián)系實(shí)際的能力,在課堂講授中采用案例教學(xué);為激發(fā)學(xué)生學(xué)習(xí)積極性,在上機(jī)實(shí)驗(yàn)中采用任務(wù)驅(qū)動(dòng)式教學(xué)。

      綜上所述,Java程序設(shè)計(jì)課程教學(xué)中出現(xiàn)的這些問題與學(xué)生的學(xué)習(xí)興趣和熱情密切相關(guān),問題的關(guān)鍵是找到合適的案例和任務(wù)激發(fā)學(xué)生的興趣。案例和任務(wù)要既能體現(xiàn)知識點(diǎn),又能提升學(xué)生的學(xué)習(xí)興趣,如果選取能夠激發(fā)學(xué)生學(xué)習(xí)興趣的案例和實(shí)例作為課堂講授的示例和學(xué)生的上機(jī)任務(wù),可以吸引學(xué)生主動(dòng)參與到教學(xué)過程中。筆者在國內(nèi)率先嘗試在經(jīng)管類專業(yè)的程序設(shè)計(jì)課程教學(xué)實(shí)踐中引入Java第三方庫,用豐富的教學(xué)案例激發(fā)學(xué)生學(xué)習(xí)的興趣。

      2 教學(xué)實(shí)踐中引入Java第三方庫

      2.1 在Java程序設(shè)計(jì)教學(xué)中引入第三方庫的緣由

      Java語言入門稍難,想成為熟練的程序員需要較長時(shí)間的訓(xùn)練。對于非計(jì)算機(jī)專業(yè)學(xué)生而言,Python語言語法簡潔,入門很快,但就軟件本身的結(jié)構(gòu)而言,Java更靈活、更精確,Python的優(yōu)勢在于豐富的第三方庫,但Python第三方庫的安裝配置略顯復(fù)雜。其實(shí),Java也有很多第三方庫,作為近10年的首選編程語言,Java的優(yōu)勢更明顯。學(xué)習(xí)編程,不一定非要從無到有,從0開始構(gòu)造所有代碼,好比建造樓房,早就不需要一磚一瓦修建了,很多模塊化的預(yù)制件可以在建筑工地之外做好。約書亞·布洛赫(Joshua Bloch)在《Effective Java》中說過:“重新發(fā)明輪子沒有意義!我們寧愿使用久經(jīng)考驗(yàn)的庫,也不要時(shí)不時(shí)編寫我們自己的例程[9]?!苯?jīng)管類專業(yè)的Java程序設(shè)計(jì)課程沒有必要貪多求全,建立起基本的面向?qū)ο蟪绦蛟O(shè)計(jì)概念后,任課教師可以針對學(xué)生的專業(yè)特點(diǎn)選擇合適的教學(xué)內(nèi)容,對非必須掌握的內(nèi)容,沒有必要讓學(xué)生從無到有構(gòu)建完整的程序,教師可以事先搭好程序框架,引入第三方庫,讓學(xué)生自行添加“關(guān)鍵代碼”,降低Java程序設(shè)計(jì)課程的入門難度,讓學(xué)生更有興趣和成就感。

      2.2 Java的第三方庫

      Java語言從1995年正式發(fā)布至今已有27年,經(jīng)過多年發(fā)展,Java語言的生態(tài)環(huán)境非常健全,幾乎可以完成任何場景下的軟件開發(fā)任務(wù)。Java語言的生態(tài)體系非常龐大,除Oracle公司提供的JDK環(huán)境外,Apache、Google、Spring等公司(或組織)提供了非常成熟的第三方庫,Java開發(fā)者可以利用這些優(yōu)秀的第三方庫解決各種通用問題,提高開發(fā)效率。

      Java語言的第三方庫可以分為Java核心擴(kuò)展、Web框架、數(shù)據(jù)庫、JSON、圖表和Office文檔處理等幾類[10]。常用的Java第三方庫在各種應(yīng)用程序中被廣泛使用,計(jì)算機(jī)專業(yè)的學(xué)生需要熟悉Web框架、數(shù)據(jù)庫(持久層)等系統(tǒng)開發(fā)第三方庫,經(jīng)管類專業(yè)的學(xué)生側(cè)重于數(shù)據(jù)處理和數(shù)據(jù)分析,在教學(xué)中可以將Java核心擴(kuò)展、圖表和Office文檔處理這幾個(gè)第三方庫作為教學(xué)案例的補(bǔ)充內(nèi)容。

      除常見的第三方庫外,斯坦福大學(xué)和JTF工作組在Java教學(xué)中也開發(fā)了用于程序設(shè)計(jì)教學(xué)的卡雷爾庫和JTF ACM庫。

      2.3 案例1:卡雷爾機(jī)器人的世界

      20世紀(jì)70年代,斯坦福大學(xué)研究生Rich Pattis設(shè)計(jì)了一個(gè)簡單的Java編程環(huán)境,在這個(gè)環(huán)境里,程序員可以給一個(gè)名字叫卡雷爾(Karel)的機(jī)器人發(fā)送消息,卡雷爾根據(jù)消息作出回應(yīng)??ɡ谞枺↘arel)是捷克劇作家,他的作品Rossum's Universal Robots為英語世界帶來了Robot(機(jī)器人)這個(gè)單詞[11]。

      卡雷爾機(jī)器人只能在一個(gè)矩形世界里活動(dòng),圖1所示是一個(gè)簡單的矩形世界,左下角就是卡雷爾機(jī)器人,卡雷爾右邊的菱形是蜂鳴器(Beeper),卡雷爾可以接受前進(jìn)(move())、左轉(zhuǎn)(turnLeft())、放下蜂鳴器(putBeeper())和拾起蜂鳴器(pickBeeper())這幾個(gè)命令,通過調(diào)用這4個(gè)命令讓卡雷爾在它的世界里行走、放下或拾起蜂鳴器,學(xué)生可以據(jù)此設(shè)計(jì)實(shí)現(xiàn)一些簡單又有趣的游戲。

      Fig.1 Karel’s simple world圖1 卡雷爾的簡單世界

      卡雷爾機(jī)器人是一個(gè)典型的對象,它能接受的命令就是對象的方法,借助于卡雷爾機(jī)器人對象,學(xué)生可以輕松地掌握如何調(diào)用方法,與游戲相似的界面和場景激發(fā)了學(xué)生的學(xué)習(xí)興趣,學(xué)生在娛樂中接受了面向?qū)ο缶幊趟枷氲呐囵B(yǎng)和訓(xùn)練。

      卡雷爾機(jī)器人的矩形世界的大小、障礙物等可以自行定義。圖2所示是卡雷爾的跨欄世界,如果只用move()、turnLeft()兩個(gè)方法實(shí)現(xiàn)跨欄程序,需要80多行語句才能實(shí)現(xiàn),而利用循環(huán)語句和自定義方法,只需要20多行代碼就能實(shí)現(xiàn)完整的功能。通過編寫跨欄程序,學(xué)生可以充分理解3種程序結(jié)構(gòu)和自定義方法對相關(guān)功能的封裝的必要性。此外,卡雷爾的世界可以有很多變化,每個(gè)學(xué)生都可以自行定義自己的卡雷爾世界。案例1對學(xué)生的要求是自定義卡雷爾世界并使用控制語句控制move()、turn-Left()等方法設(shè)計(jì)游戲,大部分學(xué)生都能獨(dú)立完成任務(wù),對Java程序設(shè)計(jì)有了全新的認(rèn)識。

      Fig.2 Karel’s hurdles world圖2 卡雷爾的跨欄世界

      2.4 JTF ACM庫及其在教學(xué)中的應(yīng)用

      2.4.1 JTF ACM庫

      Java的JTF ACM庫是ACM Java工作組(the ACM Java Task Force)從計(jì)算入門教育的角度對Java語言相關(guān)語法、API和工具進(jìn)行簡化,是為Java語言初學(xué)者開發(fā)的穩(wěn)定的教學(xué)資源。通過使用ACM庫,讓初學(xué)Java語言的學(xué)生免于記憶復(fù)雜的Java語法規(guī)則,使得Java學(xué)習(xí)變得容易上手,而不至于因這些復(fù)雜規(guī)則而讓初學(xué)Java編程的學(xué)生不知所措。

      Java語言作為能夠跨平臺使用的計(jì)算機(jī)語言,在所有編程語言中長期名列前茅,但是Java的語法規(guī)則相比Python等語言又比較復(fù)雜,這種復(fù)雜性可能成為學(xué)生在嘗試?yán)斫庹Z言結(jié)構(gòu)時(shí)的重大障礙。

      Brian Kernighan和Dennis Ritchie在他們的經(jīng)典教材《The C Programming Language》的第一章指出:學(xué)習(xí)一種新的編程語言的唯一方法是用它編寫程序,對于所有語言的初學(xué)者而言,編寫的第一個(gè)程序幾乎都是相同的,即:

      請打印出下列內(nèi)容

      hello,world

      本課程選用的Java教材的第一個(gè)程序也正是這樣的HelloWorld程序。在控制臺上打印一條消息,在20世紀(jì)90年代初可能是一個(gè)適合的例子,但如今的學(xué)生已經(jīng)習(xí)慣了在具有精美的交互式圖形界面的電子設(shè)備上運(yùn)行各式各樣的程序,他們很難理解,都進(jìn)入21世紀(jì)了,為什么教材的大部分內(nèi)容都是基于字符界面的控制臺程序。

      當(dāng)然,像Java這樣現(xiàn)代化的面向?qū)ο笳Z言,應(yīng)該可以做得更好。JTF ACM包提供了強(qiáng)大的圖形界面接口,讓Java初學(xué)者可以用簡單的語法,快速編寫基于圖形界面的程序,告別單調(diào)的字符界面,讓學(xué)生對Java程序設(shè)計(jì)這門課程的學(xué)習(xí)產(chǎn)生濃厚的學(xué)習(xí)興趣和強(qiáng)烈的學(xué)習(xí)欲望。要在項(xiàng)目中使用JTF ACM庫,與使用其他第三方庫的方法類似,在項(xiàng)目的類路徑中包含JTF ACM庫的JAR包即可使用。

      JTF ACM庫包括:acm.program(簡單的面向?qū)ο蟪绦蚰P停?、acm.io(對稱處理傳統(tǒng)控制臺I/O和對話I/O的輸入輸出模型)、acm.graphics(圖形對象的擴(kuò)充庫)、acm.gui(支持圖形用戶界面開發(fā)的一些新類)等,這些包里包含若干繼承自JDK的基礎(chǔ)類庫。[12]

      2.4.2 案例2:代替?zhèn)鹘y(tǒng)Hello World程序的JTF ACM庫入門實(shí)例

      JTF ACM包里的類封裝了復(fù)雜性,調(diào)用方法非常簡便,本文以HelloWorld程序?yàn)槔榻BJTF ACM包的使用,如下列3個(gè)程序片段和圖3—圖5所示運(yùn)行結(jié)果。

      Fig.3 Running result of HelloConsole.java圖3 HelloConsole.java運(yùn)行結(jié)果

      Fig.4 Running result of HelloDialog.java圖4 HelloDialog.java運(yùn)行結(jié)果

      Fig.5 Running result of HelloGraphics.java圖5 HelloGraphics.java運(yùn)行結(jié)果

      類HelloConsole、HelloDialog和HelloGraphics分別繼承了ConsoleProgram、DialogProgram和GraphicsProgram這3個(gè)類,均源自ACM包里定義的Program類。HelloConsole和HelloDialog的實(shí)現(xiàn)代碼完全相同,區(qū)別在于繼承的父類不同。HelloGraphics的實(shí)現(xiàn)也比傳統(tǒng)的Java Swing簡潔,初學(xué)者只需要知道如何用類的構(gòu)造方法創(chuàng)建新對象實(shí)例和調(diào)用setFont和setColor等方法,就能很方便地改變文字的坐標(biāo)、字號、字體和顏色。案例2要求學(xué)生驗(yàn)證3個(gè)程序,并選擇自己喜歡的界面風(fēng)格,學(xué)生對HelloGraphics更感興趣,興致勃勃地變換文字的位置,修改文字的字體、大小并改變其顏色。通過編寫驗(yàn)證案例2程序,學(xué)生發(fā)現(xiàn)Java坐標(biāo)系和數(shù)學(xué)課上坐標(biāo)系的不同:原點(diǎn)在左上角。Console-Program和GraphicsProgram這兩個(gè)類的引入,使得Java程序設(shè)計(jì)課堂能夠遠(yuǎn)離字符界面,在豐富多彩的圖形用戶界面下展示各種應(yīng)用。

      2.4.3 案例3:繪圖與動(dòng)畫效果

      acm.graphics包提供了豐富的繪圖工具,與Java Graphics類的實(shí)現(xiàn)方式不同,acm.graphics包直接提供用于繪圖和各種圖形類:GLine(畫線段)、GRect(畫矩形)、GPolygon(畫多邊形)、GImage(處理圖像)等,這些類均繼承自JObject類,除繪制圖形和設(shè)置顏色的方法外,還有move()(移動(dòng))和pause()(延時(shí))這兩個(gè)方法配合實(shí)現(xiàn)動(dòng)畫效果。在教學(xué)過程中,學(xué)生掌握類的實(shí)例化知識后,就可以利用這些類創(chuàng)建圖形對象,繪制豐富的圖形。

      美麗校園案例程序使用GRect類和GOval類繪制了矩形和圓,如圖6所示。程序主要代碼片段如下:

      Fig.6 Running result of beautiful campus case program圖6 美麗校園案例程序執(zhí)行結(jié)果

      run方法中,前4條語句繪制了一個(gè)矩形框:

      (1)使用GRect構(gòu)造方法生成新的GRect實(shí)例,其中RECT_X、RECT_Y、RECT_WIDTH、RECT_HEIGHT為控制矩形的常量:(RECT_X,RECT_Y)為矩形坐標(biāo),RECT_WIDTH、RECT_HEIGHT為矩形的長和寬。

      (2)setColor和setFilled方法給矩形對象發(fā)送消息,與案例2類似,setColor消息可以改變矩形顏色,setFilled決定矩形的填充方式。

      (3)add方法將矩形添加到圖形窗口對象。

      與前4條語句類似,后5條語句繪制了一個(gè)圓。

      move方法可以調(diào)整圖形圖像的位置,pause方法可以讓程序暫停指定毫秒的時(shí)間,調(diào)用pause方法對于實(shí)現(xiàn)動(dòng)畫是必不可少的步驟,計(jì)算機(jī)運(yùn)行得如此迅速,如果不減緩移動(dòng)速度,肉眼無法看到移動(dòng)效果。將以下包含move()和pause()方法的代碼加入美麗校園程序的run方法內(nèi),可實(shí)現(xiàn)圓向右下方移動(dòng)50像素的動(dòng)畫效果,如圖7所示。

      Fig.7 Animation effect of beautiful campus case program圖7 美麗校園案例程序動(dòng)畫效果

      案例3的示例程序?qū)W(xué)生的吸引力非常明顯,案例3的任務(wù)是自己動(dòng)手繪制圖形(或調(diào)用GImage類操控圖像)、設(shè)計(jì)運(yùn)動(dòng)軌跡和控制動(dòng)畫對象,該案例極大地激發(fā)了學(xué)生的興趣和創(chuàng)造力,絕大多數(shù)學(xué)生自行設(shè)計(jì)了背景和運(yùn)動(dòng)對象,重新規(guī)劃了運(yùn)動(dòng)軌跡。案例3的示例鞏固了程序控制語句和類與對象的相關(guān)知識,并介紹了計(jì)算機(jī)動(dòng)畫的基本原理,吸引學(xué)生進(jìn)一步地深入學(xué)習(xí)相關(guān)知識,提升編程能力。

      2.4.4 案例4:隨機(jī)數(shù)案例

      RandomGenerator類實(shí)現(xiàn)了一個(gè)簡單的隨機(jī)數(shù)生成器,該生成器允許客戶端生成偽隨機(jī)整數(shù):雙精度浮點(diǎn)數(shù)、布爾型和顏色。RandomGenerator類來自acm.util包,繼承自java.util.Random。隨機(jī)數(shù)案例程序使用GRect類繪制矩形,利用RandomGenerator類生成隨機(jī)顏色,利用pause方法實(shí)現(xiàn)時(shí)延,程序在窗口中間放置一個(gè)正方形并每秒隨機(jī)改變一種顏色,運(yùn)行結(jié)果如圖8所示,程序繪制矩形的代碼和案例3類似,主要區(qū)別是顏色利用RandomGenerator類的nextColor方法設(shè)置。

      Fig.8 Running result of random number case program圖8 隨機(jī)數(shù)案例程序執(zhí)行結(jié)果

      經(jīng)管類專業(yè)分析研究的前提是要有數(shù)據(jù),做模擬或者測試時(shí)總會(huì)用到大量的隨機(jī)數(shù)據(jù)。JDK提供的Math.random()方法和Random類可以生成隨機(jī)數(shù),但對向量與矩陣運(yùn)算稍顯吃力。apache-commons-math3是Java的一種科學(xué)計(jì)算類庫,提供了很多類和方法用于向量與矩陣運(yùn)算,其中也有RandomGenerator類用于隨機(jī)數(shù)的生成。案例4的擴(kuò)展任務(wù)是閱讀apache-commons-math3的相關(guān)文檔,結(jié)合自身專業(yè)特點(diǎn),探討隨機(jī)向量和矩陣的生成及計(jì)算,為以后經(jīng)管類專業(yè)的分析研究做相關(guān)技術(shù)儲(chǔ)備。

      3 結(jié)語

      對于任何學(xué)科而言,合適的案例總能給學(xué)生帶來必要幫助。引入第三方庫,豐富教學(xué)案例的目的是吸引學(xué)生的興趣,同時(shí)也是傳統(tǒng)案例教學(xué)法的拓展。直觀的圖形、生動(dòng)的動(dòng)畫,第三方案例對Java語言能力進(jìn)行了充分展示,使學(xué)生重新認(rèn)識了Java語言,對程序設(shè)計(jì)課程也有了新的理解,更重要的是興趣提升,越來越多的學(xué)生樂于動(dòng)手編程,學(xué)習(xí)更具有主動(dòng)性,部分學(xué)生對計(jì)算機(jī)專業(yè)產(chǎn)生了濃厚興趣。西南財(cái)經(jīng)大學(xué)2022年轉(zhuǎn)專業(yè)相關(guān)數(shù)據(jù)顯示,全校有18位學(xué)生申請轉(zhuǎn)到計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)。

      在教學(xué)實(shí)踐中,案例不是教學(xué)設(shè)計(jì)的全部,引入第三方庫的案例教學(xué),不僅僅是教學(xué)內(nèi)容的重構(gòu),也為教學(xué)設(shè)計(jì)帶來了更多的靈活性。信息技術(shù)更新迭代提速,程序設(shè)計(jì)課程在滿足基本教學(xué)目標(biāo)的前提下,引入新的第三方庫案例能夠讓課程教學(xué)內(nèi)容與時(shí)俱進(jìn),不僅僅局限于語言本身,而是在課程中展示完整的計(jì)算生態(tài)。

      在經(jīng)管類專業(yè)Java程序設(shè)計(jì)課程教學(xué)中,引入第三方庫案例的Java程序設(shè)計(jì)課程教學(xué)效果良好。學(xué)校近兩年課程教學(xué)中期評價(jià)表數(shù)據(jù)顯示,86.7%的學(xué)生認(rèn)為案例或作業(yè)等對學(xué)習(xí)效果提升很好。兩年前程序設(shè)計(jì)及應(yīng)用(Java)課程的開課班數(shù)僅剩3個(gè),而2022年春季學(xué)期開課班數(shù)達(dá)到6個(gè)。期末考核暫時(shí)仍采用傳統(tǒng)的閉卷考試,根據(jù)試卷分析表可知,多數(shù)學(xué)生能夠理解并掌握面向?qū)ο蟮幕靖拍?,各教學(xué)班的平均分?jǐn)?shù)為81.2,也較2021年的79.3有所提升,也證明了這種教學(xué)方法的有效性。

      猜你喜歡
      經(jīng)管類程序設(shè)計(jì)程序
      基于SPOC的經(jīng)管類專業(yè)混合式教學(xué)模式實(shí)踐探索
      福建輕紡(2022年4期)2022-06-01 06:26:16
      基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
      從細(xì)節(jié)入手,談PLC程序設(shè)計(jì)技巧
      電子制作(2019年9期)2019-05-30 09:42:04
      試論我國未決羈押程序的立法完善
      “程序猿”的生活什么樣
      英國與歐盟正式啟動(dòng)“離婚”程序程序
      高職高專院校C語言程序設(shè)計(jì)教學(xué)改革探索
      創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
      PLC梯形圖程序設(shè)計(jì)技巧及應(yīng)用
      2014年3月經(jīng)管類暢銷書排行榜
      临邑县| 闵行区| 夏河县| 东海县| 红安县| 甘德县| 宜君县| 望城县| 娄底市| 湄潭县| 尖扎县| 葫芦岛市| 清流县| 新宁县| 安溪县| 长岛县| 新绛县| 临武县| 城口县| 彭州市| 监利县| 皋兰县| 南康市| 浙江省| 扶绥县| 余姚市| 巴彦淖尔市| 长宁区| 青海省| 中阳县| 广汉市| 静海县| 奇台县| 岳西县| 恩平市| 苍溪县| 思茅市| 巨野县| 高台县| 津市市| 含山县|