摘 要:當前,本科編程類競賽正展現出前所未有的蓬勃發展態勢,各大高校對此類競賽的熱情高漲,教學改革亦是方興未艾。為了探索更為高效且實用的編程競賽教學方法與策略,本研究通過一系列創新手段推動編程教育的革新與發展。教師充分利用差異化編程教學策略,精心引導學生自主學習與做題,同時引入同伴教學和翻轉課堂等多元化教學方法,以期在提升學生編程技能與競賽能力的同時,進一步激發他們的創新思維與解決問題的能力。這一系列舉措的實施,不僅為本科編程類競賽的持續發展注入新的活力與動能,也為相關院校提供參考。
關鍵詞:編程類競賽;教學方法;本科
1 問題分析
當前,本科編程類競賽的現狀正以前所未有的活力蓬勃發展。隨著信息技術的迅猛進步,這些競賽不僅在規模和影響力上持續擴大,覆蓋范圍越來越廣,參與人數逐年攀升,而且在推動教育科技人才體制機制改革方面扮演著至關重要的角色。它們如同一股強勁的東風,有效提升了本科學生的創新能力和實踐能力,為學生們提供了一個展示自我、挑戰極限的舞臺。編程類競賽不僅深深吸引了大量懷揣夢想的本科學生參與,還贏得了社會各界的廣泛關注與贊譽。眾多知名企業、知名高校和科研機構紛紛將編程競賽成績作為衡量本科學生能力水平、選拔優秀人才的重要依據,進一步凸顯了這類競賽的重要性和價值。在當前本科編程教育的璀璨星空中,一系列高水平的編程競賽如同璀璨的星辰,照亮著學子們的追夢之路。
具體競賽中,中國大學生程序設計競賽(CCPC)以其嚴謹的賽制和高水平的競技,成為國內編程愛好者心中的圣地;ACM國際大學生程序設計競賽(ACMICPC),作為全球頂級的編程賽事之一,更是吸引了來自世界各地的編程高手同臺競技,展現智慧與勇氣的較量。此外,CCF大學生計算機系統與程序設計競賽(CCSP)以其獨特的賽題設計和全面的考察范圍,深受廣大學子的喜愛;程序設計天梯賽則以層層遞進的賽制,激勵著學子們不斷攀登技術高峰;而“藍橋杯”則以其實戰性強、覆蓋面廣的特點,成為檢驗學子編程能力的又一重要平臺[1]。這些競賽,無一不凝聚著學子們的汗水與夢想,書寫著屬于他們的輝煌篇章。
在當今這個數字化飛速發展的時代,編程類競賽如同一座座閃耀的燈塔,為本科學生照亮了展示自我編程才華的廣闊舞臺。這些競賽不僅為學子們提供了一個揮灑智慧、綻放光彩的平臺,更是他們鍛煉邏輯思維、團隊協作和解決問題能力的重要熔爐。每一次代碼的編織,每一場思維的碰撞,都是對未來職業發展的一次有力鋪墊,讓學子們在實踐中不斷成長,為將來的輝煌奠定堅實的基礎。本科院校對編程類競賽普遍持積極和支持的態度,視其為提升學生綜合素質、推動教學改革和課程建設的寶貴契機。然而,在現實的競賽教學過程中,卻不可避免地在學生、教師和教學實踐三方面遇到了一系列挑戰與困境,需要大家共同去面對和解決。
1.1 學生層面
競賽的教學對象廣泛涵蓋了不同年級和專業的本科學生,他們帶著各自獨特的背景與夢想。由于學生們的基礎能力和興趣點各不相同,這為競賽教學帶來了前所未有的挑戰與機遇。以西安理工大學為例,除計算機學院的學生積極參與編程類競賽外,還有來自自動化學院、電氣學院、理學院等多個學院的選手,他們懷揣著對編程的熱愛與追求,共同匯聚在這片充滿智慧的沃土上。在這里,他們相互學習,共同進步,每一次思維的碰撞都閃耀著智慧的光芒,每一場競賽的歷練都為他們未來的職業發展鋪就了堅實的基石。
在編程類競賽的舞臺上,選手們來自五湖四海。其中,特別是部分來自浙江的選手,他們自小在濃厚的科技氛圍中成長,自中學階段便已經涉足編程領域,參加了多種編程類認證考試和競賽,積累了豐富的實戰經驗。他們的編程技巧嫻熟,思維敏捷,是賽場上的佼佼者。然而,與之形成鮮明對比的是,其他大部分選手僅有C語言或Python課程的基礎,對于數據結構和算法等更深層次的知識還相對陌生。更有部分選手,或許之前從未接觸過編程,面對復雜的代碼和邏輯,顯得有些手足無措。這種選手間的巨大差異,使得傳統的統一競賽教學變得異常困難,難以做到因材施教,滿足每位選手的實際需求。
性別差異作為競賽教育領域一個長期存在的議題,在編程學習中同樣是一個不可忽視的問題。我們觀察到,在編程學習的課堂上,男生和女生往往展現出不同的興趣和思維方式。男生可能更傾向于邏輯思考和問題解決,對于編程語言的語法和算法設計有著更為濃厚的探索欲;而女生則可能更加注重細節,有著獨到的見解。這種差異在一定程度上可能導致編程教學效果的不均衡,部分女生可能會感到課程內容過于技術化、難以融入,而部分男生則可能覺得缺乏足夠的挑戰性。因此,如何在教學中充分考慮性別差異,激發每位學生的潛力,是我們需要深入思考的。
1.2 教師方面
盡管在各大高校的計算機學院等院系擁有著一支龐大的編程類本科課程教師隊伍,他們肩負著傳授專業知識、培養編程技能的重任。然而,不容忽視的是,本科專業課程與競賽類課程之間存在著顯著的差異,專業課程往往側重于理論知識的系統傳授,而競賽類課程則更加注重實踐能力和創新思維的培養。
在實際工作中,本科院校的教師們通常需要在繁忙的教學任務之余,利用寶貴的課余時間兼任競賽教練。這意味著他們需要投入大量的時間和精力,去研究競賽規則、設計訓練計劃、指導學生備賽。然而,由于時間和精力有限,許多教師在兼任競賽教練的過程中感到力不從心,難以在競賽教學水平上取得顯著的提升。這不僅影響了學生的競賽成績,也制約了教師自身的職業發展。
1.3 教學實踐方面
目前市場上,編程教材種類繁多,琳瑯滿目,但其中不乏一些內容陳舊、與時代脫節的教材。這些教材往往過于注重理論知識的堆砌,而忽視了實踐能力的培養,無法滿足競賽學生的實際需求。更令人擔憂的是,隨著編程技術的不斷發展,一些教學資源可能無法及時更新,導致知識滯后。
現下的計算機競賽教學缺乏創新性教學方法,激發本科學生的學習興趣和創造力。在實際教學中,部分教師仍然采用傳統的教學模式,如講授法、演示法等,這些方法在一定程度上能夠傳授知識,但難以激發學生的本科學習興趣和創造力。
此外,部分教師的教學方式似乎還停留在傳統的理論灌輸階段,他們過于注重理論知識的講解,而忽視了實踐操作的重要性。這種教學模式,就如同建造了一座空中樓閣,看似華麗卻缺乏穩固的根基。競賽中常言“1分學、4分練”,這簡短的話語卻蘊含著深刻的道理——理論知識的學習固然重要,但實踐操作才是將知識轉化為競賽技能的關鍵。如果忽視實踐操作,競賽學生難以將理論知識與實際編程相結合,無法真正領略編程的魅力與樂趣。這不僅會影響他們編程能力的提升,更可能磨滅他們對于編程的熱愛與追求。
2 教學工作改革及實踐
為了適應現下日益增加的競賽需求和全面培養學生的創新能力,筆者所在的團隊積極探索并嘗試從以下創新思路出發,深入進行教學改革。
差異化編程教學是一種以學生為中心的教學方法,旨在滿足不同學生的編程學習需求和能力水平[2]。教師需要先對學生的編程基礎、學習能力、興趣愛好等方面進行全面了解,以便為后續的教學設計提供依據。通過問卷調查、測試評估、個別訪談等方式,收集學生的基本信息和學習需求,為差異化教學策略的制定奠定基礎。
我們針對不同年級和水平的學生,精心設計了兩種難度的編程教學內容,供學生選擇。初級難度班型,如同編程世界的啟蒙燈塔,注重編程基本概念和基礎知識的講解。在這里,學生們將接觸到變量、數據類型、控制結構、函數、基本類庫等編程的基石。通過錄播課程的形式,讓學員們可以隨時隨地學習,靈活安排自己的時間。通過簡單而有趣的實踐項目,我們引導學生們一步步入門編程,感受編程帶來的樂趣與成就感。高級難度班型,則如同編程世界的巔峰挑戰。通過采用面授的方式,引入更復雜的數據結構和算法內容,讓學生們能夠深入探索編程的奧秘。通過設計具有挑戰性的項目,我們不斷提升學生們的編程技能和問題解決能力,讓他們在實踐中不斷突破自我。同時,我們還挑選溝通和表達能力較好的高級班同學,擔任初級班同學的輔導老師,指導他們上機實踐和日常答疑,實現知識的傳遞與共享。
2.1 引導學生自主學習和做題
編程類OJ(Online Judge)在線判題系統有很多,如洛谷、AtCoder等。用戶可以在線提交多種程序(如C、C++)源代碼,系統對源代碼進行編譯和執行,并通過預先設計的測試數據來檢驗程序源代碼的正確性[3]。系統最初被使用于ACMICPC國際大學生程序設計競賽和OI信息學奧林匹克競賽中的自動判題和排名,現廣泛應用于世界各地高校學生程序設計的訓練、參賽隊員的訓練和選拔、各種程序設計競賽以及數據結構和算法的學習和作業的自動提交判斷中[4]。
首先,教師在在線判題系統中,精心挑選合適的題目,為學生們制訂合理的學習計劃。教師通過與學生并肩作戰,共同設定明確、可實現的周目標,確保每周都能完成一定數量的做題任務,掌握關鍵的知識點。其次,教師教授學生們時間管理技巧,如使用番茄工作法、時間追蹤工具等,幫助他們擺脫拖延的困擾,提高學習效率。在教師的引導下,讓學生們學會如何合理安排時間,讓每一分每一秒都充滿價值。最后,教師們還注重培養學生定期反思和總結的學習習慣。他們鼓勵學生通過學習筆記和錯題本等方法,對所學知識進行復習和鞏固。
2.2 同伴教學法
很多編程類競賽需要多人協作,因此課程可以引導學生進行同伴教學法。同伴教學法是一種以學生為中心的教學模式,它鼓勵學生之間的互評、互助和合作,通過同伴的反饋和互動來促進學生的學習和發展。在編程競賽教學中,同伴教學法可以幫助學生了解如何有效地溝通和協調,并且加深對于編程的理解。
首先,教師基于學生意愿,將學生分成若干小組。小組成員們可以暢所欲言,相互討論、相互幫助,共同攻克難關,完成周目標。其次,教師可以組織學生進行定期同伴互評,讓學生相互評價對方的編程作品或解決方案。通過認真審閱對方的編程作品或解決方案,成員們嘗試用評委的眼光去發現其中的亮點與不足。通過同伴互評,他們不僅了解了他人的編程思路和技巧,更在相互學習中發現了自己的短板,從而不斷完善自我。最后,教師可以選擇一些典型的編程競賽案例,讓學生進行分析和討論,方便學生深入了解編程競賽的特點和要求,提高自己的編程水平和競賽能力。
2.3 翻轉課堂
翻轉課堂,即將傳統課堂中的講授環節與課后作業環節進行顛倒,學生在課前通過視頻、閱讀材料等方式自主學習新知識,而在課堂上則主要進行問題討論、實踐操作和答疑解惑。這種教學模式能夠增強學生的自主學習能力,提升課堂互動性和參與度。
在編程類競賽備賽過程中,為了全面提高學生的競技水平,我們不僅督促學生嚴格按照計劃做題,還精心組織周賽和月賽排行,并組織翻轉課堂,以此激發他們的學習熱情。教師會根據競賽難度和學生層次,量身定制周賽和月賽的題目,讓學生根據自己的學習進度和能力,在限定的時間內自主完成。之后,教師會安排翻轉課堂,讓學生們暢所欲言,分享在自主完賽中遇到的難題和收獲的心得。通過這種集體討論的方式,學生們能夠相互借鑒、取長補短。在翻轉課堂中,教師尤為關注學生的個體差異,給予他們個性化的指導和幫助,確保每位學生都能獲得最適合自己的資源和支持,共同邁向成功。
3 改革實踐效果
經過一系列精心策劃與實施的改革方案,本學年的編程競賽領域迎來了顯著的成果。與上學年同專業學生獲獎情況相比,本學年的獲獎比率提高了30%,這一數字背后,是學生們夜以繼日的努力與汗水,更是改革措施成效的生動體現。
調查中,大多數學生表示,這些改革措施有力地提升自身的編程能力。同時,也有5%的學生表示,這些措施在某種程度上擠占了他們的備賽時間,給原本就緊張的學習生活增添了負擔。更遺憾的是,在實踐過程中,個別學生因精力不足、壓力過大等多種原因,最終選擇了退出,經過深入的溝通與了解,確實無法繼續備賽。
結語
我們深知,傳統的教學方式已難以滿足當前社會對人才的高標準要求,特別是學生的創新思維和實踐能力的培養顯得尤為重要。在當前科技日新月異的背景下,旨在探索更加高效、實用的編程競賽類教學方法和策略,本團隊創新性地引入了差異化編程教學,為每位學生量身定制學習計劃,確保他們都能在適合自己的節奏中穩步前行。同時,我們還積極引導學生自主學習和做題,讓他們在實踐中不斷摸索、成長。最后,使用了同伴教學和翻轉課堂等多種方法,鼓勵學生之間的交流與合作,讓他們在相互學習中碰撞出思維的火花。這些舉措不僅推動了編程競賽類教學的改革和發展,更提升了學生的編程技能、競賽能力和創新思維,為他們未來職業之路奠定了堅實的基礎。
參考文獻:
[1]賴嘯,易強,劉勇.淺析高職院校數控編程類課程教學模式的改革[J].黑龍江科技信息,2016(27):97.
[2]陳義,唐鄭熠,劉劍濤.面向應用型本科的在線編程訓練系統的設計[J].電腦知識與技術,2024,20(19):5759+62.
[3]劉君瑞,姜學鋒,周果清,等.ICPC國際大學生程序設計競賽的“三融合兩推進”組織管理模式[J].計算機教育,2024(02):4245.
[4]金廣輝,王琦瑞.基于翻轉課堂教學模式下《常微分方程》雙語課程的建設與實踐[J].才智,2024(33):8386.
作者簡介:蔡欣華(1982— ),女,漢族,江蘇江陰人,工學碩士,工程師,主要研究方向:人工智能機器學習和競賽管理;柳宇(1989— ),女,漢族,山西柳林人,工學碩士,實驗師,研究方向:機器學習、競賽管理;劉松(1984— ),男,漢族,河北衡水人,工學碩士,高級工程師,研究方向:板帶軋制裝備的設計與研發;劉雅君(1985— ),女,漢族,陜西榆林人,工學博士,講師,研究方向:軟件工程。