孫 霞,張玉生
(常熟理工學院 計算機科學與工程學院,江蘇 常熟 215500)
計算機程序設計課程的主要任務是培養學生掌握、運用一種計算機高級語言進行相關的程序設計和開發,并為以后解決實際問題做好基礎準備。因此,充分發揮實驗教學的作用,培養、提高學生的動手能力和綜合技能顯得尤為重要。但是目前在程序設計的實驗教學過程中還存在著許多問題,導致實驗教學效果不理想。本文對高校非計算機專業程序設計實驗教學的現狀進行了分析和探討,提出了程序設計實驗教學的改革方案。
程序設計課程作為非專業課,學生不清楚、也不了解學習了本課程后能夠解決哪些專業領域方面的問題,認為本課程在以后的專業學習和工作中沒有實際的應用價值。同時由于實驗課時安排時間較少,因此學生大都是把程序設計課程當做一門公共基礎課來學習,對課程的重視度不夠,認為學習本課程只是為了應付期末考試,在學習時還是死記硬背,對程序設計的一些基本編程知識和應用掌握的不深入;在實驗環節中,實際動手能力較差,進行程序設計的邏輯思維能力較差。另外,大部分學生的課余時間都用在了專業課程的學習上,而分配在程序設計課程上的學習時間很少,更不會花時間進行上機操作,導致學習效果不理想。
在程序設計課程的實驗教學環節中,教師在選取實驗內容時沒有充分考慮全班學生的基礎差異和學生在程序設計能力方面的差異,實驗課上通常布置相同的實驗內容要求全班同學完成[1]。對于基礎好、動手能力較強的學生,能夠在較短的時間內完成,從而會認為實驗內容較簡單,體會不到分析問題、解決問題的樂趣,感覺課程沒有挑戰性,因此學習本課程的積極性會有所降低。而對于基礎稍差的學生,要求他們在規定的時間內獨立完成實驗則會有一定的困難,遇到的問題不能得到及時的解決,長此以往也會打擊學生學習的積極性。
目前,大部分教師在進行程序設計實驗的教學時,都是首先布置實驗內容,講述實驗目的、重點與難點,然后要求學生按照給定的內容進行操作。這樣的實驗教學方式存在很多弊端[2]。一方面,隨著招生規模的不斷擴大,高校學生的數量逐年增加,再加上機房資源的局限性,存在著多個班級、不同課程同時上課的現象,因此上機時學生人數過多,教師在講述一些注意事項時,學生的注意力不集中,導致在實驗時又會出現教師提醒過的各種錯誤。由于班級人數多,教師也無法詳細了解每個學生的操作情況,不能全面掌握全班學生的實際編程能力。另一方面,實驗教學的內容大多是驗證性實驗,而開放性、綜合性實驗較少[3],在這種教學模式下,學生根據實驗內容進行統一、機械地操作,長期下去將會導致學生思維呆板,表現在做程序設計題目時不會舉一反三。如果對于實驗指導書上的題目進行修改,在題目稍有變化的時候學生就不能獨立的編程實現。這樣的教學模式無助于培養學生的創造性思維能力。第三,學生習慣了按照教師布置的實驗內容進行操作,勢必造成對教師的依賴性和學習的枯燥性,一旦教師沒有布置實驗內容,他們將無所適從,不知道上機要做些什么。
對于非計算機專業的學生來說,學習程序設計課程的主要目的是能夠將其應用于專業領域。因此教師在教學中應向學生講述學習本課程可以解決專業領域中的什么問題,并講授一些學科現狀,激發學生主動學習自己感興趣的東西。另外教師在設計實驗教學內容前,還要結合專業方向對實驗大綱和培養目標進行仔細的分析研究,精心設計實驗項目,除了驗證性實驗外,教師還應安排一些設計性實驗,在一定條件下加入能夠解決具體專業問題的實驗內容[4]。
例如化學學院的學生在學習VB程序設計課程時,教師可以設計一個實例,讓學生編寫VB程序來計算酸堿中和反應的PH值,并顯示在該PH值條件下各酸堿指示劑的顏色。該實驗一方面需要用到化學專業知識,另一方面需要在VB中設計界面,并且使用VB中的一些控件及其相應的屬性、方法和事件將結果顯示出來。在程序設計好后,學生只需要輸入酸、堿各項數據,就能很方便地得到中和反應后的PH值,大大減輕了計算量,并且能夠直觀地查看在一定PH條件下各酸堿指示劑的顏色。學生在完成此實驗的過程中可以掌握知識、方法,提高技能,并且能夠清楚的認識到使用程序設計工具在專業學習中的實際應用價值。
教師在進行實驗教學時,針對學生的基礎差異及實際動手能力的差異,設計出不同難度的實驗內容,使學生根據自身的情況選擇相應的題目。例如對于VB程序設計中的“循環控制結構”知識點,可以設計三級難度的題目:基本題目(如九九乘法表、水仙花數)、提高題目(如兔子產子、猴子吃桃問題)、挑戰題目(如角谷猜想、哥德巴赫猜想),這些難度不同的題目能夠解決一些實際問題,又有一定的趣味性和挑戰性。基礎較差的學生要求完成基本題目,并鼓勵做一些提高題目,基礎較好的學生可以鼓勵他們完成提高題目以及難度比較高的挑戰題目。這樣可以提高學生的動手操作能力,挖掘學生學習的潛能,全面提升學生的綜合能力與素質。
在每次實驗課結束前,教師還需要對本次實驗過程中所出現的情況進行總結,總結學生在編程中遇到的問題、分析問題產生的原因,并指出解決問題的方法,以便使學生掌握正確的編程方法。另外教師可以將優秀學生的程序展示給全班同學,也可以讓優秀學生對自己的編程思路及方法進行講解分析,這樣可以讓全班同學都學習到不同的編程方法,有利于改善實驗中學習的枯燥與依賴心理,充分調動學生學習的積極性和主動性。教師在每次實驗教學結束后還需要對實驗的整個過程進行反思,反思本次實驗教學的成功與不足之處,提出需要進行改進的地方,并且根據反思結果修改實驗大綱、實驗目的和實驗內容,以便更好地進行實驗教學。
綜合性實驗是涉及程序設計課程的綜合知識實驗,是在學生掌握了程序設計課程的理論知識且具備一定實驗技能的基礎上開出的綜合性實驗環節。綜合性實驗能夠充分培養學生的分析問題、解決問題的能力,能夠考察學生對本門課程前后知識的融會貫通能力,還可以充分提高學生的動手能力,極大地帶動學生學習的積極性。另外,出于激發學生興趣的需要,可以在課程結束后安排一些結合實際的課程設計題目,讓學生分成小組選做,以加深和鞏固學生對已完成的程序設計課程的掌握,培養學生解決實際問題的能力。
例如對于化學學院的學生,可以設計一個關于化學實驗室信息管理系統的課程設計題目。指導教師可以先引導學生進行實地考察,然后由小組成員進行討論、分析,整理歸納出實現該課題所需要的功能,如系統要求能夠對用戶(管理員教師、普通教師和學生用戶)、化學儀器設備、化學藥品等信息進行管理,并且能夠提供一個供用戶和管理員進行溝通交流的平臺。然后由小組長根據上述功能進行任務分配,將具體的功能模塊分配給相應的小組成員。接下來,各成員對自己的功能模塊進行深入分析,采用VB程序設計課程中的相關控件進行界面設計,編寫代碼,實現相應的功能。
以化學儀器設備管理模塊的實現為例,首先需要建立儀器設備的檔案庫,然后要提供設備的各種信息的多元化分類查詢,并提供各種儀器設備詳細的操作使用手冊和相關儀器的實驗結果數據庫,以幫助用戶正確的使用儀器,并能準確的對實驗結果進行分析。本模塊需要用到VB中的數據庫來保存數據信息,使用SQL語句進行信息查詢,這就要求學生熟悉VB中的數據庫控件及其屬性、方法和事件的使用,才能正確編制出程序以實現功能。
對于這樣與專業相關的綜合性課程設計題目,學生在實現的過程中深入了解了程序設計工具在專業學習中的實際應用價值,加深了對程序設計課程的鞏固和掌握,提高了學生解決實際問題的能力,激發了學生的創造力,鍛煉了團隊的配合能力。
教師在進行實驗教學的過程中,可以通過如“極域電子教室”等軟件加強對學生實驗的管理和監控,讓學生不能做與教學無關的事情。通過在學生機和教師機上安裝這樣的“電子教室”管理軟件,使用多媒體的廣播教學、監控、搖控輔導等功能,教師能夠直接遠程監看學生機上的具體操作,查看學生當前的學習狀態。教師在進行屏幕監看時,如果發現有學生在做與實驗無關的操作,則可以發出警告或強制結束程序。另外,該軟件還可以設置關閉網絡等功能,從而能夠有效的避免學生上網、玩游戲、聊天等行為。
實驗教學考核是教學體系中的重要環節,以往的考核是以理論考核為主,忽略了實驗考核的環節,這樣會造成學生輕視實驗的思想,因此在實驗考核方式上也需要進行改革。實驗考核可以采用“平時成績+階段測試+期末機試”的模式來進行。平時成績是學生每次實驗課完成的作業,教師可以設計一個電子報告的模板,設置一些如學習疑問、心得體會等問題,每次實驗課學生在完成實驗內容后需提交程序和電子報告,教師能夠有效的檢查學生的學習程度和作業的真實性,并能夠及時將結果反饋給學生。階段測試考查學生階段性的學習成果,可以反映學生相關知識點的掌握程度和靈活應用能力。期末上機考試可以設計幾套不同的程序設計題目,按照一定的規則讓學生選題,然后根據學生的操作過程和操作結果進行評分。同時加大實驗考核在整個程序設計課程考核中所占的比例,如可以設置理論占60%,實驗占40%,這種考核方法能夠增強學生對實踐操作重要性的認識,反映學生課程的真實成績。另外,還可以鼓勵學生參加非計算機專業的等級考試。如江蘇省大部分高校要求理工科的學生參加省計算機二級考試,考試通過的學生由江蘇省發二級考試證書。這樣可以從另一方面全面檢測學生的實際學習效果,激發學生學習的興趣。
程序設計實驗教學在培養學生分析問題、解決問題的能力和培養學生創造性思維方面起著非常重要的作用。本文針對VB程序設計實驗教學過程中存在的實驗教學內容安排不合理、實驗教學資源不足、學生自我約束能力差等問題,提出了分層次設計實驗內容、引入綜合性實驗、改善實驗環境、改革實驗考核方法等具體改革措施。近幾年的教學實踐表明,這些改革措施有助于增強學生的學習興趣,強化學生的實際應用能力,有效提高了實驗教學的質量。
[1]丁美榮.基于綜合設計性實驗項目的計算機網絡實踐教學[J].實驗室研究與探索,2009,28(3):118-130.
[2]張俊玲,劉鴻波.非計算機專業計算機基礎課程教學改革探索[J].實驗室研究與探索,2009,28(11):126—128.
[3]王勇,宋萬年.改進綜合性、設計性實驗考核辦法,提高學生實驗能力[J].實驗技術與管理,2006,23(4):106-107.
[4]楊樹元.基于“任務驅動”的計算機實驗教學模式探討[J].河北師范大學學報(教育科學版),2008,10(10):138-140.