教学计划编制问题课程设计报告
教学计划编排实验报告

程序设计实验报告题目:关于课程编排的报告姓名贾雨飞学号2010434096年级专业10数电类(四班)指导教师王苗2011年12月13日一、需求分析1.程序的功能大学中的每个专业都有几十门基础课程、专业课程及选修课程,学生必须分几个学期完成这些课程才能毕业。
教学计划的制定就是合理的编排这些课程,使得学生能够顺利的进行学习。
这些课程中,有些课程是独立于其它课程的基础课,有些课程却需要其它先行课程;一般四年制本科教学前7个学期(三年半)进行理论课程的学习,第8个学期实习;教学计划的编排必须充分考虑这些因素,编排出一个合理的教学大纲计划。
一、概要设计1、抽象数据类型的定义//边表的结点结构可描述为:typedef struct node{int adjvex; /*邻接点域*/struct node *next; /*指向下一个邻接点的指针域*/}EdgeNode; /*边表结点*///顶点表的结点结构可描述为:typedef struct vnode /*顶点表结点*/{int num; /*课程号*/char name[20]; /*课程名*/int chour; /*课程的学分*/int indegree; /*顶点的入度*/EdgeNode * firstedge; /*边表头指针*/}VNode;//AOV网的类型可描述如下:typedef struct{VNode AdjList[MaxVerNum]; /*邻接表*/int n, e; /*顶点数和边数*/}AOVGraph; /*AOV网是以邻接表方式存储的类型*/ 2、主模块的流程以及各子模块的主要功能主模块:负责调控整个程序,提示功能项,根据用户选择调用相应子模块。
输入模块:根据用户输入的信息建立有向图的邻接表存储,为后续课程安排做铺垫。
编排模块:根据前一个过程创建的邻接表生成拓扑排序,然后根据课程数和平均学分安排课程到各学期。
三、详细设计1、各模块的伪代码void input(AovGraph *A){char na[15];cout<<" 请输入课程数目__"<<endl;cin>>A->n;while(A->n>99||A->n<1){cout<<"课程科目数不正确,请重新输入!"<<endl;cin>>A->n;}for(int i=1;i<=A->n;i++)A->AdjList[i].firstedge=NULL;cout<<" 请输入边数__"<<endl;cin>>A->e;cin.get();for( i=1;i<=A->n;i++){cout<<"请输入第"<<i<<"科课程的课程号"<<endl;cin>>A->AdjList[i].num;cin.get();cout<<"请输入第"<<i<<"科课程的课程名"<<endl;cin.getline(A->AdjList[i].name,15);cout<<"请输入第"<<i<<"科课程的学分"<<endl;cin>>A->AdjList[i].chour;cout<<"请输入第"<<i<<"科课程结点的入度"<<endl;cin>>A->AdjList[i].indegree;cin.get();}for(i=1;i<=A->n;i++){cout<<"请输入"<<A->AdjList[i].name<<"的相邻后续课程数"<<endl;cin>>c;cin.get();while(!(c>=0&&c<=100)){cout<<"输入错误,请重新输入!";cin>>c;}if(c==0)continue;cout<<"请输入第1个相邻的后续课程的课程名"<<endl;cin.getline(na,15);p=new EdgeNode;p->adjvex=search(na,A);A->AdjList[i].firstedge=p;p->next=NULL;for(int j=2;j<=c;j++){cout<<"请输入第"<<j<<"个相邻的后续课程的课程名"<<endl;cin.getline(na,15);t=new EdgeNode;t->adjvex=search(na,A);t->next=NULL;p->next=t;p=t;}}}int* BP(AovGraph *A,int*T,int *l){EdgeNode *p,*q;T=new int[A->n];int a,v=0;//v记录每学期总学分double k,x; //k保存科目数的平均数x保存的学分的平均值int *z=new int [A->n];//栈的存储int i=-1,t=-1,h=0;//h记录学分总和l记录各学期之前科目总数for(int j=1;j<=A->n;j++){if(A->AdjList[j].indegree==0)z[++i]=j;h=h+A->AdjList[j].chour;}while(i>=0){a=z[i];i--;T[++t]=a;p=A->AdjList[a].firstedge;while(p){A->AdjList[p->adjvex].indegree--;if(A->AdjList[p->adjvex].indegree==0)z[++i]=p->adjvex;q=p;p=p->next;delete q;}}k=A->n/7;x=h/7;l[0]=0;l[7]=A->n;for(j=1;j<7;j++){l[j]=k*j;if(l[j]==k*j)continue;//l[j]++;for(int w=l[j-1];w<l[j];w++)v=v+A->AdjList[T[w]].chour;if(fabs(v+A->AdjList[T[w]].chour-x)<fabs(v-x)){l[j]++;}v=0;}cout<<"编排成功!!"<<endl;cout<<endl;return T;}void print(AovGraph *A,int *T,int *l){int h;fstream infile;infile.open("E:\\课表.txt",ios::out);if(!infile){cout<<"文件不能打开!!"<<endl;return;}for(int i=1;i<=7;i++){h=0;infile<<"第"<<i<<"学期:";for(int j=l[i-1];j<l[i];j++){infile<<" "<<A->AdjList[T[j]].name<<" ";h=h+A->AdjList[T[j]].chour;}infile<<"本学期总学分为:"<<h<<endl;}cout<<"文件已经写入到E:\\课表.txt中"<<endl;}void show(AovGraph *A,int *T,int *l){int h;for(int i=1;i<=7;i++){h=0;cout<<"第"<<i<<"学期:";for(int j=l[i-1];j<l[i];j++){cout<<" "<<A->AdjList[T[j]].name<<" ";h=h+A->AdjList[T[j]].chour;}cout<<"本学期总学分为:"<<h<<endl;}}2、函数调用关系主函数输入函数编排函数屏幕输出文件输出四、调试分析1.调试中遇到的问题及对问题的解决方法调试中,如果输入的总学科数能被7整除则课程安排时最理想的方式是每学期科目平均,所以在这种情况下,我便直接按照平均分配安排好了。
教学课程设计报告

教学课程设计报告一、教学目标本课程的教学目标是使学生掌握第三章“生物的多样性”的主要内容,包括生物多样性的概念、层次、价值以及保护措施。
知识目标要求学生能够准确地描述生物多样性的三个层次(基因多样性、物种多样性和生态系统多样性),理解生物多样性的价值(直接价值、间接价值和潜在价值),并掌握保护生物多样性的基本措施(就地保护、易地保护、利用生物技术等)。
技能目标要求学生能够运用所学的知识,对现实中的生物多样性保护问题进行分析和评价。
情感态度价值观目标则是培养学生的环保意识,提高他们对生物多样性的保护的重视程度。
二、教学内容本课程的教学内容主要包括第三章“生物的多样性”的全部内容。
首先,我们会介绍生物多样性的概念和层次,让学生理解生物多样性的内涵。
然后,我们会讲解生物多样性的价值,让学生明白为什么要保护生物多样性。
接着,我们会介绍保护生物多样性的基本措施,让学生知道如何保护生物多样性。
最后,我们会通过案例分析,让学生运用所学的知识,对现实中的生物多样性保护问题进行分析和评价。
三、教学方法为了达到本课程的教学目标,我们将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法。
首先,我们会通过讲授法,向学生传授生物多样性的基本知识。
然后,我们会通过讨论法,让学生参与到课堂讨论中,加深他们对生物多样性的理解。
接着,我们会通过案例分析法,让学生运用所学的知识,对现实中的生物多样性保护问题进行分析和评价。
最后,我们会通过实验法,让学生亲自动手,进行生物多样性保护的实验,提高他们的实践能力。
四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将准备多种教学资源,包括教材、参考书、多媒体资料和实验设备。
教材将是我们的主要教学资源,我们将选用国内权威的生物学教材,确保学生能够接触到最权威、最前沿的生物学知识。
参考书将为学生提供更多的学习材料,帮助他们深入理解生物多样性的相关知识。
多媒体资料将通过图片、视频等形式,丰富学生的学习体验,让他们更加直观地理解生物多样性的概念和现象。
课程设计与教学计划

课程设计与教学计划近期,我参与了一次课程设计与教学计划的工作。
通过这次工作,我深刻认识到了课程设计与教学计划对于教育教学工作的重要性,同时也收获了一定的经验和启示。
首先,在课程设计方面,我注重了教学目标的设置。
我明确了每个阶段学生应该达到的学习成果,并衍生出相应的教学目标。
通过明确教学目标,我能够更好地组织教学内容,帮助学生达到预期的学习效果。
此外,我还结合学生的实际情况,针对不同层次的学生制定了相应的教学策略,以确保每个学生都能够得到有效的学习。
其次,我注重了教学资源的选择与利用。
在课程设计过程中,我充分利用了图书馆、互联网等资源,查找了大量的教学资料,并筛选出高质量的资源。
我还鼓励学生积极参与课程设计,通过小组合作或个人研究等方式获取更多的资源。
这样做不仅丰富了教学内容,也激发了学生的学习兴趣和创造力。
在教学计划方面,我注重了教学过程的合理安排。
我根据教学目标和内容,制定了详细的教学计划,并注意教学过程的连贯性和逻辑性。
在每一堂课中,我充分发挥学生的主体性,采用启发式教学法、讨论式教学法等多种教学方法,让学生充分参与课堂活动,培养其问题解决能力和创新思维。
同时,我还注重了教学评价的科学性。
我采用了多种评价方式,如作业考察、课堂表现等,全面评价学生的学习情况。
评价结果不仅是对学生的回馈,也是对教学效果的检验。
通过评价结果,我能及时调整教学策略,进一步提高教学质量。
总的来说,这次课程设计与教学计划的工作让我深刻认识到了教育教学工作的复杂性和挑战性。
通过不断改进自己的课程设计与教学计划,我相信我能够更好地满足学生的学习需求,提高教学效果。
同时,我也意识到还有很多需要不断学习和提升的地方,比如运用信息技术手段进行教学辅助、加强团队合作等。
我将继续努力,不断完善自身的教学理念和实践方法,以提升自己的教育教学水平。
编制教学计划的课程设计

编制教学计划的课程设计一、课程目标知识目标:1. 学生能掌握教学计划的基本构成要素,理解其在教学过程中的重要性。
2. 学生能够明确本学科课程标准中各年级的知识点和能力要求,并能在教学计划中予以体现。
3. 学生能结合教材内容,制定出符合学生认知发展水平和兴趣的教学目标。
技能目标:1. 学生能够运用分析、综合、评价等方法,合理设置教学活动的顺序和时长。
2. 学生能够根据不同学生的学习特点,设计出具有针对性的教学策略和评价方法。
3. 学生通过小组合作,学会在教学计划中有效整合各种教学资源,提高教学效果。
情感态度价值观目标:1. 学生能够认识到教学计划对于提升教学质量和学生学习效果的重要性,形成严谨的教学态度。
2. 学生在教学计划制定过程中,培养团队协作精神,学会尊重和倾听他人意见。
3. 学生通过本课程的学习,激发对教育事业的热爱,树立正确的教育观念。
分析课程性质、学生特点和教学要求,本课程将目标分解为具体的学习成果,包括:理解教学计划的基本概念、掌握教学计划制定的方法、具备教学计划实施和评价的能力等。
后续教学设计和评估将围绕这些具体学习成果展开,确保学生能够达到预期的学习效果。
二、教学内容1. 教学计划基本概念:包括教学计划定义、作用、类型及相互关系。
2. 教学计划构成要素:学习目标、教学内容、教学方法、教学评价、教学资源等。
3. 教学目标制定:依据学科课程标准,结合教材内容,明确各年级教学目标。
4. 教学内容组织:按照教材章节,梳理知识点,划分教学重点和难点。
5. 教学方法选择:根据学生特点,选择适当的教学方法,如讲授、讨论、实践等。
6. 教学评价设计:制定评价标准,选择评价方法,如测试、观察、作业等。
7. 教学进度安排:明确各阶段教学任务,合理分配教学时间,确保教学效果。
8. 教学资源整合:利用教材、网络、实物等资源,丰富教学内容,提高教学效果。
具体教学大纲如下:第一周:教学计划基本概念及构成要素第二周:教学目标制定与教学内容组织第三周:教学方法选择与教学评价设计第四周:教学进度安排与教学资源整合教学内容与教材紧密关联,确保科学性和系统性,同时注重实践性,使学生在学习过程中能够充分掌握教学计划制定的方法和技巧。
教学计划编制问题课程设计报告

教学计划编制问题课程设计报告书学院、系:软件学院专业:软件工程学生姓名:学号:设计题目:教学计划编制问题起迄日期:xx年12月9日-xx年12月20日指导教师: xx 年12月20 日1需求分析1、在大学的某个专业中选取几个课程作为顶点,通过各门课的先修关系来构建个图,该图用邻接表来存储,邻接表的头结点存储每门课的信息、2、本程序的目的是为用户编排课程,根据用户输入的信息来编排出每学期要学的课程、3、测试数据:学期总数:6;学分上限:9;本专业共开设12门课,课程号从C00到C11,学分顺序为2,3,4,3,2,3,4,4,7,5,2,3。
2概要设计1、抽象数据类型图的定义如下:ADT Graph{数据对象V:V是具有相同特性的数据元素的集合,称为顶点集、数据关系R:R={VR}VR={(v,w)|v,w∈V,(v,w)表示v和w之间存在直接先修关系}基本操作P:void CreatGraph(ALGraph *);void FindInDegree(ALGraph , int * );intTopologicalOrder(ALGraph G,AdjList R,struct Namename[])int LocateVex(ALGraph G, VertexType u)/* 查找图中某个顶点位置 */ }ADT Graph2、栈的定义如下:ADT Stack{数据对象:D={ai|ai∈ElemSet,i=1,2,…n,n>=0} 数据关系:R1={﹤ai-1 ai﹥|ai-1,ai∈D,i=2,…,n}基本操作:void InitStack (SqStack *S);int StackEmpty(SqStack S);void Push(SqStack *S, int );int Pop(SqStack *S, int *e);}ADT Stack3、本程序有两个模块,调用关系简单:主程序模块→ 拓扑排序模块3系统完成功能及功能框图end采用第二种策略:使课程尽可能地集中在前几个学期中根据教学计划中的课程及其关系和学分定义图的顶点和边的结构体创建图CreateGraph():结合先修关系的AOV网,采用邻接链表存储菜单OUTPUT():显示代号所对应课程及课程的先修课程前插法main拓扑排序TopoSort(G):将课程排序后并决定出每学期所学课程输出图G的信息Display(G):将图的顶点和弧边输出图3、1系统功能框图0C11 ^5 ^11 ^111067 ^6 ^4 ^72 ^1134 ^9 ^1C22C33C44C55C66C7^7C8^8C99C1010C1111C12^ 图3、2 邻接表对每个顶点求入度,并存入数组InDegree[i]中(i=0…n)初始化栈Stack,Counter=0Return OKReturn ERROR依次将入度为0的顶点存入栈中对以i号顶点为尾弧的每个邻接点的入度减1,并将入度减1后为零的顶点号压入栈中,输出i,计数器加1(Counter++)推出栈顶的一个元素(入度为零的顶点号)至i,输出i,计数器加1(Counter++)堆栈是否为空?n个顶点全输出 Y Y N Y N Y 图3、3 拓扑排序流程图C1C4C5C7C2C3C8C9C12C10C11C6 图3、4 课程先修关系图4 详细设计1、图的邻接表的存储表示,即结构体的定义:typedef struct ArcNode{int AdjOfV; // 该弧所指向的顶点的位置struct ArcNode *next; //指向下一条弧的指针}ArcNode;typedef char VertexType[MAXOfNAME]; typedef struct //链接表{VertexType data; //顶点信息int grades; //存储学分信息ArcNode *first; //指向第一条依附该顶点的弧的指针}VNode, AdjList[MAX_VER]; // 头结点typedefstruct{AdjList ver; //vertices 存储课程名int vexnum, arcnum; // 图的当前顶点数和弧数}ALGraph;2、建立图的邻接链表:printf("请输入下列课程的先修课程(无先修课程输入0 结束后也输入0)\n"); for (h=0;h<G、vexnum;++h)// 构造表结点链表,利用前插法 { printf("%s的先修课程:",G、ver[h]、data); scanf("%s",va);getchar(); while (va[0]!='0'){ i = LocateVex(G, va); //弧头 j = h; //弧尾 p = (ArcNode*)malloc(sizeof(ArcNode)); p->AdjOfV = j; p->next = G、ver[i]、first; // 插在表头 G、ver[i]、first = p; scanf("%s",va); getchar(); }3、输出图的顶点和边:printf("%d个顶点", G、vexnum); for (i = 0;i < G、vexnum;++i)printf("%4s", G、ver[i]、data); printf(" \n%d条弧边:\n",G、arcnum); for (i = 0;i < G、vexnum;i++){ p = G、ver[i]、first; while (p){ printf("%s---->%s\n",G、ver[i]、data,G、ver[p->AdjOfV]、data); p = p->next; } }4、通过栈实现拓扑排序:intTopologicalOrder(ALGraph G,AdjList R,struct Name name[]) {int i, k, j = 0, count, indegree[MAX_VER]; SqStack S;ArcNode *p;FindInDegree(G, indegree); // 对各顶点求入度InitStack(S); // 初始化栈for (i = 0;i < G、vexnum;++i) //建零入度顶点栈Sif (!indegree[i])Push(S, i); // 入度为0者进栈count = 0; // 对输出顶点计数while (!StackEmpty(S)){ Pop(S, i);printf("%s(%d学分),",G、ver[i]、data,G、ver[i]、grades);R[j++] = G、ver[i]; //将当前的拓扑序列保存起来++count; // 输出i号顶点并计数for (p =G、ver[i]、first; p; p=p->next)// 对i号顶点的每个邻接点的入度减1{ k = p->AdjOfV;if (!(--indegree[k]))// 若入度减为0,则入栈Push(S, k);}}if (count < G、vexnum){printf("此有向图有回路无法完成拓扑排序");return0;}else printf( " 为一个拓扑序列");printf("\n");intq=1,Z=0;while (q <= TotalOfTerms){int C = R[Z]、grades ;printf("\n第%d个学期应学课程:",q);while (C <= MaxScores){C = C + R[Z+1]、grades;if (Z < G、vexnum) { CmpOfStr(R[Z]、data,name,N);/*让C1~C12分别与12门课程对应起来*/++Z;}}printf("\n");if (q ==TotalOfTerms)printf( "\nOK Over!");q++;}return1;/**/}5、主程序和其他伪码算法:void main(){ ALGraph G; AdjList R;Struct name;name[N]={{"C1"},{"C2"},{"C3"},{"C4"},{"C5"},{"C6"},{"C7"},{"C8"},{"C9"},{"C10"},{"C11"},{"C12"}}; printf("***************教学计划编制问题**************\n" );printf( "请以课件9-2上课程先序图为例输入学期总数:");scanf("%d",&TotalOfTerms); getchar(); printf("请输入学期的学分上限(8或9):"); scanf("%d",&MaxScores); getchar(); CreateGraph(G); Display(G);TopologicalOrder(G,R,name);}int InitStack(SqStack &S) /*栈的初始化*/{ S、a= (int *)malloc(StackofNUM *sizeof(int));if (!S、a)exit(-1);S、top =S、a;S、size=StackofNUM;return1;}int StackEmpty(SqStack S)/*判断栈是否为空*/{ if (S、top == S、a)return1;else return 0;}int Push(SqStack &S, int x)/*入栈*/ {if (S、top1);S、top =S、a +S、size;S、size +=StackforMore;}*S、top++ = x;return1;}int Pop(SqStack &S, int &x)/*出栈*/{ if (S、top == S、a)return 0;x = *--S、top; return1;}int LocateVex(ALGraph G, VertexType u)/* 查找图中某个顶点位置 */ { int i; for (i = 0;i < G、vexnum;++i) if (strcmp(u,G、ver[i]、data)==0)return i;return>AdjOfV = j; p->next = G、ver[i]、first; // 插在表头 G、ver[i]、first = p; scanf("%s",va); getchar(); } } return1;}void Display(ALGraph G)/* 输出图G的信息*/{ int i; ArcNode *p; printf("有向图\n"); printf("%d个顶点", G、vexnum); for (i = 0;i < G、vexnum;++i)printf("%4s", G、ver[i]、data); printf(" \n%d 条弧边:\n",G、arcnum); for (i = 0;i < G、vexnum;i++) { p = G、ver[i]、first; while (p){ printf("%s---->%s\n",G、ver[i]、data,G、ver[p->AdjOfV]、data); p = p->next; } }} voidFindInDegree(ALGraph G, int indegree[])/*求顶点的入度*/{ int i; ArcNode *p; for (i = 0;i < G、vexnum;i++)indegree[i] = 0; for (i = 0;i < G、vexnum;i++){ p = G、ver[i]、first; while (p){ indegree[p->AdjOfV]++; p = p->next; } }}struct Name{ char c[20];}name;void CmpOfStr(VertexTypestr,struct Name name[],int n)/*让C1~C12分别与12门课程对应起来*/{ if(strcmp(str,name[0]、c)==0)printf(" C程序设计"); if(strcmp(str,name[1]、c)==0)printf(" 模拟数字电路");if(strcmp(str,name[2]、c)==0)printf(" 数据结构");if(strcmp(str,name[3]、c)==0)printf(" C++面向对象 ");if(strcmp(str,name[4]、c)==0)printf(" 大学英语 ");if(strcmp(str,name[5]、c)==0)printf(" 计算机组成原理"); if(strcmp(str,name[6]、c)==0)printf(" 传感器原理");if(strcmp(str,name[7]、c)==0)printf(" 软件工程导论");if(strcmp(str,name[8]、c)==0)printf(" 高等数学");if(strcmp(str,name[9]、c)==0)printf(" 线性代数");if(strcmp(str,name[10]、c)==0)printf(" 大学物理基础"); if(strcmp(str,name[11]、c)==0)printf(" 电工技术"); }4 界面设计5 源代码#include<stdio、h>#include<stdlib、h>#include<math、h>#include<string、h>#define N12#define MAXOfNAME3 //最多字符个数#define MAX_VER100 //最大顶点数#define StackofNUM20 //存储空间初始分配量#define StackforMore5 // 存储空间分配增量int TotalOfTerms ; //学期总数int MaxScores;typedef struct SqStack{int *a;int*top;int size; //分配的存储空间}SqStack;typedef struct ArcNode{int AdjOfV; // 该弧所指向的顶点的位置struct ArcNode *next; //指向下一条弧的指针}ArcNode;typedef char VertexType[MAXOfNAME];typedef struct //链接表{VertexType data; //顶点信息int grades; //存储学分信息ArcNode *first; //指向第一条依附该顶点的弧的指针}VNode, AdjList[MAX_VER]; // 头结点typedef struct{AdjList ver; //vertices 存储课程名int vexnum, arcnum; // 图的当前顶点数和弧数}ALGraph; //学分上限int InitStack(SqStack S)/*栈的初始化*/{S、a= (int *)malloc(StackofNUM *sizeof(int));if (!S、a)exit(-1);S、top =S、a;S、size=StackofNUM;return1;}int StackEmpty(SqStack S)/*判断栈是否为空*/{if (S、top == S、a)return1;else return 0;}int Push(SqStack S, int x)/*入栈*/{if (S、top1);S、top =S、a +S、size;S、size +=StackforMore;}*S、top++ = x;return1;}int Pop(SqStack S, int x)/*出栈*/{if (S、top == S、a)return 0;x = *--S、top; return1;}int LocateVex(ALGraph G, VertexType u)/* 查找图中某个顶点位置 */{ int i; for (i = 0;i < G、vexnum;++i) if (strcmp(u,G、ver[i]、data)==0)return i;return>AdjOfV = j; p->next = G、ver[i]、first; // 插在表头 G、ver[i]、first = p; scanf("%s",va); getchar(); } } return1;}void Display(ALGraph G)/* 输出图G的信息*/{ int i; ArcNode *p; printf("有向图\n"); printf("%d个顶点", G、vexnum); for (i = 0;i < G、vexnum;++i)printf("%4s", G、ver[i]、data); printf(" \n%d 条弧边:\n",G、arcnum); for (i = 0;i < G、vexnum;i++) { p = G、ver[i]、first; while (p){ printf("%s---->%s\n",G、ver[i]、data,G、ver[p->AdjOfV]、data); p = p->next; } }}voidFindInDegree(ALGraph G, int indegree[])/*求顶点的入度*/{ int i; ArcNode *p; for (i = 0;i < G、vexnum;i++)indegree[i] = 0; for (i = 0;i < G、vexnum;i++){ p = G、ver[i]、first; while (p){ indegree[p->AdjOfV]++; p = p->next; } }}struct Name{ char c[20];}name;void CmpOfStr(VertexTypestr,struct Name name[],int n)/*让C1~C12分别与12门课程对应起来*/{ if(strcmp(str,name[0]、c)==0)printf(" c程序设计"); if(strcmp(str,name[1]、c)==0)printf(" 模拟数字电路");if(strcmp(str,name[2]、c)==0)printf(" 数据结构");if(strcmp(str,name[3]、c)==0)printf(" C++面向对象 ");if(strcmp(str,name[4]、c)==0)printf(" 大学英语 ");if(strcmp(str,name[5]、c)==0)printf(" 计算机组成原理");if(strcmp(str,name[6]、c)==0)printf(" 传感器原理");if(strcmp(str,name[7]、c)==0)printf(" 软件工程导论 ");if(strcmp(str,name[8]、c)==0)printf(" 高等数学");if(strcmp(str,name[9]、c)==0)printf(" 线性代数");if(strcmp(str,name[10]、c)==0)printf(" 大学物理基础");if(strcmp(str,name[11]、c)==0)printf(" 电工技术");}int TopologicalOrder(ALGraph G,AdjList R,struct Namename[]){int i, k, j = 0, count, indegree[MAX_VER];charq=1,Z=0;SqStack S;ArcNode *p;FindInDegree(G, indegree); // 对各顶点求入度InitStack(S); // 初始化栈for (i = 0;i < G、vexnum;++i)//建零入度顶点栈Sif (!indegree[i])Push(S, i); // 入度为0者进栈count = 0; // 对输出顶点计数while (!StackEmpty(S)){Pop(S, i);printf("%s(%d学分),",G、ver[i]、data,G、ver[i]、grades);R[j++] = G、ver[i]; //将当前的拓扑序列保存起来++count; // 输出i号顶点并计数for (p =G、ver[i]、first; p; p=p->next)// 对i号顶点的每个邻接点的入度减1{k = p->AdjOfV;if (!(--indegree[k]))// 若入度减为0,则入栈Push(S, k);}}if (count < G、vexnum){printf("此有向图有回路无法完成拓扑排序");re第 1 页共 1 页。
课程设计编写报告

课程设计编写报告一、教学目标本课程的教学目标是让学生掌握《XX学科》的基本概念、原理和方法,提高他们的分析和解决问题的能力。
具体目标如下:1.知识目标:(1)掌握XX学科的基本概念和原理;(2)了解XX学科的发展历程和现状;(3)熟悉XX学科的研究方法和手段。
2.技能目标:(1)能够运用XX学科的基本原理分析问题和解决问题;(2)能够运用XX学科的研究方法进行科学探究;(3)能够运用XX学科的知识撰写论文和报告。
3.情感态度价值观目标:(1)培养对XX学科的兴趣和热情;(2)培养科学精神和创新意识;(3)树立正确的科学观和价值观。
二、教学内容本课程的教学内容主要包括XX学科的基本概念、原理和方法。
具体安排如下:1.第一章:XX学科的基本概念和原理(1)XX学科的定义和发展历程;(2)XX学科的基本原理和定律;(3)XX学科的研究方法和手段。
2.第二章:XX学科的应用和实践(1)XX学科在生活中的应用;(2)XX学科在相关领域的应用;(3)XX学科的实验技术和设备。
3.第三章:XX学科的发展趋势和前景(1)XX学科的最新研究成果;(2)XX学科的发展前景和挑战;(3)XX学科在国家战略和经济社会发展中的作用。
三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
具体安排如下:1.讲授法:用于传授基本概念、原理和方法,引导学生掌握XX学科的基本知识。
2.讨论法:通过小组讨论和课堂讨论,培养学生的思考能力和团队合作精神。
3.案例分析法:通过分析典型案例,让学生了解XX学科在实际中的应用和解决问题的方式。
4.实验法:学生进行实验,培养学生的实践能力和科学探究精神。
四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备以下教学资源:1.教材:选用《XX学科导论》作为主教材,辅助以《XX学科实验指导书》等参考资料。
2.参考书:提供《XX学科研究进展》等相关书籍,供学生深入学习和参考。
教师教学内容计划设计报告

教师教学内容计划设计报告概述教师教学内容计划设计是教学过程中的核心环节,它涉及到教师对学科知识的全面把握、教学大纲的执行和教学任务的完成。
本报告旨在探讨教师教学内容计划设计的重要性以及如何有效地进行教学内容计划设计。
重要性教师教学内容计划设计对学生的学习效果有着重要的影响。
一个合理的教学内容计划设计可以帮助学生更好地掌握知识点,提高学习效果。
而一个不合理或者杂乱无章的教学内容计划设计则会使学生在学习过程中迷失方向,无法形成系统性的学习,从而导致知识的断片化。
步骤1. 确定教学目标教学目标是教学内容计划设计的基础,也是教学过程中最重要的指导。
教师应根据学科知识的层次和学生的实际情况,确定明确的教学目标,以此为依据来进行后续的教学内容设计。
2. 分析学生需求学生在学习过程中会有个体差异,因此教师需要通过分析学生的需求,了解他们的学习水平、兴趣和学习方式,从而调整教学内容的设计,使之符合学生的发展需求。
3. 设计课程结构在设计教学内容计划时,教师应该合理安排课程结构。
课程结构主要包括课时分配、知识点的排序和教学策略的选择等。
通过合理设计课程结构,可以使教学过程更加有序和连贯。
4. 制定教学策略教学策略是指教师在教学过程中选取的各种教学方法和手段。
教师应该根据教学内容和学生的特点,灵活运用不同的教学策略,以促进学生的积极参与和主动学习。
5. 编写教学材料教学材料是教师教学内容计划设计中必不可少的一部分。
教师可以根据自己的教学需要,编写与课程内容相对应的教学材料,以便更好地辅助学生的学习。
实施与评估1. 实施教学计划在进行教学内容计划设计时,教师应将其付诸实施,并根据实施情况适时进行调整。
实施时,教师应注重学生的学习效果和学习动力,灵活运用教学策略,提高学生的学习兴趣。
2. 教学评估教学评估是对教学内容的质量与成果进行检验和评价。
教师应在教学过程中及时对学生的学习情况进行评估,了解学生的掌握程度和学习困难,以便调整教学内容的设计和教学方法的选择。
教师教学计划编制案例分析报告

教师教学计划编制案例分析报告一、引言教学计划是教师教学活动的重要组成部分,编制一份科学合理的教学计划对课堂教学的成功至关重要。
本文将通过分析一个教师教学计划编制的案例,探讨其编制过程、特点以及对教学实施的指导意义。
二、背景介绍本案例为高中生物教学计划编制,针对第一节课《细胞的结构与功能》,授课目标为让学生了解细胞的基本结构,掌握细胞的基本功能,并能应用所学知识解决简单问题。
三、目标明确教师在编制教学计划之前,首先需要明确教学目标。
根据本案例的授课目标,教师将学习目标分为知识目标、能力目标和情感目标三个方面,并进一步细化为具体的课堂表现目标。
四、课程内容选择在确定了教学目标后,教师需要选择适当的教材和参考资料,以确保教学内容的科学性和全面性。
本案例中,教师选择了权威的生物教科书作为主要教材,并参考了相关研究论文和教学资源。
同时,教师还根据学生的实际情况和学科要求,进行了适当的内容剪裁,确保教学内容的前后衔接和知识重点的突出。
五、教学策略设计教师在编制教学计划时,还需要设计合适的教学策略和方法。
本案例中,教师采用了多种教学策略,如讲授、示范、实验等,以激发学生的兴趣并增加学习的参与度。
教师还根据学生的认知特点和学习需求,设计了适当的互动环节和问题引导,帮助学生主动思考和探索。
六、资源准备一个成功的教学计划还需要充分准备教学资源。
本案例中,教师在教学计划中列出了所需的教具、实验器材和多媒体资料,并提前安排好相应的准备工作。
教师还对实验操作进行了充分的实践演练,以确保教学过程的流畅进行。
七、课时安排教师在编制教学计划时,需要合理安排授课时间,确保课堂教学的进度和质量。
本案例中,教师将第一节课设计为1节45分钟的课时,并详细安排了教学活动和时间分配,以确保各教学环节的顺利进行。
八、评价方式为了准确评价学生的学习情况和教学效果,教师需要设计合适的评价方式。
本案例中,教师综合运用了测验、作业、实验报告等多种评价方式,并设计了不同的评价指标和评价标准,以全面评价学生对知识掌握和能力运用的情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
教学计划编制问题课程设计报告课程设计(论文)题目名称教学计划编制问题课程名称数据结构课程设计学生姓名学号系、专业信息工程系、通信工程类指导教师2012年12 月23 日摘要教学计划是学校保证教学质量和人才培养的关键,也是组织教学过程、安排教学过程、安排教学任务、确定教学编制的基本依据和课程安排的具体形式。
是稳定教学秩序、提高教学质量的重要保证。
从教学计划的设计、实施等方面,阐明了如何搞好教学管理,从而为提高教学质量提供保证。
随着教育改革的不断深入和社会发展的需要,原旧的教学计划在定位上的方向性偏差,已经不再适应社会的需求。
因此,应重视教学计划的改革和修订工作,以确保教育教学质量,提高教育教学水平。
教学计划编制中的思路:一是明确培养目标;二是注重学科设置的整体性、统一性和灵活性、全面性;三是与学分制改革有机结合。
教学计划是高校实施常规教学活动的基本管理文档,由于传统的手工编制方式存在诸多弊端,开发基于Web应用程序形式的教学计划编制系统具有很好的应用价值。
使用C程序设计语言,研究开发教学计划编制系统Web应用系统。
关键词:教学计划;编制;培养目标;管理目录1 问题描述 ---------------------------------------------------------------------------------------------- 12 需求分析 ---------------------------------------------------------------------------------------------- 23 概要设计 ------------------------------------------------------- 23.1抽象数据类型定义 ---------------------------------------- 2 3.2模块划分------------------------------------------------- 2 4 详细设计 ------------------------------------------------------- 34.1数据类型的定义 ------------------------------------------ 4 4.2主要模块的算法描述 -------------------------------------- 55 测试分析 ------------------------------------------------------- 86 课程设计总结 ------------------------------------------------- 106.1问题和解决的方法及经验教训、心得体会﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍106.2 致谢 ---------------------------------------------------- 11参考文献 -------------------------------------------------------- 11附录(源程序清单) --------------------------------------------- 121 问题描述大学的每个专业都要制定教学计划。
假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等,每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。
每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。
每门课恰好占一个学期。
试在这样的前提下设计一个教学计划编制程序。
[基本要求](1)输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。
(2)允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课程尽可能地集中在前几个学期中。
(3)若根据给定的条件问题无解,则报告适当的信息;否则将教学计划输出到用户指定的文件中。
计划的表格格式自行设计。
[测试数据]学期总数:6;学分上限:10;该专业共开设12门课,课程号从C01到C12,。
先修关系如下:学分顺序为2 需求分析大学的每个专业都要编制教学计划。
假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限都相等。
每个专业开设的课程都是确定的,而且课程的开设时间的安排必须满足先修关系。
每个课程的先修关系都是确定的,可以有任意多门,也可以没有。
每一门课程恰好一个学期。
试在这样的情况下设置一个教学计划编制程序。
在大学的某个专业中选取几个课程作为顶点,通过各门课的先修关系来构建个图,该图用邻接表来存储,邻接表的头结点存储每门课的信息.本程序的目的是为用户编排课程,根据用户输入的信息来编排出每学期要学的课程.针对计算机系本科课程,根据课程之间的依赖关系(如离散数学应在数据结构之前开设)制定课程安排计划,并满足各学期课程数目大致相同,而且课程在开设时间的安排必须满足先修关系。
输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。
3 概要设计3.1抽象数据类型定义ADT Graph{数据对象V:V是具有相同特性的数据元素的集合,称为顶点集.数据关系R:R={VR}VR={(v,w)|v,w∈V,(v,w)表示v和w之间存在直接先修关系}基本操作P:void CreatGraph(ALGraph *);void FindInDegree(ALGraph , int * );void TopologicalSort_1(ALGraph G,int numterm,int maxcredit); void TopologicalSort_2(ALGraph G,int numterm,int maxcredit); }ADT Graph栈的定义:ADT Stack{数据对象:D={ai|ai∈ElemSet,i=1,2,…n,n>=0}数据关系:R1={﹤ai-1 ai﹥|ai-1,ai∈D,i=2,…,n}基本操作:void InitStack (SqStack *S);int StackEmpty(SqStack S);void Push(SqStack *S, int );int Pop(SqStack *S, int *e);}ADT Stack3.2模块划分主程序模块拓扑排序模块4 详细设计4.1数据类型的定义1.头结点,表结点,邻接表的定义#define MAX_VERTEX_NUM 100 //最大课程总数typedef struct ArcNode{int adjvex;struct ArcNode *nextarc;}ArcNode;typedef struct VNode{char name[24]; //课程名int classid; //课程号int credit; //课程的学分int indegree; //该结点的入度int state; //该节点的状态ArcNode *firstarc; //指向第一条依附该顶点的弧的指针}VNode,AdjList[MAX_VEXTEX_NUM];typedef struct{AdjList vertices;int vexnum, arcnum;}ALGraph;邻接表的基本操作:void CreatGraph(ALGraph *);创建邻接表void FindInDegree(ALGraph , int * );求一个结点的入度void TopologicalSort_1(ALGraph G,int numterm,int maxcredit);拓扑排序来编排课程void TopologicalSort_2(ALGraph G,int numterm,int maxcredit); 2.栈的定义:#define STACk_INIT_SIZE 100 //存储空间的初时分配量#define STACKINCREMENT 10 //存储空间的分配增量typedef int ElemType;typedef struct{AdjList vertices;int vexnum, arcnum;}ALGraph;基本操作:void InitStack (SqStack *S);栈的初始化int StackEmpty(SqStack S);判断栈是否为空void Push(SqStack *S, int );入栈操作int Pop(SqStack *S, int *e);出栈操作int Sort(SqStack *S,int *t);4.2主要模块的算法描述1.LocateVex():图的邻接表存储的基本操作。
由初始条件: 图G存在,u和G 中顶点有相同特征转而进行判断,若G中存在顶点u,则返回该顶点在图中位置;否则返回-1。
图 4.12.CreateGraph():构造生成图。
采用邻接表存储结构,构造没有相关信息的图G(用一个函数构造种图)。
图 4.2 3.Display():输出图的邻接矩阵。
采用循环设置输出图的邻接矩阵。
图 4.3 4.FindInDegree():求顶点的入度。
图4.45.TopologicalSort():输出G顶点的拓扑排序结果。
有向图G采用邻接表存储结构。
若G无回路,则输出G的顶点的一个拓扑序列并返回OK,否则返ERROR。
图 4.55 测试分析使用VC++,打开教学计划编制问题.cpp文件,接着编译,无错误,然后重建也没有错误,最后执行该文件。
要求输入学期总数、一个学期的学分上限、需要编排课程总数、课程名、课程号、该课程的学分,按照出现的每一步来输入该课程设计所提供的相关数据。
然后还要输入课程先修课程总数,可以算出有16种关系,分别输出。
接着程序会根据这些数据,自动生成建立好的邻接表,用户可以根据系统显示的选择编排策略进行选择,有两种编排策略,最后结果体现在实验的正确测试结果里。
显示如下图:6 课程设计总结6.1 问题和解决方法及经验教训、心得体会虽然在大一我们已经学习了C语言,但是,直到本期我们才开设了数据结构这一门课程。
这门课程让我从C语言那基础再深入的了解了软件开发的复杂性。
对以往模糊的经验,起了总结提升的作用。
在学习了这门课程后,我们进行了2个星期的课程设计,来实践我们所学这门课的内容。
这次实验,我进行了大量的资料查阅,包括向老师请求帮助解释题目要求,对所学知识进行复习。
通过这些努力,我对数据结构这门课程有了新的认识,对编程的步骤,有了具体的体会。