摘要:“C語言程序設計”是高校工科類學生與計算機世界接觸的一門基礎課程,是其他高級編程語言的奠基石。為更好地培育新工科所需的集創(chuàng)新、實踐及合作于一體的高素質(zhì)復合型人才,本文針對“C語言程序設計”課程存在的問題進行分析探討,探索本課程教學改革的可能性,旨在培育學生積極主動的學習精神,幫助學生建立新思維,提升學生探索性學習能力。
關鍵詞:新工科;“C語言程序設計”課程;教學改革
一、引言
在信息技術(shù)飛速發(fā)展的時代,以新興技術(shù)為驅(qū)動的新興產(chǎn)業(yè)和經(jīng)濟模式大量涌現(xiàn),社會對于復合型人才的需求逐漸增長,對應用型本科工科教育的人才輸出提出了更高的要求,而高校教學模式的改革也成為人才培養(yǎng)和知識深度探索的有力途徑。2016年,《教育部高等教育司關于開展新工科研究與實踐的通知》提出以“工程教育新理念”“學科專業(yè)新結(jié)構(gòu)”“人才培養(yǎng)新模式”“教育教學新質(zhì)量”為主要內(nèi)容的指導思想,為推進新工科建設,深化工程教育改革提供理論指導[1]。2019年,文獻[2]提出了新工科背景下人才培養(yǎng)的“新模式”,從素質(zhì)培養(yǎng)、重視訓練、密切聯(lián)系實際產(chǎn)業(yè)和提高實踐能力等方面切入,為教育改革提供了新思路。20世紀80年代,從美國興起的“以學生為中心”的本科教學改革運動成為本科教育改革的范本[3]。其中,工程教育CDIO教育理念以構(gòu)思、設計、實現(xiàn)和運作模式融入本科教育教學,結(jié)合“以學生為中心”,以“學生產(chǎn)出”為導向,對創(chuàng)新課程設計有著重要指導意義。CDIO教育理念教育實踐,是通過課程教學與課程實訓相結(jié)合,讓學生積極主動融入實踐,和課程建立有機聯(lián)系,真正將課程知識應用于工程場景。本文以CDIO教育理念為指導思想,以培育卓越人才為目標,針對“C語言程序設計”課程理論和實際相結(jié)合特性,分析現(xiàn)有“C語言程序設計”課程存在的問題,探討應用型課程改革思路。
二、“C語言程序設計”課程現(xiàn)狀
“C語言程序設計”是學院為計算機、機械、電子信息、電氣類工科專業(yè)學生開設的公共基礎課,也是一門重要的必修課。該課程旨在培養(yǎng)學生程序設計、開發(fā)與測試能力,應用計算機思維方法分析和解決問題的能力,以及團隊合作精神,為學習后續(xù)課程和進一步獲得程序設計相關知識奠定堅實的基礎。
(一)教學內(nèi)容安排
本課程共96個學時,由理論學時和實驗學時組成。目前,理論學時占比和實驗學時相當。目前的教學內(nèi)容主要分初級階段、中級階段和高級階段。初級階段主要介紹編程概念,C語言基礎語法,數(shù)組和字符串與模塊化、過程化編程等基礎知識。中級階段涵蓋指針的基本概念和內(nèi)存管理,其中,內(nèi)存管理包括動態(tài)內(nèi)存的分配和釋放。同時,中級階段包含結(jié)構(gòu)體的基本概念和文件的讀寫、關閉,文本文件和二進制文件的區(qū)別。高級階段涉及多線程和并發(fā)編程,同時會涉及一些基礎的數(shù)據(jù)結(jié)構(gòu)和算法,最后將其融入開放式項目實踐中。本課程是一門理論和實踐相結(jié)合的綜合性課程,需要在各階段教學中合理平衡理論教學與實踐教學的比重??紤]到學生個體學習差異以及基礎知識儲備差異的情況,如果理論教學過多,基礎知識較差的學生很難消化相關重難點,而學習能力較強的學生就頗為輕松,但是缺少挑戰(zhàn)的機會,限制了對學生創(chuàng)新能力的培養(yǎng)。若按照平等切分的方式教學初級到高級階段知識,在學生能力和基礎存在個體差異的情況下,學生差距會進一步拉大,不利于學生的整體進步。因此,初級到高級階段的教學內(nèi)容應該各有側(cè)重點,根據(jù)學生過程化學習原則衡量制定。
按照教學大綱進度,前半個學期在理論教室上課,后半個學期在機房實驗教室上課,理論和實踐脫節(jié)較長時間,教學效果不佳。學生不能完全熟練掌握在常規(guī)編程軟件DEV-C++、Visual Studio中進行程序編寫和編譯的操作,且通常程序預期輸出結(jié)果往往和實際輸出結(jié)果有所偏頗,學生在理論內(nèi)容上的困惑不能得到及時解決,課堂效率降低。
(二)注重課堂講授法
課堂講授法是一種單方面的教學方法,授課教師通過簡明、生動的口頭語言向?qū)W生傳授知識、發(fā)展學生智力。它是通過敘述、描繪、解釋及推論等形式來傳遞信息、傳授知識、闡明概念、論證定律和公式,引導學生分析和認識問題。但由于“C語言程序設計”是一門實操性很強的課程,同時,加上C語言知識點繁雜且抽象,過度采用講授法,不一定能幫助學生更好地理解程序的功能和邏輯。如若知識點晦澀難懂,課堂講授法的教學效果會大打折扣,容易導致學生被動學習,出現(xiàn)“一刀切”的現(xiàn)象。課堂講授法模式下,教師和學生之間的互動性不強,教師也會習慣性過度依賴教材,照本宣科。久而久之,教師和學生缺乏課程有機聯(lián)系,課后交流也會相對減少,教師容易忽略學生的多樣性,學生容易感覺被邊緣化。學生主動學習的積極性不高,獨立思考的能力得不到提升,同時看待問題的角度也很局限,不利于新工科人才的培養(yǎng)。
(三)考核與成績評定方式結(jié)構(gòu)失衡
目前,“C語言程序設計”課程的考核與成績評定比例為,課堂占比8%,平時作業(yè)和在線測試占比12%,上機實驗占比20%,期末紙質(zhì)化考試占比60%。考核與成績評定方式中,期末紙質(zhì)化考試權(quán)重很高。期末試卷注重基礎知識考核,會將學生的學習導向基礎知識的硬性記憶,考后就忘,不能將所學知識真正應用到實際場景中,解決實際問題。同時,這種失衡的考評方式不能全面精準反映學生的綜合能力,忽略了對學生創(chuàng)新能力的培養(yǎng),不利于學生實踐能力提升。
三、“C語言程序設計”教學改革
“C語言程序設計”課程屬于應用型課程范疇,注重基礎知識的夯實,強調(diào)讓學生運用計算機思維去分析和解決問題?!癈語言程序設計”的教學目標是,針對實際的問題,學生能熟練運用邏輯思維和數(shù)學等工具分析,采用自上而下的結(jié)構(gòu)化程序分析方法,給出邏輯正確的、低復雜度的、可讀性強的C語言程序,與此同時,幫助學生形成做事有章法、百折不撓的工匠精神。傳統(tǒng)C語言教學注重語法基礎教學,實驗教學缺乏量化指標,同時考核方式單一等問題[4]。下面,筆者就“C語言程序設計”課程教學目標、教學方式、教學評價提出改革意見。
(一)教學目標改革
在學生具備扎實理論知識基礎的條件下,應用實踐型課程教學可以培養(yǎng)學生的自主實踐能力,讓學生養(yǎng)成從實踐中發(fā)現(xiàn)問題、自主解決問題的習慣,從而螺旋式上升夯實C語言基礎,為后續(xù)學習高階編程語言進行鋪墊。教師應該以學生為中心,把課內(nèi)理論教學與課外實踐教學相結(jié)合,把教師教學與科學研究相結(jié)合。在專業(yè)建設和人才培養(yǎng)方面,加強與產(chǎn)業(yè)的融合,并以產(chǎn)業(yè)人才需求指導“C語言程序設計”課程的教學設計?;诖?,教學目標也應調(diào)整為:通過本門課程的學習,學生能夠準確、牢固掌握C語言相關的基本語法和基礎知識,包括但不限于C語言常量、變量、控制結(jié)構(gòu)、數(shù)組、結(jié)構(gòu)體、共用體、函數(shù)、指針以及文件的操作等模塊的內(nèi)容;學生能夠根據(jù)給定的完整代碼或代碼片段,準確理解所給代碼的功能,理解代碼的執(zhí)行邏輯,并能正確推斷代碼的運行結(jié)果;學生具備發(fā)現(xiàn)代碼中語法錯誤和邏輯錯誤的能力;掌握面向過程的基本概念和基本算法,能熟練將基礎知識應用于程序閱讀、編寫程序等領域,亦即能夠利用理論知識解決實際問題。在實現(xiàn)以上目標的同時,培養(yǎng)學生良好的編程習慣和嚴謹?shù)挠嬎銠C分析能力。
(二)教學方式改革
教學方式改革應以“學生產(chǎn)出”為導向,建立多元化實踐創(chuàng)新平臺,將培養(yǎng)目標反向設計并浸入到不同教學環(huán)節(jié)[5],力爭培養(yǎng)新工科所需的高素質(zhì)人才。
首先是課堂教學,在“C語言程序設計”課程中,需要改變滿堂灌的教學方式,鼓勵引導學生自主學習、個性化學習,巧用翻轉(zhuǎn)課堂,才能因材施教。同時,重構(gòu)C語言課程體系和教學內(nèi)容,推動學生進行基于問題的學習、基于項目的學習、基于案例的學習,以達到強化其工程創(chuàng)新、工程設計、工程實踐能力的目的。除了課堂講授法,討論教學法、自主學習法、任務驅(qū)動教學法[6]都能夠有效調(diào)動學生自主學習的積極性。討論教學法中,學生以小組為單位,根據(jù)教師提出的問題或提供的教學資料,在教師的組織和引導下,積極參與課堂討論,從而實現(xiàn)教與學的互動。討論教學法有助于增強學生思維的靈活性,提高課堂的教學效率。自主學習法能夠拓寬學生的視野,培養(yǎng)學生的自主學習習慣和能力,提高學生的綜合素質(zhì)。在自主學習法模式下,教師通常會給學生留思考題或?qū)嶋H生產(chǎn)問題,讓學生通過利用網(wǎng)絡資源自主學習的方式尋找答案,提出解決問題的措施,然后進行討論評價。任務驅(qū)動法能夠讓學生帶著目的性開展學習,有助于培養(yǎng)學生自主發(fā)現(xiàn)問題、解決問題的能力。實例驅(qū)動式教學模式下,教師可將陳述性知識、程序性知識、策略性知識三者相結(jié)合,通過案例開展課堂教學,使學生能夠?qū)⒖菰锏幕A知識融會貫通,并巧妙應用于實際問題的解決中[7]。其次是課后自主學習。網(wǎng)絡給學生提供了大量學習資源。超星學習通作為一款自主學習軟件,方便學生自主學習。教師可以提前發(fā)布教學內(nèi)容、教學計劃,引導學生自主學習,同時,教師在學生自主學習的過程中起到輔導和監(jiān)督作用。學生可以根據(jù)自己的進度安排完成學習計劃,而不是被動接受教師的輸入知識。最后是指導學生的學科創(chuàng)新活動。開展學生項目開發(fā)、競賽均是提高學生學習興趣的有效方法。通過項目化教學、引導式學習,制定實際場景模擬考試等方式,讓學生在模擬的實際環(huán)境中完成編程任務,培養(yǎng)學生的知識應用能力和解決問題的能力。這種方式可以檢驗學生對實際工作中的問題的應對能力,促進學生將理論知識轉(zhuǎn)化為實際技能。
同時,這種方式也能讓學生在實踐中,根據(jù)編程軟件的報錯提示準確地定位錯誤并改正錯誤,確保源程序能夠正確編譯并得到正確的結(jié)果,讓學生在改Bug的過程中培養(yǎng)挑戰(zhàn)自我、反思自我、提升自我的意識和勇氣。除了以上的教學方式改革外,學校還可與企業(yè)合作開展專業(yè)教學。根據(jù)學校與企業(yè)聯(lián)合培養(yǎng)工程技術(shù)人才的相關制度、計劃以及保障措施的精神,引入“C語言程序設計”課程,建立行業(yè)指導、校企合作的協(xié)同育人機制[8]。
(三)教學評價改革
教學考核制度需要圍繞學生過程化學習成果展開,而不是以一張占比權(quán)重很高的紙質(zhì)化試卷來判定學習質(zhì)量。教學評價方法不再局限于平時作業(yè)、上機實驗和期末書面考試,而是倡導引入更為多元化、更具實踐性的評價方法,如將實驗上機部分進行深入拓展,創(chuàng)設實際場景,安排團隊合作項目,針對項目完成過程及結(jié)果進行考核評價。教師可將項目設計與評價劃分為不同的階段,每個階段都設定明確的目標和評價標準,以便及時發(fā)現(xiàn)問題并幫助學生持續(xù)改進。例如,第一階段可以是項目需求分析,第二階段是初步編碼,第三階段是測試改進,最后階段是項目的完整實現(xiàn)和演示。中間穿插引入代碼審查環(huán)節(jié),讓學生以提高代碼的可讀性和可維護性為目標,相互評估和改進彼此的代碼,以培養(yǎng)學生對代碼質(zhì)量的敏感性, 除了實操性項目,實際問題解決報告也是考查學生分析和解決問題能力的方式,其不僅能夠考查學生的編程技能,還能夠培養(yǎng)學生的團隊協(xié)作和溝通技能。引入這些多元化的評價方法,教師可以更全面地考查學生在知識應用、實際問題解決和團隊協(xié)作等方面的能力,從而更好地反映他們在C語言學習過程中的真實水平。
引入多元化評價方法后,量化考查學生基礎知識的期末測試的權(quán)重會相對降低,更能展現(xiàn)學生的綜合素質(zhì),更全面地考查學生學習“C語言程序設計”課程的成果。但是,不得不提到一個多元化考查的弊端,即引入項目化場景、團隊協(xié)作、提交解決問題的PPT方案均是團隊參與。以小組協(xié)作的方式提交一份報告容易造成學生依賴他人、濫竽充數(shù)的僥幸心理。因此,教師在引入開放式項目設計考查學生時,要關注每個學生的動態(tài)及其在團隊里的作用、成果輸出,關注每個學生的情感發(fā)展、任務進展,才能更全面、真實地衡量學生的實踐、團隊合作、自主學習、創(chuàng)新能力,給出客觀、公正的評價。
四、結(jié)束語
本文借鑒CDIO教育理念,圍繞“以學生為中心”,主張以“學生產(chǎn)出”為導向,探索“C語言程序設計”課程教學改革。從教學內(nèi)容安排、教學方式和教學評價機制方面分析目前課程現(xiàn)狀,結(jié)合教師、學生和課程方面的實際情況,提出教學改革的可行性方案,倡導教學方式多途徑、多樣化,教學評價多元化,全方位考查學生綜合素質(zhì),為新工科輸送高質(zhì)量人才。
作者單位:姜鋒 長春工業(yè)大學人文信息學院
參考文獻
[1] 教高司函(2017) 6號.教育部高等教育司關于開展新工科研究與實踐的通知.[EB/OL]. http://www.moe.gov.cn/s78/A08/tongzhi/201702/t20170223_297158.html.
[2] 李飛.新工科要求下的地方高校網(wǎng)絡工程專業(yè)建設思路[J].計算機教育, 2019,(04):1-3.
[3] 趙炬明.聚焦設計:實踐與方法(上)--美國“以學生為中心”的本科教學改革研究之三[J]. 高等工程教育研究,2018,(02):30-44.
[4] 楊琦,張曉月,韓鑫.C程序設計課程案例教學內(nèi)容研究與實踐[J].高教學刊,2023, 9(12):112-115.
[5] 楊陽,吳其林,徐秋月.新工科背景下基于OBE的教學模式研究與實踐——以C語言程序設計課程為例[J].曲靖師范學院學報,2020(39):79-84.
[6] 于剛.面向新工科的C語言程序設計教學模式改革實踐與研究[J].互聯(lián)網(wǎng)周刊, 2023(20):46-48.
[7] 駱魁永,王思霖.新工科背景下“C語言程序設計”課程教學改革探索——以信陽農(nóng)林學院為例[J].無線互聯(lián)科技, 2022,(19):161-162.
[8] 黃昌興.應用型人才培養(yǎng)模式下的校企協(xié)同創(chuàng)新創(chuàng)業(yè)育人新路徑[J].學周刊, 2020(23):9-10.