李龍淼
(海南工商職業學院信息工程系,海南???570203)
《C語言程序設計》教學改革實踐與探索
李龍淼
(海南工商職業學院信息工程系,海南???570203)
《C語言程序設計》是目前各高校信息工程類專業普遍開設的一門課程,它具有內容多、理論與實踐結合緊密的特點,是一門難教且難學的基礎課程。通過教學現狀和學情分析,從教學模式、教學方法、教學手段等方面進行了改革實踐,在教學實施過程中收到了良好效果,為C語言教學改革提供了有益經驗。
C語言;教學改革;教學模式;教學手段
《C語言程序設計》課程是目前各高校信息工程類專業普遍開設的一門課程,是學生進校后接觸的第一門程序設計編程課。該課程的特點是概念抽象復雜,語句多、規則多,運行容易出錯,是教師感到難教、學生感到難學的一門課程。
(一)入門難 C語言是一種結構化語言,有9種控制語句、34個運算符,數據類型多樣;C語言中的指針、數組、地址傳遞、參數值傳遞、變量作用域等概念,既抽象又繁雜,不易理解,初學者尤其是剛剛進入大學的高職學生,學起來感到費勁,因此產生不同程度的畏難情緒。
(二)學生學習興趣不大《C語言程序設計》這門課,概念抽象,語法繁多,又要動手編程,還要上機調試運行;學習方式和思維方式須有較大改變,如果采用以往“老師講、學生聽”的教學方法,學生普遍感到難學,不知道學習方法,更沒有學習興趣,因此相當一部分學生放棄了這門課的學習。
(三)注重理論知識學習 不適合高職高專教學。以往《C語言程序設計》教學注重傳授陳述性知識,按照“提出概念-解釋概念-舉例說明”模式進行教學,這是一種側重理論知識的學習方法,不適合高職高專教學;高職高專的學生也不善于學習抽象理論,致使《C語言程序設計》課程結束時,學生僅了解幾個C語言語句,并不具備用C語言編寫程序和設計程序的能力。
綜上,《C語言程序設計》課程改革勢在必行。近年來我們對這門課程的教學不斷進行改革,做了一些工作。
(一)明確課程改革目標,制定課程改革方案。
在調查研究基礎上,經過分析論證,并學習其他高校相關課程改革經驗,總結以往教改成果,我們首先明確課程改革目標,制定了可行的課程改革方案。
《C語言程序設計》課程要求學生掌握結構化程序設計方法和步驟,具有閱讀和編寫一般應用程序能力,具有完成上機調試、運行程序能力,為Windows環境下各種軟件的開發使用奠定基礎。為此,必須按照建構主義教學理念,以學生為主體、教師為導向,利用現代化教學手段,改革《C語言程序設計》課程教學模式;同時以就業為導向,以職業培訓為標準,制定合理的教學大綱和教學計劃,形成一套科學的課程教學體系。近年來在教學模式、教學方法、教學手段等方面的改革,使C語言課程教學效果顯著提高。
(二)教學模式和方法的改革
1.教學模式改革以程序設計為主線,編程案例為驅動
高職高專培養的是高素質技能型專門人才,注重應用方法和操作技能培養,側重于應用學習。高職學生學習過程遵循從實際到理論,從具體到一般,邊做邊學,把抽象理論融入到實踐中加以理解,更符合高職學生“從特殊到一般”的認知規律。因此在C語言教學中,我們貫穿了以程序設計為主線,編程案例為驅動,“教、學、做”一體化教學模式。我們選用了高職高專計算機任務驅動模式教材《C語言程序設計實用教程》(清華大學出版社出版)。本書以案例驅動為核心、程序設計為主線、技能培養為目標,圍繞開發案例項目對用到的知識點進行講解。全書以完成“學生成績管理系統”為主線,設立了8個案例項目,具體包括:學生成績總分與平均分計算、輸入學生成績轉化為等級、學生成績分組匯總、多個學生成績的排序、根據條件進行成績匯總、用指針優化學生成績排名、學生成績單制作、學生成績文件管理。
這8個案例項目按照先易后難、先單一后全面原則,把C語言所包含的知識點融入到程序設計中,把枯燥的概念融入到實際案例項目中,以案例項目帶動知識點學習。每次課堂教學都以編程案例為驅動。首先提出問題,教師重點進行案例分析,講解編寫程序的思想和方法,確定編寫程序方案;然后引導學生討論學習,并按照方案具體編寫程序;最后指導學生上機調試、正確運行程序,上機調試中出現的問題,由教師統一進行講解。進行案例分析時,教師不需要告訴學生答案,只講解要點和解決問題的方法,讓學生去討論制定具體編程,并在計算機上實施與驗證。教師每一次授課的案例項目教學內容、編程實例、教學方法都要經過精心設計、認真分析和研討,力爭推理明確清晰,概念準確,重點突出,難點分散,有助于學生對知識的消化理解,并能啟發學生思維。這就是“教、學、做”一體化教學。
在以程序設計為主線,編程案例為驅動的主導思想下,我們編寫了C語言案例教學大綱和實驗指導書、C語言案例教學多媒體電子課件和教案,將教學方式由以教師為中心轉變為以學生為中心,實行講課與課堂討論及學生自學思考相結合的雙向教學,注重師生間互動,引導學生積極思考,激發學生學習積極性和主動性。
在案例教學中,案例往往包含幾個任務。例如,案例一要求錄入學生成績和計算成績平均分與總分。案例中把它分成兩個任務,任務1是學生成績的輸入和輸出;任務2是總分及平均分計算。在任務中融入相關知識點,學生通過具體編程,加深對概念的理解、對語句的運用,在對各知識點融會貫通基礎上,掌握編寫程序和上機調試能力。課程初期,往往進行案例小程序編程練習,重在了解數據類型、語句和程序結構。這些小程序又為今后編寫大案例的綜合程序做準備。在進行數組、函數、指針、編譯預處理教學,進行綜合實訓項目編程設計時,只需把前面小案例的程序鏈接起來進行綜合調測即可完成大案例編程任務。
案例教學法注重對學生程序設計思想和方法的培養,注重對學生將實際問題轉化為C語言程序能力的訓練。例如循環語句是C語言教學中的重點,把這一知識點設計為一個具體案例項目中的任務:1+2+3….+100=?提出任務后,教師引導學生一步步用循環語句解決問題,編出程序;再近一步討論數學家高斯是怎樣解決這一個問題,而計算機這個“大腦”又是如何用“C語言”寫出“循環語句”去解決問題的,從中體會計算機編程的思想和思路,找出今后編寫程序的過程;最后得出編寫程序的過程是:用計算機的大腦分析問題,找出解決問題的步驟,寫出流程圖,再翻譯成C語言程序,編寫出程序。經過多次編程項目實際練習,逐步培養學生程序設計思想和方法。當遇到一個實際編程項目后,學生首先在頭腦中形成相應的程序結構;在明確了程序的基本框架后,具體的編程語句就容易解決了。
2.注重程序設計實踐能力的培養
C語言功能強大,應用廣泛,實踐性極強。因此,C語言教學需要特別重視實驗實踐教學環節。作為編程的入門課程,要求學生具備編寫一般簡單程序、正確上機運行程序和閱讀簡單程序的能力。為使學生具備實際編程能力和熟練的上機操作技能,我們根據教育部指示精神,改革實驗教學內容,加強實踐教學環節,增加實驗、實踐、實訓時間和內容,減少演示性、驗證性實驗,增加設計性綜合性實驗。同時把實驗教學分成課堂實驗、綜合實訓和課程設計三類。課堂實驗與課堂講授同時進行,每次課堂教學后都安排集中上機練習,使學生理解、當場消化本次課堂教學內容;綜合實訓是每上完一章理論課,隨之有相配套的上機綜合實訓,是本章內容或多個知識點的綜合應用,學生需要提交實訓報告;課程設計在本課程結束后進行,學生要針對具體適用項目進行編程,學會利用C語言解決一般應用問題。
在課堂教學中,首先以講清概念、強化應用為重點,理論教學以應用為目的,因此每次課都采取了1:1時間分配的理論教學與實踐練習,做到學、思、練相結合,通過項目或任務實踐,增強學生編程能力。在實踐中我們的指導思想是,讓學生在練習中學習,多練習、多實踐,即使暫時沒有理解概念,也能夠做出練習。先讓學生會做,然后讓學生學懂,即使學生不懂,也要完成練習或作業。各知識點讓學生在練習中理解,在實踐中掌握。因此我們重點強調上機實踐這一教學環節,如果課堂上機練習時間不充裕,課下一定要保證上機操作時間。
在課堂實驗初始階段,教師帶領學生進行操作,邊操作邊講解,并注意對基礎薄弱的學生給予輔導,不能落下一個學生。在其后的典型案例和綜合案例學習時,教師講解分析要點之后,組織學生討論練習,三人一組,在討論中解決具體問題,其中一個學生寫程序,一個寫出算法實現代碼,另一個在計算機上敲出代碼并且試運行,三人共同協商完成任務。學生在相互協商、相互討論中,既培養了團隊精神,也提高了解決問題能力。
在動手能力方面,除了在進行基本技能培訓的時候嚴格要求學生外,還要切實為學生進行一些程序設計技能講解,即給出一些典型程序設計例子進行分析,學生接觸C語言實際編程例子多了,也就逐步理解程序設計的思想和方法,學會利用程序設計語言解決一般應用問題,實際動手能力就得到了提高。還要盡可能為學生提供多一些上機機會,比如開放實驗室,讓學生有更多上機動手時間。教師有科研課題盡量讓學生參與,使學生有一些真實體會。還可以實行導師制,針對學生不同情況,加以專門輔導,切實解決學生程序設計中存在問題。
在綜合實訓和課程設計中,本著以就業為導向,以職業為載體全面發展的教學思想,緊密結合就業方向、職業要求精心制定實訓內容和課程設計題目,強化實踐應用能力訓練,使職業訓導和實踐教學相結合,注重能力培養。一般在綜合實訓和課程設計之后,學生的編程能力和實際操作能力都有所提高,適應了培養社會需要全面發展高素質人才的需要。
3.更新教育教學理念,投入感情,培養學生興趣
我們的學生雖然不喜歡、不善于抽象理論學習,但他們活躍,接受新事物快,動手能力強。而教學過程不僅是知識和技能傳授過程,更是情感溝通過程。因此教師要關愛學生,通過教學活動溝通師生情感和心靈,實現真正的“教”與“學”互動。上課時,教師可以精心設計一些問題讓學生回答或者討論,對表現積極的,在其他學生面前加以表揚,并給予平時成績加分等獎勵,提升他們的學習熱情和興趣。對學習上暫時落后的學生,可指出他們需要改進的地方,并幫助他們找出解決問題的方法,樹立其學習信心。
(三)教學手段的改革
在教學手段上,除了采用多媒體課堂教學和機房實訓結合、多媒體教學課件和板書設計結合的方式外,最主要是構建C語言網絡教學平臺,借助因特網發揮信息現代化強大優勢,使其成為C語言輔助教學有力工具。
從教育學角度出發,教學過程就是一個信息傳遞過程。而網絡平臺教育方式將單向的Shannon-Weaver模式改變為雙向的Osgood-Schramm模式,因而在近年教學改革中得到了極大倡導和施行。C語言網絡教學平臺充分利用網絡平臺的開放性、共享性和協作性等特點和優勢,對《程序設計基礎》課程重新進行規劃和組織,為學生創造一個集知識和趣味于一體的、包括個別化學習環境和協作式學習環境的開放性網絡教學平臺。
《程序設計基礎》課程網絡教學平臺構建主要包括了三個方面:1.利用多媒體手段系統演示、分析、講解教學內容;2.與課程學習直接有關的練習題、答疑系統、課程學習討論系統等;3.具有初步的、較豐富的題庫內容,用于學生學后練習、自測和自我評價。整個平臺系統既包括了教學支持平臺的架構設計,也包括了教學內容設計。
建成的《C語言程序設計》課程網絡教學平臺,內容豐富,頁面生動活潑,操作方便,能吸引學生。網絡教學平臺內容有課程簡介、教學大綱、教學課件、電子教案、實驗指導書、實驗報告、課程作業及答案、章節自測、趣味C語言程序、C語言程序解決現實生活實例、全國計算機等級考試二級題目及上機典型題目、模擬考試等。
學生在網絡教學平臺上可以構建個別化學習環境,利用圖像、動畫和視頻等多媒體手段,將在課堂中側重于邏輯講解的知識體系從新的角度加以呈現。這樣的講解方式有助于加強學生對課堂講授內容的理解,亦有利于提升學生對所學知識的興趣。此外,個別化學習環境還體現在提供自我評價體系,方便學生隨時隨地了解自己的學習狀態,清晰認識自己知識體系中的欠缺,更有針對性地調節個人學習方案,間接促進學習效率的提高和自我知識水平的提升。
在網絡教學平臺上還可以構建協作式學習環境,主要構建學生和教師、學生與學生之間的交流渠道,以便參與者之間進行交流、協作和討論。這樣的方式不僅提升學生學習主動性和能動性,更能潛移默化優化學生個人習慣,提升其與他人溝通、合作的能力。協作式學習環境的創建可利用多種技術加以實現,如電子郵件、公告板、討論區、網上傳呼等;學生可提交作業、提出問題并參與討論。教師通過網絡平臺可上傳各類教學資源、批改作業、網上答疑等。
網絡學習需要教師參與指導,需要制度措施的保證?!禖語言程序設計》課程要求學生每次課后到網絡教學平臺上復習課程內容,熟悉課堂練習,并完成作業。教師在規定輔導答疑時間,檢查督促學生在網絡平臺學習,并給予指導幫助。網絡內容豐富多彩,學生上網經常是打游戲看電影QQ聊天,怎樣讓學生進入網絡平臺學習,需要一定的制度保證。為提高學生學習C語言積極性,培養學習習慣,引導其喜歡學習、學會學習,本課程規定課后學生必須在網絡平臺上復習,完成并提交作業,多次不交作業會影響課程成績。從授課教師和學生的反饋意見可以看出,《C語言程序設計》課程網絡教學平臺的使用已取得預期教學效果。尤其教學平臺界面良好的設計、靈活的演示、高效的互動這些特點都受到了學生的歡迎、認同與肯定。
[1]譚浩強.C程序設計[M].北京:清華大學出版社,2005.
[2]周雅靜.C語言程序設計實用教程[M].北京:清華大學出版社,2009.
[3]蔣然.高職院校C語言程序設計教學改革探討[J].福建電腦,2010(10).
[4]馬新.C語言程序設計課程教學方法與手段的改革與實踐[J].高校講壇,2010(33).
Exploration on the Teaching Reform and Practice of C Fundamentals of Programming
LI Long-miao
(Department of Information Engineering,Hainan Technology and Business College,Haikou 570203,China)
C Fundamentals of Programming is one of the basic courses of Information Engineering Major for all colleges.The teaching requires a combination of theory study and computer operation.Our reform on its teaching modes,methods and techniques has resulted in good effect.This paper is a summarization of our reform practice which we hope that will be useful for reference.
C language;Transformation of education;Teaching mode;Teaching means
TP312.1-4;G642
A
1009-9743(2012)02-0138-05
2012-04-19
李龍淼(1946-),女,漢族,北京市人。海南工商職業技術學院信息工程系副教授。主要研究方向:程控交換技術。
(責任編輯:張玉秀)