精打細算教學案例范文

時間: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.