康元元,高彥彥,楊 潔,高偉坤
(石家莊學院 機電學院,河北 石家莊 050035)
C語言是一種結(jié)構(gòu)化語言,模塊化的程序設(shè)計原則利于程序的調(diào)試,且C語言的處理和表現(xiàn)能力非常強大,具有豐富的運算符和多樣的數(shù)據(jù)類型,能夠?qū)τ布M行直接操作.作為通信、電子和電氣類非計算機專業(yè)來說,該課程可培養(yǎng)學生的邏輯分析能力、編程實踐能力、分析問題和解決問題的能力,并對后續(xù)課程的學習起到鋪墊作用[1],學好C語言對電類專業(yè)學生未來的職業(yè)規(guī)劃也非常重要.因此,采用何種教學方法,如何引導學生入門并提高學生的編程能力成為一線教師研究的重要方向.
石家莊學院作為應用型轉(zhuǎn)型發(fā)展試點院校,辦學定位為地方性和應用型,致力于培養(yǎng)適應地方經(jīng)濟發(fā)展的高素質(zhì)應用型人才[2].同時,在工程教育專業(yè)認證背景下,以培養(yǎng)目標和畢業(yè)出口要求為導向,C語言課程改革要求學生在工程實踐中,能運用該課程所學的專業(yè)技能解決實際的復雜工程問題.鑒于此,C語言課程的教學改革迫在眉睫.
國際計算機協(xié)會(ACM)主辦的ACM國際大學生程序設(shè)計競賽(ACM/ICPC)是世界上公認的規(guī)模最大、水平最高的國際大學生程序設(shè)計競賽[3].該競賽可展示學生的創(chuàng)新能力、團隊協(xié)作能力,并考驗學生在壓力下分析問題和解決問題的能力.筆者通過帶領(lǐng)石家莊學院機電學院學生參加河北省大學生程序設(shè)計競賽,基于ACM模式的在線測評系統(tǒng)(OJ)對C語言課程進行教學改革研究,同時結(jié)合案例教學法進行線上線下相融合的新型教學模式改革,目的在于提高學生的學習興趣、積極性和主動性,達到最佳的教學效果.
針對C語言的課程設(shè)置、學生特點、理論教學、實踐環(huán)節(jié)和教材選取等方面進行探討.
C語言是高校理工科類各專業(yè)的一門專業(yè)必修課程,是大學生入學后接觸的第一門計算機編程課,且一般在大一開設(shè).各高校大一階段公共基礎(chǔ)課程的課時普遍偏多,學生的學習任務繁重.對于剛進入大學的新生,需適應大學生活,轉(zhuǎn)變高中的學習方式和方法,變被動為主動.而C語言是大部分學生從未接觸過的新的學習領(lǐng)域,編寫程序?qū)λ麄兌允悄吧衩氐?,尤其對于電類專業(yè)的學生,具備良好的編程基礎(chǔ)對后續(xù)課程的學習至關(guān)重要.因此,入學第一課要引導學生快速入門,培養(yǎng)學生的學習興趣,保持對編程的學習熱情,夯實程序設(shè)計基礎(chǔ).
C語言知識點繁多,難于記憶;語法規(guī)則較多,不易掌握;算法運用靈活,極易混淆.傳統(tǒng)教材和課堂講授教學是以算法為主線,講解數(shù)據(jù)類型和運算符等,程序基本是解決數(shù)學類算法問題的案例.教學內(nèi)容和電類學生的專業(yè)方向相脫節(jié),且枯燥的算法講解容易使學生失去學習興趣,注意力會轉(zhuǎn)移到手機等電子產(chǎn)品上,必定會影響學習效果.
C語言是一門實踐性很強的課程,以往教學的實踐環(huán)節(jié)大多是上機方式,教師布置實驗內(nèi)容,學生在實驗課上完成編程任務.程序基本是教材上的實例和習題,在課本和網(wǎng)絡(luò)上可以很容易找到答案,大部分同學都是照搬照抄,不能真正掌握編程思想,后期學習也只是應付期末考試,嚴重背離應用型轉(zhuǎn)型目標和工程教育認證標準.另外,程序編寫出錯總是難免的,每周一次的上機課堂,一位教師要解答近百名學生的程序問題,問題也是五花八門,會出現(xiàn)各種語法錯誤、運行錯誤,即使程序調(diào)試通過也可能存在邏輯錯誤,與實現(xiàn)效果大相徑庭.教師滿堂跑,身心疲憊;學生的問題未能解決,學習受挫.這些問題讓從事程序設(shè)計類課程教學的教師深感煩惱.
針對上述問題,筆者結(jié)合近幾年指導學生參加河北省大學生程序設(shè)計競賽的經(jīng)驗,并考察國內(nèi)外各開放式在線測評系統(tǒng),綜合考慮各種因素,選擇了浙江大學的程序設(shè)計類實驗輔助教學平臺(PTA)進行線上的實踐教學改革.同時,教學中采用ACM競賽模式,進行線上線下相融合的新型教學模式的探索和實踐.
為支持ACM競賽,很多大學搭建了自己的在線評測網(wǎng)站,用以支持教學、訓練以及各種類型的比賽.這些在線平臺可免費注冊和使用,且測評網(wǎng)站擁有數(shù)量眾多的競賽題目,對用戶提交的程序代碼進行測試,并實時反饋出其正確性[3].浙江大學的在線評測系統(tǒng)發(fā)展出一個可支持在線教學的良好平臺——PTA輔助教學平臺.
PTA是程序設(shè)計類課程的輔助教學平臺,截至2020年,已有600多所高校和百萬用戶使用該平臺進行C語言和數(shù)據(jù)結(jié)構(gòu)等課程的教學和比賽.任何人都可利用郵箱免費注冊賬號,教師可申請開通教師權(quán)限,具備教師權(quán)限的賬號可創(chuàng)建和管理班級、建立(并分享)題目集、布置作業(yè)、考試及統(tǒng)計成績等.
石家莊學院機電學院中的通信、電子、電氣和機器人這4個專業(yè)的C語言程序設(shè)計是大類培養(yǎng)課程,為了提高本課程的教學質(zhì)量,基于輔助教學平臺,引入教賽融合機制,更好地為機電學院培養(yǎng)應用型人才.
C語言課程重在培養(yǎng)學生的實踐能力,學生通過半學期的學習,要求達到熟記基礎(chǔ)知識、掌握各種語法規(guī)則、應用靈活的算法設(shè)計程序、編寫和調(diào)試出執(zhí)行效率高的程序.對于沒有任何編程基礎(chǔ)的初學者而言,學習時間緊、任務重,大部分學生到學期末仍不能做到獨立編程.
鑒于此,筆者從教學內(nèi)容上進行改革.對于多而零亂的基礎(chǔ)知識部分,選擇性地講解必要知識點,并融入到簡單案例中.“紙上得來終覺淺,絕知此事要躬行”,讓學生在實戰(zhàn)中進行記憶,快速入門.課程采用的教材是機電學院教師郭鵬等編著的《C語言程序設(shè)計及應用教程》,該教材專為零基礎(chǔ)初學者設(shè)計,由淺入深,循序漸進地講解C語言基礎(chǔ)知識[4].課程知識點和具體案例如表1所示.
在授課中,將枯燥的知識和語法規(guī)則融入到簡單有趣的案例中,把本課程繁雜的基礎(chǔ)知識分散到后續(xù)授課內(nèi)容中.這種快速入門、分散難點的教學改革減輕了學生的學習壓力,讓學生在案例的實戰(zhàn)中掌握課程內(nèi)容,提高了學習興趣和編程能力.在PTA輔助教學平臺中,將教學內(nèi)容和實踐案例以不同題目形式建立題目集.
程序設(shè)計類課程重在培養(yǎng)和提高學生的程序設(shè)計能力,實踐內(nèi)容應側(cè)重程序的編寫,所以實踐環(huán)節(jié)和課下作業(yè)均以程序編寫為主.顯然,憑教師一己之力對學生編寫的大量程序進行人工檢錯和糾錯,工作量和工作難度都非常大,而且學生也不能及時得到正確與否的反饋.
表1 教學內(nèi)容、知識點和案例引入
鑒于此,筆者結(jié)合C語言程序設(shè)計課程的特點,在“案例教學”過程中,將知識點融入到具體案例中,建立題目集,通過PTA輔助教學平臺發(fā)放給學生,學生可以進行線上提交,判題系統(tǒng)自動給出結(jié)果反饋給學生,教師可隨時查看班級學生的提交情況.學生提交程序代碼后,評測系統(tǒng)使用大量的測試數(shù)據(jù)評判學生的程序是否正確,然后返回相應判題結(jié)果,學生根據(jù)返回信息進行調(diào)試和修改,直到答案正確[5].圖1為學生提交程序代碼后反饋的具體信息.
為了考查學生對基礎(chǔ)知識的掌握情況,作業(yè)可安排適量的選擇、填空、判斷等客觀題目.在PTA輔助教學平臺中,教師建立自己的題目集,題目以編程為主,以多種形式練習題目為輔,也可將題目集分享給其他注冊教師使用.PTA“共建資源,共享平臺”的理念也是眾多高校教師選擇其作為輔助教學平臺的原因之一.
C語言課程的實踐性強,學生需要在課下進行大量的編程練習,在編程、調(diào)試程序的實踐過程中逐步掌握程序設(shè)計思想,培養(yǎng)計算機思維能力[5].在PTA輔助教學平臺布置大量編程題目作業(yè),學生在課下可進行在線提交,平臺上可隨時查看自己在班級的排名情況,這種競賽模式可激勵學生的學習積極性,建立良好的學習氛圍.
圖1 程序提交列表
在教學過程中,結(jié)合ACM競賽經(jīng)驗展開競賽模式的線上學習.學生除完成個人的作業(yè)任務外,按照互補原則,要求每三人一組,共用一臺電腦,在5 h內(nèi)完成PTA平臺布置的競賽題目,各小組答題情況和排名在榜單中隨時更新.團隊成員需發(fā)揮個人特長,合理分工,配合完成比賽任務.這種競賽模式的合作學習旨在鍛煉學生的團隊合作能力和交流溝通能力,最大程度地激發(fā)學生的學習熱情,以賽促教、以賽促學.同時,根據(jù)作業(yè)和競賽的成績,為石家莊學院科研競賽選拔優(yōu)秀的程序設(shè)計人員,促進C語言課程的教學改革和人才培養(yǎng).
C語言課程傳統(tǒng)的成績評定基本是以筆試為主,這種考核方式無法反映學生真實的編程能力和分析問題、解決問題的能力.為此,課程組將成績評定分為上機考試和平時成績兩部分,比例各占50%.上機考試借助PTA輔助教學平臺進行線上測試,平時成績由“個人成績40%+小組成績30%+教師評價30%”三部分組成.為了公平和客觀評價學生的成績,平時成績以PTA輔助教學平臺的測試成績?yōu)橹?,結(jié)合平時出勤和課堂表現(xiàn)的教師評價為輔.這種成績評定方式的目的在于考查學生的動手實踐能力、問題解決能力和協(xié)作能力.
通過借助PTA輔助教學平臺的C語言課程教學改革后,學生的成績逐年提高,不及格率下降.以2019級通信工程專業(yè)為例,2019年C語言程序設(shè)計課程最高分為100,不及格率為0,平均分達到79.通信專業(yè)學生參與學校競賽的數(shù)量和質(zhì)量也逐年增加.這種教賽融合機制不僅可提高本課程的教學質(zhì)量,而且可為機電學院選拔和培養(yǎng)高水平競賽人才,促進學生就業(yè),為企業(yè)和社會輸送更多高素質(zhì)的應用型人才.