于剛 賈志娟
摘要:在新工科的背景下,高校“C語言程序設計”課程在計算機相關專業(yè)的重要性越來越高,然而傳統(tǒng)的教學模式存在理論教學和實踐訓練之間的矛盾。為了解決這個問題,分別從學生和教師的角度進行分析,在教學改革上通過多種模式,結合案例探究C語言教學的新思路和新方法,旨在提高學生的學習效果和能力水平。
關鍵詞:新工科;C語言程序設計;教學模式改革;案例探究
引言
世界范圍內新一輪的科技革命和產業(yè)變革,以及席卷全球的新經濟的蓬勃發(fā)展,對工科教育的改革和發(fā)展提出了新的挑戰(zhàn),新工科建設的提出正是對這一挑戰(zhàn)做出的積極回應[1]。新工科發(fā)展戰(zhàn)略的推動,標志著高等教育向更加注重學生的自學能力、創(chuàng)新能力、實踐能力及綜合素質的培養(yǎng)方向轉變。在此背景下,“C語言程序設計”課程在計算機專業(yè)的重要性不言而喻。傳統(tǒng)的C語言教學存在重視語法教學但計算思維和編程能力培養(yǎng)不到位、實驗教學缺乏完善的步驟和量化指標、考核方式單一、學生的實驗作業(yè)敷衍了事、抄襲等一些問題[2]。這些問題導致學生對C語言的學習興趣不高,只是掌握了語法,實踐能力卻很弱。因此,我們迫切需要尋求新的教學模式以適應新工科的要求,理論與實踐并重,提升“C語言程序設計”等課程的教學質量。新的教學模式應滿足新工科人才培養(yǎng)的需求,適應新時代教學目標的要求。為實現(xiàn)這一目標,本文提出了基于新工科人才能力培養(yǎng)的C語言程序設計創(chuàng)新應用型教學模式,并進行了創(chuàng)新型教學改革的嘗試。
1. 存在的問題
“C語言程序設計”注重向學生傳授實踐技能和計算機思維,是嚴重依賴于動手實踐的課程,其中蘊含了結構化程序設計思想的精髓,對于其他編程語言的學習具有指導性意義。在探索新的教學模式以適應新工科課程體系的過程中,我們發(fā)現(xiàn)了一個實際問題:教師在課堂上講解理論知識的時間較長,給學生的實踐訓練時間不足,而學生在課下又往往缺乏自主訓練的動力,從而無法達到教學目標。
1.1 學生角度
(1)學生的編程基礎與技術能力呈現(xiàn)出明顯的層次性差異。這個問題主要源于中學階段編程教育的不足和差異化。在中學階段,編程教育往往只是作為選修課或者附加課程,而且很多學校缺乏合適的教材和教師資源。因此,學生在編程基礎和動手能力方面存在較大差異。
(2)普遍存在自主學習能力和動力的不足。中學階段的學習模式往往以被動接受為主,學生習慣了老師的講解和傳授。因此,當他們進入大學階段,需要進行更多的自主學習時,會感到困難和不適應。
(3)學習目標缺乏明確性,學習興趣缺失。學生對于學習C語言的學習動機和目標可能不夠明確。如果學生沒有清晰地認識到學習C語言的重要性和應用價值,他們可能難以建立起對該課程的興趣和學習目標。
(4)對實踐課程存在較為明顯的畏懼情緒。中學階段的教育往往過于注重知識的傳授而忽視了動手實踐能力的培養(yǎng)。因此,當學生進入大學階段,面對實踐型的課程,他們可能會出現(xiàn)畏難情緒和對考試結果的擔憂。
1.2 教師角度
(1)傳統(tǒng)教育觀念仍然在一定程度上影響著教育過程。盡管教育改革已經在多個層面進行,但傳統(tǒng)的教育理念特別是知識傳授的教學模式仍然在很大程度上塑造了教育活動的形態(tài),這使得教師在教學中過于強調理論知識的傳授,而忽視了學生的實踐能力和問題解決能力的培養(yǎng)。
(2)教師的專業(yè)發(fā)展受到其自身經驗和教學資源的制約。許多教師可能由于經驗的不足或者教學資源的限制,無法充分發(fā)揮教學能力,這在一定程度上影響了教學活動的效果。
(3)教育評價體系的壓力可能影響教學活動的進行。在當前的教育環(huán)境下,對學生學業(yè)成績的高度關注可能導致過度重視測試成績,從而限制了教學活動的多元化發(fā)展。
(4)教育活動缺乏多樣化的教學方法和策略。在很多情況下,教學活動可能過于依賴單一的教學方法,如講授法或者研討法,缺乏對多樣化教學方法和策略的有效利用,難以滿足不同學生的需求和學習風格。
2. 教學改革
2.1 混合式教學
混合式教學[3]是將面授和在線學習相結合的一種學習模式,旨在有效地教授知識,將被動學習和主動學習結合,實現(xiàn)以教師為中心向以學生為中心的轉變。混合式教學強調實踐和應用,讓學生接觸到真實的問題和編程挑戰(zhàn)。通過解決這些問題,學生能夠培養(yǎng)解決問題的能力和創(chuàng)新思維,提高他們在面對復雜問題時的分析和解決能力。以C語言中的循環(huán)結構教學單元為例,可以構建一個基于混合式教學的教學案例。
(1)預習資料:教師在課前提供一份在線的預習資料,介紹循環(huán)結構的概念和用法。預習資料中可以包括一些示例代碼和練習題,供學生進行自測和鞏固。
(2)在線討論和合作學習:在課堂上,教師引入一個在線討論平臺,讓學生在平臺上提出關于循環(huán)結構的問題、分享經驗和解決問題。學生可以在平臺上互相討論和解答問題,從而加深對循環(huán)結構的理解和應用。
(3)實踐項目和案例研究:教師設計一個實踐項目,要求學生利用循環(huán)結構編寫一個簡單的程序,例如打印九九乘法表。教師可以提供一些案例和指導,學生可以根據(jù)自己的興趣和能力進行編碼和調試。
(4)在線測驗和評估:在課程結束前,教師可以利用在線測驗工具對學生進行一次小測驗,測試他們對循環(huán)結構的掌握程度。學生可以通過在線測驗及時了解自己的學習情況,并得到教師的反饋和指導。
通過這樣的混合式教學,學生可以在課前通過預習資料了解循環(huán)結構的概念和語法規(guī)則,課堂上通過在線討論平臺進行交流和合作,實踐項目可以提高學生的實踐能力和問題解決能力,而在線測驗和評估可以幫助學生了解自己對循環(huán)結構的掌握情況。這樣的教學方式能夠激發(fā)學生的學習興趣和動力,提高他們對循環(huán)結構的理解和應用能力。
2.2 項目驅動式教學
項目驅動式教學是一種主張自主探索,注重培養(yǎng)學生實踐操作能力的多學科交融的新興教學模式[4],通過讓學生參與實際項目的設計、開發(fā)和實施過程,來促進他們的學習和能力提升。在項目中,學生需要面對實際問題和挑戰(zhàn),并通過分析、思考和實踐來解決問題,提高實踐能力和問題解決能力。以C語言的函數(shù)和指針教學單元為例,構建一個基于項目驅動式教學的教學案例,設計一個簡單的學生成績管理系統(tǒng)。
(1)項目目標:設計一個C語言程序,實現(xiàn)學生成績的錄入、查詢和排序功能。
(2)項目要求:學生信息的錄入,保存到一個結構體數(shù)組中。學生成績的查詢,輸出查詢結果。學生成績的排序,輸出排序結果。
(3)項目步驟:進行團隊組建和角色分工,學生分成幾個小組,每個小組負責一個項目。小組內部可以設幾個不同的角色,如項目經理、程序員和測試員等。在項目計劃和進度安排方面,小組成員可以共同制定項目計劃和進度安排,明確每個成員的任務和時間節(jié)點。
(4)項目展示和評估:在項目完成后,學生可以進行項目展示,向全班展示成果和解決方案。教師和其他學生可以提出問題和建議,對項目進行評估和反饋。
通過這個案例,學生可以通過實際項目的設計和開發(fā),鞏固和應用他們對函數(shù)和指針的理解和掌握。他們可以通過團隊合作和實踐,提高問題解決能力和創(chuàng)新精神。同時,通過項目展示和評估,學生可以得到及時的反饋和指導,進一步提高學習效果和能力水平。通過項目驅動式教學,學生的實踐能力能夠大幅度提升。
2.3 以研促教,教研相長
教學和科研是高校的兩大基本職能,兩者相互關聯(lián),相互促進[5]。教學是科研的前提和基礎,科研是教學的發(fā)展與延伸。建立科研與教學的互動機制,鼓勵教師開展科學研究項目并將科研成果應用于教學中,提升教學質量和水平,吸引學生的學習興趣,從而提高教學效果。
以教師開展國家自然科學基金項目《基于復雜網(wǎng)絡的傳染病朔源研究》研究為例,通過案例來展示如何在C語言教學中進行以研促教、教研相長。教師可以將復雜網(wǎng)絡中的相關基礎算法概念引入C語言中的具體知識點的教學中。復雜網(wǎng)絡研究中的圖論、網(wǎng)絡分析等概念和方法,可以與C語言中的鏈表、樹等數(shù)據(jù)結構相對應。教師可以設計一個案例,要求學生使用C語言實現(xiàn)一個基于鏈表的圖數(shù)據(jù)結構,并且應用復雜網(wǎng)絡的相關算法來分析和處理這個圖。
在教學過程中,教師可以通過講解和討論,將自己的科研項目中的理論和方法與C語言教學內容相結合。教師可以向學生介紹自己的科研項目,講解研究中遇到的問題和解決方法,并且與學生共同探討如何將這些方法應用于C語言教學中。通過與學生的互動和交流,教師可以進一步驗證和改進科研項目中的理論和方法,并且可以從學生的反饋中獲得新的啟發(fā)和思路,促進科研項目的進一步發(fā)展。學生參與教師科研項目,并在教師指導下進行科研探索。
2.4 以賽促教、以賽促學
在“C語言程序設計”課程中,結合鄭州師范學院信息科學與技術學院搭建的OJ(online judge)訓練平臺(http://acm.hi-54.com/)和ACM ICPC競賽模式在C語言課程中進行教學,高效地提升學生編程能力。OJ平臺上提供了大量的編程題目,涵蓋了各種難度和類型,為學生提供了豐富的編程訓練資源。通過ACM ICPC競賽模式的訓練,學生需要在限定時間內解決一組問題,這對他們的編程能力和快速解決問題的能力提出了高要求,從而有效提升他們的編程水平,同時培養(yǎng)學生解決復雜問題的能力。在OJ平臺和ACM ICPC競賽中,學生需要解決的往往是實際問題的抽象和簡化,這需要他們具備良好的邏輯思維能力和解決問題的能力。這種模式鼓勵學生思考如何使用計算機解決復雜問題,而不僅僅是編寫代碼。通過實際編程和參與比賽,學生的動手實踐能力將得到鍛煉和提升,有助于他們更好地理解和應用理論知識。以賽促教、以賽促學,使學習變得更加有趣和挑戰(zhàn)性,真正提高學生的學習興趣和積極性。通過改革后的教學模式,學生在各大比賽中屢次取得顯著的成績。
2.5 挖掘思政元素,激發(fā)內在動力
作為思維跳躍范圍廣、掌握新知能力強,但社會經驗不足的青年群體,大學生普遍在理想信念等精神層面相對欠缺[6],填補這些精神層面的空白,不能僅依賴外在推動,而必須依賴學生自身的內在動力。在“C語言程序設計”課程中引入思政元素有助于引領大學生樹立崇高理想信念和正確價值觀念。教師在教學時不僅需要耐心細致地傳授專業(yè)知識,還要通過課程的思政元素使學生懂得做人做事的道理,在春風化雨潤物細無聲中培育學生樹立和踐行社會主義核心價值觀,增強學生的責任意識、鮮明的政治取向,促使學生成長成才,起到教學育人的職責。例如,在講授函數(shù)的概念時,可以將其與社會責任和分工合作的理念相結合。我們可以解釋,每個函數(shù)都有其特定的任務,就如同社會中的每一個人都有其特定的責任。一個程序中的函數(shù)需要協(xié)同工作以完成整個程序的功能,這正如在社會中,我們需要分工合作,才能實現(xiàn)更大的目標。在“C語言程序設計”的教學中,融入這些思政元素,既可以幫助學生更好地理解編程概念,也可以引導他們思考社會責任和道德倫理的重要性,以此培養(yǎng)他們的道德觀念和社會責任感。
結語
在新工科的背景下,程序設計與系統(tǒng)開發(fā)能力成為計算機類專業(yè)畢業(yè)生應具備的基本且重要的能力,同時也是學生創(chuàng)新能力的基石。作為計算機類專業(yè)的基礎課程,“C語言程序設計”的教學質量以及學生的學習成果,對學生后續(xù)課程的學習、計算思維的建立、學習習慣的形成以及計算機系統(tǒng)和創(chuàng)新能力的提升都具有深遠影響。需要強調的是,教學改革是一項涉及多個環(huán)節(jié)的系統(tǒng)工程,需要教師持續(xù)嘗試、實踐,并根據(jù)實際需求以及學生的反饋進行微調和優(yōu)化。我們期望在將來的教學活動中,這一模式能夠得到持續(xù)改進,為新工科背景下的C語言程序設計教學提供更好的支持,更有效地培養(yǎng)學生的專業(yè)技能和提升綜合素養(yǎng)。
參考文獻:
[1]林健.面向未來的中國新工科建設[J].清華大學教研,2017,38(2):26-35.
[2]楊琦,張曉月,韓鑫.C程序設計課程案例教學內容研究與實踐[J].高教學刊,2023,9(12):112-115.
[3]李雷孝,翟娜,王慧,等.以學生為中心的Java高級程序設計混合式教學模式研究與實踐[J].計算機教育,2022,(3):148-152.
[4]劉慧,田元榮.項目驅動教學模式評價研究——基于生命周期理論視角[J].教育教學論壇,2023,(12):37-40.
[5]劉玉榮,胡榮,王錦標,等.基于高??蒲衅脚_反哺教學的探索與實踐[J].高教學刊,2022,8(34):91-94.
[6]李心記,盧澤慧.偉大建黨精神融入大學生理想信念教育探析[J].華北水利水電大學學報(社會科學版),2023,39(3):71-77.
作者簡介:于剛,碩士研究生,助教,研究方向:計算機應用;通信作者:賈志娟,碩士研究生,教授,研究方向:信息安全,計算機應用。
基金項目:河南省高等教育教學改革研究與實踐項目(編號:2021SJGLX579);鄭州師范學院本科教學改革研究重點項目(編號:JXGGZD-001211570)。