郭琳琳 馮雙麗
摘要:高校Java課程的目標(biāo)是培養(yǎng)學(xué)生的面向?qū)ο蟪绦蛟O(shè)計(jì)能力。由于計(jì)算機(jī)類課程具有知識點(diǎn)多、內(nèi)容抽象等特征,采用傳統(tǒng)教學(xué)模式將不利于激發(fā)學(xué)生學(xué)習(xí)編程的興趣,從而導(dǎo)致學(xué)生實(shí)踐能力低、解決問題能力低等問題。該文從實(shí)際出發(fā),通過分析教學(xué)過程中存在的問題,提出創(chuàng)設(shè)情境結(jié)合項(xiàng)目驅(qū)動(dòng)教學(xué)法。通過實(shí)驗(yàn)教學(xué),學(xué)生編程興趣提高,能更好地理解面向?qū)ο缶幊趟季S。
關(guān)鍵詞: 教學(xué)法; 編程思維; 情境; 項(xiàng)目驅(qū)動(dòng)
中圖分類號:G642? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2022)15-0150-03
1 Java課程地位和教學(xué)目標(biāo)
Java語言是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,因其具有跨平臺(tái)性、面向?qū)ο?、安全性高等特點(diǎn),使得Java語言是目前世界主流的編程語言。根據(jù)TIOBE編程語言排行榜,Java近幾年市場占有率始終位列前茅。
Java程序設(shè)計(jì)課程是高校計(jì)算機(jī)專業(yè)的核心課,尤其對于培養(yǎng)應(yīng)用型人才的本科院校來說,激發(fā)學(xué)生的編程興趣、培養(yǎng)學(xué)生的編程思維至關(guān)重要。該課程旨在培養(yǎng)學(xué)生面向?qū)ο蟮某绦蛟O(shè)計(jì)能力,用面向?qū)ο蟮乃季S去解決問題。因此,課程不再是一門純粹的語言類課程,而要承擔(dān)轉(zhuǎn)變學(xué)生思維方式的任務(wù);同時(shí)由于JDK涵蓋豐富的類庫,涉及圖形界面、網(wǎng)絡(luò)通信、數(shù)據(jù)庫和多線程編程,學(xué)生學(xué)習(xí)起來難度較大[1]。由于面向?qū)ο笫且环N抽象思維,而學(xué)生初識編程,思維還停留在具象階段,如何引導(dǎo)學(xué)生的思維模式由具象過渡到抽象,培養(yǎng)學(xué)生程序設(shè)計(jì)和編程能力,是Java教學(xué)中重點(diǎn)和難點(diǎn)。如何開展有效教學(xué)、采用何種教學(xué)方式成為Java課程教學(xué)中重要的研究環(huán)節(jié)。
2 高校Java課程教學(xué)現(xiàn)狀分析
2.1 分析學(xué)生
高校Java程序設(shè)計(jì)課程一般開設(shè)在第二學(xué)期,先修課程是計(jì)算機(jī)基礎(chǔ)和程序設(shè)計(jì)導(dǎo)論。學(xué)生經(jīng)過第一學(xué)期的學(xué)習(xí),具備了計(jì)算機(jī)基礎(chǔ)和程序設(shè)計(jì)理論知識,對操作系統(tǒng)、應(yīng)用程序的概念基本了解,為后面的編程學(xué)習(xí)奠定了基礎(chǔ)。此時(shí)學(xué)生的學(xué)習(xí)狀態(tài)開始有了分類,一部分學(xué)生對基礎(chǔ)知識掌握比較牢固,對編程的學(xué)習(xí)興趣濃厚,會(huì)主動(dòng)擴(kuò)展自己的知識面,認(rèn)知能力較強(qiáng);一部分學(xué)生的基礎(chǔ)還很薄弱,并且對編程提不起興趣,課堂難以集中注意力;還有很大一部分學(xué)生的基礎(chǔ)尚可,但有薄弱環(huán)節(jié),接受和應(yīng)用新知識需要花費(fèi)一段時(shí)間。
2.2 分析教學(xué)內(nèi)容
計(jì)算機(jī)語言類課程的內(nèi)容安排是由點(diǎn)到面、由易到難、由具象到抽象,Java課程也不例外,內(nèi)容從變量運(yùn)算符、流程控制語句到面向?qū)ο蟪绦蛟O(shè)計(jì),再發(fā)展到數(shù)據(jù)庫、網(wǎng)絡(luò)編程,知識點(diǎn)銜接緊密,理論龐雜,非??简?yàn)學(xué)生的邏輯思維。課程還包含上機(jī)操作,要求學(xué)生在獲得理論知識的同時(shí)掌握實(shí)際操作技能。在實(shí)際授課中,復(fù)雜的概念和眾多術(shù)語使學(xué)生難以及時(shí)“消化”,也影響了上機(jī)實(shí)操的效果,導(dǎo)致學(xué)生的學(xué)習(xí)熱情減退。
2.3 分析教學(xué)模式
計(jì)算機(jī)與其他學(xué)科相比,知識更新速度快,若計(jì)算機(jī)教學(xué)只注重知識的傳授,不注重學(xué)生學(xué)習(xí)能力和創(chuàng)造能力的培養(yǎng),會(huì)導(dǎo)致學(xué)生靈活運(yùn)用知識的能力降低。傳統(tǒng)教學(xué)模式只重視書本理論知識的傳授,以教師為中心,卻忽略了學(xué)生的獨(dú)立動(dòng)手能力、綜合分析能力和解決問題能力的培養(yǎng)[2],這種教育模式下學(xué)生的思維、實(shí)踐能力和創(chuàng)新能力必將受到限制,不符合21世紀(jì)社會(huì)發(fā)展對人才的要求。反思傳統(tǒng)教學(xué)模式,教師應(yīng)把重點(diǎn)應(yīng)從教師的“教”轉(zhuǎn)向?qū)W生的“學(xué)”,即以學(xué)生為認(rèn)知主體,充分調(diào)動(dòng)學(xué)生的主動(dòng)性和能動(dòng)性,主動(dòng)建立知識和能力結(jié)構(gòu)的教學(xué)模式上去[3]。
隨著教育的發(fā)展,當(dāng)代教學(xué)的新觀念更加重視學(xué)生和教學(xué)過程,項(xiàng)目教學(xué)法應(yīng)運(yùn)而生,是一種突破傳統(tǒng)填鴨式教學(xué)方法的新教育理念,其核心是建立“實(shí)踐共同體”,并在此基礎(chǔ)上的共同學(xué)習(xí)。美國教育家Kilpatrick把項(xiàng)目教學(xué)分成四個(gè)階段:構(gòu)思(purposing)、計(jì)劃(planning)、實(shí)施(executing)、評判(judging)[4]。項(xiàng)目教學(xué)法雖是對傳統(tǒng)教學(xué)方法的改善,但是由于Java課程的特殊性,如果只采用單一的教學(xué)模式,用小組把學(xué)生圈起來,而不對教學(xué)過程加以管理,表面看起來學(xué)生是在一起共同學(xué)習(xí),實(shí)際上由于學(xué)習(xí)的目的性不明確,加上Java課程本身的抽象性,會(huì)導(dǎo)致學(xué)生越來越疲憊,學(xué)習(xí)的主動(dòng)性逐漸降低。所以單一的教學(xué)模式還無法達(dá)到人才培養(yǎng)的要求,應(yīng)該綜合多種教學(xué)方法,形成合適的教學(xué)模式?;谝陨显?,文章從教學(xué)實(shí)踐出發(fā),提出創(chuàng)設(shè)情境法與項(xiàng)目驅(qū)動(dòng)法相結(jié)合的教學(xué)模式,通過創(chuàng)設(shè)情境,以項(xiàng)目為線索,使學(xué)生自己提出問題并解決,最終通過項(xiàng)目培養(yǎng)學(xué)生解決問題的能力。
3 課程實(shí)施
3.1 創(chuàng)設(shè)情境
情境是教師在教學(xué)中有目的地引入或創(chuàng)設(shè)具有一定情緒色彩、以形象為主題的生動(dòng)具體的場景,以引起學(xué)生一定的態(tài)度體驗(yàn),激發(fā)學(xué)生的情感,從而幫助學(xué)生理解教材[5]。相對于傳統(tǒng)教學(xué)方法,情境的創(chuàng)設(shè)可以使抽象的知識具體化、形象化,更有助于學(xué)生感性知識的形成。
在Java課程教學(xué)初期,對學(xué)生實(shí)施分組,3-4人為一組,模擬企業(yè)場景中的項(xiàng)目組進(jìn)行管理,每組設(shè)置一名組長,對應(yīng)企業(yè)項(xiàng)目組中的項(xiàng)目負(fù)責(zé)人,這些組稱為PST(Project Simulated Team),即模擬項(xiàng)目組。課程初期是教授學(xué)生Java基礎(chǔ)知識,教師在該階段重點(diǎn)監(jiān)控每個(gè)PST的任務(wù)完成情況,根據(jù)PST負(fù)責(zé)人反饋組內(nèi)成員的學(xué)習(xí)(工作)評估表,有的放矢開展教學(xué)活動(dòng)。經(jīng)過一段磨合期,組員間合作的默契程度有所提高。這些為下一步融合項(xiàng)目驅(qū)動(dòng)式教學(xué)進(jìn)行了鋪墊。
3.2 項(xiàng)目提出
學(xué)生在模擬項(xiàng)目組積累一定的項(xiàng)目經(jīng)驗(yàn)后,在學(xué)習(xí)類和對象這一知識點(diǎn)時(shí),為了使抽象的概念具體化,幫助學(xué)生理解面向?qū)ο缶幊趟枷?,掌握面向?qū)ο缶幊谭椒?,教師在教授基本知識點(diǎn)的同時(shí),結(jié)合企業(yè)實(shí)際開發(fā)案例,向每組提出項(xiàng)目要求。教師先創(chuàng)設(shè)一個(gè)情境:客戶要求PST項(xiàng)目組實(shí)現(xiàn)電子商城用戶的登錄以及訂單管理功能,知識點(diǎn)及功能梳理見表1:
項(xiàng)目需求如下:
(1)凡新老用戶(任何等級)下單立享98折;
(2)在活動(dòng)1基礎(chǔ)上,等級為2級以上(含2級)用戶購物滿200減20,滿500減50,滿1000減100(只享有一次滿減);
(3)導(dǎo)入登錄驗(yàn)證模塊和生成訂單號模塊(至少這兩個(gè)模塊),判斷用戶登錄成功后,返回給用戶訂單號和實(shí)際支付價(jià)格。
3.3 項(xiàng)目分解
3.3.1知識點(diǎn)分解
項(xiàng)目知識點(diǎn)涵蓋以下幾個(gè)章節(jié),每個(gè)章節(jié)都安排了單獨(dú)的課時(shí)進(jìn)行學(xué)習(xí)。
(1)數(shù)據(jù)類型與變量
引導(dǎo)學(xué)生分析在項(xiàng)目中需要?jiǎng)?chuàng)建多少變量,每個(gè)變量用哪種數(shù)據(jù)類型修飾。這是完成項(xiàng)目最基本的問題,考察學(xué)生對基礎(chǔ)知識的掌握。
(2)流程控制語句
向?qū)W生講解項(xiàng)目需求分析,不同級別的用戶享受不同的活動(dòng),訂單的實(shí)際支付價(jià)格有所影響,要實(shí)現(xiàn)這個(gè)功能,就要用到判斷,這時(shí)候自然而然引出流程控制語句,并帶領(lǐng)學(xué)生復(fù)習(xí)該知識點(diǎn)。
(3)類和對象
學(xué)生經(jīng)過開始一段時(shí)間的反復(fù)練習(xí)掌握了前兩個(gè)知識點(diǎn),而類和對象屬于抽象的新知識,所以教師要利用項(xiàng)目讓學(xué)生用實(shí)踐鞏固理論,加深對新知識的理解,學(xué)生要根據(jù)教師要求創(chuàng)建類和對象、完成對象初始化操作。
3.3.2功能分解
實(shí)際教學(xué)中,學(xué)生面對一個(gè)項(xiàng)目時(shí)往往找不到切入點(diǎn),因此教師要發(fā)揮主導(dǎo)作用,循循善誘。教師可以將項(xiàng)目按照以下功能分解,逐步啟發(fā)學(xué)生思維。
(1)用戶登錄
用戶輸入用戶名和密碼,若和系統(tǒng)已有賬戶信息一致則提示用戶“登錄成功”,否則提示用戶“輸入不正確”。實(shí)現(xiàn)此功能首先需要從鍵盤獲取用戶的輸入信息,引導(dǎo)學(xué)生回憶Java語言如何實(shí)現(xiàn)鍵盤獲取輸入這一功能;接著教師提出問題:在得到用戶名和密碼后,怎么判斷用戶能否登錄成功?讓學(xué)生先用分支語句列出判斷登錄的框架,然后再往里填充具體的代碼。
(2)創(chuàng)建訂單號
用戶成功登錄后,接下來是根據(jù)規(guī)則創(chuàng)建訂單號。這一環(huán)節(jié)由于學(xué)生缺少實(shí)際項(xiàng)目經(jīng)驗(yàn),對電子商城的一系列業(yè)務(wù)感到陌生,他們對訂單號的概念都會(huì)感到迷茫,更別說去編程創(chuàng)建。這時(shí)教師可以尋找突破口:信息化的社會(huì)環(huán)境下,每人都有網(wǎng)上購物的經(jīng)歷。透過學(xué)生的實(shí)際購物過程抓住創(chuàng)建訂單號的本質(zhì),給學(xué)生講解如何用代碼實(shí)現(xiàn)這一功能。這樣做的好處是學(xué)生從實(shí)際生活中得到啟發(fā),應(yīng)用到課堂中,并為以后實(shí)際項(xiàng)目開發(fā)積攢了經(jīng)驗(yàn)。
(3)計(jì)算訂單實(shí)際價(jià)格
該功能的邏輯稍微復(fù)雜一些,鍛煉學(xué)生對運(yùn)算符的應(yīng)用以及邏輯思維的構(gòu)建。前兩項(xiàng)功能完成后,學(xué)生學(xué)習(xí)編程的信心和興趣大大增加。這個(gè)時(shí)候教師趁熱打鐵,讓PST內(nèi)部討論后給出計(jì)算過程和結(jié)果,教師根據(jù)反饋指明問題,認(rèn)真做出總結(jié),然后讓學(xué)生編程實(shí)現(xiàn)計(jì)算過程。一通流程下來,學(xué)生不僅編寫了代碼,更重要的是其邏輯思維能力得到了提高。
3.4 項(xiàng)目實(shí)現(xiàn)
這里以實(shí)現(xiàn)用戶信息的存儲(chǔ)為例。為了讓學(xué)生接受新知識有一個(gè)由淺入深的過程,教師在分析項(xiàng)目時(shí)可以引導(dǎo)學(xué)生由解決方案一向解決方案二過渡:
解決方案一:利用對象數(shù)組。將賬戶信息存儲(chǔ)在對象數(shù)組,通過靜態(tài)加載。
private static User[] loginUser = new User[4];
static {
loginUser[0] = new User("千千闕歌","qianqian123","101",4,5000.0);
loginUser[1] = new User("忘情水","wangwang666","102",3,251.0);
loginUser[2] = new User("千年等一回","snake.***","103",2,800.0);
loginUser[3] = new User("青花瓷","JayChou2021","104",1,0.0);
}
解決方案二:
賬戶信息存儲(chǔ)在數(shù)據(jù)庫,在項(xiàng)目中添加數(shù)據(jù)庫連接配置。以mysql數(shù)據(jù)庫為例,在配置文件中添加數(shù)據(jù)庫。
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/shop?useSSL=true&useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=root
jdbc.initialSize=5
4 總結(jié)
這種創(chuàng)設(shè)情境與項(xiàng)目驅(qū)動(dòng)結(jié)合的教學(xué)方式能較大程度激發(fā)學(xué)生的學(xué)習(xí)興趣,通過組建項(xiàng)目團(tuán)隊(duì)提升學(xué)生的參與感,通過創(chuàng)設(shè)情境激發(fā)學(xué)生的探究欲望,同時(shí)鍛煉其動(dòng)手實(shí)踐和解決問題的能力,較好地實(shí)現(xiàn)了教師為主導(dǎo)、學(xué)生為主體、理論與實(shí)踐結(jié)合的課堂教學(xué)的優(yōu)化,教學(xué)效果得到明顯改善。另外,根據(jù)項(xiàng)目驅(qū)動(dòng)法的教學(xué)原則,學(xué)生始終是學(xué)習(xí)的主體,是自己學(xué)習(xí)的主人,是自主學(xué)習(xí)[6]。所以在實(shí)際教學(xué)中,教師要將學(xué)生現(xiàn)有的知識水平和實(shí)際技能作為參考,根據(jù)學(xué)生特點(diǎn)合理安排項(xiàng)目內(nèi)容,一方面確保程度一般的學(xué)生在打?qū)嵒A(chǔ)的前提下提高解決問題的能力,另一方面引導(dǎo)程度好的學(xué)生不斷擴(kuò)展知識面,提高自身理論知識。
參考文獻(xiàn):
[1] 曹文平,寧彬.任務(wù)驅(qū)動(dòng)+過程反饋的Java教學(xué)方法研究[J].教育教學(xué)論壇,2021(4):165-168.
[2] 秦昊.改革傳統(tǒng)高校教育模式 培養(yǎng)具有現(xiàn)代創(chuàng)新意識的人才[J].科教文匯,2007(10S):44.
[3] 張晶.關(guān)于“計(jì)算機(jī)基礎(chǔ)”教學(xué)改革的思考[A].王勛銘.改革·探索·創(chuàng)新·發(fā)展—三亞學(xué)院教學(xué)改革研究論文集[C].上海:復(fù)旦大學(xué)出版社,2012.185-187.
[4] 張超.高校計(jì)算機(jī)基礎(chǔ)教育研究[M].青島:中國海洋大學(xué)出版社,2019.
[5] 唐美藝.情境教學(xué)在初中生物課堂的運(yùn)用[J].現(xiàn)代教育科學(xué)(中學(xué)教師),2013(3):126,148.
[6] 閆麗新.“項(xiàng)目教學(xué)法”在高職計(jì)算機(jī)課程中的應(yīng)用[D].石家莊:河北師范大學(xué),2013.
【通聯(lián)編輯:王力】