鄧紅
【摘要】針對高職院校師生在教授和學習C語言中面臨的畏難困境,提出了基于微課的教學方法及其組織策略。該方法在教學設計上關注學生的注意力、切需性[1]、自信心,從而進一步有效的提高學生學習效率和自主學習能力。本文以printf()函數的微課為例,闡述了微課教學設計的過程與應用策略。
【關鍵詞】微課 高職 C語言 printf( )
【基金項目】全國教育信息技術研究課題(142741818)。
【中圖分類號】TP312.1-4 【文獻標識碼】A 【文章編號】2095-3089(2015)36-0016-02
1.引言
C語言程序設計是計算機類相關專業的核心基礎課程,是整個程序設計課程體系的基石,是培養學生抽象思維和程序設計能力的起點。然而高職院校的學生普遍基礎知識薄弱,學生普遍認為C 語言枯燥難學、概念復雜、使用靈活、容易出錯。學生的畏難、厭學情緒,使得教學困難重重。從以往的教學情況和計算機等級考試的較低通過率來看,學生對C語言的掌握情況不理想。因此為了更好的提高教師的教學質量,學生的自主性和學習效率,應該延展課堂空間。
2.微課簡介
微課又名“微課程”,是“微型視頻網絡課程”的簡稱,它是以微型教學視頻為主要載體,針對某個學科知識點(如重點、難點、疑點、考點等)或教學環節(如學習活動、主題、實驗、任務等)而設計開發的一種情景化、支持多種學習方式的在線視頻課程資源[2]。
本文選取C 語言程序設計課程中學習時重要的輸出函數——printf函數作為探討內容,并以在課堂上開展微課程的形式進行這次堂課的設計。
3.格式函數教學設計
輸出函數是C 語言的重點,而格式輸出函數printf()函數是輸出函數中的難點,格式控制內容多,復雜繁瑣,使用靈活。學生在學習時往往覺得難以掌握,尤其是在使用修飾符時會出現困難(本次課程教學之前,學生已經學習了數據類型以及數據之間的運算)。因此,在課程設計時要注重知識的承上啟下,在授課方式上注意由淺入深,化靜態為動態,從表象探規律,步步引導,培養學生舉一反三的創新能力,達到拋磚引玉的目的。
教學目標:
知識目標:掌握printf語句的調用方法;理解printf語句中格式的表達。
能力目標:利用printf函數靈活實現輸出。
素養目標:通過知識點的學習,引導學生逐步建立結構程序設計的思維模式。
情感目標:引導學生學會交流與合作學習,培養學生對未來工作的責任心和自信心。
重難點分析:
重點:printf函數的格式控制。難點:各類修飾符的使用。
教學活動設計:
本微課設計采用教具演示法將printf的函數結構進行直觀演示,采用任務驅動教學法、溫故知新教學法和試誤教學法對格式輸出函數的應用進行詳細講解。教學過程中關注學生的注意力、切需性、自信心和滿足感。教學形式綜合運用多媒體技術。具體講授過程分成以下幾個環節。
3.1 引入
首先讓學生自己學習微課程。微課程是以視頻的形式讓學生學習,如何在一開始就抓住學生的注意力以期做到引人入勝,這是教學設計時需要思考的難點之一即抓住學生的注意力。本次課中,通過圖片展示各類輸出現象,以提問的形式:在C語言中我們如何實現信息的輸出呢?讓學生帶著問題專心地進入接下來的學習。給出答案:通過調用標準庫函數中提供的輸出函數來實現語句如下:
#include
接下來很自然的轉入本課正題,學習其中輸出函數中使用最多的格式輸出函數printf(),同時解決了為什么要學習和學習什么內容兩個問題。
3.2 知識準備
由于格式輸出函數中的格式字符和修飾符種類繁多,形式多樣,難以掌握,因此根據高職院校C語言的教學大綱,將常使用的格式字符和修飾符進行整理和分類,減少學生學習的難度和畏學的情緒,并且便于理解和記憶。本次課程設計為基礎核心課,在掌握常見格式字符和修飾符基礎上再依此類推,學生在學有余力的情況下再學習其它提升版微課。
1)格式輸出函數的格式
printf(“格式控制”,輸出項1,輸出項2,…);
(1)格式控制包含的信息
字符輸出:提供需要原樣輸出的文字及字符或者轉義序列
格式說明:為輸出項提供輸出格式說明
(2)輸出表列:是需要輸出的一些數據,可以是常量、變量或表達式
2)格式說明
%[修飾符] 格式字符
(1)格式字符
圖1 常用格式字符舉例
(2)修飾符 % [標志][輸出最小寬度][.精度][長度] 格式字符
圖2 常用修飾符分類
3.3 輸出舉例
分析下面程序輸出結果
#include
main( )
{
int a=1234;
float f=123.456;
printf(“%-8d\n”,a);
printf(“% +10.2f\n”,f);
}
建議學生暫停微課視頻,引導學生自己分析輸出的結果,并與老師給出的結果和老師的詳細講解相比較,檢查自己的解題思路和結果有無錯誤之處。由于靜態的語句學生不能看到它的結果,因此通過執行VC 程序來動態展示語句運行結果,并在監視窗口觀看變量的值,這樣更直接客觀,進一步理解格式輸出函數,內化知識。
3.4 探討
在理解的基礎知識上,進一步提出學生在使用格式函數的幾點注意事項,并給出例子,分別配以學生常見的錯誤答案,例如:
#include
main( )
{
int i=8,j=10,m=0,n=0;
printf(“%d,%d, %d,%d\n”,i,j,m=++i,n=j++);
}
答案一:8, 11, 9,10
答案二:9,10,9,10
再執行VC 程序來動態展示語句運行結果:9,11,9,10
此時超出預期的運行結果,必將讓學生印象深刻。進一步給出結論:如果“輸出表列”是表達式,則輸出列表中的求值順序,不同的編譯系統不一定相同,可以從左到右,也可從右到左,Turbo C,VC++6.0 都是按從右到左進行的,而LCC是從左到右的。上例的結果在LCC編譯器結果是:8, 10, 9, 10
3.5 新知鞏固
將本節課的新理論知識點以選擇題、填空題、判斷題等形式,來檢測學生的學習效果和知識點的掌握的情況,并在學生易出錯的地方重點講解下。最后給出課后作業,確保學生獨立完成。
4.微課的應用策略
制作微課的意義在于如何組織教與學的過程,使得微課作為課堂教學有效的資源,以達到最佳的教學效果。因此,課前教師方面應充分備課,做到有的放矢,微課的學習讓學生能夠感知或理解相應的知識。課堂則是學生“吸收內化” 的過程,教師根據微課學習反饋,給予有針對性的輔導,學生之間相互交流討論,將知識點內化[3]。課后則是學生知識點或技能的鞏固過程,進行有效的練習,達到本節課的學習目標,重點清理重難點目標。而教師應該及時做好教學反思,通過學習平臺或課后作業等了解學生的學習情況,進而對教學過程進行調整。本文僅從C語言微課的應用方面,談談如何組織實施教學的過程:
(1)確立學習目標