• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      項目驅動的分組教學法在C語言課程設計中的實踐

      2013-04-29 09:00:58樓軼超
      計算機時代 2013年8期
      關鍵詞:分組教學項目驅動協(xié)作

      樓軼超

      摘 要: 針對C語言實踐教學中存在的問題,提出在C語言課程設計的教學中采用項目驅動的分組教學模式。融合軟件工程思想,從項目設計、分組劃分、模塊化思想應用、編程思想訓練、測試、考核方式等多個方面改革實踐教學環(huán)節(jié),因材施教,使得學生在解決實際問題的過程中,通過分工協(xié)作,提高自主學習能力,培養(yǎng)起團隊合作精神,從而提高教學效果和教育質量。

      關鍵詞: C語言課程設計; 項目驅動; 分組教學; 模塊化思想; 協(xié)作

      中圖分類號:G642 文獻標志碼:A 文章編號:1006-8228(2013)08-65-03

      0 引言

      當今社會,隨著信息技術的高速發(fā)展,各種程序設計語言蓬勃發(fā)展,如C、C++、JAVA、C#等。在這些語言中,C語言是各高等院校的計算機及相關專業(yè)的一門核心基礎課程,它的學習效果會極大程度影響學生后續(xù)相關課程,如數(shù)據(jù)結構、操作系統(tǒng)、算法分析以及其他高級語言的學習。

      作為一種實踐性很強的程序設計語言,C語言課程的教學一般采用理論教學結合上機實踐的模式,理論教學以講授語法和基本算法為主,上機實踐則主要練習簡單程序的編寫,通常以驗證性實驗為主,以掌握、鞏固基礎的語法為目的。從教學效果來看,學生雖然掌握了不少語法知識,但在面對實際問題時,往往不能靈活應用。為了進一步拓展學生的實踐編程能力,我們學院繼兩個學期的C語言教學后開設了“C語言課程設計”課程,該課程以設計性和綜合性實驗為主,重點培養(yǎng)和鍛煉學生獨立分析問題,解決實際問題能力。根據(jù)這一教學目標,我們結合日常教學,針對實踐教學中存在的不足,開展項目驅動的分組教學方法,使學生形成自主和協(xié)作型的學習模式。

      1 教學現(xiàn)狀

      C語言是一種面向過程的結構化程序設計語言,具有數(shù)據(jù)類型較多、表達式豐富、語法結構復雜、語法規(guī)則繁多等特點,其授課對象往往又是第一次接觸程序設計語言的低年級學生,這些都給學生學習和教師教學帶來了難度。通過對學生進行教學效果調(diào)查,發(fā)現(xiàn)在“理論+實驗”的教學模式中,由于課時限制等各種因素,實際教學常存在著如下問題。

      ⑴ 實驗訓練以知識點訓練為主,與實際應用存在脫節(jié)。

      在理論課后的上機練習,通常是針對特定語法設計,形式上采用練習書上的例子、驗證某個語法或者實現(xiàn)一些簡單的相關算法,驗證性實驗占了多數(shù)。這種訓練模式雖然能夠加深學生對各種語法細節(jié)的認識,但同時導致的問題是,學生容易孤立地去看待各章節(jié)的語法,割裂了各知識之間的聯(lián)系,在編程時以模仿改寫書上的程序為主,欠缺工程型知識,處于被動灌輸?shù)膶W習狀態(tài),常常會覺得語法知識點繁瑣、內(nèi)容枯燥,很難調(diào)動積極性,當面對實際工程問題時,程序規(guī)模一大,就束手無策,無法有機地綜合應用所學知識去解決問題。

      ⑵ 沒有形成系統(tǒng)化的分析過程。

      由于教學和教材均側重于對語法進行講授和剖析,未強調(diào)分析及測試的重要性,也沒有將軟件工程的思想融合在實踐教學中,因此,長久以來,學生養(yǎng)成一接觸題目就馬上開始編寫代碼的習慣,并且,運行時往往僅按照預先設定的正確的輸入數(shù)據(jù),去驗證自己的所編的程序是否正確。

      ⑶ 忽略算法邏輯思維能力的培養(yǎng)。

      從學習效果來看,學生常存在著兩種誤區(qū),一種是將參與和獲得計算機等級考試證書作為學習目的,這就導致他們習慣于程序填空題形式的編程方式,獨立編程能力欠缺;一種是對C語言中的指針、遞歸問題存在畏難情緒,又認為就業(yè)時可以選擇其他語言工具如Java來避免這些難點,沒有認識到指針和遞歸的真正價值在于學習它們過程中得到的思維深度[1],忽略了推理能力、抽象思考能力方面的培養(yǎng)。

      ⑷ 實踐操作能力不強。

      學生的實驗操作能力不強主要表現(xiàn)在對程序運行中一些常見編譯問題無法很快做出反應,不會依據(jù)提示信息去判斷發(fā)生錯誤的原因,對一些運行問題更是束手無策,通常一有問題產(chǎn)生,就轉向尋找配套的實驗指導書中所提供的正確答案,或者依賴教師指出問題所在,幫忙改正錯誤。

      2 項目驅動的分組教學方法的具體實施

      建構主義學習理論認為,個體的認知發(fā)展與學習過程密切相關,知識獲取是以學習者為中心,利用“情境”、“協(xié)作”、“會話”等學習要素,通過意義建構的方式而獲得。針對C語言課程設計這一門實踐性非常強的課程,我們采用項目驅動的分組教學方法,在建構主義學習理論基礎上進行教學設計,以學生為中心,融合軟件工程思想,以培養(yǎng)學生的程序設計能力、創(chuàng)新能力、邏輯思維能力和協(xié)作精神為主線,通過項目任務引導他們主動學習,去深入理解軟件設計思想,并加深對重要知識點的理解。為了將課內(nèi)實踐和課外自學有機結合起來,我們將15個學時的上機實踐分為5次,集中安排在5天內(nèi),每次上機后留充足時間,要求學生去查閱資料,提升獲取信息、解讀信息的能力。整個教學過程中,需要在多個教學環(huán)節(jié)注意改革和創(chuàng)新。

      2.1 項目設計

      項目的提出是能否調(diào)動學生學習積極性的關鍵。目前隨著信息化建設的深入,軟件在各個行業(yè)都獲得了廣泛應用,其實際應用領域非常廣泛。課程設計應該提供一個良好的學習“情境”,要結合教學目標,來模擬演練實際軟件開發(fā)過程。項目的設計需要遵循以下幾點:①選擇學生比較熟悉的領域,貼近學生生活和學習方面的應用,避免選擇需要較強專業(yè)背景、業(yè)務邏輯復雜的應用,例如可以選擇學生選課、書籍管理、宿舍管理等,而盡量不要去選擇企業(yè)人事管理之類的應用。這樣可以方便學生理解或完整需求,激發(fā)他們用程序去解決現(xiàn)實生活問題的興趣。②功能上要有層次性,可劃分為一般性要求和可拓展性要求,一般性要求指出必須實現(xiàn)的功能,可拓展性要求則指出可以擴展的功能,引導學生去探索和想象,可以方便開展梯隊型教學。③從項目的編碼實現(xiàn)考慮,要能涵蓋C語言中的結構體或聯(lián)合體等復雜數(shù)據(jù)類型,體現(xiàn)函數(shù)和指針這條主線,以促進學生去綜合運用和深入理解這些重要的知識點。

      2.2 分組劃分

      一個軟件的開發(fā)僅依靠個人力量往往是無法實現(xiàn)的。軟件生命周期的各個階段需要軟件小組開發(fā)人員協(xié)作完成[2],因此,在課程設計教學中,我們采用分組教學模式來培養(yǎng)學生的團隊合作意識和團隊精神,來充分體現(xiàn)合作與競爭、分層教學與因材施教[3],并且還可以通過幫帶方式和組內(nèi)討論消化掉一部分問題。分組是否合理、有效,直接影響協(xié)作模式能否取得良好的教學效果。在C語言課程設計實踐中,我們按照任務量安排人數(shù),學生分為以3-5人一組,按照組內(nèi)搭配合理,組件平衡原則分配,在分組時充分考慮到學生的個體能力差異,使學生能在交流合作過程中取長補短。分組觀點認為組內(nèi)成員之間的合作關系可以有“頭腦風暴”式、模擬課題式、同伴互助式、角色扮演式和組合式[4]。這里,我們可以結合軟件開發(fā)的分工特點,將角色扮演應用到課程設計的分組中,由小組組長擔當開發(fā)經(jīng)理角色,其他人員針對其特長分別擔當需求分析師、架構設計師、開發(fā)人員、測試人員等角色,根據(jù)開發(fā)階段的不同,各成員可以扮演不同類型的角色。

      2.3 培養(yǎng)學生用模塊化思想對實際問題進行分析和設計

      結構化方法強調(diào)以模塊為中心,采用模塊化、自頂向下、逐步求精設計過程。項目驅動的教學要培養(yǎng)學生用模塊化思想思考復雜問題,即將程序劃分成獨立命名且可獨立訪問的模塊,最后裝配集成模塊完成指定的功能。指導過程中,不僅需要糾正學生一接觸題目馬上編碼的習慣,而且需要糾正學生在main方法中編寫所有代碼的習慣,這種方式會使得整個函數(shù)變得龐雜,代碼冗余大,不利于分工協(xié)作,也給閱讀和維護帶來很大的困難。當學生在程序分解主函數(shù)和若干個其他函數(shù)時,發(fā)現(xiàn)常存在著隨意分解、隨心所欲定義函數(shù)的現(xiàn)象,針對這一情況,教師可以先以一個項目為例,如成績管理系統(tǒng),演示模塊的分解過程,說明內(nèi)聚性和耦合性要求[5]。在實際項目應用時,要求學生按功能分解,模塊內(nèi)的函數(shù)做到功能盡量單一,留出接口供其他模塊調(diào)用,一個模塊對應一個文件,便于分工協(xié)作。各小組在完成按模塊劃分的軟件體系結構圖后,才被允許進入下一個詳細設計編碼階段。

      2.4 強化編程思想的訓練,加深對重要知識點的理解

      算法是程序設計的靈魂,教學中需要成功訓練好學生的頭腦,使他們變得足夠熟練、敏捷和靈活,需要訓練學生在多個抽象層次上同時思考問題[1]。因此,實踐過程中,要求學生熟練應用程序流程圖或偽代碼等工具設計算法,在組內(nèi)展開討論,比較不同算法實現(xiàn)方案的優(yōu)劣,以及如何在完成程序的功能基礎上,改善程序結構,優(yōu)化算法,進一步提高運行效率和空間利用率。

      對C語言而言,訓練學生的編程思想,離不開指針、函數(shù)參數(shù)傳遞這些重要概念,是否真正理解這些概念也與能否成為一個優(yōu)秀程序員直接相關。在學生編碼時,可幫助他們建立內(nèi)存模型,通過跟蹤每條語句的執(zhí)行情況,感受不同數(shù)據(jù)類型在內(nèi)存中所占用的空間,直觀地觀察內(nèi)存布局變化、變量的生命周期、變量狀態(tài)的變化等,去深入理解這些概念尤其是指針的本質。

      程序設計的另一目的是要培養(yǎng)學生的操作能力,其中很重要的一點就是提高調(diào)試能力。調(diào)試的方便與否與程序書寫風格密切相關,學生通常不注意代碼的規(guī)范化,出現(xiàn)沒有層次縮進,標記符隨意命名、詞不達意,也沒有必要的注釋等現(xiàn)象,這些給查錯和閱讀帶來了很大的不便,不利于分組模式下的協(xié)作開發(fā)和維護,因此,實踐教學時應該培養(yǎng)學生注意良好程序風格。此外,教學時還需糾正部分學生寫代碼一寫到底的習慣,讓學生認識到程序的編寫是一個調(diào)試-修改-調(diào)試的反復迭代過程,要在多次錯誤或失敗中獲取調(diào)試經(jīng)驗。在學生出現(xiàn)錯誤時,要引導學生根據(jù)錯誤和警告信息,分析辨別是語法錯誤還是邏輯錯誤,并鼓勵學生使用調(diào)試工具,應用斷點跟蹤和對分查找等調(diào)試方法,去主動地發(fā)現(xiàn)和解決問題。

      測試在軟件開發(fā)中占重要地位,軟件測試的工作量往往占軟件開發(fā)總工作量的40%以上。從學生實踐情況調(diào)查來看,測試往往是初學C語言的學生特別容易忽略的,普遍出現(xiàn)一些諸如不重視人機交互界面設計,沒有輸入提示或出錯提示信息,僅使用在預定范圍內(nèi)、滿足預定格式要求的正確數(shù)據(jù)進行測試等問題。項目驅動的教學尤其應該注重培養(yǎng)學生的測試意識,指導學生學會設計簡單的有效測試用例和無效測試用例,并開展組內(nèi)測試和組間測試,以提高測試效率和質量。

      2.5 考核方式改革

      對不容易理解的常量、變量和語句有注釋\&5%\&函數(shù)、變量取名較規(guī)范易懂\&5%\&函數(shù)功能是否滿足功能內(nèi)聚\&15%\&調(diào)試手段\&會單步運行到任何一個語句,查看變量值\&5%\&會斷點調(diào)試\&5%\&總結報告\&用流程圖或偽代碼描述一個函數(shù)的算法\&10%\&有小組分工情況說明和各自的經(jīng)驗總結\&5%\&語言簡練,條理清楚,圖表規(guī)范,附程序清單\&10%\&]

      分組形式的課程設計需采用彈性考核機制,個人考核、組內(nèi)考核和教師考核有機結合方式。課程設計考核成績=個人自我評價(15%)+組內(nèi)評價(35%)+教師評價(50%)。自我評價是促進學生反思的一種有效手段,組內(nèi)評價可以觀察學生組內(nèi)交流協(xié)調(diào)時有沒有突出表現(xiàn),而為避免少數(shù)學生抄襲實驗報告,教師評價采用答辯形式,考核學生的實際操作能力、對數(shù)據(jù)結構設計和算法的理解程度,以及功能和算法上的應用亮點??己说木唧w內(nèi)容和評分標準可以多元化,比如對一個用鏈表實現(xiàn)圖書信息管理系統(tǒng)的項目,可以按表1來指定具體考核標準。

      3 結束語

      本學院的C語言課程設計教學實踐表明,通過項目驅動的分組教學法的實施,能充分調(diào)動學生的學習積極性,學生的編程邏輯性和實踐能力都得到了明顯提高。在模仿實際開發(fā)環(huán)境過程中,學生對項目開展的整個流程和各環(huán)節(jié)的具體要求程有了切實了解,積累了一定的項目開發(fā)經(jīng)驗,培養(yǎng)起了團隊協(xié)作能力。為了能更好地提高學生實踐能力,為他們將來從事軟件開發(fā)工作奠定扎實基礎,我們還需要在今后的實踐教學中繼續(xù)開拓和探索,以期達到更好的實踐效果。

      參考文獻:

      [1] Spolsky J. More Joel on Software: Further Thoughts on Diverse and Occasionally Related Matters that Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune Or Ill Luck, Work with Them in Some Capacity[M].Apress,2008.

      [2] Brooks, Jr. Frederick P., "The Mythical Man-Month", The: Essays on Software Engineering[M]. Anniversary Edition, 2/E, Addison Wesley,1995.

      [3] 時貴英,劉華鎣,李瑞芳.分組協(xié)作教學模式在程序設計課程中的應用[J].長江大學學報自然科學版:理工卷,2010.3:704-705

      [4] 趙琦.分組教學的形式及指導方法.http://www.edu.cn/20010827/208389.shtml.

      [5] Lawrence P S, Pfleeger S L, Atlee J M. Software engineering:theory and practice[M].Pearson Education India,2006.

      猜你喜歡
      分組教學項目驅動協(xié)作
      團結協(xié)作成功易
      協(xié)作
      讀者(2017年14期)2017-06-27 12:27:06
      淺析如何構建初中化學實驗課高效課堂
      未來英才(2016年2期)2016-12-26 13:26:29
      一體化課堂分組教學中確定展示學生的策略
      利用數(shù)學建模提高高等數(shù)學教學效果的研究
      科教導刊(2016年29期)2016-12-12 08:01:50
      分組教學在中學體育教學中的實施研究
      依托工作室的軟件工程實踐教學研究
      基于物聯(lián)網(wǎng)項目驅動的嵌入式系統(tǒng)教學改革的研究與實踐
      基于“紅色之旅”項目驅動的《調(diào)酒與咖啡》工作室制人才培養(yǎng)機制探討
      文理導航(2016年30期)2016-11-12 14:46:39
      試論基于項目驅動的機械制圖教學改革
      西青区| 旺苍县| 榆社县| 中方县| 建平县| 万盛区| 克拉玛依市| 西青区| 泾源县| 安国市| 长泰县| 阜宁县| 奉化市| 鱼台县| 延庆县| 金坛市| 安图县| 长春市| 神池县| 南宁市| 牟定县| 吉木萨尔县| 双峰县| 普定县| 武强县| 吴忠市| 新密市| 霍城县| 泰来县| 清新县| 奉节县| 五台县| 麦盖提县| 高邑县| 伊春市| 杭锦旗| 镇远县| 峨边| 察雅县| 酉阳| 莱州市|