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