第一篇:應用C語言循環結構解決等差數列求和問題微課設計研究
應用C語言循環結構解決等差數列求和問題微課設計研究
【摘要】本文以應用C語言循環結構解決等差數列求和問題作為微課主要內容,闡述了對微課設計進行的研究與探索。
【關鍵詞】C語言;循環結構;微課
當今,信息化高速發展,數字技術正在影響和改變著我們生活中的各個領域,其中也包括教學模式的改變。微課作為數字時代的一種新型課程表現形式,以其主題明確、短小精悍、交互效果好等優點,在各個學科的教學中正被積極地推廣和應用。在我院的C語言課程教學中,微課設計被應用于很多較難理解的知識點講解中,經過實踐發現教學效果良好。本文以應用C語言循環結構解決等差數列求和問題作為微課主要內容,對微課設計進行研究與探索。
一、微課的介紹
1.微課的定義。
微課是以視頻為主要載體,記錄教師在課堂內外教育教學過程中圍繞某個知識點(重點難點疑點)或技能點的教學環節開展的精彩教與學活動全過程,具有目標明確、針對性強和教學時間短的特點。
2.微課的組成。
(1)圍繞某個知識點或技能點的教學視頻和微課設計腳本;
(2)微課教學相關的教學設計方案和教學課件;
(3)微課相關素材、練習題、測試題、教學反思等輔助性教學資源。
3.微課的主要特點。
(1)教學時間較短:時長一般為8―10分鐘。
(2)教學內容較少:主要是突出課堂教學中某個知識點,內容十分精簡。
(3)資源容量較小:學生可以在線觀看視頻學習,也可查看相應教學資料。
(4)主題突出:一個微課就只包含一個主題任務,內容明確。
(5)自主學習為主:學生可以使用微課完成自主的、一對一的學習。
二、應用C語言循環結構解決等差數列求和問題微課設計
1.微課名稱:應用C語言循環結構解決等差數列求和問題。
2.所屬專業:軟件技術專業。
3.所屬年級:高職一年級。
4.所屬課程:C語言。
5.知識點。
(1)掌握while循環語句的格式和執行過程;
(2)學會分析循環結構程序的設計思路;
(3)熟練應用while循環語句來編寫程序。
6.技能點:能夠通過while循環語句編寫程序來解決實際問題。
7.教學類型:講授型。
8.設計思路。
(1)微課設計目標:通過微課交代出課程的基本知識點(包括理論部分與實踐部分)、課程的整個教學環節以及所實現的具體任務。
(2)教學情境設計:在現實生活中,我們會遇到很多需要重復操作的事情。比如,在數學課中曾經接觸過的等差數列求和問題。因為等差數列中的數據都是有規律的,而且加法的計算也是重復的,所以完全可以用循環程序來幫助我們完成這個看似復雜的計算。
(3)微課基本思路:在微課設計中,通過教學情境的引入,向學生交代本次課的主要內容是用循環結構程序來解決等差數列求和問題,學生首先聆聽教師講解有關循環結構的相關知識點,教師做好相關的技術指導,之后教師將學生帶入到具體任務的實現過程中,包括本次課中主要學習的while循環結構的特點、語法格式、流程圖和執行過程,再根據等差數列的特點分析出用程序解決該問題的設計思路和所需變量,然后結合while循環的語法格式將循環語句書寫出來。在具體編程設計工作之前要將整個程序的流程分析清楚,再動手寫出具體程序,這樣才能避免問題的產生,還能夠培養學生良好的程序設計書寫習慣。學生在分組完成具體任務后要進行討論,能夠總結出while循環應用于實際問題中的設計思路和分析方法,之后能夠舉一反三合理解決其它問題。本次課程結束前,要求各項目組對項目成果進行演示和闡述,并進行評分。最后總結歸納本次課的主要內容。
9.教學過程。
(1)片頭(20秒以內)
通過畫面展示“微課”名稱、“微課”所支持的課程名稱、“微課”教學內容簡介、“微課”主講教師簡介??梢蕴砑舆m當的背景音樂。
(2)正文(8分鐘)
①畫面1:通過課件展示教學情境,引入具體研究任務。(30秒)
具體展示內容:各位同學,在現實生活中,我們會遇到很多需要重復操作的事情。比如,在數學課中曾經接觸過的等差數列求和問題。因為等差數列中的數據都是有規律的,而且加法的計算也是重復的,所以完全可以用循環程序來幫助我們完成這個看似復雜的計算。
②畫面2:講解循環結構的特點、while循環的語法格式和執行過程。(220秒)
具體技術指導內容:學生首先聆聽教師講解有關循環結構的相關知識點,教師做好相關的技術指導,之后教師將學生帶入到具體任務的實現過程中,包括本次課中主要學習的while循環結構的特點、語法格式、流程圖和執行過程。
③畫面3:分析等差數列求和問題中所使用的變量、設計流程,并進行程序編寫。(300秒)
具體操練內容:向學生交代本次課的主要內容是用循環結構程序來解決等差數列求和問題,再根據等差數列的特點分析出用程序解決該問題的設計思路和所需變量,然后結合while循環的語法格式將循環語句書寫出來。在具體編程設計工作之前要將整個程序的流程分析清楚,再動手寫出具體程序,這樣才能避免問題的產生,還能夠培養學生良好的程序設計書寫習慣。
(3)小結(20秒)
通過畫面展示總結本微課重點。
(4)片尾(10秒)
通過畫面展示“微課”制作者信息、相關“微課”信息、“微課”應用信息和必要的內容注解。
三、結語
本微課在C語言教學中已經應用,并取得了較好的教學效果,學生通過微課的學習對C語言循環結構的理解更加深刻了。張一春教授認為,對于老師而言,最關鍵的是要從學生的角度去制作微課,而不是在教師的角度去制作,要體現以學生為本的教學思想。因此,在今后的微課設計中,我們還要不斷地探索,真正使微課成為學生自主學習的重要資源。
參考文獻:
[1]張一春.微課建設研究與思考[J].中國教育網絡,2013,10.[2]孟祥增,劉瑞梅,王廣新.微課設計與制作的理論與實踐[J].遠程教育雜志,2014,6.[3]鐘紹春,張琢,唐燁偉.微課設計和應用的關鍵問題思考[J].中國電化教育,2014,12.
第二篇:《C語言循環結構》課程教學設計研究(定稿)
《C語言循環結構》課程教學設計研究
作者簡介作者簡介:徐東(1972-),男,碩士,中國人民解放軍海軍大連艦艇學院講師、教研室主任,研究方向為計算機視覺與人工智能、計算機教育。0引言
C語言程序設計中,循環結構、順序結構和選擇結構共同作為各種復雜程序的基本構造單元。C語言中幾乎所有實用程序都包含循環,許多問題求解都可歸結為重復執行的操作,比如數值計算中的方程迭代求根、非數值計算中的樹的遍歷等等。循環的特征是:在給定條件成立時,重復執行某程序段,直到條件不成立為止。教學實踐證明,循環結構是整個C語言程序設計課程中的“拐點”,這個環節學好了,就有了進一步學習的興趣,反之,則會讓很多學生對C語言的深入學習望而卻步。因此熟練掌握循環結構的概念及使用方法是程序設計最基本的要求之一。筆者通過總結學生學習C語言循環結構的一般心理思維規律,結合國內外優秀的計算機語言教學方法和模式,在講授C語言循環結構程序設計環節的教學過程中,采取“雙主體教學模式”,充分運用了項目實例教學、問題驅動教學、多媒體輔助教學等多種教學方法,重視學生的學習主體作用,在課堂教學中,以創造性貫徹“啟發式教學原則”為基本特征,鼓勵學生積極主動學習,教師極盡啟發、誘導、調動學生學習的主動性,使學生在掌握知識、形成能力、開發智力等方面得到最大發展。
1C語言公共課教學中存在的問題
C語言公共課程的授課對象均為非計算機專業學生,C語言教學總課時數也偏緊。C語言相對于計算機基礎課程,它注重設計算法、書寫程序并進行調試的整個過程,內容較為抽象、復雜,教學方法和學習方法都有極大的不同。筆者通過觀察并與學生交流,發現很大一部分學生上課時能聽懂課程,但程序一旦稍有改變就便不知所措,學生獨立編程時更是無從下手,尤其到了循環結構設計階段。究其原因,在教學方面存在以下問題。
1.1傳統課堂教學方式存在一些弊端
通常,傳統的C語言教學方法是選用經典教材,教師在講解時先給出一般的語法格式,然后逐步講解語法要點,再給出例子。傳統教學方法比較適合基礎差的學生,但此方式的缺點也是顯而易見的,一方面不利于學生自學能力的培養;另一方面,對于基礎好的學生會覺得太羅嗦,甚至因此喪失學習興趣。多數學生對于這種按部就班講編程的傳統教學方式有厭倦心理,不愿意主動與教師在課后交流,依靠教師的現象比較嚴重。另外,很大一部分學生還在延續高中時的學習方法,缺乏自主學習的意識和能力。C語言畢竟是一門抽象、復雜的課程,知識點非常散。學生在學習C語言的過程中,在教學內容越來越多、編程越來越困難的情況下,很難自我保持學習的興趣和熱度。
1.2教與學比例不合理
教師在教學實施過程中,往往過于注重對知識的傳授,過于強調教學方法,而實際上,C語言是一門實踐性很強的課程,理論理解與實際演練密不可分,相輔相成,因而,整個C語言教學過程中如何分配教與學、理論與實踐的比例,是學生學好C語言的關鍵因素之一。
1.3上機實作課時偏少
由于總課時數的限定,目前計劃學時內安排上機實作學時不足以完成預訂目標,以計劃外形式安排課時,學生在自主學習能力較弱的情況下,學習效果不佳。
2雙主體教學法
經過多年實踐,我們在教學過程中采取了適合C語言公共課的“雙主體互動教學模式”。雙主體互動教學模式是新型的課堂教學理論,它突破傳統教學中的“雙主”理論,極其重視學生的學習主體作用,并引入“互動”觀念,教、學雙方相互影響,彼此促動。在課堂教學中,它以創造性貫徹“啟發式教學原則”為基本特征,鼓勵學生積極主動學習,提倡教師極盡啟發、誘導、調動學生主動性之能事,在授課過程中,采用講解、現場編程演示、幻燈片、提問、目光交流、練、學生自主學習相結合的方式,授課完畢后進行課堂小結,布置上機作業。
2.1采用實例教學法,提高學生對抽象概念的感觀認識
實例教學法打破了以教材為中心的傳統教學模式,不按教材的順序授課,在講課過程中,經常舉一些與實際生活相關的事例,以精選出的程序實例為中心,把學習的重點放在具體實例講述上,并引導學生自己去思考解決方案,從主觀上讓學生感受到成就感,從而保持他們的學習興趣。整個教學過程中強調學以致用,在應用中學習,從而避免了枯燥、繁雜的理論說教,不僅增強了學生的學習積極性,而且對提高學生綜合分析和解決實際問題的能力也大有幫助。
為了達到本課程的教學目的,讓學生能更加深刻地體會到軟件編程的實際作用,提高并保持對該課程的學習興趣,本文引例就從“實彈射擊訓練分析系統軟件”的編制任務開始,該軟件編制任務共分5個階段完成,編制過程將一直持續到本課程結束,并且會在后續章節中得到進一步完善?!皩崗椛鋼粲柧毞治鱿到y軟件”具體任務安排:
第一階段:能記錄一名學生的打靶成績(平均環數)。
說明:為簡單起見,規定每名學生打10發子彈,記平均成績。
第二階段:能記錄每個班的打靶總成績(總平均環數)。
第三階段:能對參訓學生進行成績排名;能對參訓單位進行成績排名。
第四階段:在前3個階段任務完成的情況下,進一步完善該軟件的功能,學生可以添加自定義功能模塊。
在簡單介紹“實彈射擊訓練分析系統軟件”的編制任務后,提出本次課的任務。運用實例啟發學生,明確本節課要解決的任務,即尋求一種循環機制,能夠自動循環地對10個成績求和。這樣,不僅激起了學生探究問題的興趣,而且輕松地引入了本節課的教學內容:循環結構。接下來,就按照軟件設計的步驟依次進行。
2.2采用進階式問題驅動法,提高上機效率
在C語言教學過程中,上機操作是非常必要的。通過上機,學生不但可以進一步理解和掌握知識,而且許多不清楚或不理解的問題也迎刃而解。但在上機過程中,教師不要總是要求學生按部就班地解決問題,要讓學生自己尋找解決方法,把學習的主動權還給學生,增強學生的自主學習能力,當然,教師的主導地位不能變。在組織學生上機實踐的過程中,教師可以適當地設計一些連續的作業。例如,學完循環結構后,在上機時先帶領學生分析一個程序,其功能是輸出四行六列并且是由星形符號構成的圖案[1,2]。教師可以通過以下步驟引導學生上機實踐:
步驟1:教師可用多種編程方法進行程序演示。①利用普通的輸出函數如何解決;②利用單循環如何解決;③利用雙重循環如何解決;④說明雙重循環的優點及特征,然后讓學生自行編寫并運行程序。
步驟2:待學生完成任務后,在原程序基礎上,進一步提出新問題,讓學生學會靈活編程。①若要輸出每行“#”與“*”相間的四行六列圖案應該如何修改程序;②若要輸出每行兩個連續的“#”和3個連續的“*”的四行五列圖案應該如何修改程序;③若要輸出用“*”組成的一個正三角形應如何修改程序;④行列數在這里是固定的,可否通過鍵盤隨機輸入,等等。
以上問題均可通過修改步驟1中編好的程序逐步解決,每次修改的幅度均不大,難度也是緩慢增加,學生在不知不覺中得到了編程的訓練,在很短的時間內掌握了所學知識并靈活運用,學生會擁有成就感,同時會意識到,只要自己肯動腦,問題就會很快解決,從而激發了學生的學習主動性。
2.3以項目為牽引,強化學生課后自主學習
在完成一定的教學任務后,及時布置項目作業,訓練學生對所學知識的靈活運用能力,并使每一階段的內容有足夠的焦點,讓學生輕松消化每個知識。
在布置項目時,除要包含所學內容的焦點問題外,還要特別注意對新知識的遷移,也就是說,可以在項目中涉及少量的學生沒有學過的知識點,促使學生主動探究、主動解決,教師在恰當的時候再給出解答方案,最后由學生自己總結得出項目結果。這么做不僅讓學生學習的心態更加主動,而且讓學生更具有成就感。
第三篇:C語言循環嵌套結構教學設計探究
C語言循環嵌套結構教學設計探究
摘 要:C程序循環嵌套結構設計是C程序循環結構教學一章的重點與難點內容,是后續數據結構課程算法實現中使用頻率最多的語句,是進行復雜程序設計的基礎。該文將針對初學者實際情況,通過教學實例的設計,由淺入深,采用類比、啟發等多種教學方法,分析循環嵌套結構程序的設計思路與設計方法,幫助學生掌握C語言循環嵌套結構設計的實質,提高利用循環嵌套結構解決實際問題的能力。
關鍵詞:C語言 循環嵌套 教學設計
中圖分類號:TP31 文獻標識碼:A 文章編號:1674-098X(2015)03(a)-0120-02
The Inquiry Teaching Design of Nested Loop Structure on C Language
Duan Hongyi,Wang Huihui
(Science Department of Hetao College,Bayannaoer,Inner Mongolia,015000,China)
Abstract:The C program nested loop structure design is the key and difficult points in chapter C program loop structure teaching,is the follow-up data structure course algorithm in the most frequently used sentence,is the basis for complex programming.This paper will according to the actual situation of beginners,by design,the teaching examples from the shallower to the deeper,by analogy,inspiration and so on many kinds of teaching methods,design analysis and design method of loop nesting structure of the program,to help the students to grasp the essence of C language nested loop structure design,improve the ability of using the nested loop structure to solve the practical problems.Key Words:C language;Loop nests;Teaching design
C語言是一門面向過程的結構化程序設計語言,其程序設計的基本結構單元主要由順序結構、選擇結構與循環結構三種基本結構組成。其中選擇結構與循環結構在程序設計中最為重要且使用較多,對于后續課程數據結構來說,其算法實現主要以這兩種結構為主,所以在學習數據結構之前,學生必須要通過C語言的學習打下良好的程序設計基礎,深入理解并掌握這兩種程序結構,并能夠正確設計與閱讀理解這兩種結構的程序。在循環結構程序設計中,循環的嵌套程序設計是一個重點與難點內容,該文結合作者從教以來教授C語言的教學經驗及心得體會,探討如何教會學生理解并掌握循環嵌套結構的設計,提高利用循環嵌套解決實際問題的能力。循環嵌套教學內容引入及設計
循環嵌套結構程序設計的基礎是循環結構,在學習循環嵌套結構程序設計之前需要掌握C語言中實現循環結構的三種語句,while語句、do...while語句以及for語句,在此基礎上學習循環的嵌套。首先需要知道循環嵌套的概念:一個循環的循環體內包含另外一個完整的循環結構,稱為循環的嵌套,內嵌的循環還可以繼續嵌套循環,構成多層循環。循環的嵌套結構本質上仍是一個循環語句,只不過其循環體為一個循環語句罷了。C語言中三種循環語句可以互相嵌套構成循環嵌套結構。由于for語句在C語言中最為靈活,下面以for語句為例來討論循環的嵌套結構。
1.1 循環嵌套結構程序的引入
為了便于理解循環嵌套,首先舉一個簡單的循環結構的例子來引入嵌套。
例1:輸出123456789。
該例子如果利用for循環設計,學生可以輕松寫出如下語句。
int i;
for(i=1;i<=9;i++)
printf(“%d”,i);
如果對該例進行修改,要設計以下程序。
例2:輸出5行123456789。對于該例來說,可以使用循環的嵌套來設計程序。
1.2 循環嵌套結構設計
我們可以利用循環語句的設計思路來解決這個問題,這個例子的關鍵在于循環體語句為輸出123456789及換行符,即要循環5次123456789以及換行符。這里我們先把上述代碼以及輸出換行符語句看成一個整體即一個語句塊。比如用語句塊一來表示,則可以寫出如下的程序代碼。
int j;
for(j=1;j<=5;j++)
{
語句塊一;
}
由于語句塊一的代碼為:
int i;
for(i=1;i<=9;i++)
printf(“%d”,i);
printf(“\n”);
所以將語句塊一用上述代碼進行替換,可以寫出例2完整代碼如下:
int j;
for(j=1;j
{
int i;
for(i=1;i<=9;i++)
printf(“%d”,i);
printf(“\n”);
}
通過這個例子看出,外循環決定內循環(把內循環看成一個整體)的執行次數,而內循環則控制每行內循環的次數。在這個例子中,內循環變量與外循環變量之間沒有關系,下面我們再來看一個稍微復雜一些的例子,內循環變量執行的次數取決于當前的外循環變量,來進一步理解循環嵌套結構程序。
例3:設計程序輸出如下的圖案數字。
2
3
4
5
這個例子要打印5行數字,故外循環次數為5,設外循環變量為i,取值為1~5,再看每一行要打印的數字的個數為1,2,3,4,5,即循環的次數為1,2,3,4,5,假設用j表示內循環變量,那么,內循環變量與外循環變量有什么關系?假設我們要打印的是第i行上的數字,可以發現其打印的數字j取值為1到i。找到了規律就可以寫出的循環嵌套程序段:
int i,j;
for(i=1;i<=5;i++)
{
for(j=1;j<=i;j++)
printf(“%d ”,j);
printf(“\n”);
}
通過這個例子我們可以引導學生,寫出如下圖案的程序段。
例4:設計程序輸出如下的圖案數字。
3
5
7
9
提示學生這個程序可以有2種寫法。
第一種寫法:通過觀察,發現例3與例4只是每一行上輸出的數字不同,即需要修改例3的內循環語句printf(“%d ”,j);即可。顯然第i行上打印的是一個等差數列,其打印的第j個數字應為2*j-1。即例4對應的語句為printf(“%d ”,2*j-1);
第二種寫法:不改變例3的printf(“%d ”,j);輸出語句,則需要修改內循環for(j=1;j<=i;j++),分析可知第i行的內循環次數為i,而打印的數字最大值j為2*i-1,后一個打印的數比前一個數大2,即步長為2,則將例3的內循環語句改為for(j=1;j<=2*i-1;j+=2)即可。
通過上面例
3、例4兩個程序的設計,學生基本上能夠掌握循環的嵌套結構了,對循環的嵌套有了更深入的理解,并能利用循環嵌套結構設計并解決簡單的實際問題了。
例5:打印如下圖的九九乘法表。
這個例子與例3比較相似,一共要打印九行,故外循環為9次,假設用i來表示外循環變量,其值應為1到9;第i行打印輸出i個數,假設用j來表示內循環變量,即內循環變量j取值為1到i。并且能寫出第i行第j個要打印輸出的數為:printf(“%d×%d=%4d”,j,i,j*i);有了例3,例4的基礎可以寫出如下的程序:
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf(“%d×%d=%4d ”,j,i,j*i);
printf(“\n”);
}
結語
在循環嵌套結構設計教學中,教師要充分考慮學生的實際情況,要考慮不同專業、不同層次學生的理解能力,設計針對學生實際情況的教學用例,從淺顯易懂的例子出發,逐步引導學生思考,采用類比,啟發等多種教學方法,教學實踐證明,這種方法能夠很好的調動學生的學習積極性,學生的理解能力與程序設計能力有了明顯的提高。
參考文獻
[1] 譚浩強.C程序設計[M].4版.北京:清華大學出版社,2010.[2] 劉井蓮,趙衛績.C/C++循環嵌套教學實踐[J].電腦知識與技術,2012(25).[3] 唐紅杰.C語言循環結構教學探討[J].軟件工程師,2014(10):49-50.[4] 劉運,程家興.圖形打印案例在計算機高級語言教學中的應用研究[J].山東農業工程學院學報,2014(6):48-49,58.
第四篇:《解決數學問題》微課教學設計
《解決數學問題》微課教學設計
江西省興國縣梅窖鎮三僚小學
曾令紅
一、教學內容
跳繩比賽:求總和問題,求相差多少的問題,屬人教版一年級數學下冊第二單元中的知識。
二、教學目標
1、使學生能夠正確解決簡單的數學問題,初步學會列式解答求總和問題與相差多少的問題。
2、培養學生積極參與數學學習活動的態度,對數學有好奇心和求知欲。
3、初步認識到數學與人類生活的密切聯系,培養學生應用數學的意識。
三、教學重點:
運用數學思想,在實踐中解決問題
四、教學難點:
學會收集數學信息,用正確的方法來解決問題
五、教具準備: 自制多媒體課件
六、教學過程:
出示主題圖,練習中的一個題目:
(1)明確條件和問題,理解題意(2)選擇有效的信息來解決問題
第一個問題:要用到題目中的哪些信息?要用什么數學方法來解答? 第二個問題:要用到題目中的哪些信息?又要用什么數學方法來解答?
七、回顧總結,強化解決問題的策略和步驟
我們解決問題時,第一步要通過看圖、看文字弄清楚知道了什么,問題是什么;第二步要弄清楚哪些信息和問題有關系,學會選擇合適的信息解決問題;第三步要找到正確的方法解決問題。
第五篇:微課在C語言公共課中的應用
微課在C語言公共課中的應用
摘要:針對C語言公共課教學面臨的問題,以一個知識點(遞歸函數)教學為案例,展示了微課的完整應用。從學生的角度去設計和制作微課,體現了以學生為本的教學思想,在一定程度上解決了傳統C語言公共課學生缺乏興趣、注意力不集中、學習效果差等問題。針對非計算機專業學生學習C語言較困難的現象,微課從貼近生活的實例尋找解決問題的方法。在制作微視頻時,將教師講課和課件屏幕分開制作,通過摳頻再合成,解決了現有微視頻中教師和課件不能同時清晰顯示的問題。
關鍵詞:微課;C語言;教學改革
DOIDOI:10.11907/rjdk.161014
中圖分類號:G433
文獻標識碼:A 文章編號:1672-7800(2016)005-0221-02
0 引言
微課是信息技術與學科教學融合的產物,也是近幾年教學改革的熱門話題。隨著高校微課教學比賽、中國微課大賽等賽事活動的開展,微課迅速升溫。
中文“微課”一詞在2011年10月由廣東省佛山市教育局胡鐵生[1]提出,他定義的微課是:按照新課程標準及教學實踐要求,以教學視頻為主要載體,記錄教師在課堂教學中針對某個知識點或教學環節所需各種教學資源的有機結合體。
在近幾年國內的一些學術期刊中,對微課內涵的探討主要有3種典型觀點:①微講座(Micro-lecture),即微課是一種教學視頻資源。2008年秋,出現了一種只有一分鐘的“微講座”,由戴維?彭羅斯[2](David Penrose)首次提出。戴維?彭羅斯被稱為美國新墨西哥州圣胡安學院的“一分鐘教授”,他認為,一分鐘講座將產生與傳統的長時間授課相同的效果;②微課程(Micro-lesson或Mini-course),即微課是以微視頻為中心的資源包。每一個微視頻圍繞一個知識點展開,與第一種微課不同的是,微課程為了支撐整個學習過程,必須有測驗、作業和討論。將教學包上傳到網上,學生可以隨時隨地上網觀看視頻,自主學習并進行單元測驗;③微課教學(Micro-teaching),即微課是一種微型的教學活動。主要包括兩種形態:微課形式教學和微課資源教學。以英國納皮爾大學T.P.Kee教授為代表的微課,由學生進行一分鐘演講。微課資源教學,主要是教師播放相關的微視頻輔助講解,闡述教學中的知識點、重點和難點[3]。本文討論的微課主要是指第二種。
微課是一種創新性教育形式,具備形式多樣、主題突出、短小精趣等特點。微課的形式多樣,主要是指微課視頻的制作方式多樣,有軟件合成式,還有較為流行的攝制型、錄屏型以及混合式;主題突出體現在一個微課只圍繞一個知識點展開,主題明確;微課的教學視頻一般為5-15分鐘。微課以其“短、小、精、趣”的特征,迎合了時代的要求和大眾的心理[4]。C語言公共課教學存在的問題
以筆者學校開設的C語言公共課為例,教學中面臨的主要問題有:①對于非計算機專業的學生來說,程序設計很枯燥,普遍的感受是計算機語言離自己的現實生活較遠,沒有學習的興趣;②C語言公共課課時較少,教師為了完成教學任務,往往滿堂灌,學生難以成為學習的主體;③C語言程序設計知識點較為抽象、連貫性強,一旦前一個知識點沒有掌握,后面的知識點就很難理解,學生會產生厭學情緒。
C語言微課教學中的問題有:①舉例知識擴展較廣,不太適合非計算機專業的學生學習;②C語言微課視頻,有的只有課件錄屏,沒有教師形象,即使有教師,由于光線原因,教師形象和課件屏幕不能同時清晰顯示。微課在C語言公共課中的實施
微課不能單純地將傳統課堂教學實錄切片加工成短視頻,應該在受限的時長內,重新組織教學信息,精心進行教學設計。要研究授課對象,對教材作知識點劃分。本文將以C語言程序設計公共課中的一個知識點(遞歸函數)教學為案例,闡述微課教學的設計與應用。
2.1 微課教學目標設定
《C語言程序設計》是面向非計算機專業理工類學生的公共基礎課,教學目的是掌握程序設計的思路與基本方法,利用程序來解決專業或學習生活中的一些基本問題,培養學生的計算思維能力[5]。針對C語言公共課學生為非計算機專業的特殊性,本微課定位遞歸函數的教學目標為:認識遞歸現象,領悟遞歸現象的本質,能針對簡答問題寫出算法和遞歸程序。
2.2 微課教學內容選取
C語言公共課的教學內容前后聯系緊密。針對每個章節選取的知識點必須清晰且具備連貫性。選取的知識點可以是關鍵概念、難點突破或題型精講等。本文選取的遞歸函數知識地位突出,教學難度較大,先修知識是函數的嵌套,因此它既是關鍵概念,又是函數嵌套中的難點突破。
2.3 微課教學內容處理
微課教學內容確定后,就可根據微課時長進行內容加工和微處理,時長控制在15分鐘。
片頭:遞歸函數。
導入方式眾多,可以開門見山、提出一個疑問或與生活息息相關的現象或復習回顧等方式。無論采取什么方法,都必須吸引學生的注意力,能切入知識點。本文針對遞歸函數的導入設計是基于“程序來源于生活,映射生活,作用于生活”,所以從生活中找到遞歸的現象引入,能更好地提高學生的學習興趣。本文設計的遞歸實例為鏡子中的鏡子、畫中的畫等德羅斯特效應。
正文知識點的講授,要求線索清晰、語言精煉,并結合一定的手勢和表情。在微課的講授中,盡量圍繞一條線索展開,并且該條線索應該能夠覆蓋本次微課的知識點,能體現教學的重點和難點。在講授重點內容時,要求解釋準、精、簡,論據充分。本文設計的遞歸函數微課圍繞漢諾塔游戲這一線索進行,師生共玩3個盤的漢諾塔游戲,逐步總結出游戲的規律。具體步驟如下:
(1)進行以下3個步驟:①將A塔上的n-1個盤子借助C移至B上;②將A上剩下的一個盤子移至C上;③將B上n-1個盤子借助A移至C上。
(2)引導學生發現第①步和第③步是同一個問題,都是將n-1個盤子借助一個空塔移動到另一個塔上,該操作用一個遞歸函數hanoi()來實現。
(3)引出遞歸的相關概念。若是10個盤子,需移動1 023次,若是64個盤子,需移動約1 844億億次,按每次耗時1ms計算,完成64個盤子的移動需60萬年!如此復雜操作的遞歸函數代碼竟然不到10行,由此引出遞歸的概念、遞歸的條件和遞歸的兩個要素。
(4)從生活中選取一個遞歸現象,引導學生判斷是否符合遞歸條件,是否具備遞歸的兩個要素。設計選取的實例為經典的“你幾歲?”問題。先建立年齡遞歸模型,編寫對應的遞歸函數。
(5)在上述問題的解決過程中引導學生自主發現難點。在遞歸調用的操作過程中,形參和變量的取值容易混淆,是難點所在,只要牢牢把握遞歸就是嵌套這一本質就不容易出錯。接下來播放遞歸調用的操作過程動畫。整個演示過程清晰、明了,不會產生任何混淆。
課程小結部分要求快捷,起到提綱挈領的作用,加深對所學內容的印象。本文遞歸函數的課程小結借助了圖靈獎獲得者Niklaus Wirth的話――利用遞歸解決問題,允許用戶用有限的語句描述無限的對象,從而讓程序代碼變得精簡,提高編程效率。
課后練習部分,讓學生解決有趣的分書遞歸問題。
2.4 微課教學媒體設計
微課視頻的媒體呈現形式多樣,設計步驟如下:
(1)準備好素材,制作好PPT課件。PPT的制作盡量少用文字,因為文字表達的效果有限,文字的表達不如表格,表格不如圖像,圖像不如動畫,在PPT中盡量使用后者。
(2)將講授過程錄像。一般是教師講課的同時進行錄像,這種方式的優點是教師講課很自然,缺點是由于光線原因,教師的形象和課件屏幕不清晰。針對上述問題,將教師講課和課件演示分開錄制,后期再進行合成。教師講課直接對著攝像頭,講課過程中沒有學生。課件演示的錄屏軟件選擇Camtasia Studio。在錄制過程中一邊錄像,一邊配合鼠標的移動和課件進行切換。教師講課時主光一個、側光兩個,拍攝的時候還在主機位提供專用提詞器,場景布置如圖1所示。
(3)將教師講課的錄像和課件演示的錄屏合成。講課錄制好以后,將教師的形象從視頻中摳出來,摳頻工具有Adobe After Effects。將錄屏和錄像合成,使用軟件Adobe Premiere。后期合成后,教師形象和課件屏幕畫面都非常清晰。
(4)為合成的視頻添加字幕。外掛字幕編輯軟件很多,本文選擇SrtEdit。本微課通過視頻+文字+圖片+動畫,全面深入地表達知識點。
2.5 微課教學資源設計
微課教學資源除了上述的微視頻外,還包括教案、課件、過關測試及答案、學習資料及素材、作業及答案、評分標準,甚至還包括教師的教學反思等,所有這些都圍繞一個知識點,構成一個主題鮮明的微課教學資源包。本文設計的遞歸函數教學資源主要包括:課件PPT和過關測試。過關測試主要是客觀題,以選擇和填空的形式出現。在微課視頻制作完畢后,將所有教學資源一并上傳。結語
本文以遞歸函數為例,對微課應用于C語言公共課教學進行了探討。制作的微視頻從生活中的德羅斯特效應、遞歸故事等現象出發,拉近了程序設計與學生之間的距離,利用師生共玩“漢諾塔”游戲來獲得感性認識,激發學生的學習興趣;通過問題“你幾歲?”來具體講解遞歸函數的分析、設計、執行過程;對于遞歸函數調用執行過程不容易把握這一難點,精心制作動畫,巧妙展示程序控制的流程轉向等;總結時用圖靈獎獲得者Niklaus Wirth的話給出遞歸的本質。整個微課設計合理,達到了該知識點教學目的。
參考文獻:
[1]胡鐵生.區域教育信息資源發展的新趨勢[J].電化教育研究,2011(10):61-65.[2]黃建軍,郭紹青.論微課程的設計與開發[J].現代教育技術,2013(5):31-35.[3]教育部全國高校教師網絡培訓中心.中國高校微課研究報告[EB/OL].[2014-07-10].http://weike.enetedu.com/report/.[4]魯慶.微課在程序設計課程中的應用[J].柳州職業技術學院學報,2014(6):71-72.[5]唐大仕.“遞歸算法”微課教學設計――以“文科計算機基礎(下)”為例[J].計算機教育,2013(17):5-7.(責任編輯:杜能鋼)