国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

高級(jí)語(yǔ)言程序設(shè)計(jì)案例教學(xué)模式的探討

2011-12-31 00:00:00丁海燕袁國(guó)武周小兵白孟堯
計(jì)算機(jī)教育 2011年8期


  摘要:針對(duì)計(jì)算機(jī)專(zhuān)業(yè)高級(jí)語(yǔ)言程序設(shè)計(jì)課程的教學(xué)中存在重語(yǔ)法、輕程序設(shè)計(jì),以及初學(xué)者感到概念抽象難懂,學(xué)習(xí)效果不佳,動(dòng)手能力不強(qiáng)的現(xiàn)狀,根據(jù)程序設(shè)計(jì)的特點(diǎn),結(jié)合C語(yǔ)言程序設(shè)計(jì)的教學(xué)體系,本文提出了在程序設(shè)計(jì)教學(xué)中引入案例教學(xué)法的觀點(diǎn),案例教學(xué)不同于教學(xué)案例,本文分析案例教學(xué)的真正含義,給出C語(yǔ)言案例教學(xué)模式的思路,并以實(shí)例說(shuō)明在C語(yǔ)言教學(xué)過(guò)程中如何實(shí)施案例教學(xué),在高級(jí)語(yǔ)言程序設(shè)計(jì)課程中取得了良好的教學(xué)效果。
  關(guān)鍵詞:案例教學(xué);教學(xué)模式;C語(yǔ)言;程序設(shè)計(jì)
  
  C語(yǔ)言具有豐富的運(yùn)算符和數(shù)據(jù)類(lèi)型,便于實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu),而且通過(guò)位運(yùn)算和指針還可以直接訪問(wèn)內(nèi)存的物理地址,既可以開(kāi)發(fā)應(yīng)用軟件也可以開(kāi)發(fā)系統(tǒng)軟件,由于其強(qiáng)大的功能和優(yōu)點(diǎn),成為計(jì)算機(jī)及相關(guān)專(zhuān)業(yè)首選的高級(jí)程序設(shè)計(jì)語(yǔ)言之一。然而,由于C語(yǔ)言涉及的概念和規(guī)則繁多,指針使用靈活,初學(xué)者普遍反映概念抽象、學(xué)習(xí)困難, 期末考試不及格率高,實(shí)際掌握的情況并不理想。因此如何改進(jìn)教學(xué)方法,以激發(fā)學(xué)生的學(xué)習(xí)興趣和自主性,增強(qiáng)動(dòng)手能力和編程能力,是計(jì)算機(jī)教育工作者值得思索的問(wèn)題。
  1案例教學(xué)法的含義
  傳統(tǒng)的程序設(shè)計(jì)教學(xué)過(guò)程中也通過(guò)使用各種例題來(lái)講解和說(shuō)明語(yǔ)法和知識(shí)點(diǎn),但教學(xué)方法還存在諸多不足,例如“老師講、學(xué)生學(xué)”的單向式教學(xué)模式,以及重語(yǔ)法、輕程序設(shè)計(jì)能力,或者把案例教學(xué)等同于教學(xué)案例,沒(méi)有掌握案例教學(xué)的本質(zhì),學(xué)生學(xué)完該課程以后知識(shí)點(diǎn)零散,缺乏系統(tǒng)性,不具備良好的軟件開(kāi)發(fā)能力。因此我們必須轉(zhuǎn)變教學(xué)觀念,進(jìn)一步研究面向研討型課程的案例教學(xué)模式。
  案例教學(xué)是目前國(guó)內(nèi)外比較流行的一種教學(xué)方法,被普遍應(yīng)用于醫(yī)學(xué)、法學(xué)和管理學(xué)等學(xué)科的教學(xué)[1]。所謂案例教學(xué)模式是一種互動(dòng)式的教學(xué)方法,以對(duì)案例的分析解決為主線,教學(xué)內(nèi)容圍繞案例的討論、分析逐步展開(kāi),通過(guò)對(duì)案例中的問(wèn)題進(jìn)行分析,激發(fā)學(xué)生的求知欲,調(diào)動(dòng)學(xué)生的積極性,使學(xué)生主動(dòng)地思考,掌握其原理和方+9SAgVk0BGUnV//j8yo78PZ3eYDF59kN+/oVnr5bQ2Y=法,教師適時(shí)引導(dǎo)和評(píng)判,讓學(xué)生充分討論并發(fā)表各自的見(jiàn)解,最后推導(dǎo)出結(jié)論[2]。通過(guò)案例教學(xué)法在C語(yǔ)言教學(xué)中的應(yīng)用可以實(shí)現(xiàn)啟發(fā)式教學(xué),更好地激發(fā)學(xué)生的學(xué)習(xí)興趣和參與的積極性,同時(shí),有利于學(xué)生掌握理論知識(shí),并運(yùn)用知識(shí)解決軟件開(kāi)發(fā)中的實(shí)際問(wèn)題,提高編程水平和能力。
  2設(shè)計(jì)C語(yǔ)言案例是案例教學(xué)的基礎(chǔ)
  在傳統(tǒng)的C語(yǔ)言的教學(xué)方法中,教師通常是先講解語(yǔ)法規(guī)則,再舉例說(shuō)明。而案例教學(xué)法則要求先設(shè)計(jì)案例,然后教師和學(xué)生一起分析討論,由案例引出新的知識(shí)點(diǎn),教師再根據(jù)案例的情景要求講解新的知識(shí)點(diǎn)[1]。因此教學(xué)案例是實(shí)現(xiàn)案例教學(xué)法的前提和基礎(chǔ),教學(xué)案例并不是簡(jiǎn)單的舉例,要求案例所涉及的知識(shí)點(diǎn)要能涵蓋該課程的絕大部分知識(shí),并且具有目的性、系統(tǒng)性、針對(duì)性、可實(shí)踐性和啟發(fā)性。以下從三方面介紹如何選擇案例進(jìn)行教學(xué)。
  2.1選擇小型經(jīng)典案例,掌握算法思想
  程序設(shè)計(jì)的關(guān)鍵是算法設(shè)計(jì),C 語(yǔ)言課程的根本目的在于使學(xué)生掌握程序設(shè)計(jì)的基本方法。因此,教師要培養(yǎng)學(xué)生以算法為中心的思維方式。很多C語(yǔ)言教材大多注重于語(yǔ)法規(guī)則、語(yǔ)句的介紹,缺乏生動(dòng)、實(shí)用的例題。我們知道,興趣是最好的老師,為了使學(xué)生能盡快地掌握C語(yǔ)言的語(yǔ)法,進(jìn)入計(jì)算機(jī)編程領(lǐng)域,在教學(xué)過(guò)程中,應(yīng)當(dāng)選用具有趣味性、實(shí)用性的例題,如“雞兔同籠問(wèn)題”、“求水仙花數(shù)”,吸引學(xué)生的興趣,使學(xué)生體會(huì)到編程的成就感。教學(xué)內(nèi)容的進(jìn)度安排應(yīng)當(dāng)采用循序漸進(jìn)的方式,圍繞數(shù)據(jù)類(lèi)型、運(yùn)算符、表達(dá)式、輸入和輸出函數(shù)、常用庫(kù)函數(shù)、選擇和循環(huán)控制語(yǔ)句、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體、共用體、文件這條主線來(lái)開(kāi)展教學(xué),通過(guò)案例來(lái)闡述理論和常見(jiàn)算法。在C語(yǔ)言中常見(jiàn)算法有:1)連加與連乘,對(duì)于連加/連乘的問(wèn)題, 常采用循環(huán)實(shí)現(xiàn),可用1+2+……100或n!的例子進(jìn)行說(shuō)明。2)數(shù)的算法,如素?cái)?shù)、同構(gòu)數(shù)、水仙花數(shù)、最大公約數(shù)等。3)排序,排序是一維數(shù)組很重要的應(yīng)用之一。常見(jiàn)的有冒泡排序和選擇排序,通過(guò)雙重循環(huán)分別控制比較的趟數(shù)和每趟比較的次數(shù)。4)找出一維或二維數(shù)組的最大值、最小值及其下標(biāo),也是通過(guò)循環(huán)來(lái)實(shí)現(xiàn)的。5)與字符串有關(guān)的算法,例如:從字符串中刪除某指定的字符;字符串的合并;比較字符串的大??;計(jì)算字符串的長(zhǎng)度;將字符串中的內(nèi)容逆置等。通過(guò)這些案例,使學(xué)生熟練掌握各種常見(jiàn)問(wèn)題的解題方法和步驟,即掌握編程的核心——算法,增加學(xué)習(xí)信心、提高學(xué)習(xí)興趣,并為以后軟件開(kāi)發(fā)奠定基礎(chǔ)。
  2.2選擇常見(jiàn)出錯(cuò)案例,提高上機(jī)編程能力
  任何一門(mén)編程語(yǔ)言的學(xué)習(xí),都離不開(kāi)上機(jī)實(shí)踐操作,上機(jī)實(shí)踐是培養(yǎng)程序設(shè)計(jì)能力和程序調(diào)試能力的重要途徑,只有通過(guò)大量的編程實(shí)踐才能逐步提高編程能力。C語(yǔ)言的教學(xué)目標(biāo)就是使學(xué)生掌握C語(yǔ)言的語(yǔ)法,掌握結(jié)構(gòu)化程序設(shè)計(jì)方法, 能夠編寫(xiě)、調(diào)試和運(yùn)行規(guī)范、可讀性好的C程序[3]。離開(kāi)了上機(jī)調(diào)試, 程序設(shè)計(jì)將成為“紙上談兵”。只有在不斷地改正程序錯(cuò)誤的過(guò)程中才能充分掌握語(yǔ)法知識(shí),領(lǐng)悟算法思想,培養(yǎng)出結(jié)構(gòu)化編程的思維方法。因此,加強(qiáng)上機(jī)實(shí)踐,提高學(xué)生的實(shí)踐能力是改善教學(xué)效果的主要途徑之一。
  然而初學(xué)者由于對(duì)C語(yǔ)言的語(yǔ)法以及編程的邏輯思維方式還不熟悉,往往檢查不出程序中的錯(cuò)誤。一個(gè)源程序中的錯(cuò)誤分為語(yǔ)法錯(cuò)誤、邏輯錯(cuò)誤、算法錯(cuò)誤、和運(yùn)行錯(cuò)誤。通過(guò)編譯可以排除語(yǔ)法錯(cuò)誤,其他三類(lèi)錯(cuò)誤,可以借助C語(yǔ)言的調(diào)試工具來(lái)查找。為了提高學(xué)生調(diào)試程序的能力,可以選擇一些上機(jī)經(jīng)常遇到的錯(cuò)誤案例,讓學(xué)生自己調(diào)試程序并改正錯(cuò)誤,然后分析和總結(jié)錯(cuò)誤類(lèi)型和原因,從而不斷提高學(xué)生的算法設(shè)計(jì)能力。例如:求數(shù)組中的最大值及最大值的下標(biāo)。
  
  main()
  { int a[4],max,i,m;
  for(i=0;i<4;i++) scanf(“%d”,&a[i]);
  max=a[0];
  for(i=1;i<4;i++) if(a[i]>max) {max=a[i]; m=i;}
  printf(“%d %d”,max,m);}
  
  這個(gè)程序僅當(dāng)最大值為第一個(gè)數(shù)運(yùn)行結(jié)果不對(duì),讓學(xué)生分析出錯(cuò)原因,若第一個(gè)數(shù)就是最大值的話,則if語(yǔ)句的條件從未成立,因此m=i;沒(méi)有被執(zhí)行過(guò)。而下標(biāo)變量m沒(méi)有賦初值,系統(tǒng)隨機(jī)賦了初值,導(dǎo)致結(jié)果錯(cuò)誤。因此應(yīng)當(dāng)在循環(huán)外首先給m 賦初值0。再例如:int a=5; printf(“%f”,a);會(huì)出現(xiàn)運(yùn)行時(shí)錯(cuò)誤。因?yàn)閍是整形變量,但輸出格式說(shuō)明符%f卻是實(shí)型數(shù)據(jù),正確的寫(xiě)法是int a=2; printf(“%d”,a);通過(guò)讓學(xué)生調(diào)試運(yùn)行這個(gè)錯(cuò)誤案例,分析出錯(cuò)原因,學(xué)生可以總結(jié)出: 在輸入/輸出函數(shù)中,輸入/輸出參數(shù)的個(gè)數(shù)與類(lèi)型必須要與格式說(shuō)明符一致。
  通過(guò)分析、調(diào)試錯(cuò)誤案例, 有利于學(xué)生在問(wèn)題的切磋、琢磨中明辨是非,加深對(duì)知識(shí)的理解,從而使學(xué)生的程序設(shè)計(jì)能力螺旋式上升。由此可見(jiàn),案例教學(xué)正是從實(shí)踐中的問(wèn)題出發(fā),啟發(fā)和引導(dǎo)學(xué)生去積極思考,經(jīng)過(guò)分析討論,最后又重新歸結(jié)到問(wèn)題的解決之上,這種主動(dòng)獲得知識(shí)的方式完全不同于“填鴨式”的被動(dòng)學(xué)習(xí)。
  2.3選擇綜合性案例,將知識(shí)轉(zhuǎn)化為能力
  在教學(xué)案例的選擇上還要注重系統(tǒng)性,要能夠體現(xiàn)知識(shí)點(diǎn)之間的聯(lián)系。例如要處理多個(gè)相同類(lèi)型的變量,就引入了數(shù)組的概念,通過(guò)計(jì)算班上某一門(mén)課程10位同學(xué)的平均分的程序引入一維數(shù)組的知識(shí)點(diǎn), 再用通過(guò)實(shí)現(xiàn)10位同學(xué)3門(mén)課程計(jì)算每個(gè)人的平均成績(jī)來(lái)引入二維數(shù)組的知識(shí)點(diǎn); 若每個(gè)學(xué)生都有學(xué)號(hào)、姓名、性別和多門(mén)課程的成績(jī),要處理這些類(lèi)型不相同的數(shù)據(jù)項(xiàng),就需要引入結(jié)構(gòu)體,逐漸增加問(wèn)題的難度,編寫(xiě)函數(shù),實(shí)現(xiàn)成績(jī)查詢(xún)、成績(jī)統(tǒng)計(jì)、求平均值、利用結(jié)構(gòu)體鏈表實(shí)現(xiàn)學(xué)生記錄的添加、刪除、插入、查詢(xún)等操作; 學(xué)習(xí)文件時(shí), 通過(guò)將學(xué)生的信息保存到磁盤(pán)文件中的程序或者從磁盤(pán)文件中讀入學(xué)生信息進(jìn)行處理的程序,使學(xué)生掌握有關(guān)文件打開(kāi)與關(guān)閉、讀寫(xiě)等函數(shù)的使用[4]。通過(guò)這樣循序漸進(jìn)設(shè)計(jì)教學(xué)案例,最終設(shè)計(jì)出一個(gè)簡(jiǎn)單的學(xué)生信息管理系統(tǒng)程序設(shè)計(jì),使學(xué)生很容易地掌握案例所涉及的知識(shí)點(diǎn)。
  
  在案例教學(xué)過(guò)程中,通過(guò)提出“怎樣才能使程序更完善”的問(wèn)題,不斷引出新的知識(shí)點(diǎn),激發(fā)學(xué)習(xí)的求知欲和進(jìn)一步深入學(xué)習(xí)的興趣。并且通過(guò)案例教學(xué),使學(xué)生體會(huì)到各章知識(shí)的連貫性,深刻認(rèn)識(shí)到后續(xù)章節(jié)的內(nèi)容是前面章節(jié)知識(shí)點(diǎn)的深化與擴(kuò)充,達(dá)到學(xué)以致用的目的,才能有效地將知識(shí)轉(zhuǎn)變?yōu)槟芰Α?br/>  3C語(yǔ)言程序設(shè)計(jì)案例教學(xué)法的實(shí)施
  案例教學(xué)法就是根據(jù)教學(xué)目標(biāo),設(shè)計(jì)有代表性的典型案例,通過(guò)學(xué)生和教師一起參與案例的分析、討論, 從中找出解決問(wèn)題的方法和途徑,因此案例教學(xué)本質(zhì)上是研討型教學(xué)。在實(shí)際教學(xué)過(guò)程中, 案例教學(xué)法的執(zhí)行步驟大致可以分為以下三個(gè)步驟,下面用一個(gè)例子來(lái)說(shuō)明案例教學(xué)法的實(shí)施過(guò)程[5]。
  3.1精心設(shè)計(jì)教學(xué)案例
  為說(shuō)明數(shù)組的用法,設(shè)計(jì)一個(gè)案例:求10位學(xué)生的某門(mén)課程的平均分,最高分和最低分,供學(xué)生討論。
  程序一:
  
  main()
  {in

巩义市| 板桥市| 义乌市| 丰顺县| 宁德市| 行唐县| 柞水县| 泗阳县| 紫阳县| 密山市| 大姚县| 长海县| 平乐县| 焉耆| 海阳市| 壶关县| 施甸县| 景谷| 屏东市| 北票市| 南阳市| 永平县| 巴青县| 嘉黎县| 郴州市| 泗阳县| 黄龙县| 彭山县| 鹿邑县| 乌兰浩特市| 黑龙江省| 巨鹿县| 峨眉山市| 沈丘县| 化隆| 江陵县| 天祝| 黄浦区| 梁平县| 澄迈县| 岗巴县|