教学计划范例图

时间:2024.4.20

附件2

克拉玛依区幼儿园教育教学计划框架图

附件3:

克拉玛依区幼儿园月(主题)计划范例

主题目标网络图

 

主题活动网络图

 

附件4:

克拉玛依区幼儿园周(分题)计划范例

主题活动:***——分题活动***

说明:周计划范例采用的是表格式书写方法,幼儿园可以根据本园课程特色采用其他方式进行书写。(如网络式)但注意不管用何种方法都必须包含基本的环节。

附件5:

对教案的内容及形式的要求

一、对教案外观、书写文字的要求

1、幼儿园的教案本大小规格统一,教案封面由幼儿园统一设计的书写格式。内容包括:幼儿园名称、班级、姓名。

2、教案书写一律用钢笔或中性笔书写,颜色只能选取蓝黑或黑色,但整个教案本只能使选用一种颜色。

3、文字书写字体要工整。

4、如需粘贴教学计划等纸张,必须保证与教案本大小一致。保证教案本平整、无破损,如有破损及时修补。

二、对教案书写内容及要求

    根据对幼儿园及教师的了解,将取消表格式的备课形式。为了统一教案书写的内容,做统一规定。(以下范例,只是为了方便说明而采用表格的形式。)

1、主班教师教案书写内容及要求

2、副班教师教案书写要求

3、对教育教学反思的要求:

⑴书写篇数:主班、副班教师均在每周五教案后写一篇综合的教育教学反思。20##年以后参加工作的教师和教育教学反思还有待于提高的教师仍需每天书写。

⑵教育教学反思的内容:幼儿园反思内容不再是单纯的只关注集体教学活动,而更应加强对渗透在一日生活中的所有教育活动的关注。下面做具体说明:

①主班教师周反思内容分为集体教学效果分析户外活动组织效果分析区域活动效果分析生活教育活动反馈与调整 四个部分。

②副班教师周反思内容分为自选一次游戏活动效果分析户外活动组织效果分析生活教育活动反馈与调整特色活动开展情况反馈与调整、四个部分。

③每天书写反思内容:幼儿园根据实际情况自定要求,可以每天只重点关注一项内容,注意不要只关注集体教学活动。

⑶教育教学反思注意问题

①教育教学反思是对一周内教育活动的回顾思考,是教师依据教育理念对自身教育行为的评价和分析。

②教师反思的过程就是教师自评教育活动的过程,依据参考《克拉玛依市幼儿园指导纲要实施细则》中评价要点进行自评。

四、对教学案例、个案观察的要求:

⑴书写篇数:根据《克拉玛依区幼儿教师基本功训练方案》的规定,每名教师每月需书写1篇教学案例和1篇个案观察。

⑵要    求:教学案例、个案观察在幼儿园专用本上书写。

五、其它要求

1、 凡是教育教学活动中包含儿歌、歌曲、场地安排、幼儿观察记录用表、教师美术示范图等内容,必须将其附在当日教案中。

2、 教案书写原则上建议用手写方式进行。

六、对教案批改的要求:

1、批阅要具有示范作用,批语要清楚明白,具有指导、激励作用。

2、批阅书写要规范、工整,批阅后要注明批阅时间、批阅人。

3、教师之间的批阅采取本内夹条的方式,夹条写明批阅内容,教师批阅后交园长保存。


第二篇:数据结构与算法实验报告4图及教学计划的编制


数据结构与程序设计专题实验报告

                       

                 

                 

            实验报告  

一、实验任务

   实验题目:图的基本操作及教学计划的编制

二、实验内容

实验四:图的基本操作及教学计划编制问题

(一)实验目的:掌握图的基本操作

(二)基本要求:实现必要的图的基本操作,编写教学计划编制程序,输出正确结果。

(三)内容提要: 大学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。

(1)输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。

(2)允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课程尽可能地集中在前几个学期中。

(3)若根据给定的条件问题无解,则报告适当的信息;否则将教学计划输出到用户指定的文件中。计划的表格格式自行设计。

(4)测试数据:学期总数6;学分上限10;共开设12门课,课程号从C1-C12,学分顺序为 2,3,4,3,2,3,4,4,7,5,2,3。先修关系见教材(严蔚敏-数据结构-C语言版)图7.26.但程序不能仅局限于该测试数据。

三、要点分析

题目中涉及的主要知识点有:

(1)栈。用到有关栈的操作有初始化栈、判断栈是否为空、入栈和出栈。其中栈主要用来存放入度为零的顶点,即当前无先修关系可以编排的课程。

(2)图。用到有关图的操作有创建图、统计图中各顶点的入度。利用邻接表作为有向图的存储结构,且在头结点中增加一个存放顶点入度的数组(indegree)。入度为零的顶点即为没有前驱的顶点,删除顶点及以它为尾的弧的操作,则可换以弧头顶点入度减一来实现。

(3)拓扑排序。

  (a)在有向图中选一个没有前驱的顶点且输出之。

  (b)从图中删除该顶点和所有以它为尾的弧。

重复上述两步,直至全部顶点均已输出,或者当前图中不存在无前驱的顶点为止,后一种情况则说明有向图中存在环。

四、程序的算法描述

1、所用存储结构及宏定义:

#define MAX_VERTEX_NUM 100 //最大课程总数

#define STACK_INIT_SIZE 100 //存储空间的初始分配量

#define STACKINCREMENT 10    //存储空间的分配增量

typedef struct ArcNode

{   

    int adjvex;//该弧所指向顶点的位置

    struct ArcNode *nextarc;//指向下一条弧的指针

}ArcNode;

typedef struct VNode

{

    char name[24];//课程名

    int classid; //课程号

    int credit;//课程的学分

    int indegree;//该结点的入度

    int state;//该节点的状态,1代表已学,0代表未学

    ArcNode *firstarc; //指向第一条依附该顶点的弧的指针

}VNode,AdjList[MAX_VERTEX_NUM];

typedef struct

{

    AdjList vertices;//顶点向量

    int vexnum,arcnum;//图的当前顶点数和弧数

}ALGraph;

typedef int ElemType;

typedef struct         //栈

{

    ElemType *base;

    ElemType *top;

    int stacksize;

}SqStack;

2、程序中各函数的简要说明:

(1)void CreatGraph(ALGraph &G)构建图。先输入各顶点(课程)的信息,包括课程名、课程号、课程学分。再输入弧信息(先修关系),将弧中顶点赋为弧尾,相应入度加1.最后输出构建好的邻接表。

(2)void FindInDegree(ALGraph G, int indegree[])求图中各节点的入度。从每个节点的第一条依附于该节点的弧出发,将该节点对应的入度加1,接着指向下一条弧执行同样的操作,直至指针为空。

(3)void TopologicalSort_1(ALGraph G,int numterm,int uplcredit)按课程尽可能集中到前几个学期进行编排。当每个学期的学分总数不超过学分上限时,在有向图中选一个没有前驱的顶点(课程)且输出之。从图中删除该顶点(课程)和所有以它为尾的弧。当某学期的学分已满时,进入下一学期的编排。重复上述几步,直至全部顶点(课程)均已输出,或者当前图中不存在无前驱的顶点(课程)为止,后一种情况则说明有向图中存在环。

(4)void TopologicalSort_2(ALGraph G,int numterm,int uplcredit)按课程尽量均匀分布编排。当每个学期的学分总数不超过学分上限且课程数不超过课程数上限时,在有向图中选一个没有前驱的顶点(课程)且输出之。从图中删除该顶点(课程)和所有以它为尾的弧。当某学期的学分已满或课程数已满时,进入下一学期的编排。重复上述几步,直至全部顶点(课程)均已输出,或者当前图中不存在无前驱的顶点(课程)为止,后一种情况则说明有向图中存在环。

(5)int main()主函数。在主函数中输出交互界面,要求用户输入各项信息。调用CreateGraph函数创建图,之后根据用户选择调用TopologicalSort_1或者TopologicalSort_2函数进行拓扑排序并输出编排结果,写入文件中。

3、源代码

完整程序及相应说明如下:

#include "stdio.h"

#include "malloc.h"

#define MAX_VERTEX_NUM 100 //最大课程总数

#define STACK_INIT_SIZE 100 //存储空间的初始分配量

#define STACKINCREMENT 10    //存储空间的分配增量

typedef struct ArcNode

{   

    int adjvex;//该弧所指向顶点的位置

    struct ArcNode *nextarc;//指向下一条弧的指针

}ArcNode;

typedef struct VNode

{

    char name[24];//课程名

    int classid; //课程号

    int credit;//课程的学分

    int indegree;//该结点的入度

    int state;//该节点的状态,1代表已学,0代表未学

    ArcNode *firstarc; //指向第一条依附该顶点的弧的指针

}VNode,AdjList[MAX_VERTEX_NUM];

typedef struct

{

    AdjList vertices;

    int vexnum,arcnum;

}ALGraph;

typedef int ElemType;

typedef struct

{

    ElemType *base;

    ElemType *top;

    int stacksize;

}SqStack;

void CreatGraph(ALGraph &G)//构建图

{

    int i, m, n;

    ArcNode *p;

    printf("请输入需要编排课程总数:");

    scanf("%d",&G.vexnum);

    for( i=1;i<=G.vexnum;i++)

    {

        printf("\n请输入课程名:");

        scanf("%s",&G.vertices[i].name);

        printf("\n请输入课程号:");

        scanf("%d",&G.vertices[i].classid);

        printf("\n请输入该课程的学分:");

        scanf("%d",&G.vertices[i].credit);

        G.vertices[i].indegree=0;

        G.vertices [i].state=0;//NOTSTUDY

        G.vertices[i].firstarc=NULL;

    }

    printf("请输入课程先修关系总数:");

    scanf("%d",&G.arcnum);

    printf("请顺序输入每个课程先修关系(先修课程在前并以逗号作为间隔):\n");

    for (i = 1; i <= G.arcnum; i++)

    {

        printf("\n请输入存在先修关系的两个课程的序号:");

        scanf("%d,%d",&n,&m);

        while (n<0||n>G.vexnum||m<0||m>G.vexnum)

        {

            printf("输入的顶点序号不正确请重新输入:");

            scanf("%d,%d",&n,&m);

        }

        p = (ArcNode*)malloc(sizeof(ArcNode));

        if (p == NULL)

        {

            printf("memory allocation failed,goodbey");

            return;

        }

        p->adjvex = m;

        p->nextarc=G.vertices[n].firstarc;

        G.vertices[n].firstarc = p;

    }

    printf("\n建立的邻接表为:\n");//输出建立好的邻接表

    for(i=1;i<=G.vexnum;i++)

    {

        printf("%d:->",G.vertices[i].classid);

        for(p=G.vertices[i].firstarc;p!=NULL;p=p->nextarc)

            printf("%d->",p->adjvex);

        printf("NULL");

        printf("\n");

    }

}

void InitStack(SqStack &S)

{

    S.base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));

    if (!S.base)

    {

        printf("ERROR");

        return;

    }

    S.top=S.base;

    S.stacksize=STACK_INIT_SIZE;

}

int StackEmpty(SqStack &S)

{

    if(S.top==S.base)

        return 1;

    else

        return 0;

}

void Push(SqStack &S,int e)

{

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

    {

        S.base=(int*)realloc(S.base,(S.stacksize+10)*sizeof(int));

        if(!S.base)

        {

            printf("ERROR");

            return;

        }

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

        S.stacksize+=10;

    }

    *S.top++=e;

}

int Pop(SqStack &S, int *e)

{

    if(S.top==S.base)

        return 1;

    *e=*--S.top;

    return 0;

}

void FindInDegree(ALGraph G, int indegree[])//求图中各节点的入度

{

    int i;

    for (i = 1; i <= G.vexnum; i++)

        indegree[i] = 0;

    for (i = 1; i <= G.vexnum; i++)

    {

        while (G.vertices[i].firstarc)

        {

            indegree[G.vertices[i].firstarc->adjvex]++;

            G.vertices[i].firstarc = G.vertices[i].firstarc->nextarc;

        }

    }

}

void TopologicalSort_1(ALGraph G,int numterm,int uplcredit)

{

    FILE *fp;

    fp=fopen("bianpai.txt","w");

    struct ArcNode *p;

    SqStack S;

    int indegree[MAX_VERTEX_NUM];//存放各节点的入度

    int i,j,k;

    int count; //课程编括排数目计数器

    int sumcredit;//每个学期的课程学分累加器

    FindInDegree(G,indegree);

    for (i = 1; i <= G.vexnum; i++)

        G.vertices[i].indegree=indegree[i];

    InitStack(S);

    count=0;

    k=0;

    while(count!=G.vexnum && k<=numterm)

    {

        sumcredit=0;

        for(i=1;i<=G.vexnum;i++)

            if((G.vertices[i].indegree==0)&&(G.vertices[i].state==0))//入度为零的节点入栈,即无先修的课程入栈

            {

                Push(S,i);

                G.vertices[i].state =1;//避免入度为零节点重复入栈

            }

            if((!StackEmpty(S))&&(sumcredit<=uplcredit))

            {

                k= k+1;

                printf("\n");

                printf("第d个学期学得课程有:\n",k);

                sumcredit = 0;

                for(i=1;i<=G.vexnum;i++)

                    if((G.vertices[i].indegree==0)&&(G.vertices[i].state==0))//入度为零的节点入栈,即无先修的课程入栈

                        Push(S,i);

                while((!StackEmpty(S))&&(sumcredit<uplcredit))//栈非空&&学分总数小于学分上限

                {

                    Pop(S,&j);

                    sumcredit = sumcredit + G.vertices[j].credit;

                    if(sumcredit <= uplcredit)

                    {

                        printf(" %s ",G.vertices[j].name);

                        fprintf(fp," %s ",G.vertices[j].name);

                        count++;

                        for(p=G.vertices[j].firstarc;p;p=p->nextarc)//对j号顶点每个邻接点的入度减一

                            G.vertices[p->adjvex].indegree--;

                    }

                    else Push(S,j);//将未输出的节点重新压入栈

                }

            }

            fprintf(fp,"\n");

    }

    printf("\n");

    if(count<G.vexnum)

        printf("\n课程编排出错\n");

    else

    {

        printf("\n课程编排成功\n");

    }

    fclose(fp);

}

void TopologicalSort_2(ALGraph G,int numterm,int uplcredit)

{

    FILE *fp;

    fp=fopen("bianpai.txt","w");

    struct ArcNode *p;

    SqStack S;

    int indegree[MAX_VERTEX_NUM];//存放各节点的入度

    int i,j,k,m,n;

    int maxnum;

    int sumnum;

    int count; //课程编排数目计数器

    int sumcredit;//每个学期的课程学分累加器

    FindInDegree(G,indegree);

    for (i = 1; i <= G.vexnum; i++)

        G.vertices[i].indegree=indegree[i];

    InitStack(S);

    count=0;

    k=0;

    maxnum=G.vexnum/numterm+1;

    sumnum=0;

    while(count!=G.vexnum && k<=numterm)

    {

        sumcredit=0;

        for(i=1;i<=G.vexnum;i++)

            if((G.vertices[i].indegree==0)&&(G.vertices[i].state==0))//入度为零的节点入栈,即无先修的课程入栈

            {

                Push(S,i);

                G.vertices[i].state =1;//避免入度为零节点重复入栈

            }

            if((!StackEmpty(S))&&(sumcredit<=uplcredit))

            {

                k= k+1;

                printf("\n");

                printf("第d个学期学得课程有:\n",k);

                sumcredit = 0;

                sumnum=0;

                for(i=1;i<=G.vexnum;i++)//入度为零的节点入栈,即无先修的课程入栈

                    if((G.vertices[i].indegree==0)&&(G.vertices[i].state==0))

                        Push(S,i);

                while((!StackEmpty(S))&&(sumcredit<uplcredit)&&(sumnum<maxnum))//栈非空&&学分总数小于学分上限&&不超过每学期课程上限

                {

                    Pop(S,&j);

                    sumcredit = sumcredit + G.vertices[j].credit;

                    sumnum=sumnum+1;

                    if((sumcredit<=uplcredit)&&(sumnum<=maxnum))

                    {

                        printf(" %s ",G.vertices[j].name);

                        fprintf(fp," %s ",G.vertices[j].name);

                        count++;

                        for(p=G.vertices[j].firstarc;p;p=p->nextarc)//对j号顶点每个邻接点的入度减一

                            G.vertices[p->adjvex].indegree--;

                    }

                    else Push(S,j);//将未输出的节点重新压入栈

                }

            }

            fprintf(fp,"\n");

    }

    printf("\n");

    if(count<G.vexnum)

        printf("\n课程编排出错\n");

    else

    {

        printf("\n课程编排成功\n");

    }

    fclose(fp);

}

int main()//主函数

{  

    int numterm;//学期总数

    int uplcredit; //一个学期的学分上限

    int selectway;

    ALGraph G;

    printf("请输入学期总数:\n");

    scanf("%d",&numterm);

    printf("请输入一个学期的学分上限:\n");

    scanf("%d",&uplcredit);

    CreatGraph(G);

    printf("请选择编排策略:1.课程尽可能集中到前几个学期;2.课程尽量均匀分布\n");

    scanf("%d",&selectway);

    if(selectway==1)

        TopologicalSort_1(G,numterm,uplcredit);

    if(selectway==2)

        TopologicalSort_2(G,numterm,uplcredit);

    return 0;

}

五、程序运行结果

六、实验总结

通过本次实验一方面对学过的有关栈的知识进行了复习和应用,进一步熟悉和掌握了栈的有关操作。另一方面,熟悉和掌握了图的有关操作,尤其是邻接表作为存储结构的图的创建。加深了对拓扑排序的理解。对拓扑排序的应用还有待熟悉和提高。

七、致谢词

非常感谢刘老师在本次实验中对我的指导与帮助,尤其是在拓扑排序处的耐心指导,帮助我得到正确的运行结果。

八、参考文献

1.陈维兴,林小茶.C++面对对象的程序设计教程(第三版).北京:清华大学出版社,2009

2.谭浩强.C程序设计(第四版).北京:清华大学出版社,2010

3.严蔚敏,吴伟民.数据结构(C语言版).北京:清华大学出版社,1997.4

更多相关推荐:
初中英语词汇教学研修总结

这次的研修学习,提高了我对如何更有效地进行初中英语词汇教学的认识。观看微课,研读别的老师的有关英语词汇教学的文章,同QQ群里的同行们探讨英语词汇教学的方法,我感到这次的学习很扎实、有效而且快乐。下面我从英语词汇…

中学教师教学总结

九年级上学期又要结束了。根据省教育厅《关于开展初中生人生规划指引专题教育的实施意见》以及市教育局《关于开展初中生人生规划指引专题教育》的工作部署,结合学校实际,大胆创新,采取专题讲座、主题班会和参观实践等形式开…

二年级语文教学工作总结

回顾一个学期来的语文教学工作实践,我本着全面培养学生具有创新力,实践水平的高素质的现代人的思想、全身心地投入到教学中,圆满完成教学任务。现将教学方面的工作总结如下:一、积极听课,认真备课,善于反思听课,不仅开阔…

幼儿园教学总结 精选2篇

范文一:20xx-20xx学年幼儿园中班下学期美术教学总结在本期教学活动中,根据中班幼儿年龄特征、兴趣、爱好及绘画特点,来选择幼儿生活中熟悉的、感兴趣的、具有吸引力的题材。以培养孩子的兴趣为目标,才能有绘画的愿…

dfs-service-20xx-20xx年第二学期东青小学信息技术学科教学工作总结

小海子镇中心校小学信息技术学科教学工作总结(20xx-20xx)学年度第一学期本学期我担任东青小学三到六年级信息技术教育教学工作,并担任学校计算机教室管理员一职,负责机房电脑的维护,保证机房电脑正常运行服务于学…

一年级语文教学工作总结(20xx-20xx学年)

一年级语文教学工作总结(20xx-20xx学年)本学期我担任了一年级(5)班的语文教学工作,下面将本学期的教学工作总结如下:一、理解课改理念一年级是学生从幼儿园到小学的转换点,这阶段的儿童感性多于理性,对于外界…

四年级美术教学工作总结

20xx-20xx第二学期四年级美术教学工作总结文峰路街道中心小学姜丽娜学期即将结束。在这一个学期中,我担任四年级两个班的美术教学工作。在工作中我享受到了收获与喜悦,也在工作中发现一些存在的问题。现将本学期的工…

荒岛余生教学范例

语文七年级下人教新课标第22课荒岛余生教学范例教学目标知识目标1积累泅斫闻所未闻郑重其事知足安命等词语2检索笛福生平资料有条件的同学阅读其代表作鲁滨孙漂流记能力目标1快速阅读课文整体感知内容要点概括蕴含的思想感...

教学设计(模板及范例)

教学设计模板1人教版地理必修1的第二章第三节常见的天气系统教学设计2课时一教材分析与处理一教材的地位和作用本节课主要介绍锋气旋反气旋等常见天气系统与天气的关系在本单元中起到小结与实际应用转承的作用在前面两节的基...

《7的乘法口诀》教学范例

七的乘法口诀教学范例一教材分析7的乘法口诀是青岛版二年级上册第四单元第二个信息窗的内容是在学生了解了乘法的意义掌握了16的乘法口诀并有了一定口诀编制经验的基础上学习的因此本信息窗应着重培养学生编制口诀和发现规律...

智慧课堂教学设计范例

题目备课人由杨板书设计略课后反思略

20xx0402-网络学习社区课程教学设计范例-v1.0版

一网络学习社区简介二网络学习社区课程教学设计要求1课程设计原则网络学习社区开设的课程需要围绕社区目标和课程目标制定课程大纲课程设计原则是通过设计一系列相关的主题学习活动展开教学以一学期为基本周期综合实践部分时间...

教学(542篇)