郭琳琳 馮雙麗

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