精打细算教学案例范文
时间:2023-10-18 17:21:43
导语:如何才能写好一篇精打细算教学案例,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。
篇1
一、依法规范办学行为。
组织师生认真学习贯彻《中华人民共和国义务教育法》,增强法制观念,提高法律意识,坚持依法规范管理学校,规范办学行为。不断完善学校各项规章制度,促进学校各项工作健康发展。
二、加强教师队伍建设。
进一步贯彻落实《中小学教师职业道德规范》,进一步端正教育思想,继续发扬我校教职工,立足本职工作,勤业、乐业的高尚精神。求真务实,勇于奉献,争当师德楷模。使全体教师真正树立为人师表意识,服务意识,终身学习意识,改革创新意识,从而以高度的使命感、责任感、紧迫感,认真完成学校的各项工作。
三、德育工作
加强德育队伍的建设,强化教师育人意识,全面提高教职工德育素养和专业化水平,以基础道德教育为重点,大力开展以爱国主义教育、公民道德教育和以培养文明素养为重点的养成教育。
1、认真做好每周的升旗仪式,做到制度化、规范化。结合重大节日对学生进行思想教育,强化学生道德意识、爱国意识。
2、加强养成教育。每学期组织学生认真学习落实《小学生守则》和《小学生日常行为规范》,大力开展文明礼仪教育活动,设计符合我校学生实际,关注学生行为细节,注重学生行为体验的活动。在“唱响国歌、不说脏话、做文明观众、爱护环境、遵守规则、爱护公共财物”等方面开展具有实效性教育实践活动,把德育工作落在实处。
3、注重心理健康教育,做好学生的心理健康教育工作。要求班任教师发现问题及时加以引导。了解学生,关注学生的心理,促使学生健康的成长。
4、课堂教学渗透德育。把德育教育寓于各学科之中。努力挖掘各学科课程中的德育资源,把爱国主义、革命传统教育、美德教育等教育内容挖掘出来,并在教学过程中引导学生自悟自醒。每一位教师都十分重视在课堂教学渗透德育,充分利用所教学科教学内容所蕴含的德育资源,做到既教书又育人。
5、抓好学生的法制法规教育、交通安全教育、环境教育、诚信教育和安全自护教育等专项教育。增强学生法制观念,环保意识,促进学生生动、活泼地健康成长。
四、教学工作
1、认真执行《课程计划》,开足学科,保证学时,按照新课标上好每一节课。认真总结上学年学校课程实施情况,制定好本学年学校课程实施方案。
2、深入开展“校本教研”工作。每学期开学的第二周组织教师进行教学练兵活动。取人之长,补已之短,共同学习,全面提高。做到以新的课改理念指导教学实践,把新的教学观念转变为教师的教学行为。加强课改教学实践的研究,切实提高教师实施新课程的能力与水平。全体教师结合自己的教学实践,注意积累教学案例,撰写反思笔记。进一步提高自己在教学实践中研究意识与能力,做到“边教学,边总结,边提高”。努力形成具有特色原教学思想、教学风格。
3、备课、上课、作业、辅导、考核等常抓不懈。坚持每月对教师的各学科教案,各学科作业检查一次,认真进行总结,发现问题及时纠正,对教学全过程进行评价,监控,以便及时调整。在备课中要求教师一阅、二画、三写、四对照、五修改。做到书、案结合,上课有备无患。在课堂教学上,遵守教学规律,深化课堂教学改革。充分利用四十分钟的时间,提高课堂教学效率,向四十分钟要质量。
4、每位教师都能充分利用多媒体等现代化教育设备资源。表现突出的是一年、二年班主任。经常利用光盘上好远程教育课,提高自己,服务于学生。积极开展信息技术与学科教学整合的研究,促进了教学内容的呈现方式,学生的学习方式,教师的教学方式和师生互动方式的变革,提高教师在课堂教学中的综合运用信息技术的水平。
5、认真进行教学质量分析。找准优势与不足,发扬长处,改进不足。每学期的期中或期末考查,都认真的组织教师进行卷面分析,对重点问题进行专题研讨,尽快改进,深入开展阅读教学、作文教学的研究,努力提高阅读教学,作文教学的水平,提高了学生的阅读和作文水平。在全镇质量抽测中,我校的教学成绩有明显提高,取得了令人满意的成绩。
五、工会工作
1、维护全体教职工的切身利益,做好校务公开工作。
2、关心教职工的思想、生活、身心健康,办好本校的小食堂,开展好工会活动。
3、广泛听取教职工的意见与建议,完善学校规章制度,调动广大教职工积极性,促进学校民发展。
六、体育工作
1、认真学习新的体育健康标准,用新的教育理念指导教学工作,上好体育课,认真完成教学任务,做好体育2 1的测试工作,使较好地掌握教材要求的体育技能,达到应具备的体能。
2、从学生的健康出发,上好体育课,课间操,坚持每天做好眼保健操。保证学生每一小时的体育锻炼时间。
3、带好体育代表队,做到有计划,坚持训练,在全镇运动会比赛中获得村小第二名。取得较好的成绩。
七、卫生工作
做好卫生知识的宣传教育,做好校园环境管理工作,营造一个文明卫生的校园环境,从而达到了环境育人。
八、后勤工作
1、严格财务制度要,精打细算,节约开支。
2、搞好校园绿化、美化工作,本年维修了绿色长廊,增加了草坪种植面积,补栽了梧桐树15棵。
3、做好校舍的维修,改善了办学条件。本年度为一―六年的教室钉了扣板,室内重新造白,校舍外面粉刷了涂料,建摩托车棚一个,水泥墙一百多延长米。使我校的班容校貌焕然一新。
4、做好图书管理、借阅工作。充分发挥图书的功能,为师生服务,为教育教学服务。
九、档案工作
1、定期收集档案资料,及时整理,管理规范。
2、充分发挥资料的作用,为教育教学服务。
十、存在问题
1、教育经费不足,经济困难,日前还赤字。
篇2
摘要:“嵌入式应用技术”课程的一个教学难点是培养学生编写高效嵌入式C语言程序的能力,本文从教学角度讲述了如何让学生理解嵌入式软件时空要求的苛刻性、编写高质量代码所需的基础知识以及C语言代码的常用优化方法。
关键词:嵌入式软件;C语言;代码优化
中图分类号:G642 文献标识码:B
随着嵌入式系统在汽车电子、工业控制、智能家居等领域的广泛使用,大专院校的计算机、电子、通信、自动化控制等理工科专业都开设了“嵌入式应用技术”课程,编写高效的嵌入式C语言程序是嵌入式基础课程学习的一个重要环节,也是一个教学难点。嵌入式系统受其使用的硬件以及运行环境的限制,对程序运行的空间和时间要求非常严格,需要对嵌入式应用程序进行性能优化,以满足嵌入式应用的性能需求。本文结合作者多年实际嵌入式系统开发经验及嵌入式应用技术课程教学体会,探讨如何培养学生编写高效嵌入式软件的能力。
1培养学生编写高效嵌入式软件的意识
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统,其核心是嵌入式微处理器。嵌入式系统是一种性价比很高的应用系统,为了提高性价比,一方面在硬件上要进行合理配置,另一方面需要提高软件的效率,充分发挥硬件的特性,这两个方面是相辅相成的。但是刚刚接触嵌入式系统的学生会缺乏这方面的认识,他们往往习惯于PC机的程序设计,很少考虑程序的优化。嵌入式系统的运算速度、内存容量和PC机相比,差距太大。例如作者在实现一款方位测定系统时,选用Freescale的MC908MR8作为主控芯片,其最高总线速度为8MHZ、内存为256字节、程序存储空间才8K。面对这种有限的硬件资源,要实现高效,一定要区别于常规的PC机编程,要合理使用有限的硬件资源,对每一个内存空间的分配、每一条程序语句以及每一个算法都要进行仔细斟酌。
为了提高学生对于嵌入式软件的认识,作者在“嵌入式应用技术”课程教学别设计了一些教学案例。例如,假定16位整型数值X和Y是直角三角形的两边,编程求解Y边所对应角的度数(精确到1度,基于MC908MR8芯片)。当时学生很纳闷,这种问题太简单了,一条C语句就可以实现了:
JiaoDu=atan(Y/X)*180/PI;
的确,通过调用内部函数atan可以实现上述功能,但这种方法在低端嵌入式软件中是一种很糟糕的方法。在MT-IDE For Freescale HC08的集成开发环境中,通过查看list列表文件,这条语句编译后,需要占用8038~8B04,2764字节的程序存储空间。假如将这条语句用在上述的方位测定系统中,一条语句就要占MR8三分之一的存储空间,2764/(8*1024)≈0.33,这是一件很可怕的事情。再仔细查看list文件,内部函数atan在实现时使用浮点运算,通过泰勒展开式来实现的,而通常的8位、16位微处理器没有协处理器,对于浮点运算的处理效率是非常低的。因此,从嵌入式软件的角度来审视这条语句,它是一个不好的选择。假如采用查表的思想,将atan(χ) *180/PI预先计算出来,建一张表,根据χ值的不同,查表就可以很快地计算出角度。通过这种实例,学生体会到了高质量的嵌入式软件需要区别于PC机的程序设计。
2深入理解汇编语言是编写高效嵌入式软件的基础
汇编语言是学习嵌入式系统的基础,使用汇编程序的优点是执行效率高,时序控制精确。在刚开始学习嵌入式系统时,要克服畏惧汇编语言的心理,一定要先使用汇编语言编写一些程序,在这个过程中可以深刻理解单片机的各种概念,特别是指令系统。最近几年微控制器的发展很快,其资源有了极大的丰富,但其运算速度、存储容量和PC机还是有天壤之别,所以在面向低端的嵌入式编程时,对资源的利用还需要精打细算。通过汇编语言编程,可以更深层次了解微控制器资源的分配情况,养成“节约”资源的习惯。同时,掌握了汇编语言,对于以后使用C语言程序时,会恰当地选择C语言语句。另外,C语言对编译器的依赖性较强,不同的编译器编译出来的目标代码差别较大,通过查看编译产生的汇编文件,可以提高C语言编程技巧,优化C语言程序。
在上述的实例中,假如需要分解出角度值(JiaoDu)的百位、十位及个位,通常的编程方法如下:
BaiWei= JiaoDu /100;
ShiWei =(JiaoDu %100)/10;
GeWei= JiaoDu %10;
这种方法是可行的,但通过阅读编译后的list文件,就会发现它的不足。
在执行除法和求模的运算时,调用了内部子程序“__divmodu_16X16_16”进行16进制的除法和求模运算。通过阅读该子程序的汇编代码,发现除法运算是通过减法来实现的, “JiaoDu /100”是每次将JiaoDu减去100,直到JiaoDu小于100为止,循环减的次数是商。假如JiaoDu=299°,则“JiaoDu /100”需要进行2次循环减法,“(JiaoDu %100)/10”需要进行2+9=11次循环减法,“JiaoDu %10” 需要进行9循环减法,每一次减法需要大约80个指令周期,则上述程序需要(2+11+9)*80=1760个指令周期,很显然这是一段效率极低的程序。
假如熟悉Freescale HC08的指令系统,其中有一条除法指令:DIV,7个指令周期,它是将寄存器H和A组成的16位数除以寄存器X(8位数),除法运算后,商存储在A中,余数存储在H中,即DIV是16位数除以8位数,商必须是8位。而编译器在编译时不知道相除的结果是否是8位,所以不能使用DIV指令。但在本问题中,由于JiaoDu的范围是0~360,上述除法运算完全可以使用DIV指令。采用C语言中嵌入下面的汇编子程序,可以大大提高程序的执行效率。
__DivMod16X8_8:
;(1)进栈
PSHH
PSHX
PSHA
;(2)百位数
LDHX_JiaoDu
TXA
LDX#100
DIV
STA_BaiWei
PSHH
;(3)十位数和个位数
PULA;H-->A
CLRH
LDX#10
DIV
STA_ShiWei
PSHH
PULA
STA_GeWei
;(4)出栈
PULA
PULX
PULH
RTS
用这段程序分解出角度值(JiaoDu)的百位、十位及个位仅仅需要60个指令周期。
3掌握嵌入式C语言代码优化方法
3.1数据类型的选用
嵌入式C语言编程不同于一般C语言编程的一个显著特点,就是要和程序存储器资源结合起来,虽然其提供的数据类型十分丰富,但是只有bit和char等数据类型是机器语言直接支持的数据类型,用此类数据类型的语句所生成的代码较短;而其它的数据类型如整型、浮点型等数据要有一定的内部程序或内部函数的支持,相对来说用该类数据类型的语句生成的代码要长。有些C语言程序表面上看起来十分的简单,但在实际编译时,生成的代码却相当长。因此要按照实际需要,尽量选用占用存储空间少的数据类型,可以大大的减少所生成的代码长度。例如在08C中用不同的数据类型定义i时,语句
for(i=0;i
经编译后生成的代码长度如表1所示。
在位操作时选用表2中的语句,可以达到和汇编相同的执行效率。
3.2使用查表,简化数学计算
在程序中尽量不进行非常复杂的运算,特别是避免浮点数的运算。对于这些消耗时间和资源的运算,可以预先将函数值计算出来,置于程序存储区中,以后程序运行时直接查表即可,这样就减小了程序执行过程中重复计算的工作量。
在前面所述的计算JiaoDu值的计算公式就可以建立以(250*Y/X)的值为表项,把Y扩大250倍,再除以X,再四舍五入,建立整数值的一维线性表:
const unsigned char TanTable[]={0,4,9,13,17,22,26,31,35,
40,44,49,53,58,62,67,72,76,81,86,
91,96,101,106,111,117,122,127,133,139,144,150,156,162,169,175,182,188,195,202,210,
217,225,233,241,250};
一维线性表的下标就是atan(Y/X)*180/PI所对应的角度,假如250*Y/X=12,则角度值为3°。这里的表只有0~45°,其原因在于数学函数tan(Y/X)= 90°-tan(X/Y)。所以在编写程序的时候,灵活地采用一些数学方法会对程序带来方便。
3.3多分支语句的优化
C语言中有“if―else if”和“switch/case”两种多分支语句,将最可能发生的情况放在第一个,最不可能的情况放在最后一个,可以提高分支语句的执行速度。
switch/case语句似乎比if―else if链更容易理解,用起来更方便,但引入switch/case语句的初衷并非为了可读性和便利,而是处于效率的考虑。如果要检测10个单独表达式的if―else if链,所有的情况都互相排斥,并且概率相等,那么程序平均要执行5次比较才能碰到值位true的表达式。在汇编语言中,通过查找表及间接跳转,可以花费固定时长将控制转往若干不同位置之一,而与情况的数目无关。这种代码使用switch/case表达式的值作为地址表的索引,间接跳转到表项指定的语句处。当情况多于4种时,switch/case比if―else if链更快。但是依据这种方法,switch/case语句有严重缺陷,对表达式的最小值到最大值中的每个可能的值都必须有表项。所以当表达式的值不连续且间隔较大时,不适合于使用switch/case,编译器很难对这种情况做优化处理。
3.4循环体的优化
循环体是程序设计和优化的重点,对于一些不需要循环变量参加运算的模块,可以把它放到循环的外面。对于次数固定的循环体,for 循环比while 循环效率更高,减计数循环比增计数循环速度快。
实际运行时,每次循环需要在循环体外加两条指令:一条减法指令(减少循环计数值) 和一条条件分支指令。这些指令称为“循环开销”。在Freescale HC08 处理器上,减法指令需要1个周期,条件分支指令需要3个周期,这样每个循环另加了4个周期的开销。可以采用循环展开的方法来提高循环运行的速度,即:重复循环主题多次,并按同样的比例减少循环次数来减小循环的开销,以增加代码尺寸来换取程序的运行速度。
4小结
C语言作为一种通用的高级语言,语言简洁、紧凑,运算符丰富,程序具有很好的移植性,同时,C语言在开发速度、软件可靠性以及软件质量等方面都有着明显的优势。因此,C语言适合于嵌入式系统的程序设计。但是,如何让学生用好C语言,编写高效的嵌入式软件,还需要教师在课程教学中渗透高效C语言编程思想,并通过实例强化代码优化的方法。只有当学生真正领悟了嵌入式软件的内涵,将代码优化的方法和手段应用到实际的程序设计中,才能编写出高质量的嵌入式软件,从而达到嵌入式基础课程的培养目标。
参 考 文 献
[1] 王宜怀,刘晓升. 嵌入式应用技术基础教程[M]. 北京:清华大学出版社,2005.
[2] 王军安. 浅析嵌入式系统的软件优化设计[J]. 计算机工程与应用,2004:102-103.