日日夜夜撸啊撸,欧美韩国日本,日本人配种xxxx视频,在线免播放器高清观看

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)大全11篇

時(shí)間:2022-09-21 04:09:47

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

篇(1)

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

這次課程設(shè)計(jì)所用到的工具M(jìn)icrosoftvisualc++6.0PC機(jī)一臺(tái)。

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

1、一元多項(xiàng)式計(jì)算。

設(shè)計(jì)分析

一)一元多項(xiàng)式計(jì)算

1、需求分析

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

2、概要設(shè)計(jì)

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

structpoly

{floatcoef;

intexp;

polytypenext;};

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

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

voidInput_Values(polytype,int);輸入值

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

voidAdd_Poly(polytype,polytype);將兩個(gè)多項(xiàng)式相加

voidSub_Poly(polytype,polytype);將兩個(gè)多項(xiàng)式相減

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

3、源代碼

#include"stdio.h"

#include"stdlib.h"

typedefintdatatype;/*定義多項(xiàng)式節(jié)點(diǎn)的結(jié)構(gòu)*/

typedefstructnode

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

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

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

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

PotyNode*Creat_PotyNodeTail()

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

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

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

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

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

r=L;

printf("\ninputcoefandexpn:");

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

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

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

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

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

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

printf("\ncoefandexpn:");

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

}returnL;

}/*獲得多項(xiàng)式的長(zhǎng)度,參數(shù)為多項(xiàng)式頭節(jié)點(diǎn)指針*/

intGetlength(PotyNode*L)

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

while(p)

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

returncount;}/*獲得指向i節(jié)點(diǎn)的指針,在刪除節(jié)點(diǎn)的時(shí)候來(lái)獲得準(zhǔn)備刪除的前一節(jié)點(diǎn)*/

PotyNode*GetElem_PotyNode(PotyNode*L,inti)

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

while(p->next&&j!=i)/*當(dāng)p不是尾節(jié)點(diǎn),并且不是第i個(gè)節(jié)點(diǎn)*/

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

if(i==j)

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

else

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

intDelete_PotyNode(PotyNode*L,inti)

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

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

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

{p->next=q->next;

free(q);return1;}

else

return0;}/*對(duì)輸入的多項(xiàng)式LA,LB進(jìn)行相加,結(jié)果為L(zhǎng)C,返回指向LC頭節(jié)點(diǎn)的指針*/

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是當(dāng)前指針便于進(jìn)行各種操作*/

r=LC;

while(q1&&q2)/*當(dāng)多項(xiàng)式LA,和LB都沒(méi)有結(jié)束的時(shí)候*/

{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é)果連接到多項(xiàng)式LC*/

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

if(q1)r->next=q1;

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

p=LC->next;

while(p->next)

{if(p->coef==0)

{p=p->next;

Delete_PotyNode(LC,x);}

else

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

returnLC;}/*打印多項(xiàng)式*/

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、運(yùn)行結(jié)果

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

1、需求分析

1)輸入數(shù)據(jù)的形式和范圍:可以輸入大寫(xiě)、小寫(xiě)的英文字母、任何數(shù)字及標(biāo)點(diǎn)符號(hào)。

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

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

2、概要設(shè)計(jì)

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

voidCreateTXT(LINE*&head){

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

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

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

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

chartmp[80];

b、計(jì)算空格數(shù)

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

LINE*p=head;

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

intcount=0;

do

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

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

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

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

returncount;}

c、統(tǒng)計(jì)數(shù)字?jǐn)?shù)

intCount_Num(LINE*&head){//統(tǒng)計(jì)數(shù)字?jǐn)?shù)

LINE*p=head;

intcount=0;

do

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

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

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

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

returncount;}

d、統(tǒng)計(jì)文章的總字?jǐn)?shù)

intCount_All_Word(LINE*&head){//統(tǒng)計(jì)文章的總字?jǐn)?shù)

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

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

do

{count+=strlen(p->data);}//計(jì)算當(dāng)前行內(nèi)的字符數(shù)!除''''\0''''結(jié)束符外!注意,該統(tǒng)計(jì)包含“空格的長(zhǎ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、運(yùn)行結(jié)果

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

通過(guò)實(shí)習(xí)我的收獲如下

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

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

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

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

根據(jù)我在實(shí)習(xí)中遇到得問(wèn)題,我將在以后的學(xué)習(xí)過(guò)程中注意以下幾點(diǎn):

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

2、寫(xiě)程序的過(guò)程中要考慮周到,嚴(yán)密。

篇(2)

1 引言

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

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

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

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

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

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

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

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

2.1不具有明顯的整體性

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

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

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

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

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

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

2.3具有極其廣泛的滲透性

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

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

3基于問(wèn)題驅(qū)動(dòng)的課程設(shè)計(jì)教學(xué)模式

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

3.1問(wèn)題來(lái)源

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

3.2問(wèn)題描述

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

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

3.3問(wèn)題求解的迭代性

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

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

3.4結(jié)論形成

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

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

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

3.5結(jié)果考核

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

4 結(jié)束語(yǔ)

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

參考文獻(xiàn)

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

篇(3)

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

1存在的普遍問(wèn)題

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

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

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

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

1.3教師的指導(dǎo)“過(guò)多”或“過(guò)少”

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

1.4考評(píng)制度不合理

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

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

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

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

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

2.2梯度命題,循序漸進(jìn)開(kāi)展課程設(shè)計(jì)

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

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

/*二叉樹(shù)類*/

template

class BinaryTree

{

public:

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

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

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

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

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

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

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

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

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

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

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

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

……

private:

BTNode *m_root;

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

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

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

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

/*先序遞歸遍歷二叉樹(shù)*/

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

……

};

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

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

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

如教學(xué)計(jì)劃編制問(wèn)題[4],要求根據(jù)課程和課程之間的先修關(guān)系,得到合適的教學(xué)計(jì)劃安排。首先分析這個(gè)問(wèn)題是對(duì)有向圖進(jìn)行拓?fù)渑判颍n程和課程之間的先修關(guān)系可用有向圖描述出來(lái)。數(shù)據(jù)結(jié)構(gòu)為有向圖,存儲(chǔ)方式為鄰接表,應(yīng)用的操作是拓?fù)渑判颉M負(fù)渑判虻幕舅枷胧窍容敵鲇邢驁D中入度為零的頂點(diǎn),再?gòu)膱D中刪除該頂點(diǎn)和所有以它為尾的弧,重復(fù)執(zhí)行,直至圖中所有頂點(diǎn)均輸出為止。要完成拓?fù)渑判颍紫纫蟪鰣D中所有頂點(diǎn)的入度。拓?fù)渑判蛩惴ㄖ羞€用到了一個(gè)輔助的數(shù)據(jù)結(jié)構(gòu)棧,因此還需要初始化棧、出棧,入棧,判定棧空等操作實(shí)現(xiàn)。這樣層層分析下來(lái),程序中需要的函數(shù)一一明了:創(chuàng)建有向圖、鄰接表的建立、求頂點(diǎn)入度、初始化棧、出棧、入棧、判定棧空、拓?fù)渑判虻取:瘮?shù)層次關(guān)系圖示如圖1所示。

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

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

2.4加強(qiáng)團(tuán)隊(duì)合作,調(diào)動(dòng)每位同學(xué)積極性

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

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

最后在驗(yàn)收答辯時(shí),團(tuán)隊(duì)中每個(gè)成員都應(yīng)匯報(bào)自己所做工作,教師和其他團(tuán)隊(duì)可以提問(wèn),交流開(kāi)發(fā)過(guò)程中的心得。

2.5改革考評(píng)制度,從多角度綜合考慮成績(jī)

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

3結(jié)語(yǔ)

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

參考文獻(xiàn):

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

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

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

[4] 嚴(yán)蔚敏,吳偉民. 數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)[M]. 北京:清華大學(xué)出版社,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)

中圖分類號(hào):TP312.1-4 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2012)10-0212-02

1、課程教改的原由

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

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

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

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

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

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

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

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

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

(3)基于能力訓(xùn)練的項(xiàng)目設(shè)計(jì)。針對(duì)完成項(xiàng)目的過(guò)程,將程序設(shè)計(jì)能力分解為編寫(xiě)流程圖能力、閱讀程序的能力、按流程圖寫(xiě)程序能力、調(diào)試程序的能力。我們?cè)诮虒W(xué)項(xiàng)目實(shí)踐中設(shè)置了多個(gè)能力點(diǎn),在項(xiàng)目設(shè)計(jì)時(shí),要求每個(gè)項(xiàng)目實(shí)現(xiàn)過(guò)程的完整性,盡量覆蓋每個(gè)能力點(diǎn)的訓(xùn)練。

3、課程整合措施

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

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

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

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

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

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

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

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

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

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

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

3.2 實(shí)驗(yàn)設(shè)計(jì)思想

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

printf(“請(qǐng)輸入一個(gè)四位的正整數(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”);}

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

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

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

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

4、結(jié)語(yǔ)

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

參考文獻(xiàn)

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

篇(5)

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

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

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

中圖分類號(hào):G642

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

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

0 引 言

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3 結(jié)語(yǔ)

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

參考文獻(xiàn):

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

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

[3]扎克霍爾.Java語(yǔ)言導(dǎo)學(xué)[M].北京:人民郵電出版社,2008: 293-294.

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

篇(6)

中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A

1 引言(Introduction)

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

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

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

analysis of data structure)

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

(1)教師的課堂教學(xué)主要以集中講授為主,并沒(méi)有引導(dǎo)學(xué)生利用網(wǎng)絡(luò)教學(xué)平臺(tái)的資源進(jìn)行自主學(xué)習(xí),學(xué)生把網(wǎng)絡(luò)教學(xué)平臺(tái)當(dāng)成了一個(gè)簡(jiǎn)單的提交作業(yè)、下載課件的平臺(tái)。

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

(3)教師提供的教學(xué)視頻,如清華教育在線雖是名校老師講解,但對(duì)于一般高校的學(xué)生來(lái)說(shuō)講解內(nèi)容過(guò)深,沒(méi)有針對(duì)性,很多學(xué)生覺(jué)得聽(tīng)不懂,打消了自主學(xué)習(xí)的積極性。

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

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

(Modular design and implementation of data

structure based on micro-lecture)

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

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

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

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

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

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

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

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

4 結(jié)論(Conclusion)

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

參考文獻(xiàn)(References)

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

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

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

學(xué)報(bào):自然科學(xué)版,2012,30(2):307-309.

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

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

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

社,2012.

作者簡(jiǎn)介:

篇(7)

引言

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

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

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

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

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

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

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

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

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

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

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

(1)實(shí)驗(yàn)教學(xué)

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

(2)科學(xué)研究

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

(3)科技開(kāi)發(fā)

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

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

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

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

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

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

(2)注意多吸納教師的科研成果用于實(shí)驗(yàn)教學(xué)

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

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

(3)綜合型和探索創(chuàng)新型實(shí)驗(yàn)的教學(xué)效果

篇(8)

中圖分類號(hào):G642.0 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1674-9324(2016)24-0274-03

一、引言

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

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

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

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

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

(一)學(xué)習(xí)對(duì)象

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

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

(二)學(xué)習(xí)目標(biāo)

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

為了配合棧和隊(duì)列的理論教學(xué),幫助學(xué)生理解和掌握上述知識(shí)點(diǎn),我們需要精心設(shè)計(jì)棧和隊(duì)列的實(shí)驗(yàn)教學(xué)方案。

三、棧和隊(duì)列的實(shí)驗(yàn)教學(xué)方案設(shè)計(jì)

(一)實(shí)驗(yàn)題目設(shè)計(jì)

根據(jù)棧和隊(duì)列的學(xué)習(xí)目標(biāo)和遵循循序漸進(jìn)的學(xué)習(xí)和教學(xué)原則,實(shí)驗(yàn)題目被分為以下三個(gè)層次:基礎(chǔ)型實(shí)驗(yàn)題目、設(shè)計(jì)型實(shí)驗(yàn)題目和加強(qiáng)理解型實(shí)驗(yàn)題目。

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

在棧的理論教學(xué)過(guò)程中可以開(kāi)設(shè)棧的基礎(chǔ)型實(shí)驗(yàn),在棧的理論教學(xué)結(jié)束后可以開(kāi)設(shè)棧的設(shè)計(jì)型實(shí)驗(yàn),在隊(duì)列的理論教學(xué)過(guò)程中可以開(kāi)設(shè)隊(duì)列的基礎(chǔ)型實(shí)驗(yàn),在隊(duì)列的理論教學(xué)結(jié)束后可以開(kāi)設(shè)隊(duì)列的設(shè)計(jì)型實(shí)驗(yàn)和加強(qiáng)理解型實(shí)驗(yàn)題目。表1給出了具體的實(shí)驗(yàn)安排。

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

(二)教學(xué)方法

因?yàn)槿N類型實(shí)驗(yàn)的要求、難易程度不同,因此在學(xué)生參與形式、教師參與程度、教師參與方式等方面需要區(qū)別對(duì)待。表2給出了對(duì)三種類型實(shí)驗(yàn)在上述這幾個(gè)方面的設(shè)計(jì)。

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

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

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

(三)考核方法

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

對(duì)基礎(chǔ)型實(shí)驗(yàn)不做專門考核的原因是學(xué)生基礎(chǔ)型實(shí)驗(yàn)完成的好壞會(huì)直接影響設(shè)計(jì)型實(shí)驗(yàn)和加強(qiáng)理解型實(shí)驗(yàn)的完成,因此對(duì)其他兩種類型實(shí)驗(yàn)的考核間接考核了基礎(chǔ)型實(shí)驗(yàn)。

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

對(duì)加強(qiáng)理解型實(shí)驗(yàn)的考核主要是考核學(xué)生提交的源代碼和設(shè)計(jì)報(bào)告的完成質(zhì)量。

設(shè)計(jì)型實(shí)驗(yàn)的成績(jī)占總實(shí)驗(yàn)成績(jī)的70%,加強(qiáng)理解型實(shí)驗(yàn)的成績(jī)占總實(shí)驗(yàn)成績(jī)的30%。

四、結(jié)語(yǔ)

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

參考文獻(xiàn):

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

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

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

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

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

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

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

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

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

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

篇(9)

中圖分類號(hào):G642文獻(xiàn)標(biāo)識(shí)碼:B

1引言

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

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

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

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

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

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

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

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

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

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

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

4網(wǎng)絡(luò)資源建設(shè)中的教學(xué)設(shè)計(jì)與學(xué)習(xí)活動(dòng)設(shè)計(jì)

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

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

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

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

(4) 學(xué)習(xí)指導(dǎo)設(shè)計(jì):設(shè)計(jì)學(xué)習(xí)指導(dǎo)的內(nèi)容和呈現(xiàn)策略,包括學(xué)習(xí)的重點(diǎn)、難點(diǎn)、學(xué)習(xí)方法的建議等。

(5) 學(xué)習(xí)評(píng)價(jià)設(shè)計(jì):設(shè)計(jì)學(xué)生自我評(píng)價(jià)的內(nèi)容和評(píng)價(jià)策略,如自測(cè)練習(xí)、模擬考試、學(xué)習(xí)游戲等。

(6) 學(xué)習(xí)資源設(shè)計(jì):設(shè)計(jì)并提供與教學(xué)內(nèi)容緊密相關(guān)的擴(kuò)展學(xué)習(xí)資源。

同時(shí)為滿足學(xué)習(xí)者的需要,學(xué)習(xí)活動(dòng)則設(shè)計(jì)了以下一些模塊:

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

(2)“自學(xué)周歷”模塊為學(xué)生的學(xué)習(xí)時(shí)間和活動(dòng)安排提供指導(dǎo)。

(3)“教學(xué)互動(dòng)”中“主講教師”、“課程論壇”、“小組論壇”、“語(yǔ)音答疑”、“留言信息”、“問(wèn)題解答”等模塊是學(xué)生與老師和同學(xué)進(jìn)行交流討論學(xué)習(xí)的平臺(tái)。

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

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

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

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

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

上述的教學(xué)設(shè)計(jì)和學(xué)習(xí)活動(dòng)設(shè)計(jì),在課程的遠(yuǎn)程教學(xué)方面起到了重要的作用。

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

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

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

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

通過(guò)在線課程基本信息和課程導(dǎo)學(xué)完成了“學(xué)習(xí)目標(biāo)、學(xué)習(xí)要求、學(xué)習(xí)內(nèi)容、學(xué)習(xí)模式、學(xué)習(xí)方法、考核方式、評(píng)價(jià)標(biāo)準(zhǔn)、評(píng)價(jià)內(nèi)容”等課程發(fā)送功能。

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

完成課程學(xué)習(xí)后通過(guò)“總結(jié)評(píng)價(jià)”、“自測(cè)習(xí)題”、“模擬試題”等模塊,幫助學(xué)生總結(jié)所學(xué)的知識(shí),并對(duì)學(xué)習(xí)效果進(jìn)行評(píng)價(jià);通過(guò)“擴(kuò)展學(xué)習(xí)”、“參考資源”等模塊,幫助學(xué)生拓寬學(xué)科的視野,把握學(xué)科前景。

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

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

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

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

對(duì)學(xué)習(xí)過(guò)程的監(jiān)控,則利用教學(xué)管理平臺(tái),統(tǒng)計(jì)學(xué)生網(wǎng)上資源使用情況和教師對(duì)學(xué)生開(kāi)展支持學(xué)習(xí)服務(wù)的情況。

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

6結(jié)論

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

參考文獻(xiàn):

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

篇(10)

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

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

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

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

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

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

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

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

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

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

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

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

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

篇(11)

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

一、傳統(tǒng)實(shí)踐教學(xué)存在的問(wèn)題

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

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

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

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

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

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

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

三、實(shí)踐情況及效果

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

參考文獻(xiàn):

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

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

主站蜘蛛池模板: 永胜县| 集贤县| 甘肃省| 崇左市| 阿巴嘎旗| 青田县| 巴林右旗| 鸡东县| 鸡泽县| 扶余县| 张家界市| 潜山县| 北宁市| 和田市| 彰武县| 武清区| 永昌县| 罗城| 莲花县| 临沭县| 拉萨市| 和平县| 洪泽县| 汾西县| 防城港市| 石渠县| 蕉岭县| 南开区| 滁州市| 息烽县| 东阳市| 错那县| 佛山市| 三穗县| 苏尼特左旗| 连江县| 九龙城区| 博湖县| 桃源县| 新巴尔虎右旗| 邵阳县|