蘇 暢,郭樹強,姜萬昌,劉 迪
(東北電力大學 計算機學院,吉林 吉林 132012)
要建成一個創新型國家,要實現創新型國家的目標必然要加強創新型技術人才的培養,而學生創新能力和實踐能力的缺乏也是高等教育教學改革面臨的問題。在高等教育的改革措施中已提出:“探索發現和培養創新人才的途徑,支持學生參與科學研究,強化實踐教學環節。”而加強實踐教學,引導學生主動實踐是創新能力培養的關鍵,創新的根本在實踐。近年來,每年都有數以萬計的本科畢業生走向社會和工作崗位,但是往往表現出不能盡快適應工作環境、實踐能力較弱的問題。因此,如何在新形勢下針對存在的問題,加強學生的創新和實踐能力,探索一種基于創新能力培養的實踐教學改革方式,成為保證人才培養質量的關鍵。
C語言程序設計課程是大多數高校學生的必修課,該課程主要培養學生應用計算機技術來解決實際問題的能力。與傳統課程的重理論性相比,C語言程序設計課程具有極強的實踐性,要求學生既要掌握理論知識,又要掌握操作技能,并能在實際中熟練應用。在研讀大量相關資料[1-6]以及對多年實踐教學進行分析思考總結后,探索研究基于創新能力培養的C語言程序設計教學改革,將理論與實踐密切聯系,提高教學效果,培養學生的創新實踐能力。
通過課前對學生進行問卷調查和課上對學生聽課狀態的觀察及學習效果的詢問,以及課下與課題組老師交流,發現學生程序設計語言基礎不同,參差不齊。所有學生的語言基礎分為以下幾種情況:很小一部分學生在進入大學之前就接觸和學習過程序設計語言并獨自研究和編寫過程序;個別學生大學入學后在學習本門課程之前就自學了程序設計語言,有了一定的程序設計基礎;而大部分學生沒有任何程序設計語言基礎。前兩種學生上課時能跟住老師授課節奏,上課期間師生交流好,課下也能及時和老師溝通,學習效果很好。毫無基礎的學生也分為兩類,一類學生課前能按計劃提前預習和課后復習課程內容,課上就能跟住老師教授的學習內容,另一類學生課前不預習課后不復習,課上就需要緊跟老師授課進度,部分學生表現出很吃力的狀態。
雖然現在教學是以學生為主體,但還是以老師為中心。大部分教師課上期間仍然占據課堂的主體位置,課上的大多數時間還是用在講授理論知識上,實踐操作時間少,還是把關注點放在學生理論知識的掌握上,學生實踐能力的培養被忽視,導致學生由主體變為客體,只能被動接受知識,主動學習的動力被消磨,師生之間的交流互動少,課堂氣氛不活躍,學生學習積極性不高,學習的興趣受到嚴重影響。
教師授課過程中,大多數使用多媒體和板書結合,多媒體為主,板書為輔,但板書很少,多媒體上以文字為主,內容量大,圖片動畫少,枯燥乏味,很難激發學生學習的興趣。課上,老師基本是灌輸知識,知識點對應的案例少,實際操作演示少,老師中很少有通過項目或任務等方式將整門課程知識貫穿起來的,不同的知識點之間處于相互獨立狀態,學生自己很難建立知識之間的聯系。教師上課時很少根據不同的知識設置疑問或設置啟發性的問題,沒有很好地引導學生去發現問題、思考問題、研究問題,進而解決問題,調動不起來學生學習的積極性,最終導致學生課上參與度低,聽課情緒低落,有些學生存在的問題多,自己還不知道從哪個問題問起,導致跟不上授課進度,課上就玩手機或睡覺,學習狀態極差,最后成績非常不好。
針對以上教學中存在的主要問題,基于對學生創新能力的培養,從理論教學、實踐教學及課程考核方式等方面進行探索和研究,對課程進行教學改革。
合理科學的理論教學能激發學生學習的興趣,提高學生學習的主動性,極大地提高教學的質量。
1.合理安排理論教學內容
授課教師應該根據學生的實際知識基礎合理安排組織教學。課前,教師就把語法知識點布置給學生,讓學生在課外進行學習;對于自學就能會的淺顯易懂的知識點,老師課上就用簡潔概括性的語言講解總結概括。對于重難點難懂的知識,老師盡量化難為易,首先統一講解重難點知識及學生普遍存在的問題,通過通俗易懂的實際例子把知識講解明白,然后分配綜合設計性的實踐項目,讓學生小組討論協作開發,針對學生討論及開發過程中出現的問題,一步步引導學生創新解題思路。例如:讓學生在線學習如何定義、初始化數組,以及如何引用數組元素等,課上教學過程中,重點講解數組語法規則中的注意事項并傳授編程方法及技巧,組織學生通過小組團體協作,設計、編寫并實現一種排序算法,讓學生在實踐操作中不斷地鞏固基礎知識和語法,老師一步步引導學生尋求多種不同的解決方案,逐步培養學生分析問題、解決問題的能力。
2.寓教于樂
目前,很多高校中,學生都存在不同程度的缺勤或課上睡覺、玩手機,原因不同,重要的一點就是學生把學習當成任務,甚至是負擔,從學習中找不到快樂,學習積極性和主動性都不高,對學習沒有興趣[7]。面對沒有生氣的課堂,老師教的不快樂,也只是完成任務似的完成教學。想要讓學生學得好,必須要激發學生學習的興趣,讓學生在快樂中學,不是把學習當成任務,而是享受。這就要求教師在教學過程中調動學生學習的積極性,積極與學生交流互動。課堂氣氛活躍了,學生學習興趣激發出來了,學生學的快樂了,老師教的也快樂了,教學效果事半功倍。
3.混合式教學方法
(1)問題教學法
教學過程中,如果只是教師一直在講,學生就會逐漸失去學習興趣及學習的主動性。所以,教師應該根據教學計劃及學生所掌握的知識,把每個知識分解為幾個涵蓋本知識點的小的問題[8],讓學生來分析,研究,解決,給出詳細的方案,教師根據學生完成情況進行表揚及肯定。這樣的教學方法,可以帶動學生,讓他們能積極主動地參與到學習中,對知識的掌握理解有極大的好處。
(2)案例教學法
在實際教學過程中,教師依據要講授的知識點,設置對應案例,通過案例將不同的知識點與實際應用相結合的方式將知識傳授給學生。例如:在學習二維數組時,教師可設置一個案例,求每行數組元素的平均值,就可以聯系實際去解決這個問題,這個問題類似于要求不同班級一門課程各自的平均分,思考怎么利用現在所學的二維數組的知識去解決,解決問題的思路清晰后,就可以用程序語句編寫出來,然后上機運行調試,引導學生使用不同的方法解決,再思考如何按列求均值,逐步引導學生的創新意識及培養學生的創新能力。案例教學法使用得當,可以實現事半功倍的效果,學生邊學習邊將理論知識與實際相結合,既能促進學生對理論知識的理解和掌握,又能培養學生發現問題、分析問題和解決問題的能力,從而培養了學生的創新思維和創造能力。
(3)啟發式教學法
教師在培養學生創新思維的過程中,通過對知識點進行拓展,培養學生解決問題的能力,學生在遇到問題時,很自然地就會對問題進行分析,考慮解決方法,使學生掌握理論知識的同時,又掌握了程序設計的思維和方法。在教學時,利用知識之間的聯系設置深淺難易不同的,具有啟發性的問題,讓學生通過分析,研究,解決;或者教師可以在操作演示時設置不同類型的錯誤,啟發學生發現問題,進而去分析解決;或給出一個題目,通過對題目的分析,引領學生逐步獨立完成,在學生解決問題的過程中,教師根據學生進度提出不同的啟發性問題,對學生提出的問題進行有針對性的分析指導。通過師生之間對問題的交流分析研究,既能培養學生發現分析解決問題的能力,又能激發學生學習的興趣,同時還能培養學生學習的主動性和創造性,以及創新能力。
在實踐教學的講授環節[9],學生占據課堂的主體地位,教師占主導地位。教師在講授知識的時候,不是“授人以魚”,而是注重“授人以漁”。教師重點講授知識中的重難點內容,在講解知識的過程中,傳授學生發現問題、分析問題和解決問題的能力,教授學生程序設計的思維和方法,最終實現培養學生獨立的創新思維和創造性的能力。
每次實踐教學的實踐環節[10]分三個階段完成,第一階段學生按照老師提供的實驗案例進行實際上機編程;第二階段老師根據本次實驗課知識要求提出新的問題,學生根據老師提出的問題,對問題進行分析、理解和解決,本階段培養學生問題分析、算法分析及獨立編寫程序的能力;第三階段學生登錄考試系統進行知識測試,本階段學生根據系統題目及已給部分程序段將程序進行完善,從而解決問題。通過本階段的實踐,既覆蓋了所有的理論知識點,又培養了學生的創造性和創新思維。每次實踐教學都是對學生理論知識的理解和掌握的檢驗。通過實踐環節,學生的算法分析能力、創新的程序設計思維和程序設計能力都得到了極大的提高。
經過對課程的探索與研究,本課程采用過程化的考核方式,期末總成績由課程實驗成績、上機考試成績和期末筆試成績三部分組成。
課程實驗和上機考試環節重點考核學生理論知識與實際操作的結合。教師通過對課程實驗和上機考試中不同問題的理解、分析、研究、算法設計及程序編寫實現等過程的引導,充分調動了學生學習的興趣及積極性,學生能研究出不同的算法及各種簡潔高效的程序,在整個過程中很好地培養了學生的創新能力。期末筆試環節重點考核學生對課程基礎理論知識的理解和掌握程度,以及學以致用的能力。學生通過解決一個個新的問題,既加強了學生對理論知識的掌握,又培養了學生解決問題的能力及創新能力。
通過對課程考核方式進行改革,學生學習的興趣被激發起來,學習的主動性得到了提高,學生的理論知識掌握得更好,程序設計能力及創新能力得到了很好的鍛煉和培養。
C語言程序設計課程建設經過本次教學改革取得了明顯成效,學生的學習興趣得到極大激發,學生的學習效果、學習的主動性、程序設計能力、綜合實踐能力、創新思維和創造性都得到了明顯的提高。學生參與ACM、挑戰杯及全國大學生電子設計競賽等各種競賽的人數和獲獎項數顯著增多,獲獎等級明顯上升。參賽人數由原來的幾人增加到現在的幾十人,獲獎項數由原來的幾項到現在的幾十項,獲獎等級原來最高省級一等獎,現在最高國家一等獎。在近兩年的全國計算機等級考試中,學生的過級率也明顯提高。隨著科技的迅猛發展,每個人只有不斷提高計算機技能,才能跟上時代發展的步伐。因此,對程序設計類課程教學改革的探索與研究,還需持續進行下去。