



摘要:Java程序設計是計算機科學與技術專業的核心課程。為了培養學生的編程思維和創新實踐能力,探索了一種融合概率論知識的Java程序設計教學模式,通過教學內容、教學過程和考核方法的設計和實施,將概率論中的典型問題轉化為Java程序設計的任務和挑戰。調查問卷和教學效果驗證了該教學模式對于提高學生的學習成績和創新能力的有效性。
關鍵詞:教學改革;項目式教學;Java程序設計;概率論
中圖分類號:G642 文獻標識碼:A
文章編號:1009-3044(2025)01-0146-03 開放科學(資源服務) 標識碼(OSID) :
0 引言
根據教育部高等教育司2023年工作要點,實施系列“101計劃”是推進基礎學科和“四新”關鍵領域核心課程建設的重要舉措,其中包括新一代信息技術等新工科相關領域[1]。這些舉措要求高等院校不僅要注重知識傳授,更要注重能力培養,數學思維、創新教育等方面的融合。Java程序設計是計算機科學與技術專業的核心課程之一,對培養學生的編程思維和創新能力具有重要作用。然而傳統的Java程序設計教學模式往往缺乏實際應用場景的引入,導致學生對程序設計的興趣和動機不足,難以深入理解和掌握Java語言的特點和優勢[2]。這種缺乏實際應用場景的引入的原因有多方面,一方面是由于Java語言本身涉及的知識面較廣,需要掌握多種編程范式和技術框架,而傳統教學模式往往只能覆蓋其中一部分;另一方面是由于后續專業課尚未開始,沒有為學生提供更多運用Java 語言解決實際問題的機會[3]。
為了改善這一現狀,本文探索了一種融合概率論知識的Java程序設計教學模式,將概率論中的典型問題和算法轉化為Java程序設計的任務和挑戰,激發學生的學習興趣和主動性,提高學生的編程能力和問題解決能力。融合概率論案例的原因是基于以下幾點考慮:一是概率論是數學思維的重要體現之一,與計算機科學有著密切聯系;二是概率論中的問題和算法具有豐富多樣、形象直觀、邏輯清晰、可操作性強等特點,適合作為Java程序設計的案例素材;三是概率論后續專業課(如機器學習等) 需要在3~4學期后才會出現,Java程序設計課程引入概率論知識,可以解決專業課知識點有效銜接問題。
1 課程現狀及問題分析
新工科背景下,軟件產業對人才的需求是具備實踐能力、創新能力和協同能力的高素質復合型人才,而現在Java程序設計教學存在以下主要問題:
1) 教學目標過于單一化,缺乏與數學基礎知識的有效銜接。Java程序設計教學與數學教學之間缺乏有效的聯系和互動,導致學生在學習Java時感覺與數學無關,而在學習數學時感覺與編程無關。這樣就造成了兩種知識的孤立和脫節,使得學生難以理解概率論在計算機科學中的重要作用,如在機器學習、數據挖掘、人工智能等領域的廣泛應用。因此,學生對Java程序設計的學習缺乏興趣和動力,也難以掌握概率論的基本概念、定理和方法[4-5]。
2) 教學內容過于理論化,缺乏實際應用場景的引入。Java程序設計教學過于依賴傳統的教材和教法,導致教學內容過于單一和枯燥,教學方式過于機械和死板。這樣就使得學生在學習Java時只是被動地記憶語法規則和模仿代碼示例,而沒有主動地思考問題和解決問題。這樣就造成了編程思維和邏輯推理能力的缺失,使得學生難以應對復雜的編程任務,也難以發揮創新精神和創造性[6-7]。
3) 教學方法過于傳統化,缺乏項目式的教學方式。Java程序設計教學缺乏與實際問題和場景相結合的教學案例和項目,導致教學內容與實際需求脫節,教學方式與實際工作方式不符。這樣就使得學生在學習Java時只是在虛擬的環境中進行編程練習,而沒有在真實的環境中進行編程實踐。這樣就造成了實際編程經驗和團隊協作能力的缺乏,使得學生難以適應社會和產業對高素質編程人才的需求[8]。
2 課程改革設計
Java程序設計課程的教學目的是讓學生掌握Java 程序設計的基本語法和面向對象的思想,能夠使用Java語言解決實際問題。同時,通過引入概率論的案例,提高學生的編程能力和問題解決能力,實現學科交叉融合的目標。
2.1 教學內容設計
課程的教學內容分為三個模塊,每個模塊包含若干個章節。具體內容包括:1) Java語言基礎,介紹Java 語言的基本語法和特點,流程控制語句以及數組和字符串;2) Java面向對象編程,介紹Java語言的面向對象編程思想,包括類、對象、封裝、繼承、多態、抽象類、接口等;3) Java常用API,介紹Java語言的數據結構和算法,界面設計Swing等。
概率論在諸多領域都有應用,經典的問題有三門問題、撲克牌問題、生日悖論、賭徒破產問題等。以三門問題[9]為例,它是一個經典的概率問題,它涉及條件概率和貝葉斯公式的應用。Java程序可以模擬三門問題,教學知識點與模擬項目的對應關系如下所示。
1) 數據類型:定義三個整型變量來表示三扇門的編號,以及一個布爾型變量來表示是否換門的選擇。使用隨機數生成器來模擬主持人和參賽者的選擇。
2) 運算符:使用算術運算符和取余運算符來計算不同情況下的中獎概率。使用邏輯運算符和關系運算符來判斷是否中獎和是否換門。
3) 流程控制:使用if-else語句來處理不同的選擇和結果。使用for 循環來重復實驗多次并累計統計數據。
4) 數組、列表、棧、隊列:使用數組或列表來存儲三扇門的狀態,以及參賽者和主持人的選擇。使用棧或隊列來模擬主持人排除一扇錯誤的門的過程。
5) 類和對象:定義一個類來封裝三門問題的邏輯和數據,包括屬性和方法。創建一個對象來調用類中的方法并輸出結果。
6) 繼承、多態:定義一個抽象類或接口來規范三門問題的行為,如初始化、選擇、排除、判斷等。定義一個子類來繼承或實現父類或接口,并重寫其中的方法。
7) 界面顯示:使用Swing圖形庫來創建一個可視化的界面,顯示三扇門的圖像,以及按鈕和文本框等控件,讓用戶可以交互式地進行實驗并查看結果。
2.2 教學過程
在Java程序設計教學過程中,受到學時等客觀因素的限制,采用了情景教學法[10],學生通過主動探究和解決問題,提高對Java語言和程序設計的理解和興趣,培養創新思維和實踐能力。主要流程如下:
1) 情境設計。教師利用多媒體方式,展示三門問題的視頻,讓學生想象自己是參加三門問題游戲的選手,引起學生的興趣和注意力,并與學生進行簡單的互動,引導學生需要用Java語言編寫一個程序來幫助自己做出正確的選擇。
2) 先行組織。學生分組進行合作學習,每個小組由四到五名學生組成。向學生介紹本次項目的目標、要求、評價標準和時間安排,并提供一些參考資料和資源,如Java語言的基本語法的書籍、網站、視頻等。教師指導學生查找資料,并提出預習問題,圍繞這些問題去進行思考與學習。
3) 情景呈現。教師簡要介紹基本概念和公式,并給出示例的主要步驟和結果。以“類和對象”章節為例,定義一個類來封裝三門問題的邏輯和數據,包括以下屬性和方法:①一個長度為3的整型數組doors,用來表示三扇門后面的內容,0代表山羊,1代表汽車。②一個整型變量choice,用來表示參賽者選擇的門的編號。③一個整型變量open,用來表示主持人開啟的門的編號。④一個布爾變量switch,用來表示參賽者是否換門。⑤一個構造方法MontyHall(),用來隨機初始化doors數組,并打亂順序。⑥一個方法choose(intc),用來讓參賽者選擇一扇門,并將choice賦值為c。⑦一個方法open(),用來讓主持人開啟一扇有山羊的門,并將open賦值為該門的編號。⑧一個方法switch(),用來讓參賽者換另一扇未開啟的門,并將switch賦值為true。⑨一個方法result(),用來判斷參賽者是否贏得汽車,并返回布爾值。⑩然后,可以創建一個MontyHall對象,并調用其方法來模擬一次游戲過程,并輸出結果。
4) 學習研討。將學生分成若干小組,分配任務和角色,如組長、開發人員、測試人員等,學生在小組內進行討論和協作,利用所學的知識和技能,完成程序設計、編碼、測試、分析等過程,并記錄下自己的思路、方法、結果和遇到的問題。
5) 反思優化。每個小組展示自己的程序設計和運行結果,并邀請其他小組進行評價和提問。引導學生對比不同小組的程序設計和運行結果,并分析其中的優缺點、異同點等。學生反思自己在程序設計中遇到的困難和問題。
6) 融會貫通。總結本節課的主要內容和要點,并與學生一起回顧本節課的教學目標和要求,檢查學生是否達到了預期的效果。教師可以鼓勵學生將所學的知識和技能與其他領域或學科進行聯系和拓展,如數學、物理、經濟、金融等,并引導學生思考這些知識和技能對自己的學習和生活的意義和價值。
2.3 考核方法
考核方法綜合項目展示和試卷測試兩種方式。項目展示占總成績的60%,項目展示考核學生對所學知識的綜合運用能力和溝通表達能力。試卷測試占總成績的40%,試卷測試考核學生對所學基本知識的掌握程度和理解能力。詳細考核方式如表1所示。
3 改革效果的評估和反饋
3.1 滿意度調查
為了了解學生對教學改革的認知和評價,設計了調查問卷,共包含10個問題,涉及學生對教學改革的總體印象、幫助程度、作用、影響、貢獻、喜歡程度、不喜歡程度、改進意見等方面。問卷采用五級量表法,讓學生根據自己的實際情況選擇最符合自己的選項。問卷調查通過教務系統進行發放,參與學生為2021級軟件工程專業220名同學,“對改革的總體印象”問題可以得到圖1所示的數據柱狀圖。根據數據分析結果,絕大多數(82.3%) 的學生對教學改革表示非常滿意或滿意,只有少數(4.5%) 的學生表示不滿意或非常不滿意,說明教學改革在總體上得到了學生的認可和支持。
3.2 教學效果對比
針對改革前2020級學生和改革后2021級學生的成績分析,對比柱狀圖如圖2所示。從數據中可以看出,2017級的學生在各個方面都比2016級的學生有所進步,其中總體平均分分別為80.1分和78.5分,提高幅度為2.1%。最高分、最低分分別為96.0分、58.0 分,提高幅度分別為1.1%、5.5%。優秀率、良好率、及格率分別為17.3%、40.0%、37.3%,提高幅度分別為10.9%、3.9%、4.2%,同時,2021級的不及格率比2020 級的低,分別為5.5%和10.1%,降低幅度為45.5%。
4 結束語
融合概率論知識的項目式教學模式,可以提高學生的編程能力和問題解決能力,實現學科交叉融合的目標。將概率論中的典型問題和算法轉化為Java程序設計的任務和挑戰,激發學生的學習興趣和主動性,提高了學生對課程的參與度。在今后的教學實踐中還需進一步探索教學模式的普適性、教學資源的完善性等問題。
參考文獻:
[1] 教育部高等教育司.教育部高等教育司2023年工作要點[EB/OL].[2024-03-29]. http://www.moe.gov.cn/s78/A08/tong?zhi/202303/t20230329_1053339.html.
[2] 李莉,汪紅兵,李新宇,等.面向新工科和金課建設的Java程序設計課程實踐教學內容改革[J].計算機教育,2022(4):52-55.
[3] 葛萌,歐陽宏基,張忠.翻轉課堂教學模式在“Java程序設計”中的應用研究[J].微型電腦應用,2020,36(5):34-36.
[4] 鄭慶華,張健,鮑崇高,等.抓好基礎課程質量建設,促進基礎課程教師發展[J].高等工程教育研究,2016(1):87-91.
[5] 李娟,黃承寧.應用型本科離散數學課程分層教學改革與實踐[J].電腦知識與技術,2022,18(30):131-133,174.
[6] 崔曉龍,張敏,張磊,等.新工科背景下應用型大數據人才培養課程群研究與建設[J].實驗技術與管理,2021,38(2):213-218.
[7] 陳益.程序設計課程群的多層次教學新生態構建[J].計算機教育,2023(1):172-175.
[8] 歐陽宏基,葛萌,郭新明.Java技術的應用型人才培養模式研究[J].微型電腦應用,2019,35(9):14-16.
[9] 李勇,劉璐“. 三門問題” 的反思[J].數學通報,2018,57(9):7-10.
[10] 陳暄.基于認知學徒制的虛擬學習情境的設計與實踐:以《C語言程序設計》為例[J].職教論壇,2016(26):72-75.
【通聯編輯:王 力】
基金項目:本文得到廣東省重點建設學科科研能力提升項目(No.2021ZDJS082);惠州學院網絡教學改革項目(編號:WLJG006) 資助