
【摘 要】本文通過對全國軟件專業人才設計大賽的背景和宗旨進行分析,在此基礎上針對C語言程序設計課程的現狀提出了一些改革建議。
【關鍵詞】軟件專業人才設計大賽 C語言程序設計 課程改革
【中圖分類號】G642 【文獻標識碼】A 【文章編號】1674-4810(2013)35-0044-02
一 前言
1.C語言程序設計課程介紹
C語言程序設計課程是一門實踐性很強的學科基礎課,不僅要學習基本理論知識,更要注重上機實踐,通過上機實踐掌握高級語言的特點,理解程序設計的設計思路,鞏固所學的理論知識;是陜西警官職業學院警察技術系司法信息安全專業、計算機應用專業和計算機網絡專業的一般學習領域課程,是學生進入大學所接觸的第一門專業課。同時,這門課程也是數據結構和軟件工程課程的前導課程。共108課時,分別安排在大一兩個學期完成。
2.“藍橋杯”全國軟件專業人才設計與創業大賽的背景和宗旨
為推動軟件開發技術的發展,促進軟件專業技術人才培養,向軟件行業輸送具有創新能力和實踐能力的高端人才,提升高校畢業生的就業競爭力,全面推動行業發展及人才培養進程,工業和信息化部人才交流中心舉辦了三屆“全國軟件專業人才設計與創業大賽”,大賽的舉辦得到了教育部、工業和信息化部有關領導的高度重視,相關司局的大力支持,也得到了各省教育廳和各有關院校的積極響應,更得到了參賽師生的廣泛好評,累計參賽學校超過1000所,參賽規模過萬人次,取得了良好的社會效果。
大賽包括個人賽和團隊賽兩個項目,個人賽設置JAVA軟件開發和C/C++程序設計兩個科目,設置“本科A組”、“本科B組”和“高職高專組”三個組別,團隊賽設置軟件創業賽一個科目組別。大賽的特色是立足行業、結合實際、實戰演練、促進就業;提供了一個政府、企業、協會聯手構筑的人才培養、選拔平臺;以賽促學,競賽內容基于所學專業知識;以個人為單位,現場比拼,公正、公平。
二 競賽指導下的程序設計類課程教學改革情況
在司法信息安全、計算機應用和計算機網絡三個專業的C語言程序設計課程的教學中,在教學方法上我們不斷探索創新,收到了較好的教學效果。
1.以任務驅動方式展開教學
根據高職高專院校“教、學、做”一體化教學改革的思路,重在培養動手能力的程序設計類課程必然成為教學改革的首要對象。而任務驅動教學法,就是在講解具體課程內容之前先給學生提出一個將要解決的實際問題,然后給學生展示解決的結果。這樣學生可以看到一個具體的展示,對他將要學習的知識有一個具體的印象。最后通過展示結果,教師引出將要學習的內容,把每個知識點學習之后可以解決的實際問題一一對應起來。這樣做可以讓學生帶著明確的學習目的去學習,做到有的放矢;還可以讓學生看到自己學完這些內容之后能做什么,提高他們的學習興趣。解決了學生普遍存在的“學了半天語法,還是不知道C語言能干什么”的問題。在教學過程中根據課程進展采用競賽中解決實際問題的案例為原型,經過教師的適當修改作為待解決的項目任務布置給學生,即解決了項目來源缺乏的問題又可以在學生解決問題的過程中發現人才。
2.實踐教學比例逐步增大,理論與實踐比例現已達1∶1
警察技術系2005年首次在司法信息安全專業開設了C語言程序設計課程,教師在教室用傳統的黑板粉筆上課。這種傳統的教學方式導致學生在上課開始反映C語言難懂、難學,學習興趣不濃,學習停留在表面,最后居然出現有學生死記硬背程序才能記住的情況。學生學起來枯燥,極大地打擊了學生的學習積極性,究其原因,這種教學方式突出語法知識的教學而忽視了編程思想的培養。
在對參賽學生進行輔導的過程中我們發現學生能在自己調試程序中發現問題、解決問題,學習效果非常好。因此我們現在采取的方式是直接把程序設計課程設在計算機房中。在機房里能夠保證每個學生一臺計算機。教師在課堂上利用教學軟件廣播教學內容。教師每講解一個知識點一般都會遵循如下模式:
采用這種模式,學生可以在學習了新知識之后立刻運用,進行上機練習,通過做作業實際調試程序發現自己的問題;教師可以在個別輔導的過程中實時發現學生對所學內容的掌握情況,根據這一情況隨時總結調整自己的講解內容和進度。真正做到讓學生學會、會用。同時這一模式還大大激發了學生的學習興趣,看著自己編寫的程序運行出相應的結果給學生帶來的成就感,在很大程度上轉換成學生進一步學習的動力;教師也通過這一模式的互動更快、更真實地了解了學生的學習情況,可以更好地改進自己的教學,真正做到教學相長。在實際操作的過程中教師還可以根據每個學生的完成情況實時調整計劃,給完成情況好的學生增加難度。
3.綜合性的考核方式
期末考試環節,既要全面考查學生是否掌握了程序編程理論、是否具有一定的上機編程能力;又要結合學生平時表現進行考核,再加上警察技術系這三個專業的學生畢業要求與計算機等級二級證掛鉤,因此我們采取了筆試+上機的考試方式。筆試考試考查學生的常識性知識和閱讀程序的能力;上機考試考查學生的程序糾錯能力、閱讀能力以及獨立編程能力。
其次,過程考核也是改革的一項重要考核方式。過程考核是在學完一個階段教學內容后,學生按教師要求完成一個能表達自己已掌握這個階段學習內容的項目,這種方式有效地防止部分學生期末突擊而忽略平時學習過程的弊端。平時作業成績+過程考核+期末考試這種綜合的評定方式,能較客觀地反映一個學生對這門課程的掌握程度。
4.淡化語法規則,注重算法
傳統的程序設計語言教學中,語法規則是講授重點也是難點。學生們就像在學習外語一樣先死記硬背各種語法規則,然后在解決實際問題時套用這些規則。這樣很容易造成學會了語法規則卻不會寫程序的局面。我們現在采取任務驅動法教學,在演示程序的過程中提煉出將要學習的新的算法,在講解算法的過程中講解用到的語法規則,這樣先會用再總結。更符合學生學習新事物的學習規律,先實例后抽象。
5.競賽指導下的程序設計課程教學的深層次改革
警察技術系自2010年起參加了第二、三、四屆共3屆競賽,在競賽中,取得了較好的成績,同時也檢驗了教學效果。參加這樣的競賽,給程序設計類課程的學習帶來了指導性的意義。在授課過程中,教師在講述基本內容之外,側重對涉及競賽基本內容的變量、運算符、選擇、循環、指針、遞歸、數組和標準輸入輸出、讀寫文件、文件屬性等內容的綜合運用與編程。競賽指導下的程序設計課程教學的進一步改革具體有以下幾個方面:
第一,分層教學。傳統的實驗內容是給出固定題目讓學生完成,千篇一律的題目對基礎知識掌握好的學生起不到提高作用,同時又打擊了基礎較薄弱者。結合競賽,任課教師可以將實驗內容分級化,分為基礎題、提高題和選做題。在提高題中適當加入競賽中的邏輯題目,在選做題中加入往年的競賽題目或難度相似的題目。學生可以根據自身情況選擇不同級別的題型和題目數量,有能力者多做,較差生達到基本要求即可。教師則可以根據學生的完成情況來發現人才。
第二,增開綜合型、設計型實驗。在傳統的驗證性實驗的基礎上,依照實驗大綱和競賽要求,增開課程內容相互滲透的綜合型、設計型實驗,使學生在實驗中很自然地將不同模塊的相關內容融會貫通,從而提高他們的綜合應用能力和糾錯能力,也培養了他們獨立設計程序的能力。競賽中所出的大多是實用型、綜合型的題目。
三 結束語
這類競賽能將理論學習和實際應用有機結合,充分調動了學生的學習熱情,開闊了學生的視野,促使學生將被動學習轉變為主動探索。將此類競賽應用到程序設計類課程的實踐教學中,使學生的編程能力和解題思維能力得到了有效訓練,教學效果顯著提高。因此,參加此類競賽,并將競賽的模式運用在程序設計類課程的實踐教學中,改革傳統的實踐教學模式是非常必要的。
參考文獻
[1]胡楓.《C語言程序設計》的案例式教學的設計[J].青海師范大學學報(自然科學版),2010(4)
[2]劉小燕、申艷梅.“C語言程序設計”教學方法探析[J].計算機教育,2010(6)
〔責任編輯:龐遠燕〕