摘要:程序設計類課程是實踐性非常強一系列課程,本文針對本校程序設計類課程實驗教學改革實踐中的教學內容、教學方法、教學手段等方面進行了探討。實踐表明通過這些方面的改革培養了學生獨立分析問題、解決問題的能力和創新意識,不僅符合計算機學科發展的要求,同時也適應了社會和產業的人才需求。
關鍵詞:程序設計;實驗教學;協作式教學
中圖分類號:G642 文獻標識碼:B
程序設計是計算機專業學生必須掌握的專業技能,我校對該類課程的教學十分重視,學生的學習興趣也都很高,但教學效果普遍不太理想。我們結合近年來從事實踐教學的經驗,就計算機程序設計類課程的實驗教學模式的改革做了以下探討。
1注重教學內容的系統性與科學性
程序設計類課程之間的內容具有一定的連貫性,如目前大多數的院校先在一年級開設C或C++,接下來就是基于C或C++的數據結構和面向對象程序設計,因此我們一定要合理、科學地安排這些課程的實驗教學內容。如在C語言課程中除了講授基本的程序設計的語法使用、程序設計的思想之外,還必須花一定的時間講解結構和鏈表,以及逐步灌輸面向對象一些思想,為后繼C++和數據結構等課程打好基礎,注意內容的系統性,避免重復[1,2]。
注意教學內容的不斷更新。計算機技術的發展非常迅速,我們應該根據學科發展、經濟發展及市場人才的需求來及時地更新教學內容。我院從最初的“Pascal語言程序設計”、“C語言程序設計”到后來采用以C++語言為主要編程語言。如在程序設計基礎課程中以C++作為基礎語言,在“數據結構”課程中以C++語言代替C語言,在數據庫課程中以Visual C++作為前臺開發的實驗環境。近年來根據社會對計算機專業人才的需求以及程序設計發展的趨勢,目前我院計劃計算機專業學生以Java作為基礎語言課程(軟件專業繼續開設C++語言課程),并增開基于.net的相關課程。
2實驗教學和理論教學有機結合
將實驗教學與課堂講授有機結合起來,進行恰當銜接,可以提高學習效率。首先,教師必須充分準備好實驗的內容,及時解決學生實驗過程中遇到的問題,同時采納學生提出的合理化意見并及時改進。其次,在每周一次的教研活動時,同門課程的教師可集體備課,研究教材與實驗教學的方法,討論學生的學習情況,交流心得,研究考
試及評分方法。
理論課教師需兼上實驗課,這樣可以了解學生的實驗課情況,并經常把學生出錯的問題和難理解的問題通過課堂再次講解,同時應與本課程的其他實驗課教師溝通交流,便于課堂教學的改進,把理論課與實驗課統一組織、計劃,避免理論課與實驗課脫節。
3注重基本技能的訓練,培養學生分析解決問題的能力
(1) 基本技能的訓練
程序設計類課程是實踐性非常強的課程,通過基本語法知識、基本算法的學習,最后形成一系列的基本技能,包括語法知識的靈活運用、上機調試技巧、編寫代碼等。因此在實驗教學中應有意識地進行這些方面的訓練,比如帶領學生讀一些經典的程序,分析經典的算法并進行模仿,上機調試程序并對運行結果進行評析,對已有程序進行修改實現新的功能。通過以上訓練,學生既復習了基本的語法知識,又獲得了一定的技巧。
實驗教學是教師和學生的共同活動。但是目前一些學生基礎比較薄,動手能力和獨立工作能力相對也較差,加上或多或少的惰性,因此依賴教師的情況比較嚴重。為此我們在實驗教學中開展了協作式教學方法,增加了學生與教師的互動,培養學生分析解決問題的能力,收到了良好的教學效果。
(2) 開展協作式教學法
學生成立學習小組,每組4~5人,在每次實驗課和課余時間,每個小組對教師事先布置的內容進行討論,并且將討論內容進行總結。下次實驗課上教師要留出一點時間讓每組總結討論結果,必要時教師做簡單的總結。教師發現好的設計思路和想法時,應鼓勵各小組之間相互學習、相互討論、集思廣益,發揮大家的創造力去將這些好的想法加以實現。充分利用開放的交互網絡實現資源共享,如網上答疑、網上聊天、BBS、討論區,同學們可就學習中遇到的問題展開討論,任課教師可定期為同學們解答。同時在有限的設備條件下,學校應盡量提供更好的實踐環境和實踐機會,盡可能地開放實驗室,鼓勵學生獨立工作,培養獨立思考的能力和創新精神[3]。
4考試和評分方法的改革
根據計算機程序設計課程實踐性強的特點,我們在考核中提高了平時實踐和討論的成績比例,占到50%甚至更高。平時實踐中增加單元考核的內容,并將每次考核的分數按相應比例記入總評分。另外由于開展了討論教學,因此教師根據學生的情況和小組的考評情況將每次討論成績按比例記入總評。在期末的實驗考試中,利用開發的實驗教學平臺進行上機考試,學生隨機從試題庫中抽取試題(與平時訓練的題目類似),然后由系統自動評判。這樣即節省了老師批改試題的時間,而且可以減少相互抄襲現象。由于考試題目與平時訓練的題目類似,可以促使學生在平時實驗中獨立分析問題,解答問題。
在每學期末,我們用2周的時間開設課程設計,讓學生結合自己的專業或興趣進行選題,然后自編程序上機調試,完成一個大作業或一個相對完整的系統。通過這一過程可讓學生了解并熟悉整個系統的開發過程與操作的步驟。我們認為,通過考試和評分方法的改革能更好地考查學生應用計算機的水平,更好地培養學生把學到的計算機基礎知識和基本能力應用到專業實際問題的處理上。
5小結
這幾年的教學實踐表明,上面介紹的一些整合思路是行之有效的,激發了學生程序設計的興趣,開發了學生的潛能,提高了學生的編程能力和解決實際問題的能力。這幾年我們在大學生ACM競賽、省市級的程序設計大賽中取得了優異的成績,有大批的學生通過了國家級程序員、高級程序員資格證書。計算機知識和技術更新非常快,對于培養這類人才的專業課程,特別是程序設計類課程,必須及時更新教學理念,科學進行課程設置,合理安排教學計劃,運用網絡化教學手段,在教學內容、教學方法和考核方式上進行一系列的更新與整合,以適應新形勢下人才培養的需要。
參考文獻:
[1] 張敏霞. 程序設計語言課程教學方法改革的探索與實踐[J]. 中國高教研究,2004,(2):90.
[2] 張基溫. 計算機課程體系整合暢想[J]. 計算機教育,2004,(8):59.
[3] 孫宇清,馬軍. 在高級程序設計語言教學中對學生創新能力與合作精神的培養[J]. 高等理科教育,2000,(3):54-56.