<dfn id="a4kkq"></dfn>
<ul id="a4kkq"></ul>
    • 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計大全11篇

      時間:2022-09-21 04:09:47

      緒論:寫作既是個人情感的抒發(fā),也是對學術(shù)真理的探索,歡迎閱讀由發(fā)表云整理的11篇數(shù)據(jù)結(jié)構(gòu)課程設(shè)計范文,希望它們能為您的寫作提供參考和啟發(fā)。

      篇(1)

      二、課程設(shè)計所用到的工具

      這次課程設(shè)計所用到的工具Microsoftvisualc++6.0PC機一臺。

      三、這次課程設(shè)計我所選擇的兩個題目

      1、一元多項式計算。

      設(shè)計分析

      一)一元多項式計算

      1、需求分析

      要求按照指數(shù)將序排列建立并輸出多項式;能夠完成兩個多項式的相加、相減,并將結(jié)果輸入。

      2、概要設(shè)計

      在分析題目要求的基礎(chǔ)上,我首先設(shè)計了一個結(jié)構(gòu)體,定義如下:

      structpoly

      {floatcoef;

      intexp;

      polytypenext;};

      在這個結(jié)構(gòu)體中,定義了一個浮點型的系數(shù)coef,還定義了一個整形的指針exp。接下來要做的就是定義各個不同用途的函數(shù),以滿足課程設(shè)計的需要,所用到的函數(shù)定義如下:

      polytypeCreate_Empty_Node(int);創(chuàng)建一個空鏈表

      voidInput_Values(polytype,int);輸入值

      voidInsert_Node(polytype,float,int);插入接點

      voidAdd_Poly(polytype,polytype);將兩個多項式相加

      voidSub_Poly(polytype,polytype);將兩個多項式相減

      voidOutPut_Results(polytype);將結(jié)果在顯示器上顯示

      3、源代碼

      #include"stdio.h"

      #include"stdlib.h"

      typedefintdatatype;/*定義多項式節(jié)點的結(jié)構(gòu)*/

      typedefstructnode

      {floatcoef;/*系數(shù)*/

      intexpn;/*指數(shù)*/

      structnode*next;/*指向結(jié)構(gòu)體的指針*/

      }PotyNode;/*建立連表,返回指向多項式頭節(jié)點的指針*/

      PotyNode*Creat_PotyNodeTail()

      {PotyNode*L,*s,*r;/*聲明結(jié)構(gòu)體指針*/

      floatc;/*系數(shù)*/

      inte;/*指數(shù),建立頭節(jié)點,頭節(jié)點指針設(shè)置為空*/

      L=(PotyNode*)malloc(sizeof(PotyNode));

      L->next=NULL;/*是指針r指向頭節(jié)點*/

      r=L;

      printf("\ninputcoefandexpn:");

      scanf("%f%d",&c,&e);

      while(c!=0)/*輸入的第一項系數(shù)不允許為0,防止無意義的輸入*/

      {/*初始化節(jié)點*/

      s=(PotyNode*)malloc(sizeof(PotyNode));s->coef=c;s->expn=e;s->next=NULL;

      r->next=s;/*連接節(jié)點*/

      r=s;/*指針r指向當前節(jié)點,用于連接下一節(jié)點*/

      printf("\ncoefandexpn:");

      scanf("%f%d",&c,&e);

      }returnL;

      }/*獲得多項式的長度,參數(shù)為多項式頭節(jié)點指針*/

      intGetlength(PotyNode*L)

      {PotyNode*p;intcount=0;p=L->next;

      while(p)

      {count++;p=p->next;}

      returncount;}/*獲得指向i節(jié)點的指針,在刪除節(jié)點的時候來獲得準備刪除的前一節(jié)點*/

      PotyNode*GetElem_PotyNode(PotyNode*L,inti)

      {PotyNode*p;intj=0;p=L;

      while(p->next&&j!=i)/*當p不是尾節(jié)點,并且不是第i個節(jié)點*/

      {j++;p=p->next;}

      if(i==j)

      returnp;/*找到節(jié)點*/

      else

      returnNULL;/*沒有找到節(jié)點*/}/*刪除節(jié)點i*/

      intDelete_PotyNode(PotyNode*L,inti)

      {PotyNode*q,*p;/*獲得節(jié)點i的前一個節(jié)點,便于刪除節(jié)點i*/

      p=GetElem_PotyNode(L,i-1);q=p->next;

      if(q)/*如果P為空,則說明節(jié)點p也就是節(jié)點i-1就是尾節(jié)點,節(jié)點i實際并不存在*/

      {p->next=q->next;

      free(q);return1;}

      else

      return0;}/*對輸入的多項式LA,LB進行相加,結(jié)果為LC,返回指向LC頭節(jié)點的指針*/

      PotyNode*Add_PotyNode(PotyNode*LA,PotyNode*LB)

      {PotyNode*LC,*q1,*q2,*r,*s,*p;

      intx=1;q1=LA->next;q2=LB->next;LC=LA;

      LC->next=NULL;/*指針r是當前指針便于進行各種操作*/

      r=LC;

      while(q1&&q2)/*當多項式LA,和LB都沒有結(jié)束的時候*/

      {if(q1->expn<q2->expn)

      {s=q1;q1=q1->next;}

      elseif(q1->expn>q2->expn)

      {s=q2;q2=q2->next;}/*指數(shù)相同,相加*/

      else{q1->coef+=q2->coef;

      s=q1;q1=q1->next;q2=q2->next;}/*結(jié)果連接到多項式LC*/

      s->next=NULL;r->next=s;r=s;}/*如果LB已結(jié)束,把LA剩余的部分連接到LC上*/

      if(q1)r->next=q1;

      if(q2)r->next=q2;/*去除多項式中系數(shù)為零的項,我對代碼作了小的修改*/

      p=LC->next;

      while(p->next)

      {if(p->coef==0)

      {p=p->next;

      Delete_PotyNode(LC,x);}

      else

      {p=p->next;x++;}}

      returnLC;}/*打印多項式*/

      voidprint_PotyNode(PotyNode*L)

      {inti;PotyNode*p=L->next;

      for(i=0;i<Getlength(L);i++)

      {printf("%fX%d",p->coef,p->expn);

      if(p->next==NULL)

      return;

      elseprintf("+");

      p=p->next;}}

      voidmain()

      {PotyNode*LA,*LB,*LC;

      intx;

      printf("inputLA(endby0):\n");

      LA=Creat_PotyNodeTail();

      printf("f(LA)=");

      print_PotyNode(LA);

      printf("\ninputLB(endby0):\n");

      LB=Creat_PotyNodeTail();

      printf("\n");

      printf("f(LB)=");

      print_PotyNode(LB);

      printf("\n");

      LC=Add_PotyNode(LA,LB);

      printf("Afteraddf(LA)andf(LB),f(LC)is:");

      print_PotyNode(LC);

      scanf("%d",&x);}

      3、運行結(jié)果

      提示輸入一個多項式LA(以0結(jié)束)然后輸入每項的系數(shù)和指數(shù),輸入后再提示輸入另一個多項式LB(以0結(jié)束)然后輸入每項的系數(shù)和指數(shù)。按回車鍵后得出f<LC>=f<LA>+f<LB>。

      1、需求分析

      1)輸入數(shù)據(jù)的形式和范圍:可以輸入大寫、小寫的英文字母、任何數(shù)字及標點符號。

      2)輸出形式:(1)分行輸出用戶輸入的各行字符;(2)分4行輸出“全部字母數(shù)”、

      “數(shù)字個數(shù)”、“空格個數(shù)”、“文章總字數(shù)”(3)輸出刪除某一字符串后的文章

      2、概要設(shè)計

      a、建立文本,存儲結(jié)構(gòu)用鏈表

      voidCreateTXT(LINE*&head){

      printf("\n請輸入文本,每行最多輸入80字符!\n");

      printf("輸入Ctrl+E(^E)則結(jié)束輸入\n");

      LINE*p=newLINE;//首先為鏈表建立一個附加表頭結(jié)點

      head=p;//將p付給表頭指針

      chartmp[80];

      b、計算空格數(shù)

      intCount_Space(LINE*&head){//統(tǒng)計空格數(shù)

      LINE*p=head;

      intasc_space=32;//空格的ASCIC碼值

      intcount=0;

      do

      {intLen=strlen(p->data);//計算當前data里的數(shù)據(jù)元素的個數(shù)

      for(inti=0;i<Len;i++)

      if(p->data[i]==asc_space)count++;}//計算空格數(shù)

      while((p=p->next)!=NULL);//遍歷鏈表

      returncount;}

      c、統(tǒng)計數(shù)字數(shù)

      intCount_Num(LINE*&head){//統(tǒng)計數(shù)字數(shù)

      LINE*p=head;

      intcount=0;

      do

      {intLen=strlen(p->data);//計算當前data里的數(shù)據(jù)元素的個數(shù)

      for(inti=0;i<Len;i++)

      if(p->data[i]>=48&&p->data[i]<=57)count++;}//計算空格數(shù)

      while((p=p->next)!=NULL);//遍歷鏈表

      returncount;}

      d、統(tǒng)計文章的總字數(shù)

      intCount_All_Word(LINE*&head){//統(tǒng)計文章的總字數(shù)

      LINE*p=head;//保存鏈表的首地址

      intcount=0;//總字母數(shù)

      do

      {count+=strlen(p->data);}//計算當前行內(nèi)的字符數(shù)!除''''\0''''結(jié)束符外!注意,該統(tǒng)計包含“空格的長度!”

      while((p=p->next)!=NULL);//遍歷鏈表

      returncount;}

      3、源代碼

      /*definemacrovariables*/

      #definetrue1

      #definefalse0

      #include<stdlib.h>

      #include<stdio.h>

      #include<malloc.h>

      #include<string.h>

      #include<conio.h>

      #defineSTACK_INIT_SIZE100/*variablesinthesavestoragespace*/

      #defineSTACKINCREMENT10/*incrementofdistributioninthesavestoragespace*/

      typedefstruct

      {char*base;/*beforeandafterthecreatingoftheshed,baseisNULL*/

      char*top;/*shedpointer*/

      intstacksize;/*thesavestoragespacedistributivebytheelement*/

      }SqStack;

      SqStackS,q;

      /*constructastructuerarray*/

      typedefstruct{

      charcc[9999];

      intno;}Array;

      /*definethewholebureauvarible*/

      Arraya[10000];

      intm,n,i,j;

      charname[40];

      chart=''''\n'''';

      FILE*fp;

      /*constructanemputyshed*/

      voidInitStack()

      {S.base=(char*)malloc(STACK_INIT_SIZE*sizeof(char));

      if(S.base==NULL)

      exit(1);

      S.top=S.base;

      S.stacksize=STACK_INIT_SIZE;}

      /*usingcharactershed,acceptthedatafromtheterminal*/

      voidpush(chare)

      {if(S.top-S.base>=S.stacksize)

      {/*applyanewroom*/

      S.base=(char*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(char));

      if(!S.base)

      exit(1);

      S.top=S.base+S.stacksize;

      S.stacksize+=STACKINCREMENT;}

      /*acceptthenextcharacter*/

      *S.top++=e;}

      /*carrythewholedatainthestackintothedatasection*/

      charpop()

      {chare;

      if(S.top==S.base)

      returnfalse;

      e=*(--S.top);

      returne;}

      /*emptythedatainthestack*/

      voidClearStack()

      {S.top=S.base;/*letS.topandS.basepointtothesameplace*/}

      /*destroythestack*/

      voidDestroyStack()

      {free(S.base);/*freethedatainthestack*/

      S.top=S.base;}

      /*judgetheemputyoftheshed*/

      intStackEmpty()

      {if(S.top==S.base)

      returntrue;

      returnfalse;}

      /*takeoutthedatafromthestackandtheputinthestucterarray*/

      voidBuffer(){

      n=0;m=1;

      /*movethedataintheshadeuntillthestackisempty*/

      while(S.top!=S.base)

      {n=n+1;

      a[m].no=a[m].no+1;

      a[m].cc[n]=*(S.top-1);

      S.top--;}}

      /*savethedata*/

      voidsave()

      {printf("\n\nfilename:");

      scanf("%s",&name);

      fp=fopen(name,"wb");

      for(i=1;i<=m;i++)

      {for(j=a[i].no;j>=1;j--)

      {fwrite(&(a[i].cc[j]),1,1,fp);}

      fwrite(&t,1,1,fp);}

      fclose(fp);}

      /*mainfunction*/

      voidmain()

      {charch,e;

      printf("\n\n\n\t\t\twelcometousethewholescreeneditor");

      printf("\n\npressF6ifyouwanttosavethefile,youcansavethefilewhenyousee\"^Z\"\n");

      printf("\n******************************************************************************\n\n");/*SqStackS_stack,D_stack;*/

      InitStack();/*InitStack(D_stack);*/

      ch=getchar();

      while(ch!=EOF)

      {while(ch!=EOF&&ch!=''''\n'''')

      {switch(ch)

      {case''''#'''':e=pop();break;

      case''''@'''':ClearStack();break;

      default:push(ch);break;}

      ch=getchar();}

      Buffer();

      ClearStack();

      if(ch!=EOF)

      ch=getchar();}

      save();

      DestroyStack();}

      4、運行結(jié)果

      三、這次課程設(shè)計的心得體會

      通過實習我的收獲如下

      1、鞏固和加深了對數(shù)據(jù)結(jié)構(gòu)的理解,提高綜合運用本課程所學知識的能力。

      2、培養(yǎng)了我選用參考書,查閱手冊及文獻資料的能力。培養(yǎng)獨立思考,深入研究,分析問題、解決問題的能力。

      3、通過實際編譯系統(tǒng)的分析設(shè)計、編程調(diào)試,掌握應(yīng)用軟件的分析方法和工程設(shè)計方法。

      4、通過課程設(shè)計,培養(yǎng)了我嚴肅認真的工作作風,逐步建立正確的生產(chǎn)觀念、經(jīng)濟觀念和全局觀念。

      根據(jù)我在實習中遇到得問題,我將在以后的學習過程中注意以下幾點:

      1、認真上好專業(yè)實驗課,多在實踐中鍛煉自己。

      2、寫程序的過程中要考慮周到,嚴密。

      篇(2)

      1 引言

      課程設(shè)計是課堂理論教學的延伸和補充。作為一門獨立的課程,它應(yīng)該完成如下基本目標:應(yīng)能夠完成理論與實踐的結(jié)合,應(yīng)能夠鍛煉學生的設(shè)計創(chuàng)新能力、分析和解決問題的能力。

      數(shù)據(jù)結(jié)構(gòu)與算法課程是計算機科學與技術(shù)專業(yè)以及相關(guān)專業(yè)的一門專業(yè)基礎(chǔ)課程,同時它也是計算機科學與技術(shù)專業(yè)課程體系中的核心課程之一,它在計算機科學與技術(shù)專業(yè)的課程體系,特別是軟件系列課程體系中處于承上啟下、聯(lián)系左右的中心地位。大量的實踐表明,是否學好數(shù)據(jù)結(jié)構(gòu)與算法課程對于能否學好計算機本科課程有著相當重要的作用,同時也對后續(xù)的工作和研究有著深遠的影響。

      現(xiàn)今,各大學的數(shù)據(jù)結(jié)構(gòu)與算法課程和教材的內(nèi)容都主要集中在“基本數(shù)據(jù)結(jié)構(gòu)的闡述和分析、基本數(shù)據(jù)結(jié)構(gòu)的應(yīng)用、典型基本算法的適當滲透”這三個方面。其中,前兩部分是重點,并占據(jù)了較多的篇幅,而這些內(nèi)容的教與學離不開大量的實踐,所以在數(shù)據(jù)結(jié)構(gòu)與算法課程教學中經(jīng)常會有大量的課程實驗作為輔助。

      通過進一步的深入分析可以看出,上述基本知識的學習并不是最終目標,而是為到達最終目標打下的基礎(chǔ)。顯然,從計算機科學與技術(shù)專業(yè)的知識體系可以看出:如圖1所示,學習數(shù)據(jù)結(jié)構(gòu)與算法更深層次的目標是能夠針對實際問題來選擇、擴展甚至是設(shè)計全新的數(shù)據(jù)結(jié)構(gòu),然后設(shè)計相應(yīng)的存儲結(jié)構(gòu)并加以實現(xiàn),從而最終完成問題的求解。可以看出,這一過程是一個融會貫通的過程,是不能通過課程實驗完成的,也不可能在課堂教學中就可以建立完整意識的,所以在課程之后需要進行課程設(shè)計。

      為此,數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計應(yīng)能達到如下基本目標:培養(yǎng)學生應(yīng)用數(shù)據(jù)結(jié)構(gòu)基本知識來分析問題、解決問題的綜合能力;幫助學生建立計算機問題求解的全局意識,主要是通過認識數(shù)據(jù)結(jié)構(gòu)在問題求解中的地位來完成全局認識的建立(這一全局認識如圖1所示);訓練學生從系統(tǒng)的、規(guī)范的觀點來進行計算機問題的分析、設(shè)計、編碼、測試等。

      上面分析得出的數(shù)據(jù)結(jié)構(gòu)與算法的課程設(shè)計目標是符合一般的課程設(shè)計規(guī)律的。但數(shù)據(jù)結(jié)構(gòu)與算法課程具有自身的、明顯區(qū)別于其他課程的地方,再結(jié)合計算機專業(yè)的特點,就決定了還需要分析并建立適合數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計特點的教學模式。所以本文在第2節(jié)就數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計和其他課程的課程設(shè)計進行了對比分析,在第3節(jié)提出了一種基于問題驅(qū)動的教學模式,并就其中的關(guān)鍵部分給出了詳細的描述。

      2數(shù)據(jù)結(jié)構(gòu)課程設(shè)計的特點分析

      任何事物都是一般性和特殊性的統(tǒng)一,數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計也是一樣的。和許多其他課程的課程設(shè)計一樣,它有著課程設(shè)計的共性,也有自身的特性。經(jīng)過和其他課程的課程設(shè)計的對比,作者認為數(shù)據(jù)結(jié)構(gòu)與算法的課程設(shè)計主要具有如下特殊性。

      2.1不具有明顯的整體性

      這是由數(shù)據(jù)結(jié)構(gòu)與算法課程本身的特點決定的。由于該課程的核心內(nèi)容主要集中于對各種數(shù)據(jù)結(jié)構(gòu)的認識上,雖然各種數(shù)據(jù)結(jié)構(gòu)之間總是存在許多內(nèi)在的聯(lián)系,但總的來說還是自成體系、較為獨立的。

      就這一點而言,數(shù)據(jù)結(jié)構(gòu)與算法課程就和其他許多課程存在不同,也就使得數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計具有相應(yīng)的特點。比如計算機組成原理的課程設(shè)計,可以通過做一個完整的、簡化的計算機硬件系統(tǒng)(包括的簡化的存儲器、控制器、運算器等部件)來完成課程內(nèi)容的全面訓練,并讓學生建立對計算機組成的整體認識。機械原理的課程設(shè)計可以是一個簡單的機械系統(tǒng)的設(shè)計,完成對機械原理各部分內(nèi)容的綜合訓練。而對于數(shù)據(jù)結(jié)構(gòu)與算法的課程設(shè)計來說,幾乎不可能構(gòu)造一個題目把所有的數(shù)據(jù)結(jié)構(gòu)都包含進去。實際上這樣做是毫無意義的,因為數(shù)據(jù)結(jié)構(gòu)本身就是不斷擴展的,在學習、掌握基本數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上能夠?qū)χR加以擴展并靈活運用才是真正重要的。

      所以在數(shù)據(jù)結(jié)構(gòu)與算法的課程設(shè)計中,應(yīng)強調(diào)問題求解能力的培養(yǎng),而不像其他課程的課程設(shè)計那樣來強調(diào)綜合設(shè)計能力。

      2.2課程內(nèi)容具有很強的可伸縮性

      從發(fā)展狀況來看,數(shù)據(jù)結(jié)構(gòu)與算法的發(fā)展是極其迅速的,不斷地有新的數(shù)據(jù)結(jié)構(gòu)和新的算法出現(xiàn),而且針對不同的問題,數(shù)據(jù)結(jié)構(gòu)與算法可以做出非常靈活的調(diào)整。在這一點上它和許多其他課程不同,比如操作系統(tǒng)中可能會不斷出現(xiàn)各種各樣的調(diào)度算法,但都集中在進程管理中,并總歸結(jié)于資源管理這一基本框架下,只要馮?諾伊曼體系結(jié)構(gòu)不變,操作系統(tǒng)的資源管理框架就不會改變。而數(shù)據(jù)結(jié)構(gòu)就不同,如就樹結(jié)構(gòu)而言,二元樹雖然在概念上較為規(guī)整,但在實際問題中,大多都采用樹結(jié)構(gòu)的變形,如B樹以及其他新型變形等,似乎兩者都可成為教學的重點。

      正是因為數(shù)據(jù)結(jié)構(gòu)與算法的可收縮性,培養(yǎng)針對問題的數(shù)據(jù)結(jié)構(gòu)設(shè)計能力才是最重要的。

      2.3具有極其廣泛的滲透性

      計算機問題領(lǐng)域包括許多其他行業(yè)的問題,如經(jīng)濟領(lǐng)域問題,只要涉及到對數(shù)據(jù)的組織與處理,都能或多或少地找到數(shù)據(jù)結(jié)構(gòu)的用武之地,所以培養(yǎng)依托數(shù)據(jù)結(jié)構(gòu)完成各類問題求解的“嗅覺”是十分必要的。

      總的來說,基于數(shù)據(jù)結(jié)構(gòu)與算法課程的特點,建立起與之相匹配的課程設(shè)計教學模式,這樣才能更好地完成教學。

      3基于問題驅(qū)動的課程設(shè)計教學模式

      在以上分析基礎(chǔ)上,如圖2所示,本文提出一種基于問題驅(qū)動的課程設(shè)計教學模式。

      3.1問題來源

      數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計的問題來源(即教學內(nèi)容)主要包括:基本數(shù)據(jù)結(jié)構(gòu)在解決實際問題中的應(yīng)用;基本的算法策略在解決實際問題的應(yīng)用;新興數(shù)據(jù)結(jié)構(gòu)的相關(guān)問題;新興算法的相關(guān)問題及實踐;經(jīng)典問題的經(jīng)典算法;典型系統(tǒng)的計算機模擬;需自行設(shè)計數(shù)據(jù)結(jié)構(gòu)和算法來解決的實際問題。

      3.2問題描述

      在問題的描述上,側(cè)重于用半自然語言進行描述。完全的形式化描述將減少問題分析能力的培養(yǎng)力度,完全的自然語言描述有包含太少的啟發(fā)信息。

      一般來說,要求問題的描述必須能夠清晰地說明問題的含義和目標,并就采用的數(shù)據(jù)結(jié)構(gòu)適當?shù)亟o出啟發(fā),其中,也可以設(shè)計一些題目故意將問題的目標隱去,加強對學生問題定義能力的培養(yǎng)。

      3.3問題求解的迭代性

      問題求解是不能夠一蹴而就的,一開始設(shè)計(選取)的數(shù)據(jù)結(jié)構(gòu)與算法往往存在這樣或那樣的問題,建立逐步求精、多次迭代的問題求解思維是必要的。

      為此,我們需要在學生的課程設(shè)計過程中,鼓勵學生對其解決方案進行理論分析和實驗分析,鼓勵學生大膽提出優(yōu)化方案,鼓勵其積極主動的創(chuàng)新意識。

      3.4結(jié)論形成

      最終的結(jié)論(體現(xiàn)為課程設(shè)計報告)應(yīng)以數(shù)據(jù)結(jié)構(gòu)的描述為核心,并集中體現(xiàn)如何針對問題來完成數(shù)據(jù)結(jié)構(gòu)的設(shè)計與優(yōu)化。

      其中,數(shù)據(jù)結(jié)構(gòu)的描述應(yīng)以抽象數(shù)據(jù)型(ADT)為基本手段,并在抽象數(shù)據(jù)型的基礎(chǔ)上,引導學生深刻理解和掌握數(shù)據(jù)的邏輯結(jié)構(gòu)、性質(zhì)、特點、基本操作和存儲結(jié)構(gòu)的特點、實現(xiàn)和優(yōu)化,并引導學生在實際應(yīng)用中有意識地去為實際問題選擇恰當?shù)拇鎯Ρ硎尽?/p>

      結(jié)果分析應(yīng)采用理論分析和實驗分析并重的方式,應(yīng)適當加大實驗分析的力度,使得學生能在分析結(jié)果的基礎(chǔ)上形成總結(jié)并產(chǎn)生啟發(fā),最終能形成問題求解過程的全局意識。

      3.5結(jié)果考核

      鼓勵學生選擇需要設(shè)計新型數(shù)據(jù)結(jié)構(gòu)(至少需要對已有數(shù)據(jù)結(jié)構(gòu)作出修正)的題目,而不僅僅是實現(xiàn)一個定義明確的數(shù)據(jù)結(jié)構(gòu);鼓勵優(yōu)化方案的提出、分析和驗證;鼓勵學生擴展知識體系,并建立問題求解的修養(yǎng);鼓勵創(chuàng)新意識和主動學習意識的培養(yǎng)。

      4 結(jié)束語

      針對數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計的一般性和特殊性分析,本文在提出該課程設(shè)計的基本要求后,更提出了適合于數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計的“以問題求解為核心”的教學模式。近年來,經(jīng)過對計算機科學與技術(shù)專業(yè)本科生的多次實踐,可以看出,這一模式可以取得很好的教學效果。

      參考文獻

      1 耿蕊,李敬有,鄧文新.關(guān)于計算機基礎(chǔ)課課程設(shè)計的研究.高師理科學刊,2005,5

      篇(3)

      數(shù)據(jù)結(jié)構(gòu)是計算機專業(yè)的核心課程之一,是計算機軟件技術(shù)的基礎(chǔ),以數(shù)據(jù)為中心講述問題如何在計算機程序中得以實現(xiàn)。該課程的教學不僅要注重學生對理論知識的理解,更要培養(yǎng)學生能針對具體問題,設(shè)計合理的數(shù)據(jù)結(jié)構(gòu),對數(shù)據(jù)進行有效的存儲、操作,并能完成相應(yīng)的高效算法。課程設(shè)計的教學是整個教學環(huán)節(jié)中非常重要的一環(huán),它彌補了課堂教學中實踐少的缺陷,其教學目標不僅要培養(yǎng)學生縝密的邏輯思維和數(shù)據(jù)抽象能力,更要培養(yǎng)學生在軟件設(shè)計領(lǐng)域科學的思維方式,將算法理論和編程實踐完美結(jié)合,能夠在工程實際中靈活應(yīng)用。因此不斷改進課程設(shè)計的教學方法,提高教學質(zhì)量是培養(yǎng)高素質(zhì)軟件人才的迫切要求。

      1存在的普遍問題

      1.1編程語言基礎(chǔ)差

      數(shù)據(jù)結(jié)構(gòu)課程設(shè)計通常是在大二進行,算法是基于C/C++語言。雖然學生之前已先修過這些課程,但C++本身規(guī)則復雜,面向?qū)ο蟮乃枷氩蝗菀渍莆眨鴮W生又沒有經(jīng)過系統(tǒng)訓練,普遍存在編程語言基礎(chǔ)薄弱、對調(diào)試程序的方法不夠熟練、程序結(jié)構(gòu)設(shè)置不合理、代碼編寫可讀性差等問題。不少同學反映算法能聽懂,看教師演示一些實例也覺得簡單,但輪到自己編程就無從下手。這種狀況直接制約了學生完成課程設(shè)計的質(zhì)量[1]。

      1.2缺乏系統(tǒng)的軟件開發(fā)思想

      計算機專業(yè)的課程體系中,軟件工程通常安排在數(shù)據(jù)結(jié)構(gòu)課程設(shè)計之后,這樣學生在進行課程設(shè)計時,尚不具備軟件開發(fā)的思想。遇到問題時,只考慮怎么實現(xiàn),沒有進行整體軟件開發(fā)的過程規(guī)劃,忽視了軟件的性能、質(zhì)量、甚至于需求都不甚明確就急于動手編寫程序。這樣的做法使得課程設(shè)計的完成效率很低,經(jīng)常需要返工。

      1.3教師的指導“過多”或“過少”

      課程設(shè)計中,教師的指導相當重要,但是目前存在兩個極端,有的教師對每個課程設(shè)計都講解得面面俱到,如何實現(xiàn),用什么樣的存儲結(jié)構(gòu),所得結(jié)果等都作了交代,學生只是被動的接收者,這種“填鴨式”的教學方式制約了學生的創(chuàng)新能力。而另一個極端,有的教師認為課程設(shè)計是由學生上機完成的,教師督促學生,最后給出考評,對學生完成課程設(shè)計的過程關(guān)注太少,很多學生因此敷衍了事。教師如何把握指導的度,如何指導是學生能力能否得到提高的一個重要因素[2]。

      1.4考評制度不合理

      長期以來,課程設(shè)計報告被看成是評定學生成績的一個重要依據(jù),而對學生軟件開發(fā)的過程關(guān)注不多,學生只要上交了報告就能獲得成績[3]。這樣的做法導致學生過度追求報告的整潔度、實驗結(jié)果的正確性等。甚至部分同學抄襲、直接從互聯(lián)網(wǎng)上下載報告交差。一個學期下來,除了交了幾份報告,學生的收獲甚少,課程設(shè)計教學效果甚微。因此,必須改革考評制度,才能真正培養(yǎng)學生的動手能力、創(chuàng)新能力。

      2提高課程設(shè)計教學效果的措施

      2.1規(guī)范軟件開發(fā)的過程,培養(yǎng)良好的編程習慣

      在學生開始課程設(shè)計前,教師首先通過一個具體的實例,從需求分析、概要設(shè)計、詳細設(shè)計、編程測試等各個方面出發(fā),讓學生了解完整的開發(fā)軟件過程。在數(shù)據(jù)結(jié)構(gòu)課程教學中,所有算法均用可運行程序講解,避免出現(xiàn)懂算法不懂編程的現(xiàn)象。有意識地讓學生強化編程的技巧、調(diào)試方法、面向?qū)ο笏枷氲葍?nèi)容。

      我院數(shù)據(jù)結(jié)構(gòu)課程組教師采用面向?qū)ο蟮乃枷耄瑢?shù)據(jù)結(jié)構(gòu)中基本算法全部用C++模板類實現(xiàn),學生通過多看、多讀這些規(guī)范的程序,取得了不小進步。

      2.2梯度命題,循序漸進開展課程設(shè)計

      課程設(shè)計以往是教師根據(jù)實驗指導書布置課題后由學生完成,部分學生感到難度很大,無從下手。現(xiàn)階段我們將課程設(shè)計改為驗證型、驗證設(shè)計型、設(shè)計應(yīng)用型多種層次,針對各種基本數(shù)據(jù)結(jié)構(gòu),教師首先用模板類實現(xiàn),學生在課程設(shè)計時先用實例驗證程序,在此基礎(chǔ)上,設(shè)計出預(yù)留的一些函數(shù)接口,實現(xiàn)該類的部分功能。最后再針對某一具體問題,由學生開發(fā)出完整的程序。這是一個由易入難的循序漸進的過程,學生通過驗證型實驗更加牢固掌握基本數(shù)據(jù)結(jié)構(gòu),再由驗證設(shè)計型和設(shè)計應(yīng)用型實驗學會如何應(yīng)用數(shù)據(jù)結(jié)構(gòu),如何在計算機中實現(xiàn)存儲,實現(xiàn)各種需求的功能。

      下面以二叉樹部分內(nèi)容為例,首先實現(xiàn)二叉樹的模板類如下:

      /*二叉樹類*/

      template

      class BinaryTree

      {

      public:

      BinaryTree():m_root(NULL){} /*構(gòu)造函數(shù)*/

      ~BinaryTree()//析構(gòu)函數(shù)

      /*按以先序次序輸入結(jié)點值的方式建立二叉樹的接口函數(shù)*/

      void Create1(ElemType ch[],const ElemType &endChar);

      /*以二叉樹的先序和中序次序建立二叉樹的接口函數(shù)*/

      void Create2(ElemType ch1[],ElemType ch2[],int );

      /*先序遞歸遍歷二叉樹的接口函數(shù)*/

      void PreorderTraverse (void (*visit)(const ElemType &));

      /*中序遞歸遍歷二叉樹的接口函數(shù)*/

      void InorderTraverse (void (*visit)(const ElemType &));

      /*后序遞歸遍歷二叉樹的接口函數(shù)*/

      void PostorderTraverse (void (*visit)(const ElemType &));

      ……

      private:

      BTNode *m_root;

      /*按先序次序輸入結(jié)點值的方式建立二叉樹*/

      void _Create1(BTNode* &,ElemType ch[],const ElemType &,int &);

      /*已知二叉樹的先序遍歷次序及中序遍歷次序,建立二叉樹*/

      void _Create2(BTNode * &,ElemType ch1[], ElemType ch2[],int ,int ,int &);

      /*先序遞歸遍歷二叉樹*/

      void _PreorderTraverse(BTNode* ,void (*visit) (const ElemType &e));

      ……

      };

      對于這樣的模板類,設(shè)定的驗證型實驗為:給定一棵二叉樹,驗證其先序中序和后序遍歷結(jié)果。在掌握了二叉樹遍歷的基礎(chǔ)上,設(shè)計出模板類中預(yù)留的兩個接口函數(shù)create1和create2。最后,安排設(shè)計型實驗為創(chuàng)建表達式樹;分別用三種遍歷方式遍歷該樹,比較它與實際的波蘭式、中綴式和逆波蘭式之間的區(qū)別;完成給定表達式樹的表達式求值運算。這樣有梯度地安排課程設(shè)計,一方面強化了基本概念,另一方面引導學生完成更復雜的設(shè)計。對基礎(chǔ)薄弱的同學來說,驗證型實驗難度不大,基本都能完成,大大增強了自信;對優(yōu)秀學生來說,挑戰(zhàn)設(shè)計型實驗更能提高自身的能力。

      2.3抽絲剝繭,層層深入啟發(fā)

      學生遇到復雜問題時,往往一籌莫展,不知如何下手。教師應(yīng)教會學生如何從問題本身出發(fā),層層分析,應(yīng)采用哪種數(shù)據(jù)結(jié)構(gòu),用到什么樣的操作,在這樣的操作需求下應(yīng)用何種存儲方法比較合適,最后細化到具體的函數(shù)實現(xiàn)。

      如教學計劃編制問題[4],要求根據(jù)課程和課程之間的先修關(guān)系,得到合適的教學計劃安排。首先分析這個問題是對有向圖進行拓撲排序,課程和課程之間的先修關(guān)系可用有向圖描述出來。數(shù)據(jù)結(jié)構(gòu)為有向圖,存儲方式為鄰接表,應(yīng)用的操作是拓撲排序。拓撲排序的基本思想是先輸出有向圖中入度為零的頂點,再從圖中刪除該頂點和所有以它為尾的弧,重復執(zhí)行,直至圖中所有頂點均輸出為止。要完成拓撲排序,首先要求出圖中所有頂點的入度。拓撲排序算法中還用到了一個輔助的數(shù)據(jù)結(jié)構(gòu)棧,因此還需要初始化棧、出棧,入棧,判定棧空等操作實現(xiàn)。這樣層層分析下來,程序中需要的函數(shù)一一明了:創(chuàng)建有向圖、鄰接表的建立、求頂點入度、初始化棧、出棧、入棧、判定棧空、拓撲排序等。函數(shù)層次關(guān)系圖示如圖1所示。

      圖1函數(shù)層次關(guān)系圖

      通過這樣的教學方式,學生學會了帶著問題去思考,逐步學會將大的程序化解成若干小函數(shù),最終經(jīng)過整合完成整個設(shè)計開發(fā)。

      2.4加強團隊合作,調(diào)動每位同學積極性

      在課程設(shè)計中,針對每一種數(shù)據(jù)結(jié)構(gòu)安排了一個工程性綜合實驗,這個綜合實驗由幾名同學組成小組合作完成。團隊成員分工明確,一名同學擔任組長,負責組織和控制組內(nèi)的工作進程,強調(diào)任務(wù)落實到組內(nèi)每一個同學。

      教師布置任務(wù)后,每個團隊將軟件開發(fā)流程應(yīng)用到課程設(shè)計中,實質(zhì)性進行問題規(guī)劃、模塊劃分、項目整合等工作。只有團隊中每個成員都積極面對,整個團隊才能獲得優(yōu)秀成績,無形之中鞭笞每位同學認真對待。在一個團隊中,大家集思廣益,可以跟伙伴一起交流,互相學習,形成共同進步的良好局面。

      最后在驗收答辯時,團隊中每個成員都應(yīng)匯報自己所做工作,教師和其他團隊可以提問,交流開發(fā)過程中的心得。

      2.5改革考評制度,從多角度綜合考慮成績

      合理的考評制度可以對課程設(shè)計過程進行有效的監(jiān)控,通過考評體系可以反饋各階段的進展情況,便于總結(jié)經(jīng)驗,找出不足,保證課程設(shè)計的質(zhì)量和效果。課程設(shè)計考評有別于普通的課程評分,我分院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計的成績由幾個方面綜合決定:課程設(shè)計的內(nèi)容、課程設(shè)計的實現(xiàn)以及實驗報告。各項考評指標均有一定的權(quán)重,能夠比較客觀公正地確定學生成績。其中課程設(shè)計的內(nèi)容主要考慮學生所選課題的難易度、工作量多少。實現(xiàn)過程主要考慮完成情況、軟件代碼規(guī)范化、文檔規(guī)范化、答辯質(zhì)量等,最后由學生提交設(shè)計報告進行總結(jié)和討論。設(shè)計報告除了包括常規(guī)的系統(tǒng)需求分析,概要設(shè)計,詳細設(shè)計,調(diào)試分析和實驗結(jié)果外,還鼓勵他們提出優(yōu)化方案,對于每個課程設(shè)計再“多想一點”,即其他可能存在的求解方法,如已經(jīng)使用了鏈式存儲結(jié)構(gòu)實現(xiàn),那使用順序存儲結(jié)構(gòu)如何實現(xiàn)?各種設(shè)計的優(yōu)缺點是什么?如何提高時間空間性能?通過總結(jié),學生對問題有了更加深入全面的理解,鍛煉了擴散思維方式,培養(yǎng)了創(chuàng)新能力。同時教師對評價優(yōu)秀的學生或團隊給與獎勵,促使學生之間形成你追我趕的良好學習氛圍,整體提高教學質(zhì)量。

      3結(jié)語

      數(shù)據(jù)結(jié)構(gòu)作為計算機專業(yè)的重要基礎(chǔ)課程之一,對學生軟件開發(fā)習慣的培養(yǎng)至關(guān)重要。提高課程設(shè)計教學質(zhì)量不僅可以鞏固基本知識,還可以讓學生適應(yīng)快速發(fā)展的軟件開發(fā)技術(shù),激發(fā)學生學習和研究的興趣。本文從五個方面討論了提高課程設(shè)計教學質(zhì)量的措施,通過一個學期的教學實踐,從效果上來看,這屆學生分析問題、解決問題的能力,綜合創(chuàng)新能力,學習積極性都比前幾屆學生有了明顯提高,絕大部分的同學都能順利完成課程設(shè)計并獲得較好成績,這為他們后續(xù)的課程打下了堅實的基礎(chǔ)。

      參考文獻:

      [1] 龐曉瓊. 案例驅(qū)動的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計教學改革實踐[J]. 計算機教育,2009(1):53-64.

      [2] 陳越,何欽銘,馮雁.“數(shù)據(jù)結(jié)構(gòu)”綜合性課程設(shè)計教學探索與實踐[J]. 計算機教育,2008(8):54-55.

      [3] 李群,趙玉霞,莊波.《數(shù)據(jù)結(jié)構(gòu)》實驗課程設(shè)計與探討[J]. 中國現(xiàn)代教育裝備,2007(3):27-28.

      [4] 嚴蔚敏,吳偉民. 數(shù)據(jù)結(jié)構(gòu)(C語言版)[M]. 北京:清華大學出版社,2006:180-182.

      Discussion and Practice on Improving Teaching Quality of Data Structure Course Design

      XU Chong, WANG Libo, JIANG Juan

      (College of Computer Science, Hangzhou Dianzi University, Hangzhou 310018, China)

      篇(4)

      中圖分類號:TP312.1-4 文獻標識碼:A 文章編號:1007-9416(2012)10-0212-02

      1、課程教改的原由

      我院C程序設(shè)計課程與數(shù)據(jù)結(jié)構(gòu)課程是分上下學期開設(shè)的,將C程序設(shè)計課程作為數(shù)據(jù)結(jié)構(gòu)課程的前導課,綜合兩門課程的教學效果,發(fā)現(xiàn)具有以下弊端:

      首先,在C程序設(shè)計的講授過程中,教師和學生會花大部分時間在基本概念、程序結(jié)構(gòu)、數(shù)組上,而數(shù)據(jù)結(jié)構(gòu)的學習必須以函數(shù)、指針、結(jié)構(gòu)體為基礎(chǔ),這樣導致學生在數(shù)據(jù)結(jié)構(gòu)的學習上不能得心應(yīng)手。

      其次,兩門課程分上下學期分開學習,導致教師在講解數(shù)據(jù)結(jié)構(gòu)時還要花時間復習C語言的內(nèi)容,這樣就使得數(shù)據(jù)結(jié)構(gòu)課程的學時不夠用。

      最后,數(shù)據(jù)結(jié)構(gòu)部分內(nèi)容對于高職高專學生來說,學習難度大、實際應(yīng)用不上。

      基于以上原因,我院教師覺得兩門課程的改革勢在必行,于是,為了有更好的教學效果,縮短學時,提出將兩門課程合并。同時這兩門課程的教學內(nèi)容相互關(guān)聯(lián)也使這兩門課程的整合具有了可能性和必要性。

      2、課程整合設(shè)計的理念和思路

      我們根據(jù)市場對高職人才的需求,著重培養(yǎng)學生的實際動手能力,把高職學生的培養(yǎng)模式與課程緊密結(jié)合起來。在整合過程中,合理地分配學時,注重內(nèi)容的新穎和信息量,重新構(gòu)建課程知識體系,重新制定課程標準,重新設(shè)計教學內(nèi)容,編寫適合本校學習學生的教材、實驗指導書、課件。同時我們秉承“以知識學習為基礎(chǔ),以素質(zhì)培養(yǎng)為目標,以能力訓練為本位”課程建設(shè)理念,設(shè)定了課程改革的大致方向。具體表現(xiàn)在以下三個方面:

      (1)將知識融入到任務(wù)中。知識是學生可持續(xù)發(fā)展的堅實基礎(chǔ),是學生能力提升的堅強后盾。學習知識的最有效途徑是應(yīng)用知識,做到“學以致用、用學結(jié)合、邊學邊用”。我們圍繞知識教學為中心,選擇富有特色的教學實例,通過任務(wù)驅(qū)動、案例促進知識學習。

      (2)將素質(zhì)的培養(yǎng)貫穿到整個教學過程中。在課程建設(shè)和教學過程中,強調(diào)學生形成良好的編程風格,具有良好的職業(yè)道德、嚴謹?shù)乃季S能力;通過課堂實例的討論,使學生具備良好的團隊合作能力、較強的表達能力和良好的心理素質(zhì),激發(fā)學生的創(chuàng)新能力;通過作業(yè)和思考題的布置,培養(yǎng)學生自學和自我增值的能力。

      (3)基于能力訓練的項目設(shè)計。針對完成項目的過程,將程序設(shè)計能力分解為編寫流程圖能力、閱讀程序的能力、按流程圖寫程序能力、調(diào)試程序的能力。我們在教學項目實踐中設(shè)置了多個能力點,在項目設(shè)計時,要求每個項目實現(xiàn)過程的完整性,盡量覆蓋每個能力點的訓練。

      3、課程整合措施

      3.1 教學內(nèi)容的整合

      整個課程的教學內(nèi)容以C程序設(shè)計內(nèi)容為主線,將數(shù)據(jù)結(jié)構(gòu)的內(nèi)容滲透、溶入C程序的教學內(nèi)容中,對于數(shù)據(jù)結(jié)構(gòu)的內(nèi)容以“必需、夠用”為度。具體的教學內(nèi)容包含:

      (1)C語言和數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)知識:C程序編輯與運行環(huán)境、算法、流程圖、數(shù)據(jù)類型、常量、變量、表達式與運算符,數(shù)據(jù)結(jié)構(gòu)的基本概念和術(shù)語。

      (2)順序程序設(shè)計:格式、字符輸入輸出函數(shù),順序程序設(shè)計的應(yīng)用。

      (3)選擇結(jié)構(gòu)程序設(shè)計:關(guān)系與邏輯運算符、If、Switch語句。

      (4)循環(huán)結(jié)構(gòu)程序設(shè)計:while、do-while、for、break與continue語句的格式及其應(yīng)用。

      (5)函數(shù):函數(shù)的定義與調(diào)用、函數(shù)的嵌套與遞歸調(diào)用,變量的作用域與存儲類型,編譯預(yù)處理。

      (6)數(shù)組和結(jié)構(gòu)體:數(shù)組和結(jié)構(gòu)體的定義及應(yīng)用;線性表的順序存儲結(jié)構(gòu),順序線性表的創(chuàng)建和輸出;順序線性表中的排序、查找算法。

      (7)指針和鏈表:指針的定義及其在程序中的應(yīng)用,指針變量作為函數(shù)參數(shù)的使用方法;鏈表的表示和實現(xiàn)。

      (8)棧、隊列和樹:棧、隊列、樹及二叉樹的定義及存儲結(jié)構(gòu)、應(yīng)用。

      (9)圖:圖的基本概念、圖的存儲結(jié)構(gòu)、圖的遍歷 、最小生成樹、最短路徑與最短距離、拓樸排序。

      3.2 實驗設(shè)計思想

      C程序設(shè)計和數(shù)據(jù)結(jié)構(gòu)都是實踐性很強的課程,因此在理論教學的同時,還要合理安排上機實踐。兩門課程整合后,根據(jù)以往實驗教學的經(jīng)驗,重新安排各種實驗,以鞏固、加深教學內(nèi)容。實驗形式較以往的單一形式不同,為驗證型、糾錯型、引導型、設(shè)計型,實驗內(nèi)容做到循序漸進、由淺入深,有利于學生閱讀、調(diào)試、設(shè)計程序能力的提高。例如:在學習順序結(jié)構(gòu)設(shè)計時,教師安排一個設(shè)計型實驗,由鍵盤任意輸入一個四位的正整數(shù),編程求各位數(shù)字之和。學習選擇結(jié)構(gòu)設(shè)計時,將實驗改為由鍵盤任意輸入一個四位的正整數(shù),編程判斷并輸入它的位數(shù)以及各位數(shù)字之和,要求學生用“選擇結(jié)構(gòu)”編制程序。學完循環(huán)結(jié)構(gòu)程序設(shè)計后,將其改為引導型題目,要求學生用“循環(huán)結(jié)構(gòu)”實現(xiàn)。

      順序結(jié)構(gòu)程序如下: 選擇結(jié)構(gòu)程序如下:

      #include #include

      void main( ) void main( )

      { {int x,a,b,c,d,sum;

      int x,a,b,c,d,sum; printf(“請輸入一個四位的正整數(shù):“);

      printf(“請輸入一個四位的正整數(shù):“); scanf(“%d”,&x);

      scanf(“%d”,&x); if(x>=1000&&x

      a=x/1000; {a=x/1000;

      b=x%1000/100; b=x%1000/100;

      c=x%100/10; c=x%100/10;

      d=x%10; d=x%10;

      sum=a+b+c++d; sum=a+b+c++d;

      printf(“\n各位數(shù)字之和=%d\n”,sum);} printf(“\n各位數(shù)字之和=%d\n”,sum);}

      else

      printf(“\n輸入的數(shù)字有誤!\n”);}

      通過完成不同類型的實驗,有目的的、分層次地培養(yǎng)學生的實踐能力,使學生學會從實驗過程中獲得啟發(fā),獲取知識、積累經(jīng)驗。

      在課程學習結(jié)束后,進行2周的課程設(shè)計。課程設(shè)計是由指導教師根據(jù)本門課程的教學目標和能力訓練的要求選擇設(shè)計一個項目,該項目的內(nèi)容不僅涵蓋了C程序設(shè)計與數(shù)據(jù)結(jié)構(gòu)課程理論教學的主要知識點,同時能夠提高學生應(yīng)用C語言與數(shù)據(jù)結(jié)構(gòu)的知識解決實際問題的能力。

      3.3 教學方法探討和手段設(shè)計

      首先,不管學習什么樣的課程,興趣是最好的老師。在過去的教學過程中,發(fā)現(xiàn)大部分學生抱怨程序設(shè)計太難、不好學、難讀、編程無從下手等問題。因此,針對學生的這種情況,調(diào)動學生學習的興趣和積極性顯得尤為重要。經(jīng)常用學生生活中的小實例來結(jié)合課程的教學,讓學生明白C語言和數(shù)據(jù)結(jié)構(gòu)離我們很近,而且很有用。再者,采用“啟發(fā)、引導”教學方法。在授課過程中,引導學生提出問題、分析問題、劃分程序模塊、算法設(shè)計,最終編寫出程序。這種教學方法能夠很好的吸引學生的注意力,調(diào)動學生的學習主動性。最后,有效利用現(xiàn)代化教學手段輔助教學:一是精心制作課件,制作Flas,使用多媒體進行教學。二是有效的利用實訓室和教學軟件進行一體化教學,邊講邊做,增加互動教學過程,提高學生的動手能力。三是借助職教新干線、BBS等網(wǎng)絡(luò)平臺進行網(wǎng)絡(luò)互動交流。

      4、結(jié)語

      整合之后的課程以C程序設(shè)計內(nèi)容為主線,將數(shù)據(jù)結(jié)構(gòu)的內(nèi)容溶入其中,根據(jù)需要對課程內(nèi)容進行相應(yīng)的調(diào)整。整合后的課程更注重學生閱讀程序、調(diào)試程序、編寫程序能力的培養(yǎng)。當然,肯定還是存在一些問題,需要在今后的教學實踐中不斷地修正和完善。

      參考文獻

      [1]謝莉莉,李勤,傅春等.“C語言與數(shù)據(jù)結(jié)構(gòu)”課程的教學改革實踐[J].北京:計算機教育,2009(7).

      篇(5)

      摘要:針對計算機類本科專業(yè)數(shù)據(jù)結(jié)構(gòu)課程與Java面向?qū)ο蟪绦蛟O(shè)計課程之間的銜接問題,分析數(shù)據(jù)結(jié)構(gòu)中集合、線性表、樹和圖等知識點與Java Collections框架之間的映射關(guān)系,提出按照數(shù)據(jù)結(jié)構(gòu)中學生建立的知識體系組織Collections框架的教學,說明面向數(shù)據(jù)結(jié)構(gòu)知識體系的Java課程教學實施方法。

      關(guān)鍵詞 :數(shù)據(jù)結(jié)構(gòu);Java;Collections框架;課程銜接

      文章編號:1672-5913(2015)15-0082-03

      中圖分類號:G642

      基金項目:河北省精品課程建設(shè)項目“數(shù)據(jù)結(jié)構(gòu)”。

      作者簡介:董東,男,副教授,研究方向為數(shù)據(jù)挖掘及應(yīng)用,dongdong@hebtu.edu.cn。

      0 引 言

      數(shù)據(jù)結(jié)構(gòu)是計算機類本科專業(yè)核心課程之一,其后繼課Java面向?qū)ο蟪绦蛟O(shè)計也是重要的專業(yè)課程之一。通過對數(shù)據(jù)結(jié)構(gòu)的學習,學生初步掌握了為實現(xiàn)問題求解所需要的基本邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)和常見的算法。Java面向?qū)ο蟪绦蛟O(shè)計則從面向?qū)ο蟪绦蛟O(shè)計的范式出發(fā),試圖使學生理解如何通過對象以及對象間的通信實現(xiàn)問題求解。在Java教學實踐中,我們發(fā)現(xiàn)存在如下兩個問題:①學生無法直接感受到數(shù)據(jù)結(jié)構(gòu)與Java面向?qū)ο蟪绦蛟O(shè)計之間的關(guān)系,體會不了數(shù)據(jù)結(jié)構(gòu)的重要性,無法體驗選擇合適的數(shù)據(jù)結(jié)構(gòu)和算法對實現(xiàn)問題求解的成就感。②由于JDK開發(fā)的歷史原因,Java JDK中提供的數(shù)據(jù)結(jié)構(gòu)與算法的實現(xiàn)并沒有與數(shù)據(jù)結(jié)構(gòu)課程具有對應(yīng)關(guān)系。例如,在Java中,隊列(Queue)和線性表( List)都是Collection的子接口,而數(shù)據(jù)結(jié)構(gòu)認為隊列是一種特殊的線性表。

      根據(jù)在教學中發(fā)現(xiàn)的這些問題,我們在Java Collection框架部分的講授中采取了如下措施:①按照數(shù)據(jù)結(jié)構(gòu)中學生建立的知識體系組織Collection、Set、List、Queue、Stack等內(nèi)容的講授,而不是按照Java API中的繼承關(guān)系來介紹。②在課程設(shè)計實踐環(huán)節(jié),通過“先動手寫自己的算法實現(xiàn)”,然后“閱讀并分析JDK相關(guān)算法源代碼”,通過對照,使學生發(fā)現(xiàn)自己在程序設(shè)計方面的不足,從而得到在數(shù)據(jù)結(jié)構(gòu)課程中所學知識的應(yīng)用體驗。

      1 JDK中的數(shù)據(jù)結(jié)構(gòu)

      數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)元素之間的關(guān)系。從概念和實現(xiàn)兩個角度,可將數(shù)據(jù)結(jié)構(gòu)分為數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的存儲結(jié)構(gòu)。按照數(shù)據(jù)元素之間前驅(qū)和后繼關(guān)系來分,數(shù)據(jù)的邏輯結(jié)構(gòu)可分為以下4種:集合( Set)、線性表(List)、樹(Tree)和圖(Graph)。數(shù)據(jù)的存儲結(jié)構(gòu)主要包括數(shù)據(jù)元素本身的存儲以及數(shù)據(jù)元素之間關(guān)系表示。數(shù)據(jù)元素之間的關(guān)系在計算機中主要有兩種不同的表示方法:順序映像和非順序映像,并由此得到兩種不同的存儲結(jié)構(gòu):順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)。

      Java JDK為常用的數(shù)據(jù)結(jié)構(gòu)定義了一些接口( Interface)和實現(xiàn)(Implementation)。這些接口、實現(xiàn)類以及常用的排序、查找等算法統(tǒng)稱為JavaCollections框架(Java Collections Framework).Collections框架的設(shè)計目的是要滿足如下目標:高性能、一致性、擴展性和輕松編程。Java程序員在具體應(yīng)用時,不必考慮數(shù)據(jù)結(jié)構(gòu)和算法實現(xiàn)細節(jié),只需要用這些類創(chuàng)建出來一些對象,然后直接應(yīng)用即可‘3]。Java中把一組對象稱為Collection,也就是說,Collection是對象的容器。Java對Collection中的對象沒有任何前驅(qū)、后繼以及重復性的約束,只是約束了對象類型E。

      Collection接口定義了其上的3類操作:針對單個元素的基本操作、迭代器和Collection對象之間的批量操作。基本操作包括增加、刪除、判斷是否包含某個元素、判斷是否為空、容器中當前元素的個數(shù)、清空等。批量操作包括:合并兩個Collection容器、從一個容器中移走一些元素、保留兩個容器中相同的元素、判斷一個容器中的元素是否完全包含在另外一個容器中等。

      接口Collection<E>的子接口有Set<E>和List<E>。集合(Set)在Collection的基礎(chǔ)之上增加了“不允許重復元素”的約束;而List則在Collection基礎(chǔ)之上增加了“元素之間具有前驅(qū)、后繼關(guān)系”的約束:除了第一個元素外,所有元素具有唯一的前驅(qū);除了最后一個元素外,所有元素具有唯一后繼。

      如果僅關(guān)心數(shù)據(jù)元素是否出現(xiàn),而不關(guān)心數(shù)據(jù)元素之間的次序,則應(yīng)使用Set<E>。Java為集合接口提供了兩個基本的實現(xiàn):HashSet<E>和Tree<Set>。HashSet<E>是Set<E>接口的典型實現(xiàn),大多使用集合的場合就是使用這個實現(xiàn)類。HashSet實現(xiàn)類按哈希算法來存儲集合中的元素,因此具有很好的查找性能。HashSet不能記憶元素之間的順序,包括插入順序。其子類LinkedHashSet<E>也是根據(jù)元素hashCode值來決定元素存儲位置,但它同時使用鏈表維護元素的次序,這樣使得能夠記憶插入順序。由于LinkedHashSet需要維護元素的插入順序,所以性能略低于HashSet,但遍歷集合里的全部元素性能較好。

      實現(xiàn)類TreeSet<E>可以確保集合元素處于排序狀態(tài),TreeSet并不是根據(jù)元素的插入順序進行排序,而是根據(jù)元素的實際值來進行排序的。TreeSet采用紅黑樹的數(shù)據(jù)結(jié)構(gòu)對元素進行排序,并要求添加進TreeSet中的對象必須實現(xiàn)CompareTo<E>接口。

      List<E>接口作為Collection<E>接口的子接口,可以使用Collection接口中的全部方法。但是List接口中定義了元素位置和元素范圍的概念,使得List可以根據(jù)元素位置索引(index)來插入、替換、刪除集合元素以及查找指定對象的位置。ArrayList<E>實現(xiàn)類基于數(shù)組實現(xiàn)了List接口,其內(nèi)部封裝了一個動態(tài)再分配的數(shù)組。每個ArrayList對象都有一個capacity屬性,這個屬性表示它們所封裝的數(shù)組的長度,當添加元素超過長度時,capacity會自動增長,其默認值為10。LinkedList<E>內(nèi)部以鏈表來保存集合中的元素,因此隨機訪問容器時的性能較差,但在插入、刪除元素時性能較好。

      Queue<E>接口用于定義隊列這種數(shù)據(jù)結(jié)構(gòu),隊列是“先進先出”的容器,通常不允許隨機訪問其中的元素。Java中的隊列接口Queue<E>沒有繼承List接口,而是直接繼承了Collection接口。如果使用具有固定容量的隊列,則應(yīng)使用offer()來加入元素,使用poll()來獲取并移出元素,因為add()和remove()方法在因容量原因失敗時拋出異常。如果只是訪問隊首而不移出該元素,使用element()或者peek()方法。LinkedList<E>類實現(xiàn)了Queue<E>接口,因此我們可以把LinkedList當成Queue來用。PriorityQueue是一個比較標準的隊列實現(xiàn)類,它并不是按加入隊列的順序,而是按隊列元素的大小來記憶隊列元素的順序。因此當調(diào)用peek方法或者poll方法來取出隊列中的元素時,并不是取出最先進入隊列的元素,而是取出隊列中最小的元素。

      Stack<E>實現(xiàn)了List<E>接口,提供了push和pop操作限制線性表中元素的插入和刪除只能在線性表的同一端進行。JDK l.6引入的ArrayDequ<E>實現(xiàn)類被優(yōu)先推薦作為棧使用。ArrayDeque<E>實現(xiàn)了Deque<E>接口。Deque<E>接口定義了雙端隊列,雙端隊列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。

      Java JDK中沒有直接提供樹和圖的接口和實現(xiàn)類,但是可以通過研究TreeMap的源代碼學習操作樹的一般編寫模式。綜上,數(shù)據(jù)結(jié)構(gòu)與Java面向?qū)ο蟪绦蛟O(shè)計兩門課程內(nèi)容的銜接見表1。

      2 面向數(shù)據(jù)結(jié)構(gòu)銜接的java課程實施方案

      Java面向?qū)ο蟪绦蛟O(shè)計為1學期的課程。總課時為講授54學時、實驗32學時。其中,與數(shù)據(jù)結(jié)構(gòu)知識點緊密相關(guān)的Java Collections框架部分為講授6學時、實驗4學時。在講授環(huán)節(jié),按照表1列出的順序進行。在實驗環(huán)節(jié)完成與授課內(nèi)容相關(guān)的驗證性實驗。在課程設(shè)計實踐環(huán)節(jié),要求學生使用Java設(shè)計常見算法,然后閱讀JDK提供的源代碼進行對照。具體方案如圖1所示。

      比如,在java.util.Collections類中提供了數(shù)據(jù)結(jié)構(gòu)中學生已經(jīng)學過的常見算法,如二分查找、計算元素頻數(shù)、查找最大/最小元素、反轉(zhuǎn)線性表、按照指定距離旋轉(zhuǎn)線性表、隨機排列線性表、交換指定位置上的兩個元素以及排序等。注意,在Java 6中Collections.sort()使用的是MergeSort;而在Java 7中,內(nèi)部實現(xiàn)換成了TimSort。

      要求學生按照這些API文檔說明,首先按照數(shù)據(jù)結(jié)構(gòu)課程中的知識設(shè)計自己的算法實現(xiàn),然后與API源代碼進行比較。由于學生使用C語言版的數(shù)據(jù)結(jié)構(gòu)教材,所以在面向Collection編程之前,作為過渡,先讓學生面向數(shù)組編程。

      哈希表是一種重要的數(shù)據(jù)結(jié)構(gòu),也是實現(xiàn)集合的基本途徑之一。通過研究HashSet的源代碼,可以讓學生理解為什么每個對象都要有hashcode()方法,以及哈希表的編碼特點。由于HashSet的實現(xiàn)是基于HashMap的,所以研究HashSet就要研究HashMap。

      Map是一種典型的名值對類型,它提供一種Key-Value對應(yīng)保存的數(shù)據(jù)結(jié)構(gòu)。客戶程序通過Key值來訪問對應(yīng)的Value,這個接口并沒有繼承Collection這接口;而其他的類或者接口,不管是List、Set、Stack等都繼承或?qū)崿F(xiàn)了Collection。

      TreeMap和HashMap算是Java集合類里面比較有難度的數(shù)據(jù)結(jié)構(gòu)。HashMap元素存取的時間復雜度一般是O(l),而TreeMap內(nèi)部對元素的操作復雜度為O(logn)。TreeMap記憶了順序,TreeSet內(nèi)部的實現(xiàn)使用了TreeMap。

      3 結(jié)語

      數(shù)據(jù)結(jié)構(gòu)與程序類課程的關(guān)系問題愈來愈引起關(guān)注,我們提出面向數(shù)據(jù)結(jié)構(gòu)知識體系的Java課程教學與數(shù)據(jù)結(jié)構(gòu)課程的銜接方案。這個教學方案已經(jīng)在河北師范大學本科計算機專業(yè)實施三屆,取得了較好的效果,學生對算法的理解加深了,解決問題的自信心增強了,也建立了工程意識。

      參考文獻:

      [1]教育部高等學校計算機科學與技術(shù)教學指導委員會,高等學校計算機科學與技術(shù)專業(yè)公共核心知識體系與課程[M].北京:清華大學出版社,2008: 110-111

      [2]嚴蔚敏,吳偉民,數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:清華大學出版社,1997: 5-7.

      [3]扎克霍爾.Java語言導學[M].北京:人民郵電出版社,2008: 293-294.

      [4]沈華.數(shù)據(jù)結(jié)構(gòu)、算法和程序之間關(guān)系的探討[J].計算機教育,2013(4): 58-61.

      篇(6)

      中圖分類號:G642 文獻標識碼:A

      1 引言(Introduction)

      隨著便攜式移動終端的發(fā)展,“碎片化”時間的利用率越來越高,人們進入了“微時代”。“微課程”成了時代的產(chǎn)物。所謂“微課”是指按照新課程標準及教學實踐要求,以教學視頻為主要載體,反映教師在課堂教學過程中針對某個知識點或教學環(huán)節(jié)而開展教與學活動的各種教學資源的有機組合[1]。現(xiàn)如今各高校大力推動微課程,組織各種微課程比賽,調(diào)動教師的積極性,“微課”對于教師來說已不是一個陌生的名詞。然而,目前的微課程只是針對一門課程當中的一個組成部分,僅是單獨講解某個知識點,沒有形成一門完整的課,還沒有完全發(fā)揮微課程的優(yōu)勢,并沒有應(yīng)用于真正的教學當中。

      《數(shù)據(jù)結(jié)構(gòu)》課程是計算機課程體系中的專業(yè)基礎(chǔ)課程[2],作為程序設(shè)計的基礎(chǔ),數(shù)據(jù)結(jié)構(gòu)課程不僅成為高校碩士研究生入取的必考科目,還是各企業(yè)招聘員工入職筆試中青睞的學科。如何讓學生在課堂教學中對課程有更深刻的理解,并在復習考研和準備找工作中進行更好的自主學習,成為數(shù)據(jù)結(jié)構(gòu)課程教學的研究重點,本文在分析數(shù)據(jù)結(jié)構(gòu)教學現(xiàn)狀的基礎(chǔ)上通過對數(shù)據(jù)結(jié)構(gòu)知識點的分析,構(gòu)建合理的數(shù)據(jù)結(jié)構(gòu)微課程框架,并將其應(yīng)用于教學中,使得學生能更好的應(yīng)用“微課程”進行學習。

      2 數(shù)據(jù)結(jié)構(gòu)課程的現(xiàn)狀分析(Current situation

      analysis of data structure)

      數(shù)據(jù)結(jié)構(gòu)課程是一門比較抽象的課程,而且學生本身知識儲備不足[2],所以僅靠課堂上的講解,不能使學生達到很好的消化吸收的效果。目前,很多高校也開發(fā)了網(wǎng)絡(luò)教學平臺,積極倡導教師和學生通過網(wǎng)絡(luò)平臺實現(xiàn)在線探討交流,通過對網(wǎng)絡(luò)教學平臺的建設(shè),如將大綱日歷、教案、教學課件,教學視頻上傳到教學平臺,使學生增加課下自主學習的意識,同時,老師在上課的時候也會給學生提供一些教學視頻的網(wǎng)站,如清華教育在線等,然而,雖然教學平臺的建設(shè)很完整,教師提供的教學視頻也很不錯,學生卻很少好好利用網(wǎng)絡(luò)教學平臺或教師提供的網(wǎng)絡(luò)視頻進行自主學習。主要原因有三點:

      (1)教師的課堂教學主要以集中講授為主,并沒有引導學生利用網(wǎng)絡(luò)教學平臺的資源進行自主學習,學生把網(wǎng)絡(luò)教學平臺當成了一個簡單的提交作業(yè)、下載課件的平臺。

      (2)教學平臺的內(nèi)容過于繁多,視頻基本上為課堂講授的視頻,即使有學生想課下自主學習,在看到45分鐘甚至90分鐘的教學視頻也會打退堂鼓。

      (3)教師提供的教學視頻,如清華教育在線雖是名校老師講解,但對于一般高校的學生來說講解內(nèi)容過深,沒有針對性,很多學生覺得聽不懂,打消了自主學習的積極性。

      通過“微課程”的概念,專家學者認為“微課程”就是針對一個具體的知識點在短時間內(nèi)(一般為10分鐘左右)做簡單明確的講解,這種講解不是泛泛的介紹,而是通過精心的設(shè)計,最終完成容量小,內(nèi)容精的視頻制作[3]。可以說,“微課程”的出現(xiàn)為我們解決數(shù)據(jù)結(jié)構(gòu)自主學習難的狀況提供了很好的解決方案。如何做到容量小,內(nèi)容精成了“微課程”視頻制作的關(guān)鍵,也是本文的研究重點。

      3 基于微課程的數(shù)據(jù)結(jié)構(gòu)模塊化設(shè)計與實現(xiàn)

      (Modular design and implementation of data

      structure based on micro-lecture)

      本文依據(jù)清華大學出版社出版的嚴蔚編的數(shù)據(jù)結(jié)構(gòu)教材[4]進行知識點的劃分,構(gòu)建知識點的模塊化,并將其應(yīng)用在教學中。

      3.1 數(shù)據(jù)結(jié)構(gòu)相關(guān)知識點的分析與研究

      數(shù)據(jù)結(jié)構(gòu)課程研究的是數(shù)據(jù)和數(shù)據(jù)之間的關(guān)系,其基本分為四大類:集合、線性結(jié)構(gòu)、樹形結(jié)構(gòu)和圖形結(jié)構(gòu)。在數(shù)據(jù)結(jié)構(gòu)課程中,主要講解的是后三種結(jié)構(gòu)的邏輯結(jié)構(gòu)、物理結(jié)構(gòu),以及相關(guān)算法的實現(xiàn)。在課程的最后講解了利用已學過的數(shù)據(jù)結(jié)構(gòu)解決基本的查找和排序的問題。

      上述這些知識點中都具有一定的順序性、關(guān)聯(lián)性,但又相互獨立。如果只是把課程講解的內(nèi)容分解成10分鐘之內(nèi)的小視頻,除了時間上看著短了以外,沒有改變課堂講解的實質(zhì),沒有做到真正意義上的微課程。在多年教學經(jīng)驗的指導下,本文要研究的是什么樣的知識點適合做成微課程,讓學生課下自主學習,課上共同討論,培養(yǎng)學生自主學習的能力,并且在考試復習時通過溫習微課程的視頻可以更快的掌握主要題型的解決方法,節(jié)約復習時間。

      微課程知識點的設(shè)定原則為5―20分鐘可以被清晰地講解,且盡量不涉及程序性的內(nèi)容。棧和隊列可以說是操作受限的線性表,其抽象數(shù)據(jù)類型和現(xiàn)實生活中的很多例子都有相似性,可以將其作為微課程的一個知識點,讓學生自主學習。在樹形結(jié)構(gòu)中,如何在連續(xù)的存儲空間中把非線性的東西表示出來可以在短時間內(nèi)很經(jīng)典的講解出來,其鏈表的表示所以也非常適合做成微課程。二叉樹的結(jié)構(gòu)和樹非常像,對二叉樹的遍歷,以及樹和森林的轉(zhuǎn)化都是比較獨立的知識點,其方法不涉及難理解的程序,將這些放入微課程中。赫夫曼樹是二叉樹的重要應(yīng)用,其構(gòu)造方法可以放入微課程的知識點框架中。在圖形結(jié)構(gòu)中圖的鄰接矩陣表示法和鄰接表表示法都可以作為微課程的一部分,深度優(yōu)先遍歷和廣度優(yōu)先遍歷的算法雖然不易理解,但其求解方法的思想?yún)s可以通過微課程表達出來。最小生成樹,關(guān)鍵路徑,單源最短路徑都是圖里的應(yīng)用,僅把問題的解決方法放入微課程中是比較好的選擇。在查找中的折半查找和二叉排序樹的構(gòu)造都是獨立的知識點,可以很好的用于微課程的制作。在排序中,會選擇相對復雜一些的快速排序和堆排序,僅僅介紹排序的思想。微課程的知識點設(shè)定如圖1所示。

      3.2 翻轉(zhuǎn)課堂輔助數(shù)據(jù)結(jié)構(gòu)微課程的實現(xiàn)

      學生在剛接觸數(shù)據(jù)結(jié)構(gòu)時會覺得特別的抽象,其基本概念和相關(guān)的術(shù)語并不適合讓學生自主學習,線性表是學生接觸的第一種線性結(jié)構(gòu),其邏輯結(jié)構(gòu),順序存儲和鏈式存儲,以及插入刪除等操作都非常的重要,但多數(shù)都是枯燥的程序,想讓學生在短時間內(nèi)掌握其精髓并不是一件容易的事,如果這個部分讓學生自主學習很可能會打消學生的積極性,所以前幾節(jié)課程并不適合做翻轉(zhuǎn)課程。在學生已經(jīng)對線性表有所掌握的情況下,可以將棧和隊列的邏輯結(jié)構(gòu)微課程要求學生自己學習,在課堂上進行討論,在討論的基礎(chǔ)上講解實現(xiàn)通過自主學習了解的各種操作的程序。樹形結(jié)構(gòu)是學生接觸的第一種非線性結(jié)構(gòu),所以其邏輯結(jié)構(gòu)需要在課堂上進行講解,雖然樹形結(jié)構(gòu)的存儲結(jié)構(gòu)已經(jīng)安排在微課程中,但由于是學生第一次接觸,所以本微課程部分并不作為翻轉(zhuǎn)課堂的一部分,學生在復習時可以通過微課程進行復習,以更好的掌握知識點。而二叉樹的相關(guān)微課程可以要求學生自行學習,在課堂上根據(jù)學生學習的結(jié)果共同研究算法的實現(xiàn)。圖形結(jié)構(gòu)和樹形結(jié)構(gòu)都屬于非線性結(jié)構(gòu),所以二者具有很多相似的地方,可以由學生自主學習課堂討論,通過討論的情況分析學生的掌握情況,因為微課程的內(nèi)容簡單,重要的算法實現(xiàn)還需要在課堂上詳細講解。經(jīng)過前面的學習,插入和排序的內(nèi)容無論是應(yīng)用方面還是程序?qū)崿F(xiàn)方面都由學生自主完成,通過討論和測試考察學生的掌握情況。

      經(jīng)過和微課程相結(jié)合的翻轉(zhuǎn)課程的設(shè)計,使學生習慣通過微課程進行學習,掌握自主學習的能力。

      4 結(jié)論(Conclusion)

      微課程的系統(tǒng)框架對微課程的制作起到了指揮棒的作用,在總體框架下進行各個微課程的制作,在制作過程中絕不僅僅是錄制簡單的視頻,雖然僅僅是10分鐘左右,但工作量絕不亞于一節(jié)課的準備,不僅要對微課程設(shè)計方案,制作電子課件,還要精心準備習題,并配合易理解的答案。只有一個完整系統(tǒng)的微課程,再加上與課堂的相輔相成,才能使得學生在課下自主學習時更有針對性,學生學的更明白,課上討論也會更豐富,形成良性循環(huán),真正實現(xiàn)了教師學生共同授課,共同討論的多樣化教學體系。

      參考文獻(References)

      [1] 梁樂明,曹俏俏,張寶輝.微課程設(shè)計模式研究――基于國內(nèi)

      外微課程的對比分析[J].開放教育研究,2013,19(1):65-73.

      [2] 董麗薇.“數(shù)據(jù)結(jié)構(gòu)”課程教學方法的改進[J].沈陽師范大學

      學報:自然科學版,2012,30(2):307-309.

      [3] 劉名卓,祝智庭.微課程的設(shè)計分析與模型構(gòu)建[J].中國電化

      教育,2013,(12):127-131.

      [4] 嚴蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:清華大學出版

      社,2012.

      作者簡介:

      篇(7)

      引言

      面向21世紀教學內(nèi)容和課程改革計劃的目的之一,就是培養(yǎng)學生勤動腦、善思考的素質(zhì)及綜合運用知識、創(chuàng)新知識、解決問題的能力。實踐教學是培養(yǎng)新型人才重要的基本環(huán)節(jié),在學生能力培養(yǎng)和綜合素質(zhì)提高方面有其獨特的作用。通過分析現(xiàn)行的數(shù)據(jù)結(jié)構(gòu)實驗教學模式,我們發(fā)現(xiàn)在現(xiàn)行模式下,教師只是灌輸式地教,學生被動式地學,實驗以驗證性實驗為主,不利于學生的獨立思維能力和創(chuàng)新能力的培養(yǎng)。

      結(jié)合教育部的“面向21世紀教學內(nèi)容和改革計劃,保留少量必開的經(jīng)典驗證型實驗,增開綜合型、設(shè)計型實驗”的精神和我院2008培養(yǎng)方案的要求,我們在數(shù)據(jù)結(jié)構(gòu)實踐環(huán)節(jié)中保留了必要的經(jīng)典的驗證型實驗內(nèi)容,增加了設(shè)計型實驗,加強了綜合型實驗,并新開設(shè)了探索創(chuàng)新型實驗。

      實踐證明,實驗是培養(yǎng)學生創(chuàng)新能力和優(yōu)良素質(zhì)的有力手段。隨著計算機科學技術(shù)的迅速發(fā)展,為了提高數(shù)據(jù)結(jié)構(gòu)實驗和計算機專業(yè)學生的質(zhì)量,充分發(fā)揮數(shù)據(jù)結(jié)構(gòu)實驗教學豐富的素質(zhì)教育功能,數(shù)據(jù)結(jié)構(gòu)實驗教學的課程設(shè)置和教學內(nèi)容急需更新。為此,我們在數(shù)據(jù)結(jié)構(gòu)實驗教學中創(chuàng)新性地增加了探索創(chuàng)新型的實驗項目,使實驗項目由原來的三個層次增加到四個層次。但如何設(shè)計出一些新的綜合型實驗和探索創(chuàng)新性實驗以滿足培養(yǎng)21世紀人才的需要,尚需不斷地探索。

      1 設(shè)立綜合型和探索創(chuàng)新型實驗的原則和思路

      1.1 綜合實驗和探索創(chuàng)新型實驗要體現(xiàn)專業(yè)方向性

      數(shù)據(jù)結(jié)構(gòu)是計算機各專業(yè)方向的專業(yè)基礎(chǔ)課程,對于這樣的課程來說,找不到“一藥治百病”的實驗題目,而是要根據(jù)專業(yè)方向特點來設(shè)計符合相應(yīng)專業(yè)培養(yǎng)目標的綜合和探索創(chuàng)新型實驗,例如我校的計算機專業(yè)方向是計算機網(wǎng)絡(luò)工程和軟件工程,相應(yīng)地我們在設(shè)計綜合型和探索創(chuàng)新型的實驗時既要考慮到數(shù)據(jù)結(jié)構(gòu)的專業(yè)基礎(chǔ)性又要結(jié)合軟件和網(wǎng)絡(luò)相關(guān)的內(nèi)容。

      1.2 綜合實驗和探索創(chuàng)新型實驗要具有創(chuàng)新性

      實施創(chuàng)新教育,培養(yǎng)創(chuàng)新人才,已成為國內(nèi)外教育改革的一大潮流。創(chuàng)新能力是以創(chuàng)新思維能力為核心的、創(chuàng)造新穎而有價值的成果的能力。因此,我們要以培養(yǎng)創(chuàng)新思維能力為核心,對學生進行創(chuàng)新能力教育。創(chuàng)新思維是科學認識和技術(shù)進步中一種高級的綜合性的思維方法,是人類創(chuàng)新活動的靈魂和核心。它包括一般的思維形式,又包括特殊的思維形式,還包括想象這樣的心理活動。根據(jù)專家研究,創(chuàng)新思維活動一般經(jīng)過四個階段來解決問題:準備期、醞釀期、明朗期和驗證期。在實驗教學中,能夠更有效、最直觀、最快速地經(jīng)歷創(chuàng)新思維這四個階段的是創(chuàng)新實驗。要培養(yǎng)富有創(chuàng)新力的學生,就必須有創(chuàng)新性的教師。教師創(chuàng)新能力的高低,對學生創(chuàng)新能力的培養(yǎng)至關(guān)重要。為迅速培養(yǎng)學生的創(chuàng)新思維能力,教師必須建立創(chuàng)新實驗的意識,也必須有創(chuàng)新實驗的綜合知識和能力。

      創(chuàng)新實驗的選擇應(yīng)遵從的原則是:①課題新穎,能反映計算機學科的發(fā)展及現(xiàn)實生活的要求,使學生有新鮮感;②內(nèi)容全面,并便于設(shè)計;③難易適當,學生在老師的指導下結(jié)合文獻的查閱就可以實現(xiàn);④能起到擴充知識,鍛煉操作技能,培養(yǎng)分析問題、解決問題能力的作用。

      1.3 教學、科研和科技開發(fā)三結(jié)合是設(shè)立數(shù)據(jù)結(jié)構(gòu)綜合實驗和探索創(chuàng)新型實驗的途徑

      從培養(yǎng)學生的能力特別是創(chuàng)新能力這一根本宗旨出發(fā),數(shù)據(jù)結(jié)構(gòu)綜合實驗和探索創(chuàng)新型實驗絕不是教學的單一過程,而應(yīng)當成為同時具有實驗教學、科學研究與科技開發(fā)三項職能的活動途徑,由此培養(yǎng)學生的實踐、創(chuàng)新等各種能力。

      (1)實驗教學

      必須克服過去實驗教學依附于某門課程并且主要是驗證性實驗的弊端,打破課程界限,將原來的實驗教學內(nèi)容逐步整合成綜合型實驗并力求成為設(shè)計型、探索創(chuàng)新型實驗。應(yīng)該讓學生從基本概念和原理出發(fā),通過對設(shè)計的簡單算法分析,再進入到更高一級的算法設(shè)計,從而鍛煉分析問題、解決問題的能力,進而鍛煉創(chuàng)新能力。

      (2)科學研究

      計算機專業(yè)學生進入數(shù)據(jù)結(jié)構(gòu)實驗環(huán)節(jié)時還處于低年級,專業(yè)知識還不夠全面,在實踐過程中,我們可以適當加進教師的部分科研成果,對學生進行初步的科研鍛煉;同時也可以解決教師科研中人手不足的問題,提高設(shè)備的利用率。這是一舉多得的好事。

      (3)科技開發(fā)

      數(shù)據(jù)結(jié)構(gòu)綜合實驗和探索創(chuàng)新型實驗也可以與科技開發(fā)相結(jié)合,利用校有設(shè)備或與企業(yè)合作讓學生做些初步研究與開發(fā)工作,這對學校和企業(yè)都是很有利的。一方面,綜合型和探索創(chuàng)新型的實驗項目內(nèi)容可來自科研和科技開發(fā)項目,結(jié)合實際;另一方面,綜合型和探索創(chuàng)新型實驗對培養(yǎng)學生的研究興趣,擴展其視野,使學生了解社會與市場都是很好的切入點。

      2 數(shù)據(jù)結(jié)構(gòu)綜合實驗和探索創(chuàng)新型實驗開設(shè)的經(jīng)驗及效果

      我們從2005年開始開設(shè)綜合型實驗,并嘗試從2009年開設(shè)探索創(chuàng)新型實驗,經(jīng)過2006、2008培養(yǎng)方案的制訂和修訂,又經(jīng)過2008年教學大綱的完善,形成了反映本專業(yè)的特色的綜合型實驗。綜合型實驗的開設(shè),取得了較好的效果。

      (1)精心編選綜合型和探索創(chuàng)新型實驗的教學講義和教材

      實驗項目的內(nèi)容設(shè)定對提高學生實踐能力具有重要作用,也關(guān)系著精品課程和品牌特色專業(yè)的建設(shè)。

      結(jié)合培養(yǎng)方案設(shè)置的專業(yè)課、專業(yè)方向課及實踐環(huán)節(jié)的課程,開展數(shù)據(jù)結(jié)構(gòu)實驗項目建設(shè),完善與提升實驗內(nèi)容,設(shè)計含有較高水平的設(shè)計型、綜合性和探索創(chuàng)新型實驗,對培養(yǎng)學生的探索創(chuàng)新思維和實際研究動手能力具有重要的現(xiàn)實意義。為培養(yǎng)學生的創(chuàng)新能力,對學生能夠提供規(guī)范而系統(tǒng)的指導,需要對數(shù)據(jù)結(jié)構(gòu)實驗教學進行系統(tǒng)的研究,并編寫一本體現(xiàn)我校特色的實驗指導教材。

      (2)注意多吸納教師的科研成果用于實驗教學

      我們在數(shù)據(jù)結(jié)構(gòu)的綜合性和探索創(chuàng)新型的實驗中,多數(shù)項目都取自教師的科研成果,這些成果在實驗課程中加以系統(tǒng)安排,變成了豐富的、理論與實踐相結(jié)合的綜合型和探索創(chuàng)新型的實驗內(nèi)容。教師的科研成果引入實驗有很多好處。首先教師對實驗內(nèi)容理解非常透徹,對學生的創(chuàng)新性導向比較清晰;其次,學生對老師的實驗成果有崇敬心理,會積極地做好實驗,消除了學生應(yīng)付完成實驗任務(wù)的現(xiàn)象。

      例如,利用順序存儲的線性表、鏈接存儲的線性表、二叉樹、多叉樹和Tile樹以及Hash表等各種不同的數(shù)據(jù)結(jié)構(gòu)來實現(xiàn)字符串的最長前綴匹配,并分析不同數(shù)據(jù)結(jié)構(gòu)下的不同算法的時間和空間復雜度的實驗,使學生透徹地理解了數(shù)據(jù)結(jié)構(gòu)預(yù)算法的作用以及數(shù)據(jù)結(jié)構(gòu)設(shè)計的重要性。

      (3)綜合型和探索創(chuàng)新型實驗的教學效果

      篇(8)

      中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2016)24-0274-03

      一、引言

      實驗教學是學生從學習理論知識到走向社會的橋梁,對提高學生綜合素質(zhì)、培養(yǎng)學生創(chuàng)新精神和實踐能力有著理論教學不可替代的特殊作用[1]。特別是主干課程的實踐教學,它是應(yīng)用型人才培養(yǎng)中的關(guān)鍵環(huán)節(jié)[2]。課內(nèi)實驗是指與理論課相捆綁的實踐教學,即嵌入到專業(yè)基礎(chǔ)課或?qū)I(yè)課內(nèi)的實驗實踐教學[3]。它是與理論教學并行實施的實踐教學環(huán)節(jié),能夠幫助學生深入理解和掌握所學的專業(yè)知識。

      數(shù)據(jù)結(jié)構(gòu)是隨著處理對象的復雜性不斷增加而發(fā)展起來的一門課程,作為計算機專業(yè)的核心課程,在專業(yè)人才培養(yǎng)鏈條中占有舉足輕重的地位[4-7]。數(shù)據(jù)結(jié)構(gòu)主要研究數(shù)據(jù)在抽象視圖和實現(xiàn)視圖中的表示和處理方法[8,9]。抽象視圖涉及的是數(shù)據(jù)結(jié)構(gòu)的理論性部分,實現(xiàn)視圖主要體現(xiàn)的是數(shù)據(jù)結(jié)構(gòu)的實踐性,理論指導實踐,實踐支撐理論,因此設(shè)計有助于課堂理論教學的實驗教學方案是非常有必要的[10]。它可以解決學生對所學知識缺乏必要感性認識的問題,將知識傳授、技能訓練、能力培養(yǎng)融于一體,使所學理論知識在實驗中得到驗證和應(yīng)用[11]。

      棧和隊列是兩種非常重要的數(shù)據(jù)結(jié)構(gòu),它們有非常多的實際應(yīng)用并且是實現(xiàn)其他復雜結(jié)構(gòu)的基礎(chǔ),因此為了幫助學生掌握并靈活運用這兩種結(jié)構(gòu),本文給出一種棧和隊列的實驗教學方案。該方案的設(shè)計思路也可以應(yīng)用于其他數(shù)據(jù)結(jié)構(gòu)或課程的實驗教學方案的設(shè)計。

      二、認識兩種重要的數(shù)據(jù)結(jié)構(gòu)――棧和隊列

      棧和隊列是兩種運算受限的線性表,它們的插入和刪除運算都被限制在表的端點處進行,只是具體的受限規(guī)則不一樣[12,13]。

      (一)學習對象

      棧(stack)是運算受限的線性表,它被限制在表的一端進行插入和刪除操作。能進行插入和刪除的一端稱為棧頂,另一端稱為棧底。正是由于它插入和刪除操作上的限制使得它具有了一種獨特的“后進先出”(LIFO)的特性。棧的LIFO特性使得它具有非常多的應(yīng)用,如:符號平衡問題、中綴表達式轉(zhuǎn)換為后綴表達式問題、后綴表達式的計算問題、函數(shù)調(diào)用的實現(xiàn)(包括遞歸函數(shù)的實現(xiàn))、在股票市場中查找劃分、Web瀏覽器中的網(wǎng)頁訪問歷史、文本編輯器中的撤銷序列等。此外,棧還是其他很多算法的輔助數(shù)據(jù)結(jié)構(gòu)和其他數(shù)據(jù)結(jié)構(gòu)的組成部分。

      隊列(queue)也是一種運算受限的線性表,它被限制在表的一端進行插入操作,在表的另一端進行刪除操作。進行插入操作的一端稱為隊尾,進行刪除操作的一端稱為隊首。正是由于它插入和刪除操作上的限制使得它具有了一種獨特的“先進先出”(FIFO)的特性。隊列的FIFO特性使得它具有非常多的應(yīng)用,如:操作系統(tǒng)中的作業(yè)調(diào)度、異步數(shù)據(jù)轉(zhuǎn)換、多道程序設(shè)計等。此外,隊列還是其他很多算法的輔助數(shù)據(jù)結(jié)構(gòu)和其他數(shù)據(jù)結(jié)構(gòu)的組成部分。

      (二)學習目標

      學習這兩種重要的線性結(jié)構(gòu)需要學生重點消化的知識點有:(1)棧/隊列的概念、類型定義及基本操作的定義和實現(xiàn);(2)棧/隊列的結(jié)構(gòu)特性;(3)棧/隊列的靈活應(yīng)用。

      為了配合棧和隊列的理論教學,幫助學生理解和掌握上述知識點,我們需要精心設(shè)計棧和隊列的實驗教學方案。

      三、棧和隊列的實驗教學方案設(shè)計

      (一)實驗題目設(shè)計

      根據(jù)棧和隊列的學習目標和遵循循序漸進的學習和教學原則,實驗題目被分為以下三個層次:基礎(chǔ)型實驗題目、設(shè)計型實驗題目和加強理解型實驗題目。

      所謂基礎(chǔ)型實驗是指圍繞課程講授的棧/隊列的物理實現(xiàn)和其基本運算的實現(xiàn)來設(shè)置的實驗題目。設(shè)計基礎(chǔ)型實驗的目的是,通過實踐的方式驗證課堂上講授的重要知識點,給學生切身的感受,擺脫“紙上談兵”的感覺,這種立體的感受有助于學生深入理解和掌握這些知識點。設(shè)計型實驗要求學生能分別運用棧/隊列解決簡單應(yīng)用問題。這類實驗題目主要是用來引導和加強學生對棧/隊列的靈活運用。設(shè)計加強理解型實驗的目的是強化學生對棧和隊列的結(jié)構(gòu)特性的理解和體會。為了達到這個目的,加強理解型實驗題目的設(shè)計思路有兩個方面:(1)引導學生去思考并解決這樣兩個問題:能否利用棧的LIFO特性來實現(xiàn)隊列的FIFO特性?能否利用隊列的FIFO特性來實現(xiàn)棧的LIFO特性?(2)讓學生實現(xiàn)其他更為復雜的棧和隊列。

      在棧的理論教學過程中可以開設(shè)棧的基礎(chǔ)型實驗,在棧的理論教學結(jié)束后可以開設(shè)棧的設(shè)計型實驗,在隊列的理論教學過程中可以開設(shè)隊列的基礎(chǔ)型實驗,在隊列的理論教學結(jié)束后可以開設(shè)隊列的設(shè)計型實驗和加強理解型實驗題目。表1給出了具體的實驗安排。

      學生必須在相關(guān)內(nèi)容的理論教學過程中利用自己的課外時間完成全部基礎(chǔ)型實驗題目,教師根據(jù)學時安排選擇1~2道設(shè)計型實驗題目讓學生在上機課上完成,未選擇的題目應(yīng)向?qū)W生提供完整的源代碼和設(shè)計說明。相關(guān)內(nèi)容的理論教學結(jié)束后,學生必須利用自己的課外時間完成加強理解型實驗題目中的第1題和第2題,剩下兩題可以選做。

      (二)教學方法

      因為三種類型實驗的要求、難易程度不同,因此在學生參與形式、教師參與程度、教師參與方式等方面需要區(qū)別對待。表2給出了對三種類型實驗在上述這幾個方面的設(shè)計。

      基礎(chǔ)型實驗要求每位學生利用課外時間獨立完成,教師全程參與指導。所謂全程參與指導是指從算法基本思想到算法實現(xiàn)的各個環(huán)節(jié)(包括編程技巧、程序調(diào)試與測試等)都要參與指導。參與方式多種多樣,例如利用QQ等即時通訊工具進行指導,約定時間和地點進行答疑,等等。

      設(shè)計型實驗要求每位學生在上機課上獨立完成,教師前期參與指導。所謂前期參與指導是指教師參與學生在算法設(shè)計環(huán)節(jié)的討論,教師可以給出提示,同時鼓勵學生設(shè)計不同的算法。參與方式是面對面的交流。

      加強理解型實驗要求每位學生利用課外時間獨立完成,教師后期參與指導。所謂后期參與指導是指教師在收齊學生提交的源碼和設(shè)計報告后,對其進行分析總結(jié),并將總結(jié)結(jié)果以班級為單位采用面對面的方式反饋給學生。

      (三)考核方法

      對三種類型的實驗采用不同的考核辦法。表3給出了這方面的設(shè)計。

      對基礎(chǔ)型實驗不做專門考核的原因是學生基礎(chǔ)型實驗完成的好壞會直接影響設(shè)計型實驗和加強理解型實驗的完成,因此對其他兩種類型實驗的考核間接考核了基礎(chǔ)型實驗。

      對設(shè)計型實驗的考核分兩個部分:一是本次上機課上實驗的完成情況,包括程序是否調(diào)試成功、程序的運行結(jié)果是否正確,代碼編寫的質(zhì)量等;二是本次上機課結(jié)束后提交的實驗報告的完成情況,包括內(nèi)容是否完成、書寫是否規(guī)范等。

      對加強理解型實驗的考核主要是考核學生提交的源代碼和設(shè)計報告的完成質(zhì)量。

      設(shè)計型實驗的成績占總實驗成績的70%,加強理解型實驗的成績占總實驗成績的30%。

      四、結(jié)語

      數(shù)據(jù)結(jié)構(gòu)是一門理論性和實踐性很強的課程,其理論教學環(huán)節(jié)與實驗教學環(huán)節(jié)相輔相成。棧和隊列是兩種重要的線性結(jié)構(gòu),為了提高它們的教學效果,增強實驗教學對其理論教學的促進作用,本文提出了一種棧和隊列的實驗教學方案。該方案的設(shè)計思路同樣適用于其他數(shù)據(jù)結(jié)構(gòu)或課程的實驗教學方案設(shè)計。

      參考文獻:

      [1]朱金秀,金紀東,周妍,等.實踐教學與就業(yè)能力培養(yǎng)相融合的研究與探索[J].實驗室研究與探索,2011,30(4):105-107.

      [2]榮瑞芬,閆文杰,李京霞,等.實踐教學課程考核評價模式探索[J].實驗技術(shù)與管理,2011,28(3):232-234.

      [3]張純?nèi)荩郧?問題與案例驅(qū)動的課內(nèi)實踐教學分級模式探索[J].實驗室研究與探索,2012,31(1):145-148.

      [4]教育部高等學校計算機科學與技術(shù)教學指導委員會.高等學校計算機科學與技術(shù)專業(yè)人才專業(yè)能力構(gòu)成與培養(yǎng)[M].北京:機械工業(yè)出版社,2010:143-147.

      [5]董麗薇.數(shù)據(jù)結(jié)構(gòu)課程教學方法的改進[J].沈陽師范大學學報(自然科學版),2012,30(2):307-309.

      [6]劉城霞,董宛,蔡英.數(shù)據(jù)結(jié)構(gòu)中基本教學案例的研究[J].計算機教育,2010,(03):144-146.

      [7]韓建民,鐘發(fā)榮,趙相福,等.基于ACM-ICPC訓練模式的數(shù)據(jù)結(jié)構(gòu)實踐教學探討[J].計算機教育,2013,(10):103-107.

      [8]沈華.數(shù)據(jù)結(jié)構(gòu)、算法和程序之間關(guān)系的探討[J].計算機教育,2013,(04):58-61.

      [9]沈華.數(shù)據(jù)結(jié)構(gòu)入門教學中的實例法[J].計算機教育,2013,(24):64-66.

      [10]沈華.數(shù)據(jù)結(jié)構(gòu)課內(nèi)實踐教學方案[J].實驗室研究與探索,2013,32(10):396-400.

      篇(9)

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

      1引言

      實施網(wǎng)絡(luò)教育精品課程建設(shè)對于促進優(yōu)質(zhì)網(wǎng)絡(luò)教育資源的建設(shè)和共享,減少低層次重復開發(fā),促進網(wǎng)絡(luò)教學改革和創(chuàng)新,提升網(wǎng)絡(luò)教育的社會地位等都具有十分重要的意義。2007年4月,教育部頒發(fā)了《關(guān)于2007年度國家精品課程申報工作的通知》(教高廳[2007]25 號),把網(wǎng)絡(luò)教育精品課程納入到國家精品課程建設(shè)體系。網(wǎng)絡(luò)教育精品課程是具有一流的教師隊伍、一流的教學內(nèi)容、一流的教學方法、一流的資源和教材、一流的教學管理和支持服務(wù)的高水平網(wǎng)絡(luò)課程。因此,網(wǎng)絡(luò)精品課程的建設(shè)是“高等學校教學質(zhì)量和教學改革工程”重要內(nèi)容之一。本文針對網(wǎng)絡(luò)教育的特殊性,從網(wǎng)絡(luò)資源建設(shè)、師資隊伍建設(shè)、教學和學習活動設(shè)計以及網(wǎng)絡(luò)服務(wù)支持等幾方面,介紹了國家級網(wǎng)絡(luò)教育精品課程“數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計”的建設(shè)與實踐。

      2針對網(wǎng)絡(luò)教育的特殊性,構(gòu)建資源豐富的網(wǎng)絡(luò)教學平臺

      網(wǎng)絡(luò)教育是指遠程網(wǎng)絡(luò)教育。這種教育不同于一般的在校面授教育,其教育的對象不像全日制學生那樣有大塊的學習時間,而是利用零散的、業(yè)余的時間學習,而且學生的基礎(chǔ)也不一樣。他們更多的是為了學習實用的知識幫助他們解決工作中的問題。在學習的過程中還會有工作和學習的矛盾、家庭負擔等影響因素。因此,遠程教育課程教學設(shè)計的總體原則應(yīng)該是,所教授知識有充分的實用價值和可實踐性,適合于在職從業(yè)人員業(yè)余學習和終身學習,滿足遠程教育對象最緊迫的工作和應(yīng)用需要。而在教學內(nèi)容的選取上,則應(yīng)采用教學與應(yīng)用相結(jié)合的方式,將課程的基礎(chǔ)性的理論與綜合應(yīng)用知識相結(jié)合,優(yōu)化課程知識內(nèi)容體系,達到應(yīng)用型人才培養(yǎng)目標。

      遠程教育師生時空分離導致遠程學習中學與教的時空分離,這是遠程教育的重要特征之一。因此,要構(gòu)建資源豐富的網(wǎng)絡(luò)教學平臺,將教學內(nèi)容與學習資源整合起來,以實現(xiàn)遠程教育。

      北京理工大學現(xiàn)代遠程教育學院成立于2000年,是經(jīng)教育部2000年批準的15所現(xiàn)代遠程教育試點高校之一。在發(fā)展和建設(shè)中,逐步形成了以人為本的教育理念。在實施遠程教育過程中,加強對教學過程管理,并不斷完善教育質(zhì)量管理體系。“數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計”課程作為計算機基礎(chǔ)教學基本要求的第三層次課程,2003年開始了網(wǎng)絡(luò)教學和網(wǎng)絡(luò)輔助教學。

      “數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計”網(wǎng)絡(luò)教學平臺充分利用了多種媒體技術(shù),構(gòu)建了多種媒體資源優(yōu)勢互補的、支撐網(wǎng)絡(luò)教學的立體化資源,風格獨特,特色鮮明,實現(xiàn)了以“學生為中心,教師為主導”的教育思想。在選取教學內(nèi)容和學習資源的建設(shè)時依據(jù)以下四個原則:第一,以學生為中心的原則,按照業(yè)余學習特點進行教學設(shè)計;第二,圍繞網(wǎng)絡(luò)教育應(yīng)用型人才培養(yǎng)目標,選擇適合遠程教育對象學習的教學內(nèi)容組織教學;第三,緊扣時代和學科最前沿,為學生提供多種形式的學習資源的原則;第四,緊扣網(wǎng)絡(luò)教育特點和要求,選擇適當課程授課方式。在學習資源建設(shè)方面,根據(jù)學生的學習條件和自身基礎(chǔ)的差異性,采用多種媒體(文字、音頻、視頻、模擬、仿真、動畫等)技術(shù)的應(yīng)用呈現(xiàn)課程內(nèi)容,為學生自主學習提供最大方便。我們編寫并開發(fā)了該課程的教材、實驗指導書、視頻、電子教案、流媒體課件、Flas、實驗案例、素材庫、網(wǎng)絡(luò)課件等,形成了豐富的立體化的教學資源,并將這些資源放在教學網(wǎng)站上供教師和學生瀏覽。在媒體設(shè)計上一體化,突出各自優(yōu)勢、形成優(yōu)勢互補。除具備課程所需的課件外,還設(shè)置了諸如實時交互、網(wǎng)上答疑、遠程網(wǎng)站、自學導讀、電子閱覽等網(wǎng)絡(luò)教育可以實現(xiàn)的現(xiàn)代教學形式。

      課程的教學平臺是立體化的,在設(shè)計上既體現(xiàn)了基于建構(gòu)主義理論的教師主導型,引領(lǐng)型的價值理念,又給予學生自主選擇、自主討論、自我測試的平臺空間,實現(xiàn)了教師主導引領(lǐng)和學生自主選擇的統(tǒng)一。通過導學,學生可以快速掌握網(wǎng)絡(luò)學習的方法,利用教學平臺進行師生交互。同時,我們還創(chuàng)建了一個完整的教學支持服務(wù)體系,可以合理、有效地組織每個教學環(huán)節(jié),注重教學過程和教學質(zhì)量的跟蹤管理,以確保應(yīng)有的教學成效,培養(yǎng)了學生網(wǎng)絡(luò)環(huán)境下的自主學習能力與實踐能力,達到培養(yǎng)優(yōu)秀應(yīng)用型人才的目標。

      3針對網(wǎng)絡(luò)教育的特點,建設(shè)師資隊伍

      在網(wǎng)絡(luò)教育中,師生分離的特征決定了師生之間的交流不方便、不及時,教師從學生身上獲得的信息很少,相反也是如此。這就從客觀上決定了網(wǎng)絡(luò)教學中的師生需要建立更多同步或異步的交流途徑,以彌補師生交互的缺失,而教師則需要投入大量的時間和精力與學生進行交流,如解答學生疑問,指導學習過程,組織網(wǎng)上教學活動等。

      在現(xiàn)代遠程教育中,教師通常由學校教師兼任,教師的學校教學和網(wǎng)絡(luò)教學之間經(jīng)常發(fā)生矛盾。為了解決這些問題,我們在師資隊伍建設(shè)時注意了各種不同類型人員的配備,包括了主講教師、教學輔導教師、班主任以及網(wǎng)絡(luò)維護技術(shù)人員。其中,主講教師主要負責課程的學術(shù)質(zhì)量,包括:制定課程目標,設(shè)計教學大綱,組織教學內(nèi)容,完成教學設(shè)計,錄制課程講解,設(shè)計考試試題等;輔導教師主要負責教學過程的指導與支持,包括:課程信息,組織教學活動,指導學習過程,答疑討論,布置和批閱作業(yè),批閱試卷等;班主任則負責學生的管理工作,隨時在網(wǎng)上和學生溝通,一方面增加了學生的歸屬感,另一方面能及時把握學生各方面的動態(tài),及時解決他們的問題,對促進學生持續(xù)、有效的學習,降低輟學率有很大的幫助。網(wǎng)絡(luò)維護技術(shù)人員則全天候為學生提供技術(shù)支持服務(wù),維護與建設(shè)網(wǎng)絡(luò)教學資源,確保系統(tǒng)平臺正常運行。

      經(jīng)過幾年的建設(shè),目前我們已經(jīng)形成了一支穩(wěn)定的教師隊伍。在完善的網(wǎng)絡(luò)教學制度管理下,促進了學生個性化的自主學習,規(guī)范學生個性化自主學習的行為,引導學生按照開放教育的要求學習,并保證學生個性化自主學習的質(zhì)量。

      4網(wǎng)絡(luò)資源建設(shè)中的教學設(shè)計與學習活動設(shè)計

      在網(wǎng)絡(luò)教育中,網(wǎng)絡(luò)教學資源是學生進行自主學習、獲得知識和技能的基本途徑。遠程學習者與本科生在自身特征上存在很大不同,需要建立導學策略和組織學習活動,引導和督促其完成學業(yè)。通過網(wǎng)絡(luò)教學資源,應(yīng)該能為學生系統(tǒng)化呈現(xiàn)教學內(nèi)容,促進學生對課程的理解,引導學生進行學習。因此,我們在課程的網(wǎng)絡(luò)教學資源建設(shè)時,精心進行了教學設(shè)計,主要包括以下幾個方面:

      (1) 學習內(nèi)容設(shè)計:選擇適應(yīng)應(yīng)用型人才培養(yǎng)的課程內(nèi)容;打破課程內(nèi)容的線性章節(jié)結(jié)構(gòu),設(shè)計出適合學生自主學習的內(nèi)容組織結(jié)構(gòu)。

      (2) 教學策略設(shè)計:設(shè)計教學內(nèi)容的呈現(xiàn)方式和使用方式,如文字呈現(xiàn)、教師講解、動畫演示、效果對比、模擬操作等。

      (3) 動機策略設(shè)計:設(shè)計富有激勵性的學習環(huán)境,激發(fā)和維持學生的學習動機,如技術(shù)的新穎性、界面的藝術(shù)性、反饋語的歸因?qū)颉W習伙伴的伴學等。

      (4) 學習指導設(shè)計:設(shè)計學習指導的內(nèi)容和呈現(xiàn)策略,包括學習的重點、難點、學習方法的建議等。

      (5) 學習評價設(shè)計:設(shè)計學生自我評價的內(nèi)容和評價策略,如自測練習、模擬考試、學習游戲等。

      (6) 學習資源設(shè)計:設(shè)計并提供與教學內(nèi)容緊密相關(guān)的擴展學習資源。

      同時為滿足學習者的需要,學習活動則設(shè)計了以下一些模塊:

      (1)“課程概況”,包括“課程介紹”、“課程大綱”、“考試大綱”和“參考資源”等模塊,為學生提供學習的準備性材料。

      (2)“自學周歷”模塊為學生的學習時間和活動安排提供指導。

      (3)“教學互動”中“主講教師”、“課程論壇”、“小組論壇”、“語音答疑”、“留言信息”、“問題解答”等模塊是學生與老師和同學進行交流討論學習的平臺。

      (4)“教學互動”中“學習進度”、“在線作業(yè)”等模塊,幫助學員把握自己的學習進度以完成學習任務(wù)。

      (5) 每一章的學習中,給學生提供了“學前指導”、“內(nèi)容講解”、“總結(jié)評價”和“擴展學習”模塊。“學前指導”為學生學習章的內(nèi)容提供準備性的材料,使學生明確學習的目標、方法、重點難點等;“內(nèi)容講解”是學生學習的主要內(nèi)容,由老師進行講授;“總結(jié)評價”讓學生及時地評價自己對內(nèi)容的學習情況及效果;“擴展學習”為學生提供更多的學習資料,滿足學生的個性化學習需求。

      (6)“原理動畫”模塊將課程中比較難以掌握的學習知識點內(nèi)容,以動畫和具體操作的方式呈現(xiàn),幫助學生更好地理解學習內(nèi)容。

      (7)“概念速查”為學生學習提供一些輔的工具。

      (8)“參考資源”模塊給學生以廣博的輔助材料,拓展學生的理論視野,增強學生的學習興趣和知識面。

      上述的教學設(shè)計和學習活動設(shè)計,在課程的遠程教學方面起到了重要的作用。

      5網(wǎng)絡(luò)支持服務(wù)

      遠程教育不僅要為學生提供教學內(nèi)容和資源、組織學習活動,還要提供強大的學習支持服務(wù)。這不僅包括提供關(guān)于課程內(nèi)容答疑、資源、實踐等與學習有關(guān)的服務(wù),而且包括提供與教學管理及其他相關(guān)的支持服務(wù)。

      為了網(wǎng)絡(luò)教育的順利開展,在本課程在網(wǎng)絡(luò)資源建設(shè)中,提供了包括授課、課程發(fā)送、學習輔導、學習資料提供、作業(yè)批改和意見反饋、考試實施和成績管理,技術(shù)培訓等支持服務(wù)內(nèi)容。

      授課過程中,注重培養(yǎng)學生的自主學習、協(xié)作學習和探究性學習的能力,包括對資料的收集、整理、分析、判斷、評價、綜合等能力。

      通過在線課程基本信息和課程導學完成了“學習目標、學習要求、學習內(nèi)容、學習模式、學習方法、考核方式、評價標準、評價內(nèi)容”等課程發(fā)送功能。

      在學習過程中提供“語音答疑”,使學生能跟老師實時地交流學習中問題;在“主講教師”、“小組論壇”、“班級論壇”等教學互動的模塊中,可以通過發(fā)帖提問、跟帖學習的方式,讓師生共同參與,討論學習中出現(xiàn)的問題,引導學生積極思考,逐步提高;另外,學生還可以通過“友情鏈接”進入到與課程相關(guān)的資源網(wǎng)站。

      完成課程學習后通過“總結(jié)評價”、“自測習題”、“模擬試題”等模塊,幫助學生總結(jié)所學的知識,并對學習效果進行評價;通過“擴展學習”、“參考資源”等模塊,幫助學生拓寬學科的視野,把握學科前景。

      提供的學習資源具體包括:靜態(tài)資源和動態(tài)資源。教學視頻、教學講義、教學實驗錄像、參考書目、歷年考卷、在線習題、案例討論、在線答疑、網(wǎng)絡(luò)課堂、課程論壇、優(yōu)秀作業(yè)等等。

      考試實施和成績管理,具體包括“編制考卷、施測、評閱考卷、成績查詢”,考卷的編制,由教學辦公室組織,任課教師具體完成。考試工作的開展,由學院統(tǒng)一組織,各教學點配合,統(tǒng)一按北京理工大學考試管理制度進行實施。教師閱卷后,在線登錄成績,學生可在線查詢成績。

      專職技術(shù)人員全天候為學生提供技術(shù)支持服務(wù)。北京理工大學現(xiàn)代遠程教育學院還設(shè)立了技術(shù)支持免費網(wǎng)絡(luò)電話,用來提供關(guān)于網(wǎng)絡(luò)學習、操作指南、常見問題的支持。

      另外,北京理工大學遠程教育學院堅持定期開展教學效果評價和實時跟蹤評價。建立了包括教學內(nèi)容、教學手段、教學過程、媒體應(yīng)用、考試管理等方面的多種評價措施,對教學效果進行全面評估。

      對學習過程的監(jiān)控,則利用教學管理平臺,統(tǒng)計學生網(wǎng)上資源使用情況和教師對學生開展支持學習服務(wù)的情況。

      經(jīng)過幾年的建設(shè),本課程的學習支持服務(wù)系統(tǒng)全部實現(xiàn)了網(wǎng)絡(luò)化,極大提高了服務(wù)的效率和水平。

      6結(jié)論

      “數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計”網(wǎng)絡(luò)教育精品課程的建設(shè),主要是針對遠程教育的特性進行的。通過對“一流的教師隊伍、一流的教學內(nèi)容、一流的教學方法、一流的資源和教材、一流的教學管理和支持服務(wù)”的建設(shè),體現(xiàn)了一流網(wǎng)絡(luò)教學的特點,體現(xiàn)應(yīng)用型人才培養(yǎng)目標,符合科學性、先進性及網(wǎng)絡(luò)教育規(guī)律和教學改革的方向,適合于在職從業(yè)人員和業(yè)余學習和終身學習。通過現(xiàn)代教育技術(shù)、方法和手段的運用,到位的學習支持服務(wù),發(fā)揮著示范、輻射和共享的作用。“數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計”2008年被評為國家級網(wǎng)絡(luò)教育精品課程。該課程所建設(shè)的網(wǎng)絡(luò)教學資源始終開放,這些資源已經(jīng)與北京理工大學該門課程的本科教學共享。課程資源網(wǎng)址為/2008/ public/。課程資源今后將會不斷地更新維護,以保障該課程的可持續(xù)建設(shè)與發(fā)展。

      參考文獻:

      [1] 教育部辦公廳. 關(guān)于2007年度國家精品課程申報工作的通知(高教廳函[2007]25 號)[EB/OL]. jpkcnet. com/new/ zhengce/default.asp.

      篇(10)

      關(guān)鍵詞 :Android 數(shù)據(jù)結(jié)構(gòu) 課程算法 動畫演示

      數(shù)據(jù)結(jié)構(gòu)課程,傳統(tǒng)的教學方法缺少直觀性和動態(tài)性,很難形象地使學生理解相關(guān)知識點。基于此,出現(xiàn)了一些數(shù)據(jù)結(jié)構(gòu)算法的動畫演示系統(tǒng),其輸入一些初始數(shù)據(jù)即能以動畫的形式演示算法的整個執(zhí)行過程,提高了學生的學習效率。但是這些系統(tǒng)都是基于PC機設(shè)計實現(xiàn)的,學生學習場地受到了限制。如果將該系統(tǒng)在智能手機或平板電腦上實現(xiàn),將極大地提高該系統(tǒng)的方便性。為此,我們設(shè)計并實現(xiàn)了基于Android平臺的數(shù)據(jù)結(jié)構(gòu)課程教輔演示系統(tǒng)。

      一、系統(tǒng)功能設(shè)計

      該系統(tǒng)是一個基于Android的動態(tài)演示數(shù)據(jù)結(jié)構(gòu)算法執(zhí)行過程的輔助學習軟件,它可根據(jù)學習者輸入的算法初始數(shù)據(jù)以及算法執(zhí)行過程中控制方式的不同在Android終端設(shè)備具有不同的顯示效果,包括算法執(zhí)行過程中數(shù)據(jù)邏輯結(jié)構(gòu)或存儲結(jié)構(gòu)的變化情況以及遞歸算法執(zhí)行過程中棧的變化情況等。整個系統(tǒng)使用觸摸按鈕驅(qū)動方式,設(shè)計多個按鈕選項。每個按鈕選項對應(yīng)一個動作,系統(tǒng)將一直處于選擇按鈕項或執(zhí)行動作狀態(tài),直到選擇了退出動作為止。整個系統(tǒng)的功能設(shè)計如下。

      一是動態(tài)演示數(shù)據(jù)結(jié)構(gòu)典型算法的執(zhí)行過程,包括順序表、鏈表、二叉樹、圖以及排序等。二是算法執(zhí)行過程中跟蹤變量的值。三是算法執(zhí)行過程中動態(tài)顯示相應(yīng)的C語言代碼。四是具有暫停、恢復運行、單步運行、復位等控制功能。

      二、系統(tǒng)主界面設(shè)計

      數(shù)據(jù)結(jié)構(gòu)算法演示系統(tǒng)主界面設(shè)計啟動各個算法的按鈕,通過這些按鈕啟動每個算法演示界面。算法演示的圖形用戶界面采用的模板有幾個主要區(qū)域,每個區(qū)域?qū)?yīng)一個組件。

      一是主窗口:包括標題欄和工具欄,用來實現(xiàn)系統(tǒng)控制。

      二是動畫演示區(qū):以圖形和動畫的方式模擬和顯示算法執(zhí)行的過程和結(jié)果。

      三是源代碼區(qū):用來顯示類C語言編寫的算法描述。為了更清楚地描繪算法的執(zhí)行過程,當程序運行到當前行時,用一條高亮度光帶罩住此語句,表示該語句被執(zhí)行。在系統(tǒng)的主界面中,利用GridView布局,顯示功能選項,并在布局下方添加“幫助”和“退出”按鈕。主界面的設(shè)計風格簡約大方,操作方便。系統(tǒng)主界面及幫助界面如圖1所示。

      三、系統(tǒng)功能實現(xiàn)

      以順序表為例闡述系統(tǒng)功能的實現(xiàn)。在順序表模塊中,二級菜單中提供了順序表的插入和刪除選項。選擇順序表的插入或者刪除后進入初始化界面,設(shè)置順序表中的元素、插入變量以及插入位置,確認后將進入算法演示的主窗口。主窗口的工具欄包括執(zhí)行、暫停、單步和重置。動畫演示區(qū)的圖形模擬是在原有的布局中通過添加TextView控件,生成新的布局進行算法的動畫演示。源代碼區(qū)是定義代碼字符的數(shù)組,利用初始化函數(shù)接收數(shù)組中的元素,并根據(jù)數(shù)組長度添加TextView控件的個數(shù),循環(huán)將TextView中的內(nèi)容添加為代碼字符數(shù)組中的元素。這樣,實現(xiàn)的順序表模塊的界面如圖2所示。

      圖3所示活動圖,描述了順序表模塊的執(zhí)行過程。

      篇(11)

      CDIO是Conceiving,designing,implementingandoperating的縮寫,即“構(gòu)思、設(shè)計、實現(xiàn)、運作”。2014-2015年度第一學期,我們對遼寧工業(yè)大學(以下簡稱我校)電信學院數(shù)據(jù)結(jié)構(gòu)課程,以CDIO模式進行了數(shù)據(jù)結(jié)構(gòu)課程設(shè)計教學模式的探索。數(shù)據(jù)結(jié)構(gòu)課程是一門實踐性很強的專業(yè)核心課程,將CDIO教學模式在數(shù)據(jù)結(jié)構(gòu)課程設(shè)計運用,就是培養(yǎng)學生創(chuàng)新能力、分析設(shè)計能力和團隊合作能力的重要途徑。培養(yǎng)學生充分考慮數(shù)據(jù)結(jié)構(gòu)特性、響應(yīng)速度、處理時間、存儲空間和單位時間的處理量技術(shù)參數(shù),鼓勵學生自己去嘗試各種設(shè)計方案,找出最有效的解決辦法,著重培養(yǎng)學生專業(yè)能力、分析設(shè)計能力和合作能力。

      一、傳統(tǒng)實踐教學存在的問題

      實施教學改革前,傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)的課程設(shè)計是一般性設(shè)計。課設(shè)布置題目是針對教學內(nèi)容的小型練習題,讓學生獨立完成程序設(shè)計與實現(xiàn)。從學生的認知規(guī)律以及學生不同個體差異來看,把一些難懂的、晦澀的、抽象的東西原封不動地給出并采取傳統(tǒng)的教學模式進行教與學有幾點弊端:第一,學生在毫無知識背景的前提下,要完全理解這些抽象概念及抽象數(shù)據(jù)類型比較困難。第二,課設(shè)涉及到的知識點內(nèi)容單一,不需要學生考慮創(chuàng)新思維方面的設(shè)計方案。只要將課堂講過的內(nèi)容直接拿來用就可以,對于課設(shè)中各種技術(shù)參數(shù)的要求可以說沒有理解,導致設(shè)計解決方案不是最合適的。課程設(shè)計沒有達到預(yù)期收獲。第三,學生缺乏團隊合作過程,自己完成一個小型題目,在設(shè)計方案和算法設(shè)計過程中鍛煉的層次和涉及面都比較窄。沒有體現(xiàn)數(shù)據(jù)結(jié)構(gòu)在處理大規(guī)模復雜問題時才能體現(xiàn)出的優(yōu)勢,使學生沒有真正認識數(shù)據(jù)結(jié)構(gòu)存在的意義。對以后學生參加實踐類課程活動有很大影響。

      二、課程設(shè)計的改革措施

      《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計采用了CDIO教學模式,強調(diào)知識的綜合運用,鍛煉學生對復雜問題進行分析與求解的能力,在項目實施過程中始終圍繞“構(gòu)思、設(shè)計、實現(xiàn)、運作”。它的指導思想是:以工程設(shè)計任務(wù)為導向,以培養(yǎng)學生創(chuàng)新能力、團隊合作能力為主要目標。通過利用綜合性課程設(shè)計,培養(yǎng)學生進行復雜程序設(shè)計這個主線,將學生在課堂上所學的比較抽象的理論知識具體化,提高了理論和實踐相結(jié)合的能力。具體做法如下:

      (一)課程設(shè)計內(nèi)容改革

      第一,從課程設(shè)計選題上精心準備:需要介紹題目內(nèi)容,介紹算法產(chǎn)生的背景。明確數(shù)據(jù)內(nèi)在的必然聯(lián)系,分析數(shù)據(jù)的邏輯結(jié)構(gòu);確定解決問題所需要用到的算法及設(shè)計參數(shù)的要求,設(shè)計數(shù)據(jù)的存儲結(jié)構(gòu);解決該課設(shè)到底應(yīng)該怎么做的問題。題目規(guī)模適宜,課程設(shè)計題目覆蓋的知識點應(yīng)盡可能避免單一,設(shè)計內(nèi)容要新,具有綜合性。第二,擴大知識面:要求學生從需求分析開始,通過查找大量的資料,充分理解設(shè)計技術(shù)參數(shù)的要求及實現(xiàn)方式,根據(jù)設(shè)計要求對空間復雜度、處理時間、時間復雜度和單位時間的處理量等技術(shù)參數(shù),分析數(shù)據(jù)進行哪些操作,建立數(shù)據(jù)的存儲結(jié)構(gòu)。第三,數(shù)據(jù)結(jié)構(gòu)課程特點邏輯結(jié)構(gòu)強,概念抽象,學生對于知識點的綜合運用能力差。在課設(shè)中明確知識點的前后序關(guān)系和知識點的歸屬,解決學生只見樹木不見森林的盲目性和隨機性。

      (二)課程設(shè)計實施方法

      我們對遼寧工業(yè)大學電子與信息學院數(shù)據(jù)結(jié)構(gòu)課程,以CDIO模式進行了數(shù)據(jù)結(jié)構(gòu)課程設(shè)計教學模式的探索,并且實施如下改革:第一,采用啟發(fā)式的設(shè)計思路,引導學生圍繞課程設(shè)計目標,通過查找與分析有關(guān)參考資料,培養(yǎng)和鼓勵學生的學習興趣,同時提高學生查閱資料的能力。第二,讓學生能夠按照軟件工程的思想進行軟件的分析、設(shè)計與實現(xiàn),提高學生實踐動手能力和協(xié)作開發(fā)大型軟件項目的能力。第三,在項目實施中,進行探究式的學習,不應(yīng)該只是“手把手”地教,要給學生留出發(fā)揮想象力和創(chuàng)造力的空間,激發(fā)學生創(chuàng)造的意識和能力。第四,努力使學生對規(guī)范性的軟件開發(fā)不僅僅是以實現(xiàn)相應(yīng)的程序為目標,更重要的是培養(yǎng)學生今后從事軟件開發(fā)所需要的各種能力與素質(zhì),包括測試能力和文檔寫作的能力。因此,在課程設(shè)計實施中,我們考察學生程序編寫、測試以及實驗報告撰寫工作。

      三、實踐情況及效果

      CDIO模式在國際高等教育中已有共識,通過實踐,根據(jù)軟件工程專業(yè)本科教學的培養(yǎng)目標,解決了傳統(tǒng)教學方式存在的問題,提高了實踐能力,體會到數(shù)據(jù)結(jié)構(gòu)課程設(shè)計實踐教學采用CDIO模式,突出了學生在理論教學與實踐教學過程中的主體地位,提高了教學的針對性和實效性。將CDIO教學模式引入到數(shù)據(jù)結(jié)構(gòu)課程設(shè)計教學中,改變了該課程的教學理念,重理論,輕實踐;重課堂,輕課外。改變了教師單向的知識傳授與學生被動接受之間的教與學模式,實踐情況及效果表現(xiàn)在:(1)學生學習方式發(fā)生了轉(zhuǎn)變,從被動接受知識,到主動查閱資料,對于題目要求的設(shè)計技術(shù)參數(shù)有了進一步理解,使學生學會分析和研究計算機處理的數(shù)據(jù)結(jié)構(gòu)的特點,分析數(shù)據(jù)的邏輯結(jié)構(gòu)及設(shè)計存儲結(jié)構(gòu),設(shè)計算法的基本思想,提高了理論和實踐相結(jié)合的能力。對知識有比較全面深刻了解,實際解決問題的能力有了明顯的提升。(2)采用CDIO教學模式,對于課程設(shè)計題目精心安排,給學生留出發(fā)揮想象力和創(chuàng)造力的空間,提高了學生運用知識分析問題和解決問題的能力。培養(yǎng)學生的創(chuàng)新能力和創(chuàng)造性思維。(3)實踐中,培養(yǎng)學生充分考慮數(shù)據(jù)結(jié)構(gòu)特性、響應(yīng)速度、處理時間、存儲空間和單位時間的處理量技術(shù)參數(shù),鼓勵學生自己去嘗試各種設(shè)計方案,找出最有效的解決辦法。著重培養(yǎng)學生專業(yè)能力、分析設(shè)計能力和合作能力。

      參考文獻:

      [1]張洪奎,等.國家級實驗教學示范中心建設(shè)的探索與實踐[J].高等理科教育,2009,83(1):22-26.

      [2]方愷晴,等.信息技術(shù)實驗室教學示范中心的建設(shè)與改革[J].實驗室研究與探索,2009,28(4):93-95,100.

      主站蜘蛛池模板: 欧美亚洲国产成人精品| 精品精品国产国产| 免费欧美精品a在线| 亚洲国产婷婷综合在线精品| 伊人久久大香线蕉精品| 国产精品igao视频网| 四虎永久在线精品免费一区二区 | 欧美精品一区二区蜜臀亚洲| 久久99精品久久久久久野外| 四虎影永久在线观看精品| 精品亚洲成AV人在线观看| 一区二区国产精品| 国产精品亚洲视频| 成人一区二区三区精品| 欧美精品亚洲精品日韩| 91麻豆国产福利精品 | 久久久无码精品亚洲日韩软件| 精品九九人人做人人爱| 国产精品无套内射迪丽热巴| 亚洲精品成人片在线播放| 亚洲精品WWW久久久久久| 久久乐国产精品亚洲综合| 国产精品户外野外| 中文字幕亚洲精品| 精品乱人伦一区二区三区| 2022国内精品免费福利视频| 精品少妇无码AV无码专区| 亚洲高清专区日韩精品| 在线亚洲精品自拍| 亚洲国产精品综合久久一线| 亚洲国产精品不卡毛片a在线| 四虎成人精品国产永久免费无码| 精品人妻少妇一区二区三区| 国产人成精品综合欧美成人| 国产精品无码免费播放| 国产精品手机在线观看你懂的| 国产精品爱搞视频网站 | 69久久夜色精品国产69| 69SEX久久精品国产麻豆| 97视频在线观看这里只有精品| 国产精品黄网站|