前言:中文期刊網精心挑選了程序設計實踐范文供你參考和學習,希望我們的參考范文能激發你的文章創作靈感,歡迎閱讀。
程序設計實踐范文1
關鍵詞:程序設計;課程教學;實踐與創新能力;立體教學;翻轉課堂;培養途徑
隨著各種信息技術的發展,當前我國對于程序設計類人才的需求逐漸增大,程序設計類專業人才在很多行業中都有著較好的發展前景。無論是移動互聯網公司、電子科技公司還是網絡游戲公司等,對于這類人才的需求都有較大的缺口。因此,高校在培養程序設計類專業人才時除了傳授基礎的理論知識,對于學生創新能力和實踐能力的培養同樣需要引起重視并采取相關措施,通過對自身的教學模式進行調整,幫助學生更快適應社會的發展需求。程序設計類課程是計算機相關專業的主要課程,同樣也是其他專業課程和延伸課程的基礎[1]。其中,C語言程序設計是最為基礎的一項實踐操作類課程。學生需要運用C語言程序設計知識,在數據結構、編譯原理、圖形學等方面進行設計,形成一種用計算機來分析和解決問題的思維,也是教師在程序設計類課程中需要對學生進行重點培養的一項實際操作能力。
1程序設計類課程的發展背景
我國的第十三個五年規劃建議中明確指出,未來五年軟件工程師將會走向更加具有發展前景的道路。這一發展規劃的提出,對高校教師的程序設計類課程教學工作提出了更高的要求。通過調查發現,軟件工程師已經成為當下非常受歡迎的一個職業。學生在學校學習過程中,對于專業的程序設計能力的掌握十分重要,還需要同時兼備相應的實踐與創新能力,這樣才能在今后的工作中利用自己的能力為企業開發出更多有用的軟件和工程。除此之外,學生是否具備實踐與創新能力也是衡量計算機專業學生是否合格的重要標準[2]。高校在培養技能型專業人才的同時還需要構建各類應用型課程體系,尤其是程序設計類課程。學生擁有較強的實踐能力以及獨特的創新能力,也能夠提高學校的聲譽。高校培養人才可以從以下三方面入手:(1)將應用型高校人才培養課程體系建設作為應用型高校教學改革創新人才培養模式的關鍵要素;(2)在課程建設和實際操作過程中,需要始終秉持以學生為本的教學理念,將學生對知識的掌握能力作為教學重點進行建設,注重培養學生實際操作能力,在此基礎上培養他們的創新能力;(3)還可以通過產教結合以及校企合作的方式,將人才培養理念轉化為適應經濟社會發展和產業轉型升級所需要的新型課程體系。通過高效的人才培養教學方式提升高校知名度,擴大核心競爭能力,為高校的辦學創造更加有利的條件。
2高校程序設計類課程教學中存在的問題
(1)學生學習興趣較低程序設計類課程是當前很多工科類高校重點建設的課程項目,同時也是基礎系最重要的課程。程序設計類課程本身對于學生基礎知識的掌握要求較高,需要學生具備嚴密的邏輯思維能力、較強的抽象思維能力以及扎實的文化基礎,因為這些基礎能力的缺乏也是很多學生在學習過程中產生困難的主要因素。學生在學習過程中可能會受到很多因素的影響,導致他們失去對該課程的學習興趣,長時間發展下去,教師對于該課程的講授效率不高的問題也更嚴重。程序設計類課程最主要的教學目標就是培養學生能夠正確使用計算機來解決一些基礎性問題,提升自己的思維能力以及創新能力。在學習過程中難免會感到內容枯燥,導致學習難度增大,因此需要培養學生具備足夠多的興趣和耐力[3]。教師在這個過程中同樣需要發揮強大的引導作用,將枯燥的課程轉變為學生感興趣的內容,提升學生的學習興趣,開發創新思維能力。(2)教師專業能力有限當前很多高校的程序設計教學主要包含的課程為:《C語言程序設計》《數據結構》《算法設計與分析》《面向對象程序設計》和《Java高級程序設計》。這些課程會貫穿在學生整個大學階段的學習過程中,但是由于可能會受到某些教師專業能力有限的影響,學生對于程序設計的融合貫通能力不足。教師在對學生進行教學時,只能教授一些表面的知識,學生對于這些知識只了解到表面,就失去了學習和思考的興趣。另外,有的教師對于學生在程序設計方面的實踐能力和創新能力的培養工作重視程度不夠,教學目的只是為了讓學生能夠通過考試,并未制定相應的實踐作業,導致學生想要進行實踐也無從下手[4]。還有一個重要因素,有的高校本身缺乏對于程序設計類課程的項目資金支撐,在實踐課程教學過程中學生并未進行過真正意義上的軟件項目開發訓練,缺乏獨立的項目開發能力,初入職場時就無法獨立開展企業的技術開發工作。以上這些都是導致學生實踐能力和創新能力得不到有效提升的原因。(3)學生專業技能掌握不足對于程序設計類課程來說基礎知識非常重要。很多高校在開設程序設計類課程時都會將其他一些計算機類的專業課程融入其中,見表1所列,例如C語言程序設計、Java高級程序設計,涵蓋的知識面較廣,需要學生擁有扎實的基礎。但是從當前很多高校的程序設計類課程的發展情況來看,大多數學生存在基礎知識薄弱、自主學習能力差的問題,前期的基礎知識還未掌握就開設了后續課程,學生學習較為吃力,老師的教學也顯得力不從心[5]。即使經過一段時間的學習,學生對于一些簡單的設計項目仍然無法獨自處理。另外,當前很多企業對于學生的程序設計能力、分析問題和解決問題的能力要求較高,這都應該成為高校教學中需要重視的。
3立體教學模式的構建
與傳統的教學模式有著一定的差別,立體教學模式的建立更加注重的是學生創新能力和實踐能力的增長。教師在進行課程教學的同時會借助新媒體對教學內容進行全覆蓋,形成立體模式,分別以課堂教學為長、學生自主學習為寬、課程項目驅動為高,從三個維度對課程的體系結構進行完善教學;學生在學習的過程中需要有三方面能力的提升,分別是學會了解問題、分析問題以及解決問題[6]。以上三個能力得到培養的同時,學生的創新能力和獨立的思辨能力也能得到提升,這正是立體教學模式的意義所在。從程序設計類課程的教學工作和學生的整體學習情況來看,還存在較多的問題。為此,筆者提出了新的教學模式—立體教學模式,以培養學生創新能力為教學目標,采用項目驅動教學方法,以翻轉課堂為教學手段。通過翻轉課堂的教學方式,可以培養學生自主學習和獨立思考的能力,還能在一定程度上培養他們的獨創思維。此外,翻轉課堂對于知識點會有一個重新構建的過程,在信息傳遞的過程中通常是由教師和學生、學生和學生之間的互動來實現的,學生對于知識點能夠更好地吸收,在這個過程中學生會對自己的能力有一定的了解,從中找到新的問題所在,并想出相應的解決方法[7]。教師還可以在課堂教學中將積分制作為考核方式來記錄學生的實踐課程成績,為之后的評價工作奠定基礎。
3.1以創新能力培養
為教學目標傳統教學模式的教師講授、學生操作和實踐,課程教學的重點內容在編程語言的語法規則以及語義上,無形中學生就會認為學習編程語言就是學習語法知識,只要掌握了語法知識就可以編程,并沒有真正意義上的將教學目標落在程序設計的應用方面。在程序設計類課程教學中,筆者主要以《C語言程序設計》課程為例,為了能夠提升學生的編程能力和創新能力,教學過程中教師需要將自己的重心放在對于編程語言需要理解的思想上,而不是像以往那樣重點講述編程語言的語法。教學時需要摒棄傳統的“一言堂”教學方式,注重教學設計過程,從課堂設計到實驗設計,優化教學內容,讓教學內容更加有層次感,體現系統設計的思想,培養學生的邏輯思維能力;還可以在自己的教學中充分地進行跨學科、多方面的結合,以幫助學生形成自身的知識框架,建立完善的知識體系;同時要注意相關知識點的分解,并充分融入到具體的教學活動中,才能形成最優化的教學方案。講解完每個知識點之后可以通過舉例的方式讓學生對問題進行反思和思考,提出自己的想法和見解,真正做到獨立思考。
3.2以項目驅動和以賽促學
為教學方法以《C語言程序設計》課程為例,教學的真正目的不只是讓學生掌握某個語法知識點,而是提升學生運用知識的能力,使其能夠獨立完成軟件項目。因此,教師在自己的課堂教學中需要正確地利用課堂時間,例如前半堂課程主要講解相應的語法知識點,后半堂課程培養學生的實際操作能力。在課程設計中需要添加以下兩個項目:(1)“學生信息管理系統”:管理系統內部需要添加的內容包含學生在課堂上的表現以及基本的成績展示情況等;(2)“俄羅斯方塊游戲”:教師讓學生自由地組成合作小組,教師提供命題后要求學生通過各種渠道分析命題,各小組分工整理,確認每一個成員的職能,這樣不僅能鍛煉學生的溝通合作能力,增強學生發現、分析問題的能力,還能激勵學生在實踐中不斷探究和創新。整個流程結束后學生對于軟件項目制作就有了大致了解,更有信心完成其他管理系統或游戲系統項目[8]。項目驅動式教學方式是一種流動的教學模式,與傳統的教學模式有一定的區別,教師在整個教學過程中需要起到引導作用,促進學生實踐能力和創新能力得到真正的提升,從而激發學生的學習興趣。
3.3以翻轉課堂作為教學手段
翻轉課堂的教學手段已經在很多高校中得到了較好的實踐。在翻轉課堂中,教師作為學生學習的引導者,需要組織學生之間進行交流和互動,幫助協調他們之間的關系。通過優化教學資源、構建多元的評價體系等方式,創設學習情境,將教學轉化為探究性、自主性的學習活動,還可融合多種教學資源,提高教學資源的利用率,拓展學生的學習空間[9]。教師通過建立多元化的評價體系,將定性評價與定量評價結合起來,使評價更加全面準確,根據學生在課堂的前中后三個階段的表現進行系統評價,保證評價能夠因材施教地進行。筆者從本校程序設計類課程中可以看出,翻轉課堂的教學手段實施產生了較好的效果,學生的學習效率得到了提升,對于基本的編程語言知識點掌握較好,提升了學生的實踐能力和創新能力;課堂上教師根據學生的疑問進行專門講解和探討,與學生之間的交流和互動逐漸增多。
3.4以積分制作為考核依據
與應試教育的教學目標有一定的差別,高校在人才建設和培養方面主要側重學生能力的提升,尤其是在程序設計類課程教學實踐中,對于學生的能力進行考核十分重要。學生成績積分評定主要來自平時成績和綜合項目成績兩部分,各占50%的比例。教師在考核時需要加入學生的平時表現分以及小組之間互動的成績,以此進行綜合性考察[10]。將積分制作為考核標準形式,學生會有較高的參與感、成就感和滿足感,學習興趣也會隨之提高。
4結語
程序設計實踐范文2
關鍵詞:C語言;程序設計;機考;分層教學;課程改革
中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2014)34-8225-02
《C語言程序設計》課程的授課對象是計算機專業本科學生,為專業基礎(必修)課,是學好后續各軟件課程必要的基礎。有別于已經掌握的漢語、英語語言,作為人與計算機交流的語言,C語言不但概念多、符號多、語法多、規則多,而且抽象、難懂,再加上需要有一定的理解力以及解決問題的清晰思路,有些學生在學習過程中會感覺到枯燥、繁雜、無趣。因此培養學生的學習興趣、加強對課程的重視、提高實際編程能力、將理論與實際相結合,是教師必須解決的問題。
為了提高學習質量,從2010年秋季學期開始對《C語言程序設計》課程的教學過程、成績考核進行了改革,由原來的紙質試卷考試變成全程上機考試。改革實施多年來,大部分學生增加了學習興趣,有了編寫程序的主動性和積極性,增加了專業學習的信心,提升了程序設計的能力。
考慮到學生在基礎知識、智力因素、學習能力上的差異,為了更有效地實施“因材施教”,從2013年秋季學期開始實施分層教學。在講完C語言基礎知識、程序基本設計方法之后進行分層。通過考核,外加自愿的原則,將原來的教學班打亂,重新組合成兩種班型――高層次、低層次班。分層之后,每個學生個體獲取的知識趨于最大化,極大地提高了課堂學習效率。
1 傳統教學與紙質考試存在的問題
傳統的教學是按照指定教材,在課上將重點內容進行講解,典型的問題、方法在TC/VC環境中進行演示,課后留給學生一定的紙質作業和上機編程作業。同樣的講授,理解力強的學生一聽就懂;理解力弱的學生,老師需要講多遍才有可能懂。傳統的教學中,老師只能顧及大多數中等學生,照顧不到特殊的學生。降低了課堂效率,也可以說浪費了某一部分學生的時間。
由于期末考核采用的是紙質考試,只是從紙面上考核學生對C語言理論、編程方法的理解、掌握程度,更對學生的學習產生誤導。部分學生也只重視理論,不重視實際動手編程。他們只滿足于“紙上談兵”,不考慮結果。因此,實際應用時,對上機環境不熟悉、編寫的程序不能順利通過,導致很多學生高分低能,在解決實際問題時,茫然無措。
2 機考及分層教學改革的探索
計算機專業課程的特點是實踐性強,學生在掌握了基本語法后重點是上機實踐,即在計算機上解決實際問題,這里包括問題的分析與抽象、程序的編寫與調試。
常言道:“實踐是檢驗真理的標準”。在學習C語言過程中,上機實踐是鞏固理論知識、增加理解力、提升編程能力的重要途徑。為了提高教學質量,讓學生真正打好專業基礎,授課教師在教學內容、教學方法、教學組織、考試方式等多方面上進行了調整。
2.1 教學方法以及教學組織上的改革
為了使教學效果更好,將兩個自然班作為一個授課班,教學內容統一要求。講授時,由淺入深、循序漸進。在語言的基礎上,重點放在程序設計的思想、方法、技巧的講解,結合典型例題,培養學生分析、設計、解決問題的能力。通過精心設計實驗題目、課后作業、調整考核比例、增加課后上機機時、多方位提供答疑指導等環節培養學生學習興趣,使學生重視上機編程。
對學生作業題目進行精心設計,既覆蓋知識點,又有趣味性,每個題目都像在講一個故事,把要解決的問題融在故事中,學生在讀故事的同時,不自覺地就會去想解決辦法,增加了興趣,提高了自主性,也鍛煉了思維。
調整平時考核內容。平時考核的環節包括:上機小測試、期中機考、上機作業、考勤,每一個環節的成績都會反映到平時成績中。平時成績的取得完全依賴自己的學習態度。
增加課后上機機時。由于考核重點是對實際動手能力的考核,光靠課內安排的上機時間顯然不夠,所以需增加學生課外自主上機實驗時間,并配有指定人員輔導。
多方位提供答疑指導。所有任課教師把答疑時間錯開,這樣每周學生可以有多次答疑時間,對比原來教師只給自己學生答疑的做法,學生增加了學習解疑的機會。
2.2加強上機實驗過程控制,促進考試改革
借助于“課程自動評測與抄襲檢測系統”,老師和學生有了C語言作業部署、學習、檢測的平臺。通過這個平臺,老師可以布置上機實驗、安排考試、檢查學生提交的作業。根據知識點,每章布置4-5道題,限定學生在規定時間內獨立提交。老師可以隨時查看學生提交的程序,及時與學生溝通、反饋。學生可以隨時把自己編寫的程序提交,系統對提交到服務器的程序自動判斷對錯,學生可以及時了解自己程序存在的問題,不斷進行修改,直到能夠順利通過所有測試。
這一環節起到了鞏固課本知識、增加獨立思考、加強動手能力的作用。期末就是利用這個平臺進行全程兩個小時的考試,要求學生既有編程的能力,又有時間的緊迫感。
加強過程考核,增加平時機考次數。為了緩解期末機考時的緊張情緒,之前會安排1-2次的上機考試,成績記入期評,其中期中考試的考試形式與期末一樣,為全程兩個小時的機考,隨機組卷。學生可以盡早了解考試模式,并更加重視對本門課程實際動手能力的訓練,學會調整心態。
為了滿足不同層次學生的要求,在平臺上配備了大量不同難度的習題,不受提交時間的限制。學生可以根據自身需求,隨時編程測試。
2.3分層教學,提升學習效率
分層教學是根據學生不同基礎、不同學習需求而實施教學的一種手段。是在承認學生差異、考慮學生興趣的前提下,以發展的眼光看待學生,給每個學生提供符合他們發展的教學目標與方法,是同時提高所有學生能力的理想狀態。經過調研,從三個方面進行分層教學。
1)學生分層。對學生能力考核的一個重要標準就是學生的學習成績,但是在學習這門課之初,沒有可依據的成績。分層安排在講完兩周課,即學完了簡單程序設計之后進行。學生根據自己當前對C語言的理解和接受程度,選擇不同層次。在分層教學的實施過程中,這樣的分層是暫時的、動態的。過一段時間,視學生的后期學習成績、學生的具體情況,可遞進或降層。這樣更有利于學生個性化發展。
2)講課分層。對不同層次的學生,采取不同課堂。在講授編程思想、必備知識基礎上,對高層次學生,拓寬和加深問題的難度,做到拔尖提高;對普通學生,在達到大綱要求的同時,考慮他們的接受能力,適度增加和加深知識,做到穩步推進。
3)實驗分層。練習是對所學知識的鞏固和消化。按照作業、實驗題目的難易,對不同層次的學生提出不同要求。對普通學生布置基礎題,進行強化訓練;對高層次學生,以綜合運用知識進行練習。要求學生多編程解決問題,以提高應用知識的能力。這樣使得不同層次的學生得到不同程度的提高。
3 教學改革實踐效果
實行考試改革后,學生的學習積極性有了明顯提高。由于考試時間的有限性,增加了學生的緊迫感、主動性,在程序編寫、調試程序的實際動手能力方面得到了重視并有所提高,為后續課程學習奠定了良好的基礎。經過分層教學,滿足了不同層次學生學習的需要,激勵了各層次學生朝著有利于自己的方向努力,有利于學生個性能力的張揚,有利于學生綜合素質的提高,更有利于優秀學生綜合能力的發揮、較低層次學生潛在能力的開發。
3.1帶動學風,促進后續課程的學習
大部分學生能夠按時到課,勤于思考,互相研究,答疑的同學增多了。改變了不良學風,營造了良好學習氛圍。由于課程期間比較重視學生結構化程序設計的方法,要求編寫程序之前理清解題思路、做好算法設計,經過訓練后,在后續的“程序設計專題訓練”中,面對稍難一些的問題,學生也能逐步找到解決辦法,編出程序,順利通過測試。在小學期“學術工程實踐”課程中,要求完成一個小型管理系統,有一定的難度。大部分學生能夠順利編寫由多個結構體、多個文件、幾十個函數組成的、2000-4000行代碼的程序,并調試成功,完成管理。
3.2提升學生的程序設計能力和創新能力
競賽是考核學生全面素質的一個平臺,它要求學生具有扎實的理論基礎、清晰的算法設計能力、嫻熟的編程能力、良好的心理素質和快速的臨場應變能力。
隨著知識的積累,學生的能力和自信心不斷增強。學生們更加渴求知識,渴望展示自己,參加競賽的積極性提高了,人數也不斷增多。在大二階段,報名參加全國軟件設計大賽的人數由09級的16人次(占09級學生人數14.04%)、10級的33人次(占10級學生人數26.19%),增加到11級的66人次(占11級學生人數51.56%)。全國獲獎人數由09級的1人次(占09級學生人數0.88%),到10級的12人次(占10級學生人數9.52%),再到11級的17人次(占11級學生人數13.28%),獲獎人數同比增多。
4 結論
總之,學習“高級程序設計語言”不僅要使得學生在程序表達和設計上得到培養,更重要的是在掌握解決問題的思想、方法和手段的同時,實際動手編程能力有所提高,從而增長設計程序的能力。因而,將“C程序設計”課程的考試改為上機考試是很有益的,可以改變不良的學風,營造良好學習氛圍;可以加強學生對課程的重視,提高學生程序編寫、調試等實際動手能力,提升學生的程序設計能力和創新能力,為后續課程學習、為培養合格的專業人才奠定良好的基礎。
對“C程序設計”課程實施分層次教學也是必要的,可以針對不同層次學生的需求給予相應的學習指導,以達到學生全面發展的教學目標;可以激發不同層次學生學習的欲望,向著更高更深的知識海洋探索;可以鞭策任課教師積極思考、合理取舍,做到充分了解學生、合理安排進度,能夠極大地提升老師的組織與應變能力。
參考文獻:
[1] 李學會.C程序設計教學改革與實踐[J].實驗室科學,2010(4)33-34.
程序設計實踐范文3
關鍵詞:算法;問題求解;計算思維;創新思維
中圖分類號:G642 文獻標識碼:B
1引言
數學思維強調數與形的邏輯關系、演算推理能力和嚴謹態度,計算思維強調問題求解的的操作過程和機器實現。在《中國高等院校計算機基礎教育課程體系2008》中,提出對大學生計算機應用能力的三大要求是:操作使用能力、應用開發能力和研究創新能力。尤其是對于“程序設計基礎”課程而言,將學習目標確定成:(1)學習問題求解的思路和方法,即算法。(2)理解計算機是如何具體實現算法的,即如何才能有效的利用計算機編程。課程學習的重點不只是編寫程序,而是算法思想與問題求解的思路。總之,就是要培養學生使用計算機編程,并最終形成計算思維。
2算法與計算思維
2.1算法
根據圖靈獎得主D.E.Knuth的定義:一個算法就是一個有窮規則的集合,其中規則規定一個解決某一特定類型問題的操作序列。學生在學習程序設計課程時,將通過算法設計并由計算機語言實現來體驗問題求解的思維訓練。算法的操作時序性確保問題求解過程是按步驟進行的,這種執行規則非常簡單機械。所以,教學過程中要使學生經歷算法化過程并體驗計算思維,它有利于培養學生的理性思維和行事邏輯能力。
2.2計算思維
美國卡內基•梅隆大學的周以真(J.M.Wing)教授在計算機權威期刊《Communications of the ACM》雜志上指出:計算思維是運用計算機科學的基礎概念進行問題求解、系統設計、人類行為理解等的一系列思維活動。就問題求解(problem solving)而言計算思維與數學思維相似,它建立在計算過程的具體實現和約束之上,通過程序來控制機器的全部操作。
計算思維的本質是抽象和自動化。計算思維中的抽象體現在完全使用符號系統,甚至形式化語言。一個程序由標識符、常數、變量、數組名、函數名、語句、程序段等構成,其中的數據類型只是一個抽象特例。與數學思維相比,計算思維中的抽象顯得更豐富也更復雜。計算思維中的自動化體現在算法實現最終是“機械式”的按步驟自動執行,這是馮•諾伊曼機器的本質特征(即存儲程序原理)。要實現這一特征,就需要進行精確的算法描述和嚴格的符號表示。計算思維包括如下三大特征。
(1) 計算思維是一種形式規整的思維。算法確定性是算法和程序的基本要求,它的實現一定會使用基于數學語言的符號系統,即使用一種有限的確定性符號系統來描述問題和問題求解過程。算法確定性表明算法的每一步操作必須是確切定義的,沒有任何二義。所以,計算思維體現的正是嚴謹的、形式的、規整的邏輯思維。
計算思維使用形式化語言來準確描述問題求解過程。自然語言中往往因文化習慣的差異,會出現許多二義性。例如句子“車撞死人”,可以理解為車將人撞死,也可理解為車撞的是死人。在計算思維學習中,需要將計算任務用確定化的、形式化的、唯一化的語言進行描述。程序設計語言作為一種確定性符號系統,就可以進行形式化思維訓練。例如,學生在編程時產生的符號錯誤,都會在編譯和運行時表示出來,而學生通過檢錯和糾錯的過程,可以培養學生嚴謹規范的行為習慣和科學的實證精神。實際上,如果一個學生具有條理化的、反思性的思維習慣,則表示該學生的問題求解技能很強。
(2) 計算思維是一種問題求解的思維。它將問題求解的過程用“程序化”或“機械化”的方式表示出來。問題求解過程分為五個步驟:呈現問題、分析問題、聯系、行為選擇和反思檢驗。學生在面對計算機問題時,可依據已有的知識,提出問題求解方案,并用算法進行描述,最終由機器執行程序來檢驗問題求解的效果。例如火車分段計費問題就是我們在日常生活中感受到的問題,學生可根據自己對火車收費的理解,寫出數學式,然后用多分支結構算法進行描述,最后上機實現。
(3) 計算思維是一種人機共存的思維。算法可分為三種形式:①生活算法:即完成某一項工作的方法和步驟,例如一天的學習計劃;②數學算法:即對一類計算問題的機械的、統一的求解方法,例如一個多項式的因式分解;③計算機算法:即問題求解的精確描述,它具有明顯的自動化特征,如數據計算準度高并具有嚴格的操作時序,這是與計算機系統本身緊密相關的,所以用計算機實現問題求解,需要充分利用計算機的速度和存儲優勢,盡量發揮計算機與計算思維的威力。例如“百雞問題”,數學方法是用兩個三元不定方程進行求解,計算機算法則充分利用計算機的速度優勢,使用窮舉算法進行簡單重復操作進行求解。兩者的不同,可以使學生體驗到人機不同的信息處理特質。
3嘗試以上機實驗為重點的計算思維教學模式
在程序設計課程教學過程中,筆者改變偏重理論和課堂教學的傳統模式,嘗試以上機實驗為重點的計算思維教學模式,讓同學們能夠“在編程過程中學習知識、在學習過程中拓展思維”。具體實踐包括以下三個方面。
3.1提高上機實驗的地位
程序設計是一門實踐性學科,過去沿用“先講解程序,后上機實驗”的教學策略,這種教學策略只能增加學生的感性認識和上機實驗能力,并不能提高學生的計算思維能力。筆者認為讓學生按部就班完成前人設計好的算法,不是上機實驗的真正目的。上機實驗應該是培養學生計算思維能力的重要手段,是程序設計課程教學的核心。
3.2實驗內容要能培養學生的創新思維
要培養學生的創新思維,教師首先要不斷學習并創作適合同學們知識結構和心理特點的實驗內容。好的實驗內容,能夠為學生的創新思維留出適當的空間。在教學過程中,要強調并培養學生對于計算過程的嚴謹性,編寫程序是要強調從需求定義開始,然后進行算法優化與選擇,最后通過上機實驗。當出現程序錯誤時不要放棄,而是努力排除錯誤,這樣能夠強化學生的計算思維訓練。同學們一定會因為提出新算法和排除錯誤感到滿足,這樣可以使同學們積極思維,大膽創新。
3.3增強實驗內容的趣味性和綜合性
通過計算任務的趣味性、綜合性等來增強實驗內容的難度,從而強化計算思維訓練。大學生一般對新鮮事物好學、好問并富于幻想,初遇計算任務時往往興致盎然,幻想編寫程序。但在傳統教學中,缺少趣味性和綜合性,進而導致同學們沒有學習興趣,所以,設計實驗內容盡量生活化、趣味化。例如在分支程序結構中,安排火車計費程序進行計算思維訓練。
4通過算法多樣化訓練計算思維
4.1提倡算法多樣化的目標
程序設計教學的教育價值在于突出計算思維,在倡導算法多樣化的過程中,培養學生的創新意識、探索精神和問題求解能力。在教學過程中,應該尊重學生的個體差異,關注學生思維能力培養。課程目標不僅僅是培養學生的操作技能,還要通過強調算法多樣性來培養學生的計算思維能力。
4.2尊重學生不同的認知方式
算法多樣化的本質是尊重學生不同的認知方式,在教學過程中由于學生認知方式的差異,必然會導致算法多樣化。教師應該尊重每位學生的個體特征,鼓勵學生從不同角度認識問題,用不同方式表達算法,用不同方法實現問題求解。同時教師給予適當的評價,就是尊重學生不同的認知方式。
4.3增強計算任務的多樣性和重構性
在教學過程中,教師要重視并培養學生計算思維的多樣性和重構性。多樣性可以盡量激發學生的思維活動,重構性通過變化也能夠強化計算思維訓練。實際上,不同學生會使用不同的學習方法和思維方式。對一個學生來說是好的計算方法,對別的學生不一定適合。另外,各種計算方法都有它的局限性,其實程序只需要保證正確并具有可讀性。所以,在設計實驗內容時,鼓勵同學們編寫各種程序來實現同一個計算任務,鼓勵改寫別人編寫的程序,從而培養同學們計算思維的多樣性和重構性。
4.4充分利用算法的簡化和優化過程
在教學過程中教師,不但要倡導算法多樣化,還要引導學生對算法進行反思和進一步探索,從而達到簡化并優化算法的目標。將一個計算任務用多種思路、多種算法進行求解,可以發展學生計算思維的靈活性。算法多樣化讓學生可以用自己喜歡或能夠理解的算法,通過交流、評價得到計算結果。
5結論
進行計算思維訓練對計算機學科人才培養是極為重要的,因為它不僅使學生理解計算機的實現機制和約束,有利于學生進行發明和創新,更重要的是有利于提高學生的信息素養,也就是處理計算機問題時應有的思維方法、表達形式和行為習慣。信息素養要求學生能夠對于獲取的各種信息通過自己的思維進行深層次的加工和處理,從而產生新的信息。當然,僅通過一門課程學習就形成信息素養是不可能的,但應該使學生懂得計算思維對軟件設計是非常重要的。
參考文獻:
[1] 中國高等院校計算機基礎教育改革課題研究組. 中國高等院校計算機基礎教育課程體系2008[M]. 北京:清華大學出版社,2008.
[2]J.M.Wing. Computational Thinking[J]. Communications of the ACM,2006(49):33-35.
[3] 王榮良. 信息技術課程中算法學習的價值探索[J]. 中國電化教育,2008(8):78-81.
程序設計實踐范文4
關鍵詞:Visual Basic;程序設計;教學與實踐
中圖分類號:G642 文獻標識碼:B
文章編號:1672-5913(2007)10-0003-03
掌握計算機應用基本技能成為新世紀人才不可缺少的基本素質之一。由于高級語言程序設計課程不僅使學生更深入地理解計算機的工作過程,而且在培養學生嚴密地邏輯思維、培養非計算機專業學生利用計算機解決本專業問題的能力方面有著非常重要的作用,因此各個高校普遍開設了程序設計課程。而Visual Basic作為面向對象的程序設計語言,其易學易用,圖形用戶界面的特點成為非計算機專業類學生首選的教學語言。幾年來,我們以提高學生計算機素質,培養創新意識和創新能力為目標,對全校的計算機公共課系列課程進行了一系列的教學改革,尤其對程序設計語言課程的教學改革更是向縱深發展,朝建設精品課程的目標努力。
1Visual Basic在計算機基礎教學中的地位和作用
浙江大學城市學院的計算機基礎教學在課程體系上分為兩部分,第一部分是計算機文化基礎,在第一學期的9~16周開課,主要任務是使學生掌握計算機基本知識與基本操作技能,培養學生的計算機文化意識。第二部分是計算機程序設計,在第二學期開設,理工科學生選擇C語言,文科類學生選擇Visual Basic作為學習編程的平臺。城市學院中文科類學生的比例占了近半數,因此Visual Basic成為了名副其實的大課,每年有1500多人學習,作為計算機基礎教育的重點課程,對學生乃至學校都有重要影響。
2存在的問題
盡管這幾年城市學院的計算機基礎教學成績取得了很大的進步,但應該看到還存在不少問題,這些問題解決得好壞直接影響計算機基礎教學的進一步發展。
首先,學生的學習動機不明確,“VB程序設計”的授課對象是廣大非計算機專業的學生,尤其是以文科類學生為主,有不少學生認為學習程序設計對他們來說沒有用,僅把它當做一門不得不學的課程,只是單純的應付考試,還沒有意識到在信息時代的今天計算機已經成為了人們所必須掌握的一種基本技能。
其次,文科類學生在數學、物理及電子技術方面的基礎比較薄弱,自身的認知結構、學習傾向等多方面的差異,致使他們在學習過程中積極性不高,學習興趣不濃,學生普遍感到“VB程序設計”枯燥、難學。
第三,我們的教學方法、教學手段往往過分強調教師的“教”在教學活動中的作用,而不是從學生的角度出發,從學生如何學好一門課的角度出發。其實教學過程不單單是學生在老師指導下的一種特殊的認識過程,它更是學生個性全面發展的過程,是師生之間相互作用的一種雙向活動,因而要探求新的教、學并重的教學理念、教學思路。
第四,“VB程序設計”是一門理論與實踐并重的課程,傳統的程序設計語言教學按照給出語法、解釋語法規則、舉例說明的三步曲,教學上習慣于滿堂講,填鴨式教學,總感覺內容多,課時不夠,結果導致教師講得累,學生聽得累,經常有學生說上課聽懂了,但一碰到自己做,感覺無從下手。
3我們的經驗
3.1端正學習態度
在教學過程中,要幫助學生端正學習態度,提高計算機語言課程對其全面發展必要性的認識。程序設計語言是大學中一門很重要的公共課程,是衡量大學生計算機素質的重要標志。程序設計課程的教學不僅要讓學生學習程序設計的基本概念和方法、掌握編程的技術,更重要的是培養學生邏輯思維和邏輯推理的能力、動手能力、創新意識和創新能力。多注重學生興趣的培養,通過一些生動形象的實例引導學生主動提出問題、分析問題、解決問題。
3.2教學方法的改進
基于VB語言的特點,在VB的教學中重點處理好以下兩方面的內容:① 算法與結構化編程;② 面向對象技術[1]。
算法與結構化編程是程序設計的核心。在教學中重點注意算法的概念、結構化程序的概念與組成、算法的描述。如典型的排序算法,檢索算法等,要把這些作為經典熟記。
面向對象技術涉及到相關概念的教學和面向對象技術應用的教學。VB是基于對象的編程語言,類、對象、屬性、事件、方法構成了VB的靈魂,對象及其屬性、方法和事件是VB程序的主干,因為這三者決定了對象的外觀與行為模式。事實上,應用程序整個界面的運作,都是通過控制對象的屬性、方法與事件來完成的。將結構化程序設計和面向對象程序設計融合在一起,面向對象的程序代碼主要體現在各個事件過程中,而在事件過程中貫穿了傳統的程序設計思路和算法的應用。
由于在VB課程中既要介紹傳統的程序設計方法,又要介紹面向對象的程序設計概念和可視化界面設計所涉及的控件、應用程序開發等,內容多,學時少,要講好這門課,需要充分運用各種教學方法。
(1) 直觀教學法
在VB語言程序設計中,有些內容比較抽象,不容易被學生接受和理解。作為教師不僅要把深奧的理論講得通俗易懂,還要巧用日常生活中的例子,形象的比喻方法最容易為學生所接受。比如循環嵌套是學生不太容易搞清楚的地方,我們可以提出一個很現實的問題,如時針走過兩個格子的話,秒針走過多少格子?形象地把秒針、分針和時針的運動打比方,最里層的秒針運動最快,秒針走過一圈,分針前進一格,分針走過一圈,時針前進一格,這就是三重循環嵌套,然后寫出程序代碼,這樣就把抽象的問題形象化,便于學生理解和掌握。
(2) 演示教學法
在教學過程中,為了提高學生的學習興趣,教師可以利用一些與教學有關的軟件和索材,如使用簡單的Flas來反映循環結構程序執行流程、排序算法等。讓學生有興趣學習,就能取得很好的教學效果。
(3) 案例教學法
案例教學從學習者的認知規律出發,精選與實際生活中關系密切的問題作為案例,通過案例的運行分析設計思路和實現方法,進而引出該案例中用到的知識點,再舉一反三,啟發學生對案例進一步討論、歸納,對案例完善和擴展,最后達到知識的快速掌握和能力的快速培養。由于所有案例都是直接面對應用的,具有實際的應用價值,所以很好地培養了學生的應用能力[2]。“案例教學法”貫穿教學的始終。
3.3學以致用
通過以上一系列教學方法及手段的運用,教師把各個知識點像珍珠一樣一個個串起來。但是計算機應用知識不可能只靠聽課就能掌握,為了進一步把教師講的內容消化為學生自己的知識,逐步提高個人的編程能力,必須大力加強動手實踐環節,包括作業、編程、上機、上網、做項目,引導學生通過實踐拓展知識。必須提升實踐環節在教學過程中的地位和作用,引導學生通過實踐來提高能力,只有多動手實踐,才能破除學生對計算機的神秘感,才能激發學生對掌握計算機編程產生興趣。我們提出圍繞上機實踐,抓到課率和課后作業,形成了一套行之有效的方法。
(1) 講練結合
當學生掌握了某個基本編程結構或學習了某個控件后,應及時訓練編程,培養編程的思維方法。我們設計了隨堂練習讓學生當堂練習,練習題目在范例的基礎上做一些細微的改動,目的是及時掌握所學內容。人的認知規律也提示人在學習新的知識時模仿是第一步的,在模仿的基礎上進行改進,進而實現設計。而我們的隨堂練習更是設計成活頁,給學生5~10分鐘的時間完成,寫上姓名、學號后上交,這樣不僅省去了課堂點名,又達到了教與學的良性互動。
(2) 上機實踐教學
上機實踐課作為與課堂理論教學的配套,是一個重要的教學環節,它不僅檢驗所學內容,更對提升學習興趣、引導學生進一步探索有著直接的影響。這一部分的教學我們設計為完成以下三個方面的作業。
1) 上機前練習。為了避免學生上機毫無準備,浪費時間,上機實踐前學生必須完成上機前練習,每次上機課開始教師都要認真檢查,作為平時成績的考核依據。精心設計每道練習,由淺入深,讓學生在讀程序,改程序和程序設計中充分理解和掌握該章節所要求的內容。我們將每一章分為三種練習,根據Benjamin Bloom的研究成果,他提出了認識領域達到的六級分類[3]。在設計上機前練習時,我們將Bloom的六類合并成三類。這些分類根據學習一個算法或語法結構的具體例子定義如下:
認知:讀一個簡單程序,寫程序運行結果或畫流程圖。
改進:根據前一個作業,生成一個非常相似的算法,如讀一個簡單程序,修改程序錯誤或程序填空,實現指定的功能,這是一種較淺近變換。
設計:學生可修改算法,將算法用于不同的環境,可合并相關算法,還可以比較算法,進行程序設計,這是一種較深遠變換。
2) 上機實踐。通過每周一次的上機實踐把本周教學中涉及到的基本概念、重點、難點及常見錯誤在實驗課上再一次認真梳理。要求學生在VB環境下設計界面、屬性、事件,如利用窗體單擊事件實現前述三類上機前練習,并且運用單步執行、設置斷點等方法跟蹤算法的執行,對給定的數據確定其輸出。
要求學生按照所寫內容及步驟進行操作,提醒學生對每一操作的結果仔細觀察和詳細記錄,用實踐來驗證自己的認識是否正確。學生在操作中將遇到各種問題,教師應啟發學生獨立思考,勇于實踐,引導學生去發現問題的原因,分析問題和解決問題,培養學生的動手能力。
3) 實驗報告。上機結束后,要求學生將上機操作內容和步驟、出現問題及解決方法寫成上機實習報告,以督促學生及時總結實踐經驗,進一步深化對課堂教學內容的理解和掌握,同時把程序源代碼上傳至服務器。教師認真批改作業并作詳細記錄,根據每一次上機的整體情況,對學生中出現的共性問題分析原因,在課堂上進行有針對性的講評和總結,使教學和實習有機結合。要讓學生充分理解上機實踐的重要性,在期末我們組織專門的上機考試,充分全面地考查了學生掌握程序設計的能力。
3.4構建課程支持系統
積極地利用校園網構建網絡教學平臺,彌補傳統教學的有限性,為學生提供更廣闊的學習環境。學院新購的Blackborad教學支持系統為我們拓展教學手段提供了很好的平臺。他通過“我的課程”模塊中的鏈接直接進入課程,在課程內容區教師可以公布通告、課程資料、任務、教學資源鏈接;通過互聯網上載課程文件,并可以方便地管理課程內容;為用戶提供虛擬教室、討論板交流工具,通過討論板、實時的虛擬教室互動和小組交流,實現協作學習的效果;還可通過數字收發箱提交并管理作業內容;在線考核功能可以將原始試題資料錄入,可以生成試題庫;從題庫中可隨機生成試卷,進行考試并有成績統計分析來強化學生的學習效果、衡量學生的學習過程。
4總結
抓住VB及面向對象程序設計的本質特征,采取適當的教學措施,使學生盡快掌握這一編程理念和編程方法。近幾年在全體教研組教師的共同努力下,城市學院在浙江省計算機等級考試中成績穩居省內各高校的前列。我們將在已有的成績和基礎上積極向第三階段計算機教學過渡,把計算機應用滲透到各專業課程中,開設VB的后續課程并和各專業緊密結合,使學生有機會通過多種途徑進行結合本專業的計算機應用實踐,使我校的計算機基礎教育真正全面、深入和持久地進行下去,把中央的高等學校本科教學質量與教學改革工程真正地落到實處。
參考文獻
[1] 賈長云. VB教學之我見[J]. 中國職業技術教育,2004,(2).
[2] 龔沛曾,楊志強. “Visual Basic 程序設計”國家精品課程建設[J]. 中國大學教學2004,(9).
[3] Nell Dale Michael McMillan,史宗海譯. Visual 上機實踐指導教程[M]. 電子工業出版社,2003.
收稿時間:2006-12-27
程序設計實踐范文5
關鍵詞:計算機;C語言程序設計;教學改革;教學實踐
中圖分類號:G433 文獻標識碼:A 文章編號:1672-7800(2012)003-0194-02
作者簡介:劉桂玲(1976-),女,內蒙古赤峰人,碩士,天津職業技術師范大學附屬高級技術學校講師,研究方向為計算機應用技術。
0 引言
C語言是一種結構化語言。它層次清晰,便于按模塊化方式組織程序,易于調試和維護。C語言的表現能力和處理能力極強。它不僅具有豐富的運算符和數據類型,便于實現各類復雜的數據結構,還可以直接訪問內存的物理地址,進行位(bit)一級的操作。C語言在很多方面都可以應用,不僅在軟件開發上,而且在各類科研工作中都是需要用到C語言的。C語言是入門的課程,也是非常重要的課程。
目前,計算機專業的基礎課都會有《C語言程序設計》,可見這門課程的重要性。學習這門課程,可以培養學生的邏輯思維能力以及形成一種程序化的思想。這門課程在內容上并不是很難,但在現實中卻發現,教學效果并不是很理想,很多學生都覺得這門課程枯燥乏味。在這樣的情況下,能學好C語言的學生很少。但我們卻必須要學好這門課程,不然后續的課程會更加難學,或者說幾乎就聽不懂也不會寫。下面我們先分析現實教學中存在的一些問題。
1 C語言教學中存在的問題
一般來說,教學中存在的問題都是包括幾方面的,因為教學是教師和學生共同的活動,即有教師方面的問題,同樣也會有學生方面的問題、教學方法上的問題、教學過程中的問題、水平評價中的問題,還有學科本身特征所導致的一些問題,同樣。硬件設備、教學環境等外在的條件也是教學中存在問題的因素。
正確認識存在的問題,把問題找出來,再根據不同的問題尋找出每一個問題背后的真正原因,然后對癥下藥,就可以把問題解決好。在教學過程中,筆者發現C語言教學主要存在以下幾方面的問題:
(1)在教學的過程中,主要體現為教學方法上的問題?,F在很多教師還采用傳統的較單一的教學方式,過于注重理論知識的講授,在教法上墨守成規,很少有創新,本來內容就比較枯燥的一門課程,如果教師在教學過程中不能使它變得有趣一些,就很難調動學生的積極性和激發學生的興趣和信心。
(2)在教學內容上,教師過于注重C語言的理論教學,也就是對一些概念和語法規則等的教學偏重。概念本來就是比較枯燥的內容,如果過于講概念的話,更容易讓學生對這門課程失去興趣?,F實中的大部分教學都是講理論講語法為主,一個學期可能只有三、四次上機動手實踐,而這門課程很重要的一方面就是動手實踐能力。如果在教學中過少實踐,則很難提升學生的能力,無法達到培養學生程序設計和調試能力的目的,就難以學好C語言。
(3)在水平評價方面,水平評價制度是否合理是否科學,很大程度上就決定著教學質量的好壞。大部分教學都是為了準備考試,考什么就學什么,怎么考就怎么學,怎么教。比如,考試是考筆試、考定義,那么教師就會在平常的教學中注重概念及定義的學習、理解和記憶。如果考的是上機操作,這就要求教師在教學中要注重學生實踐操作能力的培養,注重邏輯思維能力的培養。
2 教學改革建議
2.1 綜合運用各種教學方法
由于C語言課程本身的特性,學生會覺得這門課程比其它的科目更枯燥。其實只要懂得去調動學生的積極性,學生還是會喜歡上這門課程的。在平常的講課過程中,我們要善于運用不同的方法來教學,根據實際需要靈活使用各種不同的教學方法和手段,以求取得好的教學效果。
如數據類型的概念、流程控制、函數的定義與調用、指針的概念等采用教師主導的傳統教學方法會更好一些。但在其它一些方面,如理解性的知識,教師一定要充分利用好教學資源,合理使用多媒體教學,有效彌補傳統教學的不足。可以將難以理解的內容或不容易觀察到的事物用媒體充分顯示出來。如可以借助flas模擬排序,運用多媒體教學事先設計好教學課件。這樣可以節省板書時間、實現資源共享和提高效率。但在多媒體教學環境下,板書設計的重要性被大家弱化了。理論教學主要進行課件的演示,這種方法對剛接觸程序設計的學生是非常不利的。在程序設計的初級階段,教師應該適當地利用板書來講解,因為程序編寫是有思考過程的,利用板書逐步寫出程序,這樣在整個過程中能夠隨意控制需要顯示的內容,并且和語速、回顧、提問等環節有機結合起來.從而促使學生的思路與教師的講解保持同步,而利用課件演示事先編寫好的程序則由于給予學生的思考時間不夠導致學生的印象不深刻,從而導致教學效果不佳。所以在進行理論教學時,要將多媒體與板書設計相結合,充分發揮各自的優點,從而使學生在直觀感受和思維訓練等不同方面都能獲得最好的授課效果。
2.2 注重動手能力的培養
C語言是一門以實際操作為主的科目,學習C語言程序設計應當充分重視實驗環節。很多教師實驗時間安排很少的原因是:還有很多基本語句沒學好,或者說還有很多結構沒有掌握,因此不適合上機操作。在這里,筆者認為教師不應該等到學生把所有要用的知識都掌握了才讓學生去上機,如果學生掌握得慢的話,無形中就壓縮了上機的時間。即使有些語句學生還不會,還是可以讓學生上機,在操作和編程的過程中,學生不但可以鞏固課堂上所講的理論知識,不懂的那部分還可以在操作的過程中通過實踐和摸索自己總結出來。通過不斷去試,得到不同的結果,這種直觀的結果可以讓學生馬上領會到不同的結構不同的語句所產生的效果。這樣的上機操作比單純講理論更有趣更容易。
教師在上實驗課時盡量要求學生多編寫程序,多上機調試程序,從最簡單的編程開始,再慢慢讓學生不斷擴展。上機也不能僅僅為了編程的正確性,更重要的還在于讓學生熟練掌握上機操作要領和調試程序技術,積累編程經驗,加深學生對講授內容的理解。尤其是一些語法規定,光靠課堂講授比較枯燥又難以記住,但它們又很重要,通過多次上機就能自然地熟練掌握。通過上機來掌握語法規則是行之有效的一種方法。
在實際教學中,筆者發現了一個有趣的現象,如這門課程的第一個實驗就是按任意鍵輸出一行字如:你好。這是書本上提供的實驗,在上機過程中發現有的學生把它改成了“我是笨蛋”,編好之后讓同學來測試,結果引起一陣轟笑。其實我覺得這種時候學生能這樣開些玩笑反而更好。不但可以提高上機的趣味性,還能激發他們用C語言來比拼的欲望,一邊玩笑一邊學習,效果將會更好,可激勵學生多創新。
2.3 革新水平評價體系
考核在教學過程中起著非常重要的導向作用,考核是了解學生學習狀況的依據,學生和教師都非常重視。目前計算機專業教育的改革力度很大,但在考核方面,多年來進展不大。《C語言程序設計》課程的考核方式是以筆試為主,考試的重點是語法和基本的邏輯推導能力,忽略了學生對所學知識的綜合應用能力的考核。因此,必須建立以學生解決實際問題能力為考核基準的考核模式,堅持理論教學與實踐相結合,堅持學與用并重,實踐操作應重視創新,培養學生靈活運用知識以及創新知識的能力??己朔绞綉撘詫嵺`和操作為主,筆試為輔,平時的上機操作成績也要納入到期末的水平評價中。在實際教學中發現,學生們更喜歡項目式的考試與平常的作業和上機相結合來定成績,他們認為這樣就減輕了期末考試的壓力,因為很大一部分考核在平時的學習和上機過程中就完成了。
此外,作為教師,在教學的同時也應該不斷提升自己,與時俱進,站在新知識的最前端,這樣才能更好地教授學生知識。如果教師不充電,不提升自己,在講課中將很難體現一個教師的魅力和感染力以及這個教師的知識水平。在這個計算機技術高速發展的社會,不學習新知識只會被社會甩在后面。
3 結束語
《C語言程序設計》是計算機專業的基礎課程,一定要注重程序設計思維的培養,在教學過程中應積極探索符合各層次培養目標的教學方法、教學內容及考核方式。要建立良好的師生關系,充分發揮教師的指導作用,使學生在學習中不僅能掌握編程的知識和技術,還具備利用計算機求解實際問題的基本能力。這才是教學的目的,也是改革的目標。
參考文獻:
\[1\] 謝竟博.C語言程序設計教學中的問題及改革建議\[J\].重慶郵電大學學報,2008(2).
\[2\] 魏青.C語言教學中學生學習興趣的培養\[J\].電腦知識與技術,2010(21).
程序設計實踐范文6
摘要:“C語言程序設計”是計算機學科的一門專業基礎課程,對后繼課程的學習有著較大的影響,提高這門課程的教學質量對于培養學生的編程思想和實際編程能力至關重要。本文針對構建課程體系、規范教學行為、教學改革、教材建設和形成教學團隊等問題進行了探索。通過多年實踐表明,課程建設不僅有利于培養學生學習興趣和學生的實際編程能力,而且有利于師資隊伍的建設和發展。
關鍵詞:C語言程序設計;課程建設;教學質量;教學團隊
中圖分類號:G642
文獻標識碼:B
“C語言程序設計”是計算機專業的必修課和其他理工科學生的重要基礎課程,由于覆蓋面廣、應用廣泛,對于學生的基本編程素質的培養有較大的影響而備受重視。對其掌握的程度如何,直接影響到后繼相關課程的學習和掌握,甚至是整個專業的后繼發展?!癈語言程序設計”的教學目標是培養學生的編程思想和實際編程能力,因此教學、實驗、課程設計和考核等都要圍繞此目標進行[1~3]。在教學過程中,有相當數量的學生反映學習起來比較困難。如何構建課程體系,如何組織教學,如何創新改革,如何進行教材建設和形成教學團隊等都是值得研究和思考的課題[4,5]。為了整體提高“C語言程序設計”課程的教學質量,幾年來,以培養提高學生的實際編程能力為目標,進行了C語言課程建設。經過多年不懈努力,使“C語言程序設計”課程整體教學質量和教學水平有了較大的提高。
1構建新的課程體系
1.1變單一教學目標為多元化教學目標
根據分層次、分類別組織教學的思想,進行教學目標的調整。根據學生層次的不同、根據計算機專業和非計算機專業性質的不同、根據學生學習能力的不同、根據學生自主學習自覺性的差異等,重新制定和修訂理論教學大綱、實驗教學大綱以及課程設計要求等。不同的層次、不同的類別要有不同的要求,體現出教學目標的多元化。這樣的新體系才能更加適合辦學特點和師生具體實際,在對教師教學和學生學習情況的評價上也將更加客觀,可行性和可操作性增強。
1.2變知識灌輸為突出實際編程能力的培養
以程序設計方法為主線、語法和結構為核心,能力培養和提高學習興趣為目標,變應試為應用。本著面向未來的精神,把C語言作為一種實踐工具,不再局限于單純介紹C語言基本語法,而注重培養學生解決實際問題的編程能力,介紹程序設計的基本思想,讓學生從多角度、以多方式掌握程序設計的精髓,培養學生無論以后使用什么語言編程,都能靈活應用這些思想和方法的能力。
1.3變傳統考試模式為新體系下的評價方式
加大對“C語言程序設計”課程教學的質量監控力度,提出對不同專業、不同層次的學生在教學中可以因材施教,實行分層次教學,但最基本的要求是做到“五個統一”(即學大綱、統一課程教學方案、材、統一課時、統一考試),要求所有開設C語言課程的班級都參加全國計算機水平考試或統一命題,從而完全實現教考分離。并要求加強各種聽課、評學評教活動,構建新體系下的課程評價標準。
1.4變課堂教學為主的教學形式為多樣化教學組織形式
突破課堂教學的限制,建立課程學習網站。網絡環境下分類指導、分層教學的教學模式,以提高編程能力為主要目標的各種學習模塊,采取基于學習活動的人機交互、師生交互的互動學習模式,通過建設多種模式和多種學習渠道,構建立體化的學習環境,實現教學中“基礎加專業、實踐加知識、自學加講解、素質加綜合”的有機結合,在客觀上滿足人才培養多樣化、多層次的需求,為學生對課程的學習實踐創造良好的環境,也為教師積極參與課程教學的創新實踐提供廣闊的空間,使優秀教學資源的共享得以實現。
1.5變教師為中心為自主性學習為中心
課程網站內容體系以學習的自主性為基礎,將知識、能力、任務、策略和素質的培養融為一體,確立教師作用的指導性和教學方式的實踐性;以學生為主體,在照顧群體目標的同時,重視個體差異,使學生的個性得以充分發揮;允許水平不同、專業背景不同的學生根據需要達到相應的標準,對學生知識結構的合理構建、綜合運用能力的加強和整體水平的提高將起到良好的推進作用。
1.6變單一課程教學為后繼多課程的基礎教學
由于計算機編程語言的發展,出于為后繼課程,如數據結構和面向對象程序設計等課程提供基礎的考慮,在教學體系中應加強指針和結構體部分的內容。
2從提高學生的實際編程能力出發,規范整個教學過程
2.1規范整個教學過程
對教學內容進行建設。根據新課程體系的要求對教學內容(理論和實驗)進行整理,規范整個教學過程。編寫完整的課堂教學教案;制作完整的教學用PPT,以規范教師基本教學行為;精選大量典型的、針對性強的例題,減少教師教學過程中選擇例題的盲目性,也幫助學生根據自己的情況自行提高;每次實驗內容要有針對性,提高實驗課的效率;對課程設計提出要求,給出樣例和參考課題,規范整個課程設計環節。
精心制作課程教學網站。課程教學網站是對課堂教學進行補充,應該內容豐富、完整,針對性強,可用性好,力求做出自己的特色。除了相關教學內容以外,應制作完整的課程網絡課件,以方便學生復習和自學;應解析學生學習過程中可能遇到的問題,針對考試的考核要點進行分析,整理出若干套有針對性的模擬試題。網上豐富的資源,不僅為學生的自主學習提供保障,而且會使課程建設成果的推廣應用越來越廣闊,師生的利用率也會越來越高。
實時進行教學質量監控。在課程建設過程中,要實時對本課程的教學情況進行教學質量監控。采用集體備課、聽課、評課、說課,開學生座談會,與學生個別交談,發放問卷調查、聽取教學督導的意見和分析考試成績走向等方式,對本課程的教學情況、學習情況進行跟蹤調查。
2.2加強實踐教學環節
重視實踐教學,提高實踐教學效果。實踐教學是學習“C語言程序設計”的重要教學環節。實踐教學由基礎實驗和課程設計兩部分組成。
(1) 基礎實驗
基礎實驗緊密結合課堂教學,其教學目標是加深和鞏固重點概念的理解和簡單應用,掌握程序調試的基本方法,提高調試能力?;A實驗內容分模仿型、測試型和設計型三類,以設計型為主,實驗內容一般難度不大,規模較小。根據教學要求設計基礎實驗,對比較重要的章節應設置兩個基礎實驗(如數組、指針、結構體與共用體類型等),以加強學生對重要內容的掌握程度。
(2) 課程設計
課程設計是對學生的一種全面綜合訓練,是不可缺少的教學環節。通常,課程設計中的問題比平時的習題復雜得多,也更接近實際。課程設計著眼于原理與應用的結合點,使學生學會如何把書上學到的知識用于解決實際問題,培養軟件工作所需要的動手能力;另一方面,能使書上的知識變“活”,起到深化理解和靈活掌握教學內容的目的。平時的習題較偏重于如何編寫功能單一的“小”算法,局限于一個或兩個知識點,而課程設計題是軟件設計的綜合訓練,包括問題分析,總體結構設計,用戶界面設計、程序設計基本技能和技巧,多人合作,以至一整套軟件工作規范的訓練和科學作風的培養。此外,還有很重要的一點是:計算機是比任何教師更嚴厲的檢查者。
為達到上述目的,使學生更好地掌握面向過程程序設計的基本方法和C語言的應用,應給出課程設計樣例和參考課題,引導學生應用結構化程序設計方法, 逐步掌握開發規模較大的C程序的系統方法。每個課題采取統一的格式,由問題描述、基本要求和選做內容等部分組成。問題描述旨在為學生建立問題提出的背景,指明問題“是什么”。基本要求則對問題進一步求精,劃出問題的邊界,指出具體的參量或前提條件,并規定該題的最低限度要求。選做部分向那些尚有余力的學生提出更高的要求,同時也能開拓其他學生的思路,在完成基本要求時就力求避免就事論事的不良思想方法,盡可能尋求具有普遍意義的解法,使得程序結構合理,容易修改、擴充和重用。
3積極開展教學研究,推動教學改革,在創新中提高教學質量
3.1因材施教,實行分層次教學
為了更好調動學生的學習積極性、主動性,達到因材施教的效果,可以將“C語言程序設計”的教學對象分成A、B、C三個層次組織教學。A層次由計算機本科專業學生組成,教學要求更高一些,在傳授知識的同時,加強拓寬基礎,適當加強應用,注重傳授編程思想和培養學生創新思維,著重提高學生的算法設計素養和能力,使他們的個人特長得到發揮。B層次為理工科非計算機專業本科生和計算機專業三年制大專生,按照傳授知識、培養能力、提高素質的要求組織教學;而C層次主要是面對兩年制計算機專業學生,這部分學生因為基礎較差,學習比較困難,在教學要求方面更強調基本概念、基本知識、基本方法的訓練,加強課外輔導,指導學習方法,調動主觀能動性,提高效果,以達到課程教學要求。
在分層次教學中,除了課堂教學更注重因材施教,加強各個教學環節之外,還要利用課程網站提供師生互動平臺,加強課外答疑輔導;強化實踐環節,設計好整個實驗教學的內容;加強課程的總結,幫助學生對每章節內容進行總結、歸納,重點難點分析,典型例題分析及解題能力訓練,提供網上學習環境,供學生課外自學使用。
采用分層次教學形式,將激發和調動學生學習積極性、主動性、自覺性、自信心以及奮發向上的精神,有利于學生的個性發展,營造良好的學風。
3.2教學研究應不斷深入
提高教學質量和水平,是課程建設的永恒主題,也是一個不斷研究、不斷實踐的課題。重視教學研究是高校適應社會發展需求的必然選擇,是學校立足實際,走內涵式發展的必由之路,是學校不斷提高教學質量、實現可持續發展的強大內驅力。因此,教學研究已成為課程建設教師的自覺行動。
(1) 整體把握C語言的課程體系,在教學過程中讓學生理解相關的結構性概念的作用和意義。如在編程語言中為什么會有數組的概念,沒有數組能不能編程,數組的本質是什么,在學習數組內容時重難點在哪里;為什么要有指針一章,沒有指針可以不可以,指針的作用是什么,學習指針的方法應怎樣;為什么要有結構體,沒有這個概念行不行,如果沒有應該怎么做,有什么不方便等,在教學過程中要講透重點和難點。在講解某個具體的典型程序時,講清楚為什么要這樣設計,為什么要定義這么多相關的變量,所使用的算法思想及其實現等??傊嗅槍π缘匕凑仗岣咂渚幊棠芰Φ哪繕诉M行教學。
(2) 注重對典型程序的學習和掌握,提出四個階段的學習方法。每一個典型程序的學習過程應分為四個階段:聽懂到看懂、理解到熟悉、基本掌握到掌握、完全掌握。如果通過學習能夠“完全掌握”課程中的十幾個典型程序,應該說教學是成功的。
教學方法是眾多長期從事C語言教學工作的一線教師經驗的總結,新的教學方法和教學手段將會調動學生主動學習的積極性,只有這樣學生程序設計水平和程序調試能力才能有顯著提高。
(3) 注重課程體系結構的合理性。從提高學生的實際編程能力出發,合理安排各章節的教學內容,突出重點和難點;注重C語言對后繼課程的基礎作用。通過學習不僅使學生掌握C語言的基本語法和規則,還能夠領會結構化程序設計的思想和方法。
4加強教材建設
教材建設是課程建設的重要內容之一,除選用全國優秀教材外,應加強自編教材及輔助配套教材的編寫和課件研制。教材是教學活動雙主體之間溝通的橋梁和工具,是教學改革成果的積淀,是保障教學質量和提高教學效果的關鍵因素。教材集中反映了作者的教育理念,體現了作者的教學指導思想,體現了作者的課程觀、人才觀與價值取向;同時也從一個側面反映了課程的教學模式與質量標準。
對教材編寫要力求體現教學目標的要求,充分考慮教學方法、教學手段和教學模式,對教學要求中的知識點和能力點統籌把握好“增”、“刪”、“減”、“移”、“合”五種策略,做到專業需要、學生狀況、教學條件三者有機結合。實驗教材應注重實際編程能力的培養提高,并配有電子教案,提供例題程序源代碼,以方便學生自學,形成立體化教材。
教材應全面系統地介紹C語言程序設計的基本概念、結構化編程思想和方法以及解決實際問題的技巧,注重C語言在學科中的基礎地位,在整體結構上進行精心思考,對專業發展有影響的部分內容進行側重。從學習者的角度去思考每部分內容,盡可能地貼切學生的接受能力,對可能產生的疑問進行解釋并結合實例進行詳細的分析和說明,力求將復雜的概念用簡潔淺顯的語言來描述,做到深入淺出。
5形成一支結構合理、素質較高的教學團隊
教師是教學質量提高的關鍵。要搞好教學,需要教師的團結協作、集體智慧的發揮,也就是需要一支結構合理,素質較高的教學團隊。教學團隊是以教學水平高、業務造詣深、經驗豐富的教師為主體,配備一定數量的青年教師形成的群體。教學團隊應具備一定的穩定性,而且人員要不斷壯大,內涵不斷充實,教學水平不斷提高。
首先對課程主講教師明確責任,對青年教師實行導師制,在業務上和教學方法上進行一對一的指導,對青年教師實行嚴格考核制度,確保青年教師站穩講臺,教學質量穩步提高。另外為適應新的教育模式,即培養“厚基礎、寬知識、強能力、高素質”人才的要求,教師必須以嚴謹的教學態度、創新的教學思想、寬厚的學術水平和行之有效的教學方法與手段組織教學。教學團隊要講求實效,定期開展教學研討活動,集體研究教學內容、教學方法的改革,不斷探索教學中的新課題,組織編寫教學資料,制訂教學方案,期末進行課程總結,組織聽課等活動,形成一個結構合理、素質較高的教學實體,這是課程整體教學質量不斷提高的組織保證。
通過教學團隊的建設,年青教師的教學水平將得到提高,教學過程得到規范,教育教學的意識得到加強,學歷層次不斷提升,教師的教科研能力明顯增強,教科研立項數量逐年增加,立項級別也將穩步上升。
6教學實踐效果
教學團隊的成員,他們是課程的建設者,也是建設成果的使用者。我院經過多年的實踐,證明了學生對課程的掌握及實際編程能力較建設前有了明顯的提高。從本科生畢業的選題、畢業設計過程及答辯情況來看,學生具備了一定的獨立編程能力,編程能力的提高,應該源于C語言課程的學習。通過對比和分析2006-2008年學生參加全國計算機水平考試的成績,可以看出通過率呈逐年上升趨勢,如下圖。
7結束語
通過對“C語言程序設計”課程的建設,一方面提高了學生的學習興趣,使學生掌握了學習語言課程的方法,培養了學生分析問題與解決問題的能力,學生的實際編程能力有了較大的提高,達到了本課程教學的預期目標,同時學風建設得到了加強;另一方面鍛煉了教師隊伍,逐步形成了教學團隊,使師資隊伍的師德教風、教學水平、教學的規范性都有了較大的提升,也激發了教師參與各種教學研究的積極性。
參考文獻
[1] 譚浩強. C程序設計(第三版)[M]. 北京:清華大學出版社,2006.
[2] 李春葆. C語言程序設計[M]. 北京:清華大學出版社,2007.
[3] 甘玲. 解析C程序設計[M]. 北京:清華大學出版社,2007.
[4] 楊理云. “C語言程序設計”教學方法探索[J]. 中國成人教育,2007,(5):162-163.
[5] 張建珍. C語言教學方法探究[J]. 計算機教育,2007,(09):12-13.
On the Research and Practice of “C Programming Language” Course
GUO You-qiang
(Computer Sci-tech Department, Bengbu College, Bengbu, Anhui 233030)