摘要:本文以筆者多年教學(xué)經(jīng)驗(yàn)為基礎(chǔ),結(jié)合美國當(dāng)代教育心理學(xué)家加涅的教學(xué)理論和學(xué)習(xí)層級(jí)說,探討該教學(xué)理論在教學(xué)設(shè)計(jì)中的具體應(yīng)用。
關(guān)鍵詞:加涅;學(xué)習(xí)層級(jí)說;逐級(jí)向上,教學(xué)設(shè)計(jì)
1加涅教學(xué)理論
羅伯特#8226;M#8226;加涅博士(Robert M. Gagne 1916- 2002)是美國當(dāng)代教育心理學(xué)家,在教學(xué)系統(tǒng)設(shè)計(jì)領(lǐng)域是一位真正的巨匠[1]。
加涅提出了學(xué)習(xí)層級(jí)說,認(rèn)為知識(shí)是有層次結(jié)構(gòu)的,教學(xué)要從基本的子概念、子技能出發(fā),逐級(jí)向上,逐漸學(xué)習(xí)到高級(jí)的知識(shí)技能。在以他們的思想為基礎(chǔ)進(jìn)行教學(xué)進(jìn)程設(shè)計(jì)時(shí),教師首先對(duì)要學(xué)習(xí)的內(nèi)容進(jìn)行任務(wù)分析,逐級(jí)找到應(yīng)該提前掌握的知識(shí),而后分析學(xué)生既有的水平,確定合適的起點(diǎn),設(shè)計(jì)出向?qū)W生傳遞知識(shí)的方案;在展開教學(xué)時(shí),讓學(xué)生從低級(jí)的基本知識(shí)技能出發(fā),逐級(jí)向上,直至達(dá)到最終的教學(xué)目標(biāo)[2]。
2教學(xué)設(shè)計(jì)
本人經(jīng)過多年的教學(xué)實(shí)踐,深知第一次課的重要性。第一次課既要讓學(xué)生對(duì)本門課程有基本的了解,又要調(diào)動(dòng)學(xué)生的學(xué)習(xí)興趣,同時(shí),還要讓學(xué)生找出本門課程與其已經(jīng)學(xué)習(xí)過的其他課程之間的相似之處,以增強(qiáng)學(xué)生的學(xué)習(xí)興趣;而C語言程序設(shè)計(jì)課程是各高校為理工科學(xué)生開設(shè)的一門程序設(shè)計(jì)類課程,由于該課程是大學(xué)生接觸到的第一門程序設(shè)計(jì)類課程,所以,教師要考慮如何幫助學(xué)生建立程序設(shè)計(jì)的思想、如何結(jié)合其他各門課程的知識(shí)、如何通過第一次的講解使學(xué)生對(duì)此門課程的性質(zhì)、任務(wù)有概要性了解,從而達(dá)到快速入門的目的。筆者在多年講授此門課程的基礎(chǔ)上,結(jié)合加涅的學(xué)習(xí)層級(jí)說的基本思想,為C語言的第一次課設(shè)計(jì)了幾個(gè)案例式的教學(xué)過程,并將它們應(yīng)用在每一次的教學(xué)過程中,達(dá)到了預(yù)期的效果。
案例1:輸出信息
(1) 提出問題。
在屏幕上輸出“Hello!”信息。
(2) 基本的子概念。
寫出如下程序:
#include
void main(void) /* 這是C程序主函數(shù)的函數(shù)頭 */
{ /* 一對(duì)大括號(hào)之間是C主函數(shù)的函數(shù)體 */
printf(\"Hello!\"); /* 這是C語言的輸出函數(shù) */
}
在VC環(huán)境下展示這個(gè)程序的運(yùn)行結(jié)果后,重點(diǎn)介紹其中printf函數(shù)的功能,其可以將雙引號(hào)中的信息在屏幕上原樣顯示,并強(qiáng)調(diào)函數(shù)的結(jié)構(gòu)是由函數(shù)頭和函數(shù)體組成。
(3) 逐級(jí)向上。
逐級(jí)向上,繼續(xù)提出新的問題,在屏幕上顯示\"Welcome to Beijing!\",學(xué)生自然會(huì)想到將雙引號(hào)中的信息Hello!替換為Welcome to Beijing!,正如學(xué)生所預(yù)測的那樣,屏幕上輸出了相應(yīng)的信息,這樣的結(jié)果立刻調(diào)動(dòng)了學(xué)生的學(xué)習(xí)興趣。在這之后,教師繼續(xù)提出新問題,并在屏幕上顯示\"北京歡迎您!\",學(xué)生經(jīng)過短暫的思考后,自然會(huì)提出切換到中文方式輸入信息。
(4) 最終的教學(xué)目標(biāo)。
經(jīng)過兩次逐級(jí)向上,進(jìn)而拋出一個(gè)一般性的問題,教師在屏幕上輸出任意的信息,學(xué)生自然可以掌握printf函數(shù)輸出信息的功能,從而達(dá)到這個(gè)案例的教學(xué)目標(biāo)。布置作業(yè):在屏幕上輸出“新年快樂!”的信息,以強(qiáng)化掌握的知識(shí),并給學(xué)生一個(gè)展現(xiàn)自已能力的機(jī)會(huì)。
案例2:算術(shù)四則運(yùn)算
(1) 提出問題。
利用C語言程序進(jìn)行加法的計(jì)算。
(2) 基本的子概念。
首先從數(shù)學(xué)出發(fā),提出加法運(yùn)算的4個(gè)要素:加數(shù)、被加數(shù)、和、加。其中加數(shù)和被加數(shù)是待加工的原始數(shù)據(jù),加是實(shí)施加工的操作,和是加工的結(jié)果。
寫出如下程序:
#include
void main(void)
{
short int x,y,z;/* 說明3個(gè)數(shù)據(jù) */
x=24; /* 輸入2個(gè)原始數(shù)據(jù) */
y=12;
z=x+y;/* 利用2個(gè)原始數(shù)據(jù)進(jìn)行加法運(yùn)算,得到結(jié)果交給z */
printf(\"z=%d\",z); /* 將結(jié)果z輸出在屏幕上 */
}
在VC環(huán)境下展示這個(gè)程序的運(yùn)行結(jié)果后,重點(diǎn)介紹數(shù)據(jù)的加工流程,即說明數(shù)據(jù)、輸入數(shù)據(jù)、加工數(shù)據(jù)、輸出數(shù)據(jù)。本題的輸入數(shù)據(jù)是x和y,加工過程是“+”,輸出數(shù)據(jù)是z,并強(qiáng)調(diào)輸入在先,加工在輸入之后,輸出一般在后的處理流程;而printf函數(shù)中的“%d”可暫時(shí)不講,只是告訴學(xué)生這是一個(gè)C語言必需的格式符。
(3) 逐級(jí)向上。
逐級(jí)向上,繼續(xù)提出新的問題,如何利用C語言程序進(jìn)行減法的計(jì)算?啟發(fā)學(xué)生分析減法與加法同樣具備4個(gè)要素,只是具體的操作是減,其他過程應(yīng)該與加法一致,學(xué)生自然會(huì)讓教師將程序中的“+” 修改為“-”,運(yùn)行后達(dá)到了減法的目的。
繼續(xù)提出新的問題,如何利用C語言程序進(jìn)行乘法的計(jì)算?同時(shí)提出一個(gè)問題,即“╳”,這個(gè)符號(hào)如何解決,絕大多數(shù)學(xué)生都知道用“*”代替,這樣很自然地解決了乘法問題。進(jìn)而在24和12的后面加3個(gè)0,將數(shù)據(jù)24和12改為2個(gè)較大的數(shù)據(jù),請(qǐng)學(xué)生設(shè)想結(jié)果。學(xué)生一般都會(huì)按照已知的數(shù)學(xué)知識(shí)報(bào)出答案,接著運(yùn)行程序卻得出了負(fù)數(shù),這個(gè)答案根據(jù)學(xué)生的數(shù)學(xué)知識(shí)是不可能有的。此時(shí)方解釋“short int x,y,z;”這條語句的作用是說明3個(gè)短整型數(shù)據(jù),而系統(tǒng)則為這3個(gè)短整型數(shù)據(jù)分配2個(gè)字節(jié)的存儲(chǔ)單元,而2個(gè)字節(jié)的存儲(chǔ)單元所能存放的數(shù)據(jù)是有范圍的,當(dāng)數(shù)據(jù)的大小超過了這個(gè)范圍時(shí),則出現(xiàn)了上述問題。此時(shí)當(dāng)學(xué)生正在思考數(shù)據(jù)的范圍問題時(shí),將語句“short int x,y,z;”中的“short”刪除,運(yùn)行程序得出了正確的結(jié)果。再解釋“int x,y,z;”語句,系統(tǒng)為這3個(gè)一般整型數(shù)據(jù)分配4個(gè)字節(jié)的存儲(chǔ)單元,盡管4個(gè)字節(jié)的存儲(chǔ)單元所能存放的數(shù)據(jù)是有范圍的,但此范圍比2個(gè)字節(jié)的應(yīng)大一些,此時(shí)只需要強(qiáng)調(diào)數(shù)據(jù)范圍的概念,而這是計(jì)算機(jī)中的數(shù)據(jù)與數(shù)學(xué)中的數(shù)據(jù)的不同。通過這個(gè)問題向?qū)W生傳遞一種信息,即數(shù)據(jù)類型不同其性質(zhì)也不同。而數(shù)據(jù)的類型極其相關(guān)的問題在后續(xù)課程中解釋,為以后的內(nèi)容留一些懸念。
繼續(xù)提出新的問題,如何利用C語言程序進(jìn)行除法的計(jì)算?同時(shí)提出一個(gè)問題,即“÷”,這個(gè)符號(hào)如何解決,同樣,大多數(shù)學(xué)生都知道用“/”代替,這樣很自然解決了24除以12的問題。進(jìn)而將24和12 互換位置,請(qǐng)學(xué)生設(shè)想結(jié)果,學(xué)生一般都會(huì)按照已知的數(shù)學(xué)知識(shí)報(bào)出答案0.5,而程序運(yùn)行的結(jié)果又一次出乎學(xué)生的意料,此時(shí)再次解釋“int x,y,z;”這條語句的另一層意義是說明3個(gè)整型數(shù)據(jù),即不使用小數(shù),從而不可能得到小數(shù)的值,及時(shí)提出問題:如何才能獲得小數(shù)的值呢?當(dāng)學(xué)生在思考時(shí),將“int”改為“float”,“%d”改為 “%f”,再一次運(yùn)行程序達(dá)到了小數(shù)的值,解釋“float”的含義是浮點(diǎn)數(shù)據(jù),即保留一定的小數(shù)位,通過這個(gè)問題再一次向?qū)W生傳遞了這樣的信息,即數(shù)據(jù)類型不同其范圍不同、性質(zhì)不同、格式符也不同。
逐級(jí)向上,繼續(xù)拋出新的問題:計(jì)算2個(gè)數(shù)的平均數(shù)。提出問題將語句“z=x+y;” 改為“z=x+y/2;”可否實(shí)現(xiàn),根據(jù)已知的數(shù)學(xué)知識(shí),學(xué)生自然會(huì)提醒你將“x+y”加括號(hào)以區(qū)分它們的優(yōu)先級(jí)。
(4) 最終的教學(xué)目標(biāo)。
經(jīng)過一次又一次問題的逐級(jí)向上,實(shí)現(xiàn)了最終的教學(xué)目標(biāo):進(jìn)行簡單的算術(shù)運(yùn)算,并了解了數(shù)據(jù)類型。布置作業(yè):編寫程序計(jì)算同寢室4個(gè)學(xué)生的平均年齡和平均身高,同時(shí)告知學(xué)生已經(jīng)會(huì)對(duì)數(shù)據(jù)進(jìn)行加工和處理了,下面只是要通過實(shí)驗(yàn)證明自己的能力。
案例3:找出2個(gè)數(shù)中的最大數(shù)
(1) 提出問題。
利用C語言程序找出2個(gè)數(shù)中的最大數(shù)。
(2) 基本的子概念。
首先從數(shù)學(xué)出發(fā),提出找出2個(gè)數(shù)中的最大數(shù)的4個(gè)要素:2個(gè)數(shù)、確定2個(gè)數(shù)中誰最大、輸出最大數(shù)。與四則運(yùn)算相同的是2個(gè)原始數(shù)據(jù),1個(gè)結(jié)果,不同的是加工過程。而2個(gè)數(shù)中的最大數(shù)有2種可能:前者最大或后者最大,將這2種可能轉(zhuǎn)化為語句描述如下:如果(if)前者大于后者,則前者最大;否則(else)后者最大。
寫出如下程序:
#include
void main(void)
{
int x,y,z; /* 說明3個(gè)數(shù)據(jù) */
x=24;/* 輸入2個(gè)原始數(shù)據(jù) */
y=12;
if(x>y)
z=x; /*前者大于后者,則前者最大*/
else
z=y;/*后者大于前者,則后者最大*/
printf(\"z=%d\",z);/* 將結(jié)果z輸出在屏幕上 */
}
解釋x>y可理解為數(shù)學(xué)中的不等式,if和else的含義與英語相同,學(xué)生非常容易接受這種描述形式。
(3) 逐級(jí)向上。
逐級(jí)向上,繼續(xù)提出新的問題,如何利用C語言程序找出2個(gè)數(shù)中的最小數(shù)。學(xué)生當(dāng)然會(huì)積極的參與,提出將“x>y”改為“x
反復(fù)運(yùn)行這個(gè)程序,而每一次的結(jié)果都是相同的,啟發(fā)學(xué)生發(fā)現(xiàn)本程序的弱點(diǎn),其原始數(shù)據(jù)是固定的,因而其答案也是固定的。逐級(jí)向上,繼續(xù)提出新的問題:可否實(shí)現(xiàn)任意2個(gè)數(shù)的大小問題,而不是固定2個(gè)數(shù)的大小問題?顯然應(yīng)該在“x=24; y=12;”這2條語句上想辦法。將此2句修改如下:
printf(\"please enter 2 data: \");/* 提示輸入2個(gè)數(shù)據(jù) */
scanf(\"%d%d\",x,y);/* 輸入2個(gè)原始數(shù)據(jù) */
運(yùn)行程序,請(qǐng)學(xué)生給出2個(gè)數(shù)據(jù),驗(yàn)證程序得到正確結(jié)果,提示學(xué)生還需輸入其他的不同的測試數(shù)據(jù),如:前者大于后者、前者小于后者、前者等于后者,只有輸入各種測試數(shù)據(jù)方能測試程序的多種可能。在學(xué)生對(duì)語句“scanf(\"%d%d\",x,y);”有了直觀的認(rèn)識(shí)后解釋此語句的作用,至于格式符、地址符可留在以后解釋,此時(shí)只強(qiáng)調(diào)語句的功能,而應(yīng)淡化語法。
(4) 最終的教學(xué)目標(biāo)。
經(jīng)過一次又一次問題的逐級(jí)向上,實(shí)現(xiàn)了最終的教學(xué)目標(biāo):對(duì)分支程序有了一點(diǎn)了解,并了解了數(shù)據(jù)類型。布置作業(yè):由鍵盤任意輸入3個(gè)數(shù)據(jù),輸出其中的最大數(shù)和最小數(shù),并給學(xué)生一些提示,如果比較2次將如何?
經(jīng)過3個(gè)案例的逐級(jí)向上的講解,達(dá)到了以下幾個(gè)方面的效果:一是讓學(xué)生知道什么是程序,其與數(shù)學(xué)、英語有著較大的聯(lián)系,而這2種知識(shí)他們已經(jīng)研習(xí)了數(shù)年;二是達(dá)到了快速入門的目的,避免了傳統(tǒng)教學(xué)方式在基本內(nèi)容上盤帶過多的缺點(diǎn);三使學(xué)生認(rèn)識(shí)到數(shù)據(jù)類型使用不當(dāng)會(huì)帶來一定的問題,而問題本身則由后續(xù)的內(nèi)容解決;四是讓學(xué)生熟悉了數(shù)據(jù)加工的一般流程,即說明、輸入、加工、輸出;五是調(diào)動(dòng)了學(xué)生的學(xué)習(xí)熱情,而這正是學(xué)習(xí)每一門課程的關(guān)鍵。
3結(jié)語
教學(xué)設(shè)計(jì)所研究的是如何設(shè)計(jì)教學(xué)以及怎樣確保效果好、效率高、富有吸引力的教學(xué)的實(shí)施,以幫助學(xué)習(xí)者達(dá)到教學(xué)目標(biāo)[2]。教學(xué)設(shè)計(jì)理論就是運(yùn)用促進(jìn)學(xué)生的學(xué)習(xí)和發(fā)展的明確指導(dǎo)去改進(jìn)和優(yōu)化教與學(xué)的全過程和結(jié)果的理論[2]。教學(xué)設(shè)計(jì)理論可以應(yīng)用于不同層次的教學(xué)系統(tǒng)的設(shè)計(jì),如一門課程、一個(gè)單元,甚至一節(jié)課。
教師在進(jìn)行教學(xué)前,應(yīng)仔細(xì)考慮在特定的時(shí)間里計(jì)劃教學(xué)的內(nèi)容是什么,其次要考慮有哪些可以利用的案例。同時(shí)應(yīng)盡可能做到所選案例可以調(diào)動(dòng)學(xué)習(xí)者在學(xué)習(xí)過程中的強(qiáng)烈興趣;同時(shí)在學(xué)習(xí)過程中及時(shí)進(jìn)行強(qiáng)化,并給予學(xué)生鼓勵(lì)[3]。
以上是筆者在教學(xué)過程中,根據(jù)教學(xué)設(shè)計(jì)理論,具體結(jié)合加涅的學(xué)習(xí)層級(jí)說,即按照知識(shí)的層次結(jié)構(gòu),從基本的子概念子技能出發(fā),逐級(jí)向上,逐漸學(xué)習(xí)到高級(jí)的知識(shí)技能,直到達(dá)到最終的教學(xué)目標(biāo),設(shè)計(jì)出的第一次課使用的案例。按照這種教學(xué)模式,經(jīng)過多次的使用和改進(jìn),不僅降低了學(xué)習(xí)的難度,而且增加了學(xué)生的信心和課堂的互動(dòng),調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性,通過一次課即達(dá)到了快速入門的目的。
參考文獻(xiàn):
[1] 加涅. 教學(xué)設(shè)計(jì)原理[M]. 5版. 上海:華東師范大學(xué)出版社,2008.
[2] 張劍平. 現(xiàn)代教育技術(shù)[M]. 北京:高等教育出版社,2004.
[3] 李明. 斯金納教學(xué)理論在程序設(shè)計(jì)課程中的應(yīng)用[J]. 計(jì)算機(jī)教育,2008(14):75-76.
Applications of Theory of Learning Hierarchy in Instructional Design
XUAN Shan-li, LI Ming, LENG Jin-lin
(School of Computer and Information, Hefei University of Technology, Hefei 230009 , China)
Abstract: In this paper, the author based on many years of teaching experience, combined with Gagne’s instructional theory and the theory of learning hierarchy that explored this theory in instructional design of teaching in the specific application.
Key words: Gagne; theory of learning hierarchy; top-down by level; instructional design
(編輯:郭小明)