沈姣娜



【摘要】作為信息時代的原住民,學生面對的是爆炸性增長的知識量,這對學生的“理解”層次提出更高要求。教師在教學中嘗試應用“逆向設計”,引導學生在體驗中理解概念,在理解中提升素養,從“抓住核心,確定目標”“呈現理解,制定任務”“設計活動,體驗學習”這三個方面來有效開展教學,通過作業統計和問卷調查來分析總結實踐成效。
【關鍵詞】逆向設計;理解;VB程序設計
一、問題的提出
對話背景:
九年級VB教學課堂,學習內容是第五課《順序結構》。學生已經在窗體上添加了文本框控件,并將文本框的Text屬性設置為“空”。
師:請同學們來看一下這句代碼a=Val(text1.Text)。這句代碼中前面的text1代表什么?后面的Text代表什么?
生1:我英文不好,看不懂。
生2:這個代碼之前也沒有學過,我不知道。
……
在VB程序設計教學中,教師明顯感覺到界面設計部分學生之間的差異不大,但是一涉及代碼,學生之間的差異就很明顯。大部分教師會把原因歸結于部分學生習慣太差,或者說他們太笨了。的確,程序設計要求學生對所學內容必須有更深層次的理解。在上面的例子中,很明顯不能回答出問題的學生在之前學習命令按鈕和Caption屬性時,沒有理解對象、屬性等概念,也就沒有進行知識遷移、學習新內容的能力。編程教學能有效地培養學生的邏輯思維、計算思維、創新思維,同時對學生的“理解”層次也有了更高的要求。
作為信息時代的原住民,學生面對的是爆炸性增長的知識量。學生的學習重心不再是對知識的記憶,而是要通過“理解”構建知識體系。教師不僅僅要讓學生明白、知道所學的知識和技能,更要培養學生類推、遷移、應用的能力,發展核心素養,作為終身學習的手段。理解是創新的前提和基礎,是發展學生核心素養的必要條件。
在信息課堂上,教師常常忽視對學生知識體系的構建,使得所學新舊知識無法產生聯系。創建一個交織的、整合的知識體系,要求學生對知識深刻“理解”。目前信息課的主流設計方式是以“內容導向”的,就是先根據教學內容、學情分析來設計教學活動,布置課堂任務。我們從“輸入”思考教學,關注的是我們要“教”什么給學生。學生在學習的過程中往往是被教師帶著走。對一般的學生來說,為什么要進行這些操作?這跟之后的學習有什么聯系?他根本回答不出或者他根本沒有考慮過這些問題。顯然,這部分學生需要教師通過有效的教學,幫助他們建立起知識體系。
如何構建追求理解的信息課堂?在《追求理解的教學設計(第二版)》一書中,作者提出了“逆向設計”的概念和方法。“逆向設計”的教學方式關注的重點是學生的“學”,是以“結果導向”的。它主要分為三個階段,首先制定教學目標,即學生學習后能理解什么;然后根據目標確定評價任務,教師要思考通過什么來證明學生達到了預期的理解;最后根據預期的結果設計教學活動。通過這種方式,學生很明確自己要學什么,學習結果要達到哪種程度,也知道通過哪些活動能夠幫助自己理解,對學習目標和學習過程都非常清楚。
圖1 逆向設計的三個階段
二、逆向設計在VB教學中的實踐應用
(一)抓住核心,確定目標
制定學習目標,就是要確定學習中學生要理解的內容及學生能達到的程度。在常態教學目標的設計中,教師通常會著眼于一節課的內容,所教內容處于零散的狀態,不利于學生架構知識體系。我嘗試通過分析本冊書或本單元的總目標,再來確定本節課中學生要理解哪些核心概念才能支撐后面的學習目標。確定一個學習單元中具有核心價值的內容,通過核心概念將整個學習單元中所學的內容聯系起來,知識點則不再是零碎狀態。
實現學習目標的主體是學生,很多教師在三維目標的制定中還是經常會出現“引導”“使”“培養”“讓”等動詞,顯然這些動詞的主語是教師。制定學習目標,要清楚、明確地體現出學到什么程度,而且應該是可觀察、可測量的具體行為。以往的教學目標是給教師自己看的,但是學習目標要向學生公開。學生通過理解目標要清楚地了解這節課要通過哪些活動來學到什么,而且根據目標能夠評估自己是否實現了目標。對于核心概念就要上升到理解的程度,具體學習結果可以表現為能解釋,會應用,能洞察(即能用全局思想審視問題,用批判的眼光觀察問題)。
以第三課《初識Visual Basic》為例,原學習目標:
1.知識與技能目標:熟悉VB程序設計環境;學會對象的創建和刪除;了解VB對象、屬性的基本概念;了解VB編程的一般步驟。
2.過程與方法目標:通過完成課堂任務,培養學生分析問題、概括和運用的方法。
3.情感態度與價值觀目標:培養學生學習程序設計的興趣,培養學生發現問題、解決問題的能力和創新意識。
存在的問題:
1.核心概念定位得不夠準確。對于VB編程而言,貫穿整個單元學習的核心內容為VB對象、屬性、事件的基本概念。在這個目標中缺少對事件概念的說明,而且對于對象的創建和刪除并不應該屬于核心內容,對于熟悉Office操作的九年級學生來說并不能成為本節課的理解目標。
2.出現了部分以教師為主體的詞,如“培養學生”“通過學生自己”。
3.對于學習結果的評估體現不夠。對于知識技能目標,“了解”不能體現出學習結果的測量性和可觀察性,“會寫”“會用”“制作”“修改”這些詞可能會更恰當。“培養”這一詞也不適用于過程性目標,“經歷”“體會”“感受”會更加合適。
修改后的學習目標:
1.知識與技能目標:通過解析示例程序,熟悉VB程序設計環境,能夠指認出窗體、控件工具箱、屬性窗口;通過嘗試對示例程序的修改和“程序員冷笑話”程序的創建,能夠理解VB對象、屬性、事件的基本概念,能說出VB編程的一般步驟,能夠修改對象屬性,能夠說出事件代碼的含義。
2.過程與方法目標:通過編寫VB程序,體驗分析、概括問題的過程,體會面向對象的程序設計過程;通過對評價任務程序的分析,體驗發現問題、解決問題的過程。
3.情感態度與價值觀目標:通過程序設計,體驗程序設計的創新性,感受到學習程序設計的樂趣。
(二)呈現理解,制定任務
評價任務是為檢測學生目標達成情況而設計的任務,檢測學生學會了沒有,學到了何種程度,還有哪些地方沒有達成目標。它可以是作品式評價,如修改、制作作品;也可以是試題式評價,如填空題、選擇題、問答題等;還可以是表現式評價,如師生問答、演示、展示等。但它必須符合三個要求:描述清晰,學生看得明白;可以具體實施;與學習目標相匹配。對于知識技能目標基本可以用作品式、試題式的評價方式;對于部分過程與方法、情感態度價值觀等目標可使用表現式評價,但是對于有些涉及核心素養的目標,那就不是短時間內能直接評價的,它更需要對學生長期的觀察和檢測,更需要過程性評價方式,或者通過綜合性項目任務來評價。
評價任務體現理解的要素:(1)具有情境,我們對理解的知識概念具有遷移能力,能夠幫助學生解決新情境下的問題,為任務設置情境,可以評價學生分析、解決問題的能力,能夠幫助考查學生的綜合素養;(2)包含目標中的知識和技能,如果所含的知識點越多,情境設置得越復雜,任務的難度系數就越大。
仍以第三課為例,通常我們的任務設計為:
任務一:分析任務,設計界面
1.按照示例要求,請同學分析一下窗體中出現哪些控件?
2.新建工程,設計程序界面,并設置好控件的屬性值。
3.嘗試修改Command1命令按鈕的其他屬性,觀察按鈕的變化。
任務二:編寫代碼
為按鈕點擊事件,添加“顯示文字”的事件代碼。
任務三:調試運行,保存文件
1.運行程序檢測運行結果。
2.保存工程,并生成可執行文件。
提升任務:在窗體上添加“清除”命令按鈕,單擊該按鈕時,清空Label1中的內容。
存在的問題:
上述的任務設計是信息課堂上的一種常態,設計的任務既作為學習任務也作為評價任務,通過教師講解或通過學生探究學習來完成任務,檢測學生對知識點的掌握程度。但是從實際情況來看,學習的功能大于檢測功能。在基礎任務完成過程中,一般是都是這兩種情況:一種是教師或學生演示,學生模仿操作;另一種就是借助教師的幫助文件(任務書、幫助文檔、微課視頻等)學生自行探究學習,但是在完成過程中也得到了教師的很多幫助,所以這樣的形式并不能完全體現學生的真實掌握情況。雖然有“提升任務”的檢測,能讓學生自行分析新情境下的任務,再運用所學解決任務中的問題,對學生理解“核心概念”,構建知識體系的確有很大的幫助,但是這個“提升任務”體現的是分層教學,并不是對全體學生作同樣的要求,它只能對部分能力強的學生起到評價提升的作用。這就造成能力較弱的學生并不能通過任務來正確地評價自己的學習情況,也造成了兩極分化的問題日益嚴重。逆向設計強調評價型任務的設計,可以把原有的任務作為學習任務,再增加針對學習目標的評價任務,讓全體學生對自己的學習情況都有所了解,并能在以后的學習中設立一個調整改進的方向。
任務修改后:
教師展示示例程序“歡迎來到精彩的VB世界”。
學習任務一:分析任務,設計界面
1.按照示例要求,請同學分析一下窗體中出現哪些控件?
2.請參考微課視頻1新建工程,設計程序界面,并設置好控件的屬性值。
3.嘗試修改Label1標簽的Alignment、ForeColor屬性,觀察標簽的變化。
學習任務二:編寫代碼
請參考微課視頻2為按鈕點擊事件,添加“顯示文字”的事件代碼。
提升任務:添加“清除”命令按鈕,單擊按鈕時,清除標簽中的文字。
學習任務三:調試運行,保存文件
1.運行程序檢測運行結果。
2.保存工程,并生成可執行文件。
評價任務:
1.分析圖2中的窗體和屬性窗口,窗體中出現的是______控件,控件的名稱是_____________,控件的Caption屬性值是____________。
2.分析程序填空。
(1)“程序員冷笑話”這一VB程序最初的界面顯示為圖3-1,點擊命令按鈕后顯示為圖3-2。其中命令按鈕點擊實踐添加了一行事件代碼Label1.Caption=“_____________”。
請問橫線上應填寫什么內容?
(2)小明在運行程序時發現,點擊命令按鈕文字沒有變化,查看代碼顯示為
Private Sub Label1_Click()
Label1.Caption=“敲一下回車。”
End Sub
請問在________________事件發生后能顯示“敲一下回車。”
(三)設計活動,體驗學習
信息課中教師常常會陷入一個誤區:概念并不重要,只要學生會操作就可以了。但這樣的操作是機械式的,學生并不知道為什么要這么做,沒有舉一反三的能力。在學生的學習設計中,教師要把握的原則是不要將自己的理解告訴學生,而是讓學生在活動中體驗和探究,在一次次發現問題、解決問題的過程中產生自己的理解。也會有教師覺得,我們在設計活動時,要強調學生自我探究和發現,應該完全摒棄講授法,但是一些不會引起誤解、直觀的知識技能并沒有探究的意義,講授法反而更高效。如何才能設計合理的學習方案,讓學生在活動中實現深層次的理解?筆者嘗試了以下四種策略。
1.以核心概念為重點,避免無意義的探究。
設計界面部分原教學設計:
在學生完成了任務一“設計程序界面,設置控件屬性”之后,又有一個新的操作任務:嘗試修改Command1命令按鈕的其他屬性,觀察按鈕的變化。
存在的問題:
在屬性窗口中,能設置命令按鈕30余種屬性,學生在嘗試各種屬性的修改中花費了比較多的時間。如果想讓學生嘗試操作,加深對屬性概念的理解,筆者認為再增加1-2種足矣;如果是為了熟悉各種屬性的作用,那這樣的嘗試收效甚微,屬性類型太多,學生一一嘗試并不會留下多少印象。而且在之后的屬性設置過程中,無論是通過屬性窗口還是通過代碼,屬性名稱和屬性值都可以通過屬性窗口或百度搜索了解到相關的信息,而不需要去記憶。這部分教學的核心任務應重點關注學生對屬性概念的理解和設置屬性的兩種方法的理解。所以在改進的設計中,筆者認為在學生操作完屬性的設置后,可以對對象、屬性、屬性值做一個歸納性的總結,加深對概念的理解;引入學生熟悉的科學中的屬性概念,進行類比,幫助學生建構新知識。
修改后:
教師講授:VB中的對象、屬性名、屬性值,從根本上來說和科學中的類似。比如水的化學式名稱為H20,它有很多屬性,例如氣味、顏色、沸點等,那對應的屬性值就是無味、無色、100攝氏度。
嘗試修改Label1標簽的Alignment、ForeColor屬性,觀察標簽的變化。
2.由問題引發學生學習需求。
編寫代碼部分原教學設計:
師:接下來我們要為程序編寫代碼,大家回想一下,老師剛才的一個什么動作,促動了程序界面的變化?
生:點擊按鈕。
師:所以我們要把事件代碼添加在單擊命令按鈕事件處理過程中。現在請大家雙擊按鈕,在代碼編輯窗口,添加一條事件代碼。
教師巡視,學生操作。
生:老師,我的程序運行后,點擊命令按鈕沒有反應。
生:我的也是。
教師再次強調要把事件代碼加在Command1_Click()事件中。
存在的問題:
對于易錯的問題,教師更要讓學生弄清楚,搞明白,從根源上理解才能解決問題。如果教師反復強調該怎么做,學生只是按部就班,而不理解為什么要這樣做,那么學生這個操作體驗就不能歸入自己已有的經驗,內化成自己的知識。所以在后面幾節課中,添加事件代碼還是經常有學生犯同樣的錯誤。另一方面,教師把自己的經驗告訴學生,讓學生只是記憶性地學習教師的經驗,并沒有調動學生內在的學習需求,這樣的學習是被動的。在學習新知識前,教師要設置問題或者在實踐過程中讓學生自己發現問題,引發學生學習的動機,引領學生探究學習,追求深層次的理解。
修改后:
先嘗試對比分析代碼,然后再添加代碼。
下發兩個可執行程序,一個是由點擊命令按鈕事件觸發代碼的執行,另一個是由點擊標簽事件觸發代碼的執行。
師:現在我下發兩個可執行程序,請同學們試一試,你分別做什么操作能引起標簽文字的變化?
學生嘗試操作,并回答問題。
生:點擊命令按鈕和點擊標簽。
師:接下來我們對照分析一下它們的代碼有何不同。
生:代碼添加的位置不同,一個是Command1_Click()單擊命令按鈕觸發的事件,另一個是Label1.Click()單擊標簽觸發的。
通過這樣的對比操作,學生對“事件”的概念又進一步加深理解了,在后面的代碼添加過程中,自然而然地就會關注到添加位置正確與否,而不用教師反復強調,提高了任務的完成度,也提升了教學效率。
3.先實踐操作,后理論學習。
很多學生都覺得學習編程很難,主要原因是代碼是抽象的,沒有之前學習軟件的應用那樣具體直觀,另外英文的編程環境讓英語基礎較差的學生感到很頭痛。例如在講解設置標簽文字的代碼中,通常教師是直接講解代碼的含義,初次學習代碼的學生就很難理解。在講解Label1.Caption=“”這一代碼前,先在屬性窗口中設置Caption屬性,并在表格中記錄下來,讓學生把具體的界面圖像與“Caption”這一單詞建立起聯系,并且通過表格的填寫,也讓英語較差的學生對“Caption”有一個印象,至少能知道它是什么;然后在講解和編寫代碼前,讓學生再進行一次實踐操作,讓學生嘗試運行程序查看界面的變化;然后再讓學生修改代碼,將Label1.Caption=“”改為Command1.Caption=“”,再運行操作,讓學生直觀地體驗代碼的作用,從而理解代碼。
4.思維導圖,構建體系。
最后在課堂小結的設計中,我們通常的做法是提問“同學們我們這節課學習了哪些內容?”學生回答總結“1、2、3……”學生通過課堂小結能對本節課中所學的內容進行回顧復習,在某種程度上也加深了對知識點的理解。但是這些內容仍舊是零散、孤立的,我們可以通過讓學生繪制思維導圖(如圖4),幫助學生構建完整的知識體系,把這些零散的概念連接起來,形成一個清晰的知識脈絡。
三、逆向設計所帶來的改變
逆向設計的實踐應用,不僅讓信息課堂更高效,也讓學生的參與度與學習熱情都有所提高。學生對于本節課所學的內容和需要達成的目標都清楚明了,不僅樂于學,而且變得更加善于學習,通過核心問題的引導,學會更主動地探究實踐,達成學習目標。我們對九年級共8個班的學生進行了作業統計和問卷調查,其中4個班參與實驗,4個班按原教學模式上課。對于回收問卷的數據進行統計分析,得出以下對比結果。
從數據中我們可以發現,實驗班在基礎任務的完成度上略有提升,略大于非實驗班;而對于提升任務的完成度有了明顯的提升,顯示出了優勢。在目標達成自評分中,實驗班的優勢也是存在的。本次作業統計和問卷調查可能還不夠全面,比如每個班級中男女生對于這種教學方式的差異性是否也能成為我們調查的內容,有助于我們更全面地認識到逆向設計對教學的影響。
四、困惑與展望
逆向設計的實踐時間還不長,在課堂的實際應用過程中還存在許多問題。
第一,對于核心概念的把握,目前主要是通過整個學期的教學總目標和對之前的教學經驗進行總結判斷,分析本節課的核心概念,但始終覺得定位不夠準確,還需要在實踐中不斷摸索,得出好的策略和方法。
第二,對于評價任務的完成,課堂時間總是顯得比較倉促。另外,評價任務目前主要還是通過storyline等軟件制作任務書,讓學生自行完成,學生可以直接看到測評分數,但是數據不能直接反饋給教師,還需要通過其他渠道進行統計,比如網絡考試系統能否更高效地進行評價和統計,還有待實踐驗證。
第三,課堂小結,繪制思維導圖還是不能完全落實,是否應該調整繪制周期,可以一單元繪制一次。
這些問題給筆者指明了后續的研究方向。時代在發展,知識在更新,面對作為信息原住民的學生,我們要努力不懈,追求深度理解,構建追求理解的信息課堂。
【參考文獻】
[1]陳明選,包靜娟.圍繞理解的教學設計:為了理解而教[J].中國信息技術教育,2017(10):4-9.
[2]田莉,唐茜.逆向教學設計視野下的課堂評價:內涵、基本要素與設計思路[J].上海教育評估研究,2015,4(06):1-5.
[3]孫易新.思維導圖應用寶典[M].北京:北京時代華文書局,2015:29-49.