摘要:針對應用型本科院校數據結構教學的挑戰,文章提出了一種融合力扣(LeetCode) 平臺的線上線下混合教學模式。該模式通過課堂教學、線上學習、在線編程與評測以及多元考核方式的結合,旨在提升學生的學習興趣、編程能力和實際問題解決能力。
關鍵詞:數據結構;混合式教學;力扣平臺;在線編程;應用型本科
中圖分類號:G642" " " 文獻標識碼:A
文章編號:1009-3044(2025)16-0155-02
開放科學(資源服務) 標識碼(OSID)
0 引言
數據結構課程是計算機專業核心課程,對培養學生的計算思維和算法能力至關重要。但是,它抽象性強、難度大、與實踐較難結合。為了提高該課程的教學質量,較多學者對其教學方法進行了研究。李云輝[1]引入了智慧課堂進行教學,張少仲等[2]和張晴等[3]通過競賽提升數據結構的實踐性,殷鳳梅等[4]提出了基于OBE的數據結構課程在線教學模式,翟佳佳[5]等提出了案例驅動的教學模式,均取得了一定的成效。
力扣平臺(LeetCode) 是國際上使用最廣泛的在線編程平臺之一。本文針對應用型本科院校數據結構教學的特點和需求,探討將力扣平臺融入數據結構教學,以構建線上線下混合式教學模式,提升教學效果。
1 當前數據結構教學面臨的問題
對于應用型本科院校,數據結構是一門非常重要的課程,它不但提供了對計算機科學核心概念和技能的基礎理解,也直接影響著學生的算法思維和編程水平以及工作能力。特別是工作后,程序員經常需要針對任務場景設計新的數據結構,非常依賴于本科的數據結構基本功,即使使用各編程語言官方庫提供的數據結構,也必須對其原理和適用范圍有所了解。雖然數據結構教學在不斷進步,但目前仍存在以下問題,影響了教學效果。
1.1 教學內容針對性不強,難以反映企業需求
傳統數據結構教學內容往往與企業實際需求脫節,導致課程內容側重理論講解,缺乏對前沿技術的介紹,實驗題目也相對陳舊,難以滿足學生對實際應用能力的培養需求。例如,在講解隊列時,嚴蔚敏版《數據結構》[6]的應用案例為舞伴問題,與企業需求和學生生活體驗都有一定距離,如果換成企業常用的消息隊列效果會更好。
1.2 教學方式單一,以課堂講解為主,實踐性不強
教師上課以理論教學為主,即使引入了學習通、智慧課堂等方式進行課堂練習,學生寫的也多是偽代碼。雖然近年來不斷加強實驗課,但受限于課時,編程作業數量仍然不夠多,教師也難以逐一分析和指導學生作業。加上此時學生一般編程能力不足,難以完成一個包含輸入輸出和性能分析的完整作業。各類程序設計類實驗輔助教學平臺的引入部分解決了此問題,但該類平臺上的題目大多由高校教師設計,題目數量和質量都存在較多不足。例如浙大開發的PTA平臺上部分數據結構題目只有英文版,使用門檻較高。
1.3 學生基礎和能力差異較大,難以合理安排學習進度和深度
每個學生的學習基礎不同,學習能力也有較大差異,導致教師主要按照中游同學的情況安排學習進度和深度,使得部分學有余力的同學覺得沒有挑戰性,而部分同學則學得較吃力,難以因材施教。例如,部分同學C語言基礎不好,使用指針等較吃力,難以學習較深的數據結構內容。
2 力扣平臺對數據結構教學的作用
力扣平臺于1991年在美國創立,于1999年發布了中文版網站,目前界面和所有題目都有中文版本,不需要學生具備較高的英文水平。它既是主流的在線編程平臺,也是國內外信息技術企業普遍使用的招聘筆試平臺,很多題目來自谷歌、臉書、騰訊等大企業的筆試題。對數據結構教學而言,力扣具有以下優點。
2.1 數據結構題目種類繁多,方便針對性練習
力扣平臺有70多類近4 000道編程題,涵蓋數組、鏈表、哈希表、樹、堆、棧、圖等數據結構以及排序、查找、最短路徑等算法,方便教師選擇合適的題目進行針對性練習。力扣題目的難度分為簡單、中等、困難三個級別,并且同一級別的題目還可以根據通過率進一步細分難度,滿足了不同層次學生的學習需求。
2.2 數據結構題目生動多樣,與業界結合緊密
力扣平臺的題目生動多樣,能從不同角度訓練學生對知識點的掌握能力。僅以數組題為例,它包含刪除數組中的重復項、合并部分重疊的數組區間、找出最長連續序列、俄羅斯套娃信封等1 000多道題目。它們大都是企業開發中常用數據結構和算法的抽象和提煉,能讓學生了解企業界的實際需求。像圖片平滑器、文本左右對齊等數組題更是直接的企業應用,有助于提升學生的應用能力。
2.3 配備了完整的在線編譯和測試環境
學生提交數據結構代碼后,平臺會自動編譯和運行代碼,并使用不同的用例進行測試。除了給出測試是否通過外,還會提供代碼的運行時間、消耗內存等性能指標,并與其他力扣用戶代碼進行對比,讓學生對自己的代碼質量有更深入的了解(見圖1) ,學有余力的同學可據此進一步優化代碼。
2.4 開闊學生數據結構思維,啟迪智慧
力扣平臺的社區中可對每道題的解法進行討論,經常一道題目有上百個討論帖,學生從中學到同一個問題可使用不同的數據結構知識進行解決,思維得到了極大的開闊。例如,有一道題目是“給一個整數數組,數組中除某個元素僅出現一次外,其余每個元素都恰出現三次,請找出并返回那個只出現了一次的元素”。討論帖中有使用快速排序的,有使用哈希表的,甚至有使用有限狀態自動機結合位運算的。還有經典的計算斐波那契數列問題,除傳統的線性時間復雜度的遞歸方法外,社區中也討論了諸多方法,例如利用矩陣乘法和數學歸納法,只需要對數時間復雜度即可求解出數列。每種結題思路在時間復雜度和空間復雜度上有所取舍,也讓學生深刻的理解到如何針對任務場景和運行時間、存儲空間等資源限制,合理選擇數據結構和算法。
3 融入力扣平臺的數據結構教學設計
針對傳統數據結構課程存在的問題和力扣平臺的特點,設計了融合力扣平臺的線上線下混合教學模式,包括課堂教學、線上學習以及在線實踐和評測三部分,也給出了考核方式。課堂教學側重原理和方法的講述,線上學習提供了更豐富的學習資源,而在線實踐和評測則側重提高學生的學習興趣和編程能力,三部分均與力扣平臺進行了緊密融合(見圖2) 。
3.1 課堂教學
課堂教學環節,仍采用經典的嚴蔚敏版《數據結構》教材[6],教師可以結合力扣平臺上的典型題目進行講解,將理論知識與實際應用相結合。例如,在講解二叉樹時,可以選擇力扣平臺上關于二叉樹遍歷、查找等方面的題目,引導學生理解和掌握相關算法。此外,可從力扣社區中挑選多種思路講解同一道題目,使學生通過對比更好地掌握知識點,并能開闊思路。當然,這樣備課需要教師投入大量的時間,由課程組集體備課更容易實施。
3.2 線上學習
傳統線上學習一般要求學生通過超星學習通等平臺觀看學習視頻、完成任務點測試和章節測試。在此基礎上,可以從力扣平臺上選擇適合學生水平的題目,例如分割鏈表等經典筆試題,讓學生進行分組討論,每個小組的人數控制在4~6人。討論內容可以包括題目的解題思路、算法實現、代碼優化等方面,并形成一套或多套代碼。在討論的基礎上,每個小組選派代表錄制匯報視頻或在課堂上進行講解,分享小組的解題思路和實現過程。教師除對學生的匯報進行點評和指導,幫助學生深入數據結構知識外,還鼓勵學生將討論內容寫成博客或發表到力扣社區,讓學生獲得了滿足感和成就感。
3.3 在線編程與評測
力扣平臺具有較強的在線編譯和測試功能,能夠快速的顯示語法錯誤和運行錯誤,很適合學生進行編程實踐。教師可為每個知識點選擇3~5道簡單難度的題目和1~2道中等難度的題目,其中簡單難度的題目所有學生都必須完成,中等難度的題目供學有余力的同學進行拓展,從而滿足不同層次學生的需求。例如,數組知識點既可以提供簡單難度的“刪除有序數組的重復項”,也可以額外給水平較高的學生提供中等難度的“旋轉圖像”。但由于力扣平臺不是專門的程序設計類輔助教學平臺,教師無法在上面建立班級和布置作業,也觀察不到學生的代碼和測試結果。為此教師可結合超星學習通等教學平臺的功能,在學習通上以作業的形式列出題目的力扣編號和名稱,待學生在力扣平臺完成測試后,截圖上傳到“學習通”。
3.4 考核方式
數據結構的考核應能體現出知識目標、能力目標和素質目標。知識目標建議為掌握數據結構的基本概念以及線性表、棧、隊列、串、樹、圖等典型的數據結構和排序、查找等典型算法。能力目標建議為能夠對實際問題進行分析,選擇或設計相應的數據結構及算法,并熟練運用一門語言(如C語言) 進行編程實現。素質目標建議為培養學生的動手實踐能力以及自主探究和吃苦耐勞精神。為更全面的對學生進行評估,并引導學生多進行編程實踐,應加大過程性考核分數的占比,具體如表1所示。
4 結論
本文提出的融合力扣平臺的數據結構混合式教學模式,能夠有效提升學生的學習興趣、編程能力和問題解決能力。未來研究將進一步探索該模式在不同教學場景下的應用,并優化考核方式,以更好地促進學生綜合能力的提升,并為后續操作系統等課程的學習打好基礎。
參考文獻:
[1] 李云輝.智慧課堂在數據結構與算法教學中的應用[J].電子技術,2023,52(5):176-177.
[2] 張少仲,白英,王小妹,等.基于ACM競賽的數據結構實驗課程教學研究[J].計算機時代,2020(10):73-75.
[3] 張晴,高廣銀.學科競賽驅動的數據結構教學改革研究[J].電腦知識與技術,2024,20(3):174-176.
[4] 殷鳳梅,史君華.基于OBE的數據結構課程在線教學模式探究[J].長春大學學報,2021,31(4):96-100.
[5] 翟佳佳,朱晶晶.淺談案例驅動的數據結構課程設計教學改革實踐[J].電腦知識與技術,2021,17(26):209-210.
[6] 嚴蔚敏,李冬梅,吳偉民.數據結構:C語言版[M].2版.北京:人民郵電出版社,2022.
【通聯編輯:王 力】