• 
    

    
    

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

      ?

      案例教學法在理論教學與實踐教學間的應用

      2018-04-24 12:14董玉蓉
      中國教育技術裝備 2018年20期
      關鍵詞:C語言程序設計理論教學計算思維

      董玉蓉

      摘? 要 針對新工科背景下程序設計課程中理論教學與實踐教學脫節(jié)的現(xiàn)象,在C語言程序設計課程教學中引入案例教學法,架起理論教學與實踐教學間的橋梁。并以明確的教學內容和目標為依據(jù),設計以學生為中心、以問題為導向、以討論為基礎的案例教學環(huán)節(jié),提高學生學習興趣和主動性,最終達到提高計算思維和編程能力的目的。

      關鍵詞 計算思維;案例教學;C語言程序設計;理論教學;實踐教學;教學改革

      中圖分類號:G642.41? ? 文獻標識碼:B

      文章編號:1671-489X(2018)20-0131-04

      Application of Case Teaching in Theoretical Teaching and Prac-tical Teaching//DONG Yurong

      Abstract In view of the disconnection between theoretical teaching and practical teaching in the course of program design in the back-ground of new engineering, this paper introduces the case teaching method in the course of C Language Programming, and sets up a bri-

      dge between theoretical teaching and practical teaching. And on the basis of the teaching contents and target, the design of case teaching link with student center, issue-oriented and issue-based, to improve students interest and initiative in learning, and to improve the ability

      of computational thinking and programming.

      Key words computational thinking; case teaching; C language pro-gramming; theoretical teaching; practical teaching; teaching reform

      1 背景

      新工科跨越了現(xiàn)有學科的界限和產業(yè)邊界,是對傳統(tǒng)學科的整合,是面向為了新技術和新產業(yè)發(fā)展的學科[1]。新工科背景下的高等教育強調通識教育對專業(yè)教育的支持,包括加強基礎科學教育,使學生對各種新技術的科學基礎有扎實的理解,對學生適應日后新技術和新產業(yè)的快速發(fā)展和變化十分重要。

      計算思維是思維三大模式之一,現(xiàn)已成為所有大學生應該具備的能力。C語言程序設計作為非計算機專業(yè)的通識教育課程,是后續(xù)相關專業(yè)課程的基礎。該課程通過面向過程的程序設計方法,培養(yǎng)學生計算思維和程序實現(xiàn)能力,從而能更好地利用計算機科學與技術解決各個專業(yè)領域的相關計算和信息處理問題。

      當下很多高校進行課程改革,壓縮了程序設計課程的課時,因此,如何在有限的教學課時內完成教學內容、實現(xiàn)總體的教學目標,成為授課教師亟待解決的難題,而在新工科背景下進行的教學改革會使這個問題越來越嚴峻。當前強調計算思維能力的程序設計類課程改革大都基于MOOC+SPOCs+翻轉課堂的混合式教學模式[2]。這類教學改革改變了傳統(tǒng)教學中“滿堂灌”現(xiàn)象,使得學生學習不受時間、空間的限制,同時對教學資源進行了合理規(guī)劃和有效利用,并對教學內容進行了優(yōu)化。混合式教學方法雖然能夠很好地解決教學課時不足的問題,但由于在線學習對學生學習的主動性和自主性要求很高,對一些學習基礎薄弱、學習興趣不高、目標不明確并缺乏獨立思考和自我激勵的學生而言,這種教學模式并不能很好地幫助他們完成課程學習,提高課程成績。

      C語言程序設計教學一直以來都由理論教學和實踐教學兩個部分組成。理論教學是知識的傳遞過程,主要是由教師到學生的單向傳遞,是對學生知識的增量;實踐教學是知識的應用、經驗的積累過程,是對學生綜合能力的鍛煉。C語言程序設計是實踐性很強的一門課程,強調理論應用到實踐,該課程的學習必須通過大量的編程和程序調試訓練,在實踐中掌握編程知識,培養(yǎng)編程能力,并逐步理解和掌握程序設計的思想、方法和技巧。對于大多數(shù)學生來說,上課時聽得懂、跟著老師會做題,并不是真正的懂、真正的會。在線學習雖然能夠將教學過程重現(xiàn),幫助學生再次進行深度學習,但仍然有學生只是掌握了語法知識和常用的算法,即使想到了解決方法,也無法將其描述成適合計算機執(zhí)行的步驟。理論知識不能解決實際的問題,造成理論學習和上機實踐脫節(jié),讓學生越來越覺得編程很難,從而影響到學習后續(xù)內容的興趣和主動性。

      2 案例教學:理論教學與實踐教學的橋梁

      案例教學是一種開放式、互動式的教學方法[3-4],是在理論教學和實踐教學之外,啟發(fā)學生對問題的思考、討論和進一步探索,能對知識結構進行整合,幫助學生在案例實施過程中通過同伴之間的討論和交流,提升計算思維和編程實現(xiàn)能力。案例教學的目的是完成教學任務,基于問題和探索問題是這種教學方法的核心特點[5]。

      理論教學是知識傳遞的過程,實踐教學是知識應用、經驗積累的過程。案例教學是對知識結構的整合、經驗交流與學習的過程,能在理論教學和實踐教學之間起到橋接的作用。因此,如何在課程教學計劃設計、案例設計時使得理論教學、實踐教學、案例教學達到平衡,是授課教師需要考慮的首要問題。

      案例教學以學生為中心,關鍵在于“學”,要避免在學生沒有理論基礎和實踐經驗的情況下開展案例教學。教師是案例的設計者。在案例實施過程中,教師所扮演的是引導者和主持人的角色,避免成為問題的解答者和答案的仲裁者;學生是案例實施的主角,教師將學的主動權交給學生,通過案例中的問題激發(fā)學生學習的興趣,引起學生之間的討論。在整個過程中,教師適當?shù)囊龑Ш蛯W生行為的約束是很有必要的,能夠保證教學環(huán)節(jié)有序按計劃進行,完成教學內容,達到理想的教學目標。

      案例設計是案例教學的基礎,案例的好壞直接關系到案例教學能否順利地進行,能否達到預期的教學目標。需要注意的是,C語言程序設計的教學內容并不都適合進行案例教學。因此,案例的選擇不僅要考慮教學計劃、教學內容、教學目標和教學對象,還要結合案例教學的特點來選擇。案例選擇要做到描述簡潔、正確,盡量選擇一些典型問題的求解,以便學生掌握程序設計所需的各類基本問題的算法。案例中提出的問題要有針對性,要使學生能夠將所學的理論知識進行綜合應用,聯(lián)系實際問題進行綜合分析、設計算法和編程實現(xiàn),避免學生在學習過程中感覺知識點零散繁雜,同時避免將綜合性的課程實習當成案例。

      案例教學強調學生的主動參與,學生可以選擇分組或者是在全班進行討論。與傳統(tǒng)課堂教學中知識由教師向學生的單向傳遞相比,同伴之間的交流會讓學生更加舒適和放松,更有利于學生之間多向的經驗交流和分享。討論的過程也是知識、經驗、認知的碰撞。問題的提出、分析和解決,都是在同一個知識水平上進行(盡管有的學生學得好,有的學生學得不好,但地位的平等會讓學生更加貼近,容易交流),問題的提出和解決方法的描述,用他們的方式和語言更加容易讓伙伴理解和接受,學生也更容易在同伴而不是教師那里接受到經驗。

      教學總結對任何一種教學方法、任意一門課程來說都是一個重要的環(huán)節(jié)。案例教學中的教學總結可以是教師對教學實施過程的總結性評價,也可以是學生對自己所聽、所想、所學的總結。教學總結有助于教師改進教學案例、完善教學設計,還能夠提升學生學習中的認知水平,增強教學效果。

      3 案例教學設計

      學習程序設計,理解計算機解決問題的方式很重要,要知道計算機擅長和不擅長做什么。想要編寫程序,首先要能夠讀懂程序,能對已有的程序進行模仿,會套用已有的程序?,F(xiàn)有的經典算法,內含一些基本問題的解決方法和思路,通過在基本問題的基礎上增加復雜的條件,幫助學生熟練掌握并學會使用這類算法,能夠使學生在碰到相似問題時快速找到解題思路,節(jié)省時間,降低問題的難度和復雜度。在實際應用中,適應C語言程序設計的案例教學可以簡化為三個步驟:案例設計、教學實施、教學總結。

      案例設計? 為了能夠讓學生在學習完算術運算符、數(shù)據(jù)類型、三大控制結構、基本輸入輸出之后,強化對理論知識的理解和掌握,能夠熟練應用并編寫相應的程序去解決實際生活中的問題,本文設計了一個有關循環(huán)結構應用的案例,由淺至深、由簡到繁,從簡單需求入手,逐步將程序完善,適用于解決更復雜的問題。

      循環(huán)結構是程序設計的三大控制結構之一,學生在學習該結構之前已經學習了運算符、輸入輸出、順序結構、選擇結構的語法知識,并上機編程實踐了簡單的程序。循環(huán)結構的語法知識難度和復雜程度都要大于前兩種結構,并且從循環(huán)結構開始就要使用枚舉法、二分法、選擇排序、冒泡排序等常用算法。學生在理論知識學習之后直接進行上機實踐難度較大,此時就需要教師結合教學目的和教學內容設計合理的案例教學來激發(fā)學生興趣,正確引導學生思考。在案例選擇時,選擇小而經典的算法,能使學生更好地掌握和理解計算思維。

      下面兩個程序的功能分別是使用枚舉法和輾轉相除法來判斷輸入的整數(shù)是否為素數(shù)。

      枚舉法:

      #include

      void main()

      {

      int x;

      int i;

      int primes = 1;? //? x是素數(shù)

      printf(“請輸入一個整數(shù):”);

      scanf(“%d”, &x);

      for ( i=2; i

      {

      if ( x % i == 0 )

      {

      primes = 0;

      break;

      }

      }

      if (primes == 1 ) printf("是素數(shù)\n");

      else printf("不是素數(shù)\n");

      }

      輾轉相除法:

      #include

      void main()

      {

      int x;

      int i;

      int primes = 1;? //? x是素數(shù)

      printf(“請輸入一個整數(shù):”);

      scanf(“%d”, &x);

      for ( x=1; x<=100; x++ )

      {

      for ( i=2; i

      {

      if ( x % i == 0 )

      {

      primes = 0;

      break;

      }

      }

      if (primes == 1 )? printf(“%d “, x);

      }

      printf(“\n”);

      }

      問題1:比較兩個程序,哪段程序最優(yōu)?為什么?

      問題2:試著找出其他能夠判斷素數(shù)的方法,并將該方法描述出來。

      擴展1:輸出100以內的素數(shù)。

      擴展2:輸出前50個素數(shù)。

      思考題:需要幾層循環(huán)?每一層循環(huán)變量能不能設置成一樣?循環(huán)的次數(shù)是多少次?如何讓程序效率更高?在沒有計算機的情況下,如何知道你的算法是正確的?

      該案例是在經典問題上增加了難度,由淺入深;是對經典問題的擴展,更貼近實用;要求學生不僅學會方法,更要領會思路;讓學生能夠掌握變量分析法,在脫離計算機的情況下也能編寫出正確的程序,理解算法真正的含義。該案例的教學實施是在循環(huán)結構理論教學結束之后。通過本次案例教學,有助于學生對三大控制結構的整合,能夠對之前所學理論知識進行固化,加強知識從理論到實踐轉換。

      教學實施? 教學實施以討論為基礎,是案例教學的核心環(huán)節(jié)。學生是關注的中心和主角,對于同一個案例,不同的學生會有不同的關注點。在問題1的討論中,學生關注點主要集中在程序中表達式的復雜程度、循環(huán)的次數(shù)、語句的條數(shù)、能否讀懂、算法的步驟、流程圖是否容易畫出等方面。問題2在問題1的基礎上增加難度的同時,考查了學生對算法描述方法的掌握程度,該問題沒有標準答案,學生只要能用一種方法正確地描述出算法,就算是回答了。

      擴展1和擴展2是對兩個已有的程序進行擴展,很多學生在看到題目之后馬上開始寫代碼,并有強烈的上機實踐的欲望,這時教師就要提醒學生注意后面的幾個思考題。

      對于同一個問題,學生也能提出不同的解決方法,不同的方法又會有不同的步驟,就會形成不同的算法,而同一個算法又會有不同的描述。在討論過程中沒有設定標準答案,學生要在討論過程中對比不同的方法、算法和描述,對算法進行分析,可以從循環(huán)執(zhí)行的次數(shù)、程序的語句行數(shù)、程序的可讀性、輸出結果是否美觀等方面進行比較,找出最優(yōu)的解決方案。學生之間多向的知識和經驗的碰撞,要比教師單向的知識傳遞和教師與學生之間雙向的討論產生的效果更顯著,學生也更樂于向同伴而非教師尋求幫助。

      教師作為整個教學環(huán)節(jié)的設計者、引導者和主持人,在課堂上要適時地引導案例討論的進程,控制課堂討論進度,必要時進行提示和提問,避免討論過于發(fā)散。學生在討論過程中可以加入自己的需求,試圖讓問題得到更合理、完善的解決,極大地調動積極性;也學會使用計算機編程去解決現(xiàn)實中的實際問題,進而提高計算思維能力。對案例不設置標準答案,也沒有明確的指示性答案,只要能編程實現(xiàn),能解決問題,就是一個好的程序。

      在案例教學實施過程中,教師特別要注意那些能力不符合案例教學要求的學生,要能夠及時做出調整和正確的引導,以免影響他們學習的積極性和主動性。

      教學總結? 教學總結是案例教學的重要環(huán)節(jié)。教學總結可以是教師對案例中的難點、重點的強調解析,也可以是學生對未解決或發(fā)現(xiàn)的新問題的提問。有學生提出:前50個素數(shù)輸出之后,在終端會由一行顯示,這樣的結果不利于查看和進一步分析。有學生就提出:可以讓這些數(shù)分成五行顯示。五行顯示后又發(fā)現(xiàn)數(shù)有大有小,各行長短不一,輸出也很難看,那么為什么不讓五行的長度一樣呢?怎樣才能讓五行長度一樣呢?這些問題是在平時的編程中很容易出現(xiàn)的,看似很簡單,可沒有細致的觀察提不出問題,沒有經驗的積累也無法解決問題。發(fā)現(xiàn)問題是能力,分析問題、解決問題也是能力。學生提出的問題和感興趣的內容可以在考試中出現(xiàn),這對學生的學習也是一種激勵。

      4 結語

      筆者結合從事C語言程序設計課程教學的經驗,通過在理論教學和實踐教學之間引入案例教學,幫助學生將零散的知識融入已經掌握的知識體系中去。教學實踐表明,通過學生之間的討論,能夠調動學生學習的興趣和主動性;學生在教學實施過程中從問題到答案,逐步經過問題抽象、計算建模、編程實現(xiàn),這一過程恰恰是計算思維中最重要的三個思維過程——抽象、分解與組合;通過學生之間多向的經驗交流和共享,幫助學生提高編程能力,而編程能力的提高直接反映了學生計算思維能力的提高。■

      參考文獻

      [1]林建.面向未來的新工科建設[J].清華大學教育研究,

      2017(2):26-35.

      [2]戰(zhàn)德臣.“大學計算機”“MOOC+SPOCs+翻轉課堂”混合教學改革實施計劃[J].計算機教育,2016(1):12-16.

      [3]蘭霞萍,陳大超.案例教學的問題與出路[J].教學與管理,2017(4):1-4.

      [4]丁海燕,袁國武,周小兵,等.高級語言程序設計案例教學模式的探討[J].計算機教育,2011(8):65-68.

      [5]王名.如何進行案例教學[EB/OL].[2006-07-19].http://

      case.sppm.tsinghua.edu.cn:9090/ggalzx/detail_wh.jsp?

      boardid=12&pageno=1.

      猜你喜歡
      C語言程序設計理論教學計算思維
      和諧教學法在高校思想政治理論教學中的實踐與探索
      以“學生為中心”的《C語言程序設計》教學設計探究
      嵌入式系統(tǒng)課程“中斷、異常與事件”教學實踐及啟示
      程序設計課程中計算思維和應用能力培養(yǎng)問題研究
      民族高校C語言程序設計課程教學改革的研究
      基于翻轉課堂的《C語言程序設計》課程教學系統(tǒng)的實現(xiàn)與研究
      淺談《C語言程序設計》課程的教學改革
      算法的案例教學探析
      淺談藝術專業(yè)學生計算思維能力的培養(yǎng)
      《C語言程序設計》課程的教學改革與實踐
      噶尔县| 台南县| 黑山县| 余江县| 西和县| 衡水市| 黎城县| 肥乡县| 宁安市| 济南市| 仙桃市| 尖扎县| 柘荣县| 遂宁市| 自贡市| 武定县| 金沙县| 那坡县| 延川县| 台湾省| 巫溪县| 武安市| 华阴市| 湖北省| 左权县| 惠安县| 拉萨市| 恩施市| 灵石县| 安远县| 洪湖市| 晋宁县| 南皮县| 泸定县| 赤峰市| 平潭县| 库车县| 望城县| 丰台区| 临海市| 新巴尔虎右旗|