孫曉玲 王金玲
摘 要:結(jié)合多年的教學(xué)實踐,對C語言課程從教學(xué)內(nèi)容、教學(xué)方法與手段、考核評價體系與考核方法等方面的改革舉措進行了總結(jié),分析了存在的問題和取得的成效;用實例介紹了使用PTA實驗教學(xué)輔助平臺進行實踐教學(xué)改革的具體做法,分析和探討了C語言課程實踐教學(xué)中存在的問題和改革的方法及取得的成效。
關(guān)鍵詞:C程序設(shè)計課程;教學(xué)改革;PTA+模式;實驗教學(xué)
中圖分類號:G642.0? 文獻標識碼:A? 文章編號:1673-260X(2021)11-0089-04
1 引言
“C語言程序設(shè)計”是我校計算機各相關(guān)專業(yè)的基礎(chǔ)課程,也是程序設(shè)計類的核心和入門課程。主要培養(yǎng)學(xué)生程序設(shè)計基礎(chǔ),把握程序設(shè)計方法和基本思想,奠定學(xué)生的編程能力基礎(chǔ)。該課程歷史悠久,由于其長期以來在軟件開發(fā)和嵌入式系統(tǒng)開發(fā)中具有舉足輕重的重要地位,所以特別受到各高校和軟件開發(fā)企業(yè)的重視[1],我校計算機學(xué)院及與其合作的達內(nèi)科技、青島軟件、安博教育等企業(yè)都十分重視C語言課程建設(shè),將其列入專業(yè)改革重點建設(shè)的課程。該課程師資力量雄厚,參與課程建設(shè)的人員較多,多年來C語言課程組的老師們付出了艱辛的不懈的努力,使該課程建設(shè)不斷邁上新臺階,成為我院具有示范作用的課程,通過積累經(jīng)驗,夯實基礎(chǔ)、突出特色,使該課程在教學(xué)思想和觀念、教學(xué)方法與手段、教學(xué)內(nèi)容與體系、教學(xué)質(zhì)量與水平、教改成果和教材建設(shè)方面均處于領(lǐng)先地位。
2 課程改革主要措施
2.1 教學(xué)內(nèi)容建設(shè)和教學(xué)方法舉措與成效
作為專業(yè)基礎(chǔ)課,我校計算機相關(guān)專業(yè)均設(shè)置了“C語言程序設(shè)計”課程,C語言程序設(shè)計課程組根據(jù)各專業(yè)特點依據(jù)專業(yè)培養(yǎng)方案,立足學(xué)生實際多次討論、修訂教學(xué)大綱,經(jīng)過深入實踐和研究,編寫了滿足不同層次不同專業(yè)教學(xué)需求的理論課教學(xué)大綱、實驗課教學(xué)大綱,并根據(jù)我校學(xué)生實際編寫了實驗指導(dǎo)書。在課程體系與教學(xué)內(nèi)容設(shè)計上,突出把握程序設(shè)計方法和思想,充分體現(xiàn)項目教學(xué)的思想,注重程序設(shè)計實踐訓(xùn)練,重點引入典型程序設(shè)計案例,將程序設(shè)計的學(xué)習(xí)融入對案例的研究和解決過程中,注重程序設(shè)計算法的實現(xiàn),以學(xué)生實際編程解決問題的能力為突破口,培養(yǎng)學(xué)生分析和解決實際問題的能力。
2.1.1 教學(xué)內(nèi)容注重突出“先進性、實用性和趣味性”
該課程在建設(shè)過程中,以程序設(shè)計為主導(dǎo),努力適應(yīng)市場和程序開發(fā)主流環(huán)境,重點體現(xiàn)“先進性、實用性和趣味性”,注意引進新知識、新技術(shù)、新思想和新理念,注重理論與實踐緊密結(jié)合,在教學(xué)內(nèi)容上給出與生活密切相關(guān)的、有趣的、有意義的典型案例,使學(xué)生對學(xué)習(xí)內(nèi)容充分感受到樂趣,學(xué)生的學(xué)習(xí)熱情得以充分調(diào)動,能夠自覺地學(xué)習(xí)和掌握相應(yīng)的基本理論和專業(yè)知識,從而能盡快適應(yīng)軟件的開發(fā)過程。
在突出先進性方面,講授內(nèi)容上注重介紹和使用C語言新的標準和編譯版本,具體做法上選用了內(nèi)容新穎、使用新標準的新版本教材,選擇流行的、新穎的編譯系統(tǒng),教學(xué)理念上注重對學(xué)生程序設(shè)計思想方法的培養(yǎng)。
在突出實用性方面,以項目驅(qū)動為導(dǎo)向設(shè)計教學(xué)內(nèi)容,首先根據(jù)項目的具體要求,提出問題,然后根據(jù)具體問題設(shè)計教學(xué)內(nèi)容,由淺入深、從易到難,從簡單到復(fù)雜不斷充實內(nèi)容,使得知識脈絡(luò)更清晰。學(xué)生也通過項目任務(wù)的引導(dǎo),不斷面對新的問題,思索設(shè)計新的解決辦法,循序漸進地解決一系列問題,并通過編寫程序調(diào)試和完善程序的過程,獲得了成就感,激發(fā)了求知欲望。通過對實際項目的分析得到解決方案,又通過編寫和調(diào)試程序,使學(xué)生得到軟件開發(fā)實際工作的鍛煉。在分析解決方法的過程中,算法很自然的滲透其中,學(xué)生從中得到訓(xùn)練,在編程調(diào)試程序的過程中,枯燥難懂的語法規(guī)則也不再是困擾解決問題的屏障。
在突出趣味性方面,課程組的老師們開動腦筋,充分利用現(xiàn)代化教育技術(shù)和專業(yè)特長,制作有趣的教學(xué)課件,并針對學(xué)習(xí)重點和難點問題采用先進的多媒體技術(shù)手段制作動畫、錄制視頻,將抽象的知識融入其中,結(jié)合典型的案例展示給學(xué)生,增強了趣味性,提高了教學(xué)互動效果,也極大地激發(fā)了學(xué)生的學(xué)習(xí)興趣,使學(xué)生更自覺的在快樂的學(xué)習(xí)中學(xué)會知識。多年來,C語言課程的教學(xué)課件不斷更新完善,生動形象,課程組老師設(shè)計的“C語言中的遞歸”、“排序算法”等教學(xué)課件在內(nèi)蒙古自治區(qū)高校課件設(shè)計大賽和學(xué)校組織的課件設(shè)計大賽中多次獲獎,非常受學(xué)生喜愛,取得了明顯的效果。
2.1.2 教學(xué)環(huán)節(jié)和教學(xué)方法的改革注重實效和可操作性
程序設(shè)計能力和程序設(shè)計思想的培養(yǎng)是程序設(shè)計課程教學(xué)的最終目的[2]。我們緊緊圍繞這個主題,采取一些行之有效的教學(xué)方法組織開展教學(xué)活動。
首先,抓住教學(xué)重點,精講多練。我們始終把教學(xué)的重點放在培養(yǎng)學(xué)生的基本編程能力上,側(cè)重講授用正確的計算機語言描述算法,對編程的細節(jié)與技巧向?qū)W生做一些介紹,要求學(xué)生學(xué)會先分析算法和數(shù)據(jù),再畫出流程圖,然后進行程序的編寫。教學(xué)過程中充分利用多媒體教學(xué)手段,給學(xué)生演示程序設(shè)計的全過程,隨著課程的不斷深入,對編程細節(jié)的講授逐漸淡化,而對程序的整體掌握的要求則逐漸加強,使學(xué)生充分感受到程序設(shè)計的魅力,編程能力也逐步躍上一個臺階。
其次,引入項目驅(qū)動和經(jīng)典案例教學(xué)方法。在授課過程中采取項目驅(qū)動的教學(xué)方法,即以實際問題引出相關(guān)的理論和概念,在講述實例的過程中融入知識點,通過分析歸納,建立解決工程實際問題的思想和方法,以提高解決工程實際問題的能力[3]。由于C語言是專業(yè)基礎(chǔ)課程,我院的C語言程序設(shè)計課程都是在第一學(xué)年的第一個學(xué)期開設(shè)的,學(xué)生都是初次接觸程序設(shè)計語言,對程序設(shè)計思想方法難以理解和掌握,思維方式的轉(zhuǎn)變存在很大的障礙,這也是我們在教學(xué)中面臨的最大困難。針對這一難題,課程組老師積極研制和整理教學(xué)案例,經(jīng)過了艱辛的勞動和不斷創(chuàng)新思維,對經(jīng)典教學(xué)案例,進行歸類總結(jié)、完善并系列化,使得各知識點教學(xué)內(nèi)容都有標桿并緊密銜接,便于學(xué)生理解掌握經(jīng)典算法并活學(xué)活用,舉一反三,取得了事半功倍的效果。
其三,強化教學(xué)活動中的“教、學(xué)、做”統(tǒng)一。其中教師的“教”是主導(dǎo)、而學(xué)生的“學(xué)”是主體、“做”則是教學(xué)實踐活動?!敖獭W(xué)、做”三方面通過有機的結(jié)合,形成了三位一體的教學(xué)方法,有效地避免了教和學(xué)、學(xué)與做等教學(xué)環(huán)節(jié)的分離和脫節(jié),“教、學(xué)、做”統(tǒng)一起來后,教學(xué)活動得以形成一個整體[4],在教學(xué)設(shè)計、課堂授課、上機實驗、布置作業(yè)、項目實訓(xùn)、實踐活動輔導(dǎo)、師生互動、學(xué)生自我學(xué)習(xí)等各個教學(xué)環(huán)節(jié)上全面兼顧,都得到關(guān)注,總體把握教學(xué)效果,最終用“做”取得的成績來衡量“教”與“學(xué)”的能力和水平。
其四,課內(nèi)與課外相結(jié)合。豐富學(xué)生課外活動內(nèi)容,為適應(yīng)后續(xù)課程的學(xué)習(xí)打下了較為堅實的基礎(chǔ)。引導(dǎo)學(xué)生參加學(xué)習(xí)興趣小組,鼓勵和指導(dǎo)學(xué)生積極參加程序設(shè)計大賽,利用程序設(shè)計輔助教學(xué)平臺,開展競賽活動,熟悉和了解ACM大賽的賽事和做題方法,選拔優(yōu)秀學(xué)生組隊參加自治區(qū)高校ACM程序設(shè)計大賽。越來越多的學(xué)生加入到科技活動中,在教師指導(dǎo)下開展軟件開發(fā),積累了一定的經(jīng)驗也取得了可喜的成績。
2.2 新工科背景下實踐教學(xué)改革具體措施與成效
2.2.1 以往實踐教學(xué)中存在的問題
最近幾年,為了適應(yīng)以互聯(lián)網(wǎng)和工業(yè)智能為核心的新興產(chǎn)業(yè)的發(fā)展,我校和企業(yè)合作,相繼開設(shè)了一些新興的專業(yè),如大數(shù)據(jù)、云計算等,C語言程序設(shè)計作為這些專業(yè)的基礎(chǔ)課程,在目前工程教育專業(yè)認證背景下,其改革的目標有了更高的要求,學(xué)生在課程實踐中,運用該課程所學(xué)的專業(yè)知識解決實際的復(fù)雜工程問題的能力需要進一步加強。C語言是實踐性很強的一門課程,以往的實踐教學(xué)環(huán)節(jié)中存在著如下一些問題:
(1)實驗課學(xué)生基本上是在機房上機,教師給學(xué)生發(fā)布實驗內(nèi)容和要求,學(xué)生在課堂上完成編程任務(wù),教師一人面對整個班級的同學(xué),學(xué)生編程是否正確需要教師一個一個進行判斷,不能完全關(guān)注到每個同學(xué)的狀態(tài)。
(2)實驗的內(nèi)容也基本上是教材上的例題和習(xí)題,題目量比較少,也不夠新穎。
(3)有的學(xué)生在課下完成的程序,由于編程題無法自動評判,不能及時的得到正確與否的反饋,使學(xué)習(xí)積極性受到影響。
(4)編程任務(wù)對于所有學(xué)生都一樣,不能滿足不同層次的學(xué)生需求和個性發(fā)展。
(5)缺少綜合性和合作性的編程訓(xùn)練。
2.2.2 PTA平臺+實訓(xùn)大作業(yè)的訓(xùn)練模式
以上所列出的問題也背離了工程教育認證標準的要求,C語言課程組針對這些問題,在實踐教學(xué)環(huán)節(jié)采用了PTA平臺+實訓(xùn)大作業(yè)的模式進行改革,這項改革措施首先在2019級學(xué)生中一個班級進行了教學(xué)改革實驗,而后在2020級的所有6個班級中進行了推廣。
程序設(shè)計類實驗教學(xué)輔助平臺(Programming Teaching Assistant,簡稱PTA)是由浙江大學(xué)牽頭建設(shè)的在線程序評測系統(tǒng),目前已經(jīng)有800多所高校的6000多名教師共同建設(shè)和使用。平臺題目數(shù)量足夠大并且還一直在不斷擴充。教師注冊并申請開通教師權(quán)限后,可以創(chuàng)建班級,新建自己的題目,創(chuàng)建題目集,布置作業(yè),查看作業(yè)情況,開通討論話題、考試并進行成績統(tǒng)計等操作。
程序設(shè)計類課程重在培養(yǎng)和提高學(xué)生的程序設(shè)計能力,進而培養(yǎng)學(xué)生的解決實際問題的能力,尤其對于初次接觸程序設(shè)計的學(xué)生,在上機實驗中往往發(fā)現(xiàn)問題就手忙腳亂,不知道該如何查找錯誤,怎么樣排除錯誤,這也是實踐教學(xué)中的一大難點,針對這樣的現(xiàn)實情況,我們在實踐教學(xué)中加強了程序的編寫、錯誤的調(diào)試等基礎(chǔ)訓(xùn)練內(nèi)容,借助PTA這個平臺反復(fù)訓(xùn)練,鍛煉了學(xué)生分析解決問題能力和動手能力。具體做法如下:
(1)結(jié)合課程內(nèi)容的不同知識點,創(chuàng)建和組織了適合我校學(xué)生的題目,并針對相應(yīng)的章節(jié)創(chuàng)建了題目集。每一個知識點結(jié)束后,通過PTA教學(xué)平臺,將題目集發(fā)放給學(xué)生,學(xué)生可以利用課上課下的時間,通過電腦或者手機進行反復(fù)的編程、糾錯和線上提交等操作,自動評判系統(tǒng)會給出具體的正確或者錯誤的提示。教師可以隨時查看本班級題目集的提交和排名情況。學(xué)生在平臺上也可以查看自己在本題目集的排名和得分情況。
(2)為了適應(yīng)不同層次學(xué)生的學(xué)習(xí)進度,題目集的編排是通過“模仿、改寫、編寫、提高”的循序漸進的方式來組織。每套題目集里面都設(shè)置了基礎(chǔ)題目和提高題目,基礎(chǔ)題目屬于必做題,是學(xué)生必須掌握的對課程基本知識點的鞏固題目;提高題目是對于學(xué)有余力的學(xué)生的“加餐”。通過這種分層練習(xí)的方式來確保滿足不同層次學(xué)生的學(xué)習(xí)需求。
(3)學(xué)生在提交所編寫程序的過程中遇到的問題,可以通過討論區(qū)進行交流,大家可以提問題、可以說出自己的疑惑、分析編程思路和設(shè)計實現(xiàn)的方法,學(xué)習(xí)好的學(xué)生能夠從中起到示范作用并給與其他同學(xué)一些指導(dǎo),既培養(yǎng)了學(xué)生之間互幫互學(xué)的精神也鍛煉了學(xué)生自主學(xué)習(xí)能力,同時激發(fā)了學(xué)生積極參與討論的熱情,也帶動了整個班級的學(xué)習(xí)氛圍,教師只需要在適當?shù)臅r候有針對性的給與指導(dǎo)和隨時把控當前的學(xué)習(xí)狀況,解放了教師的工作強度,也便于教師把更多的精力投入到課程內(nèi)容的研究和教學(xué)上。
(4)在學(xué)期的最后四周布置分組大作業(yè)。學(xué)生以小組為單位分別選擇題目并進行組內(nèi)分工和代碼編寫。作業(yè)結(jié)束需要進行答辯和評分。答辯以小組為單位推舉出答辯代表,其他成員給予補充。由任課教師和邀請的學(xué)院其他老師作為答辯教師給出答辯成績。這個過程讓學(xué)生能夠體會到程序的模塊如何劃分,小組成員相互協(xié)作分工完成大作業(yè)的團隊協(xié)作精神。
2.2.3 將項目實訓(xùn)內(nèi)容融入課堂,貫穿于教學(xué)中
在與企業(yè)合作辦學(xué)以來,合作企業(yè)每學(xué)期針對C語言課程進行2次集中項目實訓(xùn),項目實訓(xùn)內(nèi)容結(jié)合課程進度進行,企業(yè)的實訓(xùn)指導(dǎo)教師和任課教師及時溝通教學(xué)進度情況,使實驗課緊緊圍繞項目實訓(xùn)內(nèi)容或大作業(yè)開展,根據(jù)項目實訓(xùn)的內(nèi)容,把算法的分析、數(shù)據(jù)處理的方法以及技術(shù)要求先介紹給學(xué)生,而將一些輔助性的或通過訓(xùn)練可由學(xué)生編程實現(xiàn)的部分,交由學(xué)生自己完成,經(jīng)過反復(fù)上機調(diào)試,鍛煉了學(xué)生解決實際問題的能力。在項目訓(xùn)練過程中教師加強了實驗指導(dǎo),幫助學(xué)生調(diào)試程序的過程中指導(dǎo)學(xué)生掌握調(diào)試程序的一些技巧和方法,學(xué)生完成實訓(xùn)項目過程中寫出階段性實驗報告。
2.2.4 使用PTA平臺進行實驗教學(xué)的實施效果
PTA平臺在2019級新生一個班級開始首次實施,2020級大一新生的6個本科班級開始推廣使用,與未使用PTA平臺的2019級學(xué)生進行比較,有如下的一些變化:
(1)編程數(shù)量的變化:2019級學(xué)生沒有使用PTA平臺的,整個學(xué)期給學(xué)生布置的編程題目約為90道題目,學(xué)生的完成情況沒有辦法具體統(tǒng)計。2020級學(xué)生共布置了編程題目142道,平均完成并通過測評的題目數(shù)在90道題以上。從兩屆學(xué)生的數(shù)據(jù)對比看,學(xué)生編程的數(shù)量和質(zhì)量都是有可見的提高,并且通過PTA平臺的試題分析,教師對于學(xué)生的做題情況是可以詳細掌握的。
(2)這些量變也確實產(chǎn)生了“質(zhì)變”:首先報名參加比賽的學(xué)生人數(shù)逐年增加,而且前幾年學(xué)生參加ACM競賽,獲得了“優(yōu)勝獎”。2021年帶領(lǐng)學(xué)生參加ACM競賽,2020級的學(xué)生踴躍參加并獲得了二等獎和三等獎的好成績。參加團體程序設(shè)計天梯賽的成績也從2020年的未獲獎,到2021年的二等獎,成績有了明顯的提高。
(3)使用PTA平臺極大程度的激勵了學(xué)生的做題積極性,培養(yǎng)了學(xué)生自學(xué)能力,建立了良好的學(xué)習(xí)氛圍。學(xué)生的分析問題和解決問題的能力有明顯的提高,動手能力越來越強,并且從做題中獲得了學(xué)習(xí)的成就感,為后續(xù)課程的學(xué)習(xí)打下良好的基礎(chǔ)。對于普通二本院校的學(xué)生來說,確實給學(xué)生提供了更高更廣闊的鍛煉平臺。
(4)綜合性作業(yè)培養(yǎng)學(xué)生的工程素養(yǎng)。學(xué)生的團結(jié)協(xié)作能力和實踐創(chuàng)新能力都得到了鍛煉。學(xué)生在做完項目后都能體會到這一學(xué)期的課程帶來的收獲和成就。
(5)項目實訓(xùn),使學(xué)生實驗?zāi)康母用鞔_,對調(diào)試程序的方法和過程加深了理解,對化解教學(xué)難點起到了實效,同時鍛煉了學(xué)生分析解決問題的綜合能力,提高了應(yīng)用能力。
3 改革課程考核評價體系和實驗教學(xué)評價方法
為增強課程考核的公平、公正和權(quán)威性,使課程考核能夠全面、公正、真實地考察學(xué)生的學(xué)習(xí)情況,積極引導(dǎo)學(xué)生的學(xué)習(xí)方向,促進學(xué)生學(xué)習(xí)方式的改進,課程組老師積極進行考試評價方式的革新與實踐,并不辭辛苦廢寢忘食根據(jù)學(xué)生實際設(shè)計組織試題,使得編程題考試實現(xiàn)了系統(tǒng)自動評判。
該課程考核遵循重學(xué)習(xí)過程、輕考試結(jié)果的原則,注重對學(xué)生平時學(xué)習(xí)和實驗、自主設(shè)計、完成階段性實訓(xùn)項目的記錄和考察。
課程評價包括理論和實踐兩部分,實踐部分包括編程題和項目綜合實訓(xùn)兩部分。平時成績占總成績15%,平時作業(yè)理論部分客觀題使用學(xué)習(xí)通和泛雅平臺分單元或階段進行測試,系統(tǒng)進行評判;實踐部分編程題使用PTA平臺,分單元發(fā)布題目進行單元測試。在學(xué)期期中和期末使用PTA平臺分別進行兩次考試,由系統(tǒng)進行評判,成績各占30%和40%,項目綜合實訓(xùn)采用大作業(yè)方式在課程的最后四周進行,學(xué)生分組,小組成員分工完成,答辯方式評判,成績占15%。通過近兩年采用新的考核方式和評價方法,實現(xiàn)了教考分離,評卷都由系統(tǒng)自動進行,考核結(jié)果全面客觀,更注重過程。取得了積極的效果。
4 結(jié)語
經(jīng)過C語言課程組全體教師多年來的辛勤工作和努力,該課程建設(shè)取得了一些顯著成績和效果,尤其近兩年來,通過利用泛雅(學(xué)習(xí)通)、PTA等網(wǎng)絡(luò)平臺,極大地豐富了課程的教學(xué)資源,方便了師生互動和學(xué)習(xí)交流,教學(xué)效果能夠及時得到反饋,教學(xué)成效性得到增強。但在目前教學(xué)資源條件大好的形勢下,也迎來了一些新的問題和挑戰(zhàn),需要我們不斷努力探索、實踐與創(chuàng)新。如何讓學(xué)生恰當?shù)厥褂镁W(wǎng)絡(luò)資源而不是過分依賴,需要有更好的解決辦法,針對我校學(xué)生特點,開發(fā)充實適合學(xué)生實際的練習(xí)題和試題在PTA平臺使用,也是需要長期進行的,為學(xué)生打造更大的提升空間,還需要創(chuàng)新性課外指導(dǎo)。課程改革的工作無止境,需要不斷的努力探索前行,不斷總結(jié)經(jīng)驗,彌補不足,創(chuàng)新舉措,使得課程建設(shè)不斷完善,為培養(yǎng)應(yīng)用型復(fù)合型創(chuàng)新人才貢獻力量、做出更大成績。
參考文獻:
〔1〕崔武子.C程序設(shè)計教程(第3版)[M].北京:清華大學(xué)出版社,2012.
〔2〕張基溫.新概念C程序設(shè)計大學(xué)教程[M].北京:清華大學(xué)出版社,2012.
〔3〕袁寶華,朱長水,吳許俊,等.面向應(yīng)用型人才培養(yǎng)的C語言教學(xué)改革研究[J].辦公自動化,2018,29(04):11-15.
〔4〕楊洪偉,王開田,李曉輝,等.面向創(chuàng)新能力培養(yǎng)的C語言教學(xué)改革研究[J].計算機時代,2018,36(04):197-200.