高 磊
(內(nèi)蒙古工業(yè)大學(xué)信息工程學(xué)院,內(nèi)蒙古 呼和浩特 010050)
“高級語言程序設(shè)計C”不僅能培養(yǎng)學(xué)生的編程能力,還能培養(yǎng)學(xué)生的計算思維能力,使之能夠用計算機(jī)的思維進(jìn)行分析問題和解決問題。 目前的考核方式已經(jīng)不能完全適合工程教育認(rèn)證的要求,因此,有效提高教學(xué)質(zhì)量,以培養(yǎng)目標(biāo)和畢業(yè)要求為導(dǎo)向的課程教學(xué)改革,勢在必行。 傳統(tǒng)的教學(xué)方法是以教師知識講解為中心,學(xué)生對知識的掌握處于一種被動接收的模式,“練”與“記”在傳統(tǒng)課堂中無法及時結(jié)合起來。 如何將學(xué)生的“學(xué)”與老師的“講”充分結(jié)合起來,進(jìn)行有效的課堂教學(xué),需要進(jìn)行教學(xué)方法和手段的深度探討與改革,使學(xué)生能夠在課堂上充分與教師進(jìn)行互動,更加注重學(xué)生掌握程序設(shè)計的基本思想,培養(yǎng)學(xué)生抽象思維和邏輯思維推理能力、分析問題和解決問題的能力以及創(chuàng)新意識和創(chuàng)新能力,使廣大學(xué)生更加全面發(fā)展,更好地適應(yīng)信息時代的要求[1]。
“高級語言程序設(shè)計C”的開課時間一般在大學(xué)一年級,大部分學(xué)生第一次接觸編程語言。 該課程是一門理論與實(shí)踐相結(jié)合的課程,在教學(xué)過程中,往往由于內(nèi)容多、學(xué)時緊,學(xué)生容易產(chǎn)生抵觸情緒,使學(xué)生學(xué)習(xí)的主動性、積極性受到打擊。
(1)傳統(tǒng)的教學(xué)傾向于理論教學(xué)。 重理論講述,輕案例和實(shí)踐講解以及編程思維的練習(xí),缺乏新意,這必將導(dǎo)致教師的授課方式變成單一的理論講授,而對編程實(shí)踐的講解較少,導(dǎo)致學(xué)生缺乏自主編程的能力,教學(xué)效果不佳。 編程語言類課程相對枯燥,如果在講解過程中,互動環(huán)節(jié)少,學(xué)生學(xué)習(xí)興趣就提不起來。
(2)解決實(shí)際問題時的編程能力較弱,缺乏對程序獨(dú)立調(diào)試的能力。 大部分學(xué)生不清楚該如何著手寫一個新的程序,即使寫出了程序,又會出現(xiàn)各種錯誤,無法正確運(yùn)行。 當(dāng)出現(xiàn)錯誤時,又不知道該如何尋找程序中隱藏的錯誤和漏洞,更不知道如何進(jìn)行錯誤調(diào)試,尤其是對接受能力相對較差的學(xué)生。 實(shí)際上,編程過程中調(diào)試程序的能力是非常重要的,特別是在編寫復(fù)雜軟件程序的過程中[2]。
(3)對計算機(jī)編程缺乏興趣。 對“高級語言程序設(shè)計C”這門課的認(rèn)識比較膚淺,對程序設(shè)計初級階段毫無興趣。 因此教師有必要從課程一開始就激發(fā)學(xué)生的學(xué)習(xí)興趣,逐步引導(dǎo)學(xué)生主動學(xué)習(xí),才能在后續(xù)的教學(xué)過程中使學(xué)生的潛能充分發(fā)揮出來。
(4)學(xué)生初學(xué)階段,對程序的編譯環(huán)境不熟悉,需要教師講解并演示源程序創(chuàng)建的過程。 初學(xué)時創(chuàng)建源程序的過程經(jīng)常出問題,學(xué)生會把更多的精力用在創(chuàng)建文件上,而不是程序本身。 通過改革,使學(xué)生簡化創(chuàng)建文件的過程,把重點(diǎn)放在編寫程序上,感受編程的樂趣。
(5)考核方式上也存在與工程教育認(rèn)證中能力體現(xiàn)考核不一致的地方。 傳統(tǒng)試卷中單選、填空等題型通常以知識點(diǎn)為考點(diǎn),而工程教育認(rèn)證中強(qiáng)調(diào)的是能力。 “高級語言程序設(shè)計C”課程中更應(yīng)該注重實(shí)際計算思維和編程能力,要求學(xué)生可以完整編寫一段程序,能夠?qū)?fù)雜工程問題進(jìn)行分析、計算與設(shè)計[3]。
在理論課堂中,將“學(xué)”“練”“記”同步進(jìn)行,增加學(xué)生與教師、學(xué)生與學(xué)生之間的互動,使課堂氣氛活躍起來,提高學(xué)生學(xué)習(xí)“高級語言程序設(shè)計C”的興趣。 因此,在原有教學(xué)資源的基礎(chǔ)上,結(jié)合在線編程平臺及優(yōu)慕課平臺,可以做到隨時隨地編寫程序,這是對課程教學(xué)模式的改革,也是對現(xiàn)有教學(xué)方式的一種橫向擴(kuò)展。
根據(jù)課程標(biāo)準(zhǔn)和課程教學(xué)設(shè)計要求,建立以學(xué)生綜合能力為導(dǎo)向的教學(xué)目標(biāo),教師應(yīng)合理、科學(xué)地組織安排教學(xué)內(nèi)容,準(zhǔn)備教學(xué)資料,包括教學(xué)文件、教學(xué)課件及視頻講解,對重點(diǎn)知識設(shè)計習(xí)題和測試題,整理題庫,按難易程度分為3 個等級,選擇典型習(xí)題和編程題加入到理論課程中,尋找合適的、有趣的、有意義的實(shí)例,穿插到課程中,調(diào)動學(xué)生學(xué)習(xí)的興趣。
在教學(xué)內(nèi)容的選擇上應(yīng)注重理論與實(shí)踐相結(jié)合,教學(xué)內(nèi)容中引入適當(dāng)?shù)膽?yīng)用實(shí)例,增加簡單編程題目的實(shí)時練習(xí)。 教師可根據(jù)教學(xué)內(nèi)容與要求,適當(dāng)選擇與課程內(nèi)容密切相關(guān)、有實(shí)踐性、代表性的應(yīng)用實(shí)例,實(shí)例難易程度的選擇要適應(yīng)學(xué)生的接受能力,教師具體分析應(yīng)用實(shí)例涉及的相關(guān)知識,并進(jìn)行歸納整理,再設(shè)計部分相關(guān)的編程題目進(jìn)行實(shí)時練習(xí),以便于學(xué)生分析、理解和學(xué)習(xí)。
教師在課堂教學(xué)活動中,首先應(yīng)提高學(xué)生對計算機(jī)編程的興趣。 教師準(zhǔn)備好相關(guān)實(shí)例的內(nèi)容,包括實(shí)例涉及的知識點(diǎn)、具體實(shí)現(xiàn)步驟以及理論擴(kuò)展資料等,提前交給學(xué)生預(yù)習(xí),學(xué)生可以提前閱讀、思考、學(xué)習(xí)和理解案例。 在課堂上,學(xué)生使用這些資料進(jìn)行分析,并在教師的指導(dǎo)下找出下一步需要解決的問題,討論解決問題的方案。 教師有針對性地對學(xué)生提出的不同解決方案進(jìn)行評價和總結(jié)。 通過典型實(shí)例,可以激發(fā)學(xué)生學(xué)習(xí)的積極性,幫助學(xué)生理解和掌握相關(guān)的理論知識,培養(yǎng)學(xué)生分析問題與解決問題的邏輯思維能力。對重點(diǎn)知識可以利用在線編程平臺做相應(yīng)的簡單編程題。
教師講解實(shí)例的過程中,同時演示不同編譯環(huán)境中源程序創(chuàng)建的過程。 如果沒有了解編譯環(huán)境,初學(xué)時創(chuàng)建源程序的過程經(jīng)常會出問題。 因此,為了促使學(xué)生把更多的精力放在編寫程序上,而非編譯環(huán)境上,教學(xué)中利用在線編程平臺,使學(xué)生簡化創(chuàng)建文件的過程,把重點(diǎn)放在編寫程序上。 同時,可以及時糾正編程中遇到的錯誤,講解調(diào)試方法,運(yùn)行出正確的結(jié)果,讓學(xué)生感受編程的樂趣。
“高級語言程序設(shè)計C”課程的特點(diǎn)是以詞法、語法結(jié)構(gòu)、語義邏輯為基礎(chǔ),以培養(yǎng)實(shí)踐技能為目的,通過不斷的編程實(shí)踐來鞏固掌握課程的知識。 以在線編程平臺及優(yōu)慕課平臺為依托,教師采用“邊學(xué)邊練”的方式檢驗(yàn)學(xué)生的學(xué)習(xí)情況;學(xué)生也可以通過這種方式鞏固課堂中學(xué)到的知識。 程序設(shè)計類課程更側(cè)重于培養(yǎng)學(xué)生的計算思維方式和實(shí)踐動手能力。 本文提出了兩種教學(xué)方法:由淺入深的案例驅(qū)動教學(xué)方法、錯誤分析與調(diào)試尋求正確結(jié)果的教學(xué)方法。
2.3.1 由淺入深的案例驅(qū)動教學(xué)方法
“高級語言程序設(shè)計C”課程的學(xué)習(xí),應(yīng)當(dāng)以簡單的邏輯題目為引導(dǎo),強(qiáng)化語法知識的記憶;適當(dāng)引入難易適中的、以日常生活或?qū)I(yè)知識為背景的案例,逐步強(qiáng)化邏輯思維的訓(xùn)練;用流程圖作為輔助,引導(dǎo)學(xué)生熟悉將算法轉(zhuǎn)換成代碼的編寫過程。 因此,應(yīng)當(dāng)尋找聯(lián)系實(shí)際、重點(diǎn)突出、知識點(diǎn)明確的案例,既能夠反映本次教學(xué)的內(nèi)容,又要簡單易懂,避免過度復(fù)雜挫傷學(xué)生學(xué)習(xí)的積極性。
2.3.2 錯誤分析與調(diào)試尋求正確結(jié)果的教學(xué)方法
在教學(xué)過程中,利用在線編程平臺給出一些在語法和邏輯上有錯誤的源代碼文件,引導(dǎo)學(xué)生深入思考:“為什么這樣的代碼會出錯? 是否考慮過對邊界數(shù)值的判斷? 各種條件下的邏輯判斷是否完整?”讓學(xué)生自己先調(diào)試語法層次的錯誤,加深對語法知識的記憶,然后再調(diào)試程序中的邏輯錯誤,強(qiáng)化計算思維的訓(xùn)練。之后,教師通過互動的方式,用“提問、分析、引導(dǎo)、講解”的方法加深學(xué)生對問題的印象。 最終達(dá)到“以學(xué)生為主、師生互動”的目的,充分調(diào)動學(xué)生學(xué)習(xí)的積極性和主動性。
這兩種教學(xué)方法相輔相成,案例驅(qū)動教學(xué)過程中,從簡單的邏輯題目的編寫開始,逐步增加語法錯誤的改錯和邏輯錯誤的改錯,用在線編程平臺作為輔助,驗(yàn)證代碼的正確性。
本文針對部分非計算機(jī)專業(yè)開設(shè)的“高級語言程序設(shè)計C”課程,分析了該課程的特點(diǎn)及目前存在的問題,提出基于在線編程平臺,結(jié)合現(xiàn)有的優(yōu)慕課平臺,訓(xùn)練提高學(xué)生的實(shí)踐動手能力。 實(shí)踐表明,邊學(xué)邊練,“學(xué)”“練”“記”相結(jié)合,能夠提高學(xué)生發(fā)現(xiàn)問題、解決問題的能力,能夠激發(fā)學(xué)生學(xué)習(xí)課程的積極性。 同時,考核方式中增加了編程題難度,加大了實(shí)踐動手能力的考核力度,更加注重培養(yǎng)學(xué)生的邏輯思維能力和實(shí)際動手編程能力。 最終的教學(xué)改革都是圍繞以學(xué)生為中心的核心理念,不斷探索新的教學(xué)模式,以進(jìn)一步提高教學(xué)質(zhì)量。