沈雅麗
◆摘? 要:初中生學習編程是當前的人工智能時代提出的要求,浙江省義務教育教科書《信息技術》八年級教材引入了Python教學。面對層出不窮的Python教學問題,面向各種思維層次的學生,我探究并實踐著一些Python教學的優化策略。遇到新知識,倒轉+1的策略可以讓學生親歷新知的建構;設計專題時,變形+1的策略可以挖深一類知識的教學;開展項目式教學時,留白+1生策略能兼顧編程的普及教學與提優教學。
◆關鍵詞:深度學習;新知識;倒轉+1;深專題;變形+1;真項目;留白+1
《普通高中信息技術課程標準》中明確指出要掌握一門程序設計語言的基本知識,使用程序設計語言實現簡單算法。初中生學習Python順應了課程標準,符合了當前的人工智能時代的要求,浙江省義務教育教科書《信息技術》八年級教材引入了Python教學。面對此教學內容,老師都成了“新”教師,大部分學生對編程望而生畏。面對層出不窮的Python教學問題,面向各種思維層次的學生,我嘗試采用+1優化的小步伐策略,從“新知識”、“深專題”、“真項目”3個方面入手,分別采用不同的策略,優化課堂教學設計,喚醒學生的編程思維,提升學生的編程能力,完成從“學會編程”課堂價值取向轉身成“形成學科核心素養”的價值訴求。
一、倒轉+1? 謀在新處
學生要成為新知識的主人,不止是簡單地復制它們,還需要將它們活動化與實例化。倒轉的含義是直接從認識開始習新,有目的指向已有認識成果的學習;在倒轉的基礎上,充分考慮學生與新知間的心理距離及學習感受,把第一次“倒過來”的過程再“倒回去”,這就是倒轉+1的含義,還原濃縮的新知識,化解習新的障礙,處理認識成果與學生個體經驗的相互問題,從根本上保證“第一次倒轉”的意義與價值得以實現,幫助學生去“親身”經歷知識的發展與建構過程。
案例:學習print()
倒轉:知道print()格式并簡單應用
習新的前提是知曉它在Python中的位置和作用,理解它與其他概念之間的聯結。print是學習Python的第一個函數,它用于打印輸出的函數,其使用語法是print(*objects,setp=’’,end=’\n’)。objects是復數,表示可以一次輸出多個對象;sep用來間隔多個對象,end用來設定以什么結尾。直接學習print()的基本語法格式,使用print()函數編寫以下4行代碼。
name="Tom"
print(name) #姓名
print(14)? ?#年齡
print(40-14)#父子的年齡差
4行代碼依次輸出學生的姓名、年齡與父子的年齡差,學生熟練print的拼寫,又知道print()的使用。同時,學生嘗試將縮短代碼,更改第2-4行代碼為:print(name,14,40-14),體驗objects的使用。倒轉環節的學習具有理論與實踐的雙重意義,但輸出的結果需要靠注釋來意會。學生知道了print()的語法格式,但并不理解它的可用之處。
倒轉+1:理解print()多個參數的靈活使用
新知識的學習要具體化,注重應用性。倒轉+1是倒轉的自然進階,是知識的延伸,滿足意義建構的需要。學生在print()的參數表中加入一些提示性文字,更改成:
name="Tom"
print("Hello!",name ,sep='')
print("Tom的年齡:",14)
print("Tom與爸爸的年齡差:",40-14)
運行代碼,得到了以下結果:
Hello!Tom
Tom的年齡: 14
Tom與爸爸的年齡差: 26
看著運行結果,學生提出了消除hello!與Tom之間的空格的需求,print()中自然引入了sep與end的使用。因為倒轉+1,使得print()的學習從片面到全面,從直接輸出變量內容優化成輸出問候式文字,無需要注釋,學生順利地獲取“可言說”的知識。
倒轉+1,這是學生在一個有意義的可全面參與的學習環境中“泡”開知識的過程,是學生在交流和碰撞中發現知識的意義與價值的過程。倒轉+1,在新知識和現實世界之間架設了一座“橋梁”,不讓學生直面“運行代碼,程序瞬間執行,結果不知所云”的尷尬局面,逐步建構新知識,避免存在“只見樹林,不見森林”的偏頗。倒轉+1,強基拓源,學生在對代碼一次又一次修改的過程中,感受知識更新帶來的變化,提升計算思維,提高學習、運用知識的能力。
二、變形+1 ? 挖在深處
要學深Python,專題必不可少。圍繞某一個專題,對知識點的條件、形式、內容等進行轉換變化,演繹出若干變式,這就是變形的含義。立足同一個專題,從寬度與深度的視角,加深理解復雜問題,獲得一類知識的學習方法,這是變形+1,它是對一類內容進行深度加工的過程,有效提升學生的編程能力和思辨能力,促進學生高階思維的培養。
案例:“打擂臺”專題
此專題中,if語句是基礎,兩數比大小是基本教學材料。
變形:改變數的個數為3,編寫三數比大小的代碼
抽象3數比大小的邏輯關系,學生自主探討后,形成了3種if語句的算法。
算法1:引入變量t,存放較大數,兩次比較后求出最大數。學生在兩數比大小的基礎上直白地思考,得出上算法。
算法2:使用if語句的嵌套。諳此法的同學門兒清,邏輯思維清晰。
算法3:使用if-elif語句。借鑒了教材內容,實現多選一操作。
3種算法各有特色,算法源于教材,又高于教材。通過此次變形,學生理解了分支結構的二選一、多選一、if嵌套關系間的轉換,明白了這些關系間的不同與聯系。
變形+1:為“國慶盛宴”中各年段4位評委的給分比高低,實現多數比大小
通過熟悉又陌生的問題設計變形+1,引發學生的思考,類比變形的操作,分析變形各算法對解決變形+1的助力,不引入數組的前提下,結合變形的第1種算法與循環結構就能解決此問題。挖掘這類知識后面的根就是主題變形的設計宗旨,從變形到+1,支撐“打擂臺”專題的根是分支結構,學生在把握知識脈絡的基礎上主動尋求規律,發現規律,由思維的連續性和拓展性過渡到對知識的總結和提煉,變形+1的結果不囿于教師的設計范圍。
專題的變形+1,對學生來說是一個全新的生活應用,把學生置身于復雜多變的情境中,這是學生分析、表達、解決專題中問題的思維過程,是學生們為具有生活價值的專題提供的變形力量和變形方向。珍惜變形+1的開放性,保護學生面對困難時的好奇心,時刻準備著為一種復雜的、開放性的挑戰,找到可拓展的解決方法,每個課堂生成的變形結果完成隨學生的思辨結果而成。有學有辨,層層遞進的+1變形,學生探究一類知識背后的真理,深入地經歷一類知識的建構。
三、留白+1? 落在真處
為鍛煉每位學生融會貫通知識的能力,項目式學習是Python學習中不可缺席的角色。留白基于真實的項目式學習,設計一個“半成品”,積極運用知識去實踐留白處。而留白+1, 充分考慮學生間的編程差異,以同伴間互動交流填補此處的空白,既解決優生的頂端討論的問題,促進學生間的榜樣引領作用,又化解暫差生的學習瓶頸,引領所有學生一起到達成功。
案例:“鍵盤俠”項目
生活中的鍵盤操作不少,如:計算器、取款機密碼輸入器等均有鍵盤操作。
留白:(1)繪制簡易計算器的流程圖,并編寫程序(2)編寫取款機密碼器的程序
學生研讀課本,喚起對流程圖的記憶,需要微調流程圖內容,更改四則計算的流程圖實現循環計算的功能,再修改代碼,編寫該子項目。而取款機密碼輸入器呈現了效果圖,但學生需要借鑒簡易計算器的編寫,結合順序結構、分支結構與循環結構生成所需代碼,學以致用,這是每位學生能達到的學習程度。
留白+1:實現“鍵盤俠”各子項目間的隨意點單
整合兩個子項目是留白+1的位置,是讓課堂“動”起來的位置,那是資優生帶動組內同學一起前行的位置,滿足每位學生的各種內在需求,是學生間通過互助到達的知識運用的彼岸。它也學生的眼神“亮”起來的位置,流暢的鏈接吸引學生創作的激情。它更是學生“用”起來的位置,或使用if語句或使用def()定義與調用子函數,進行知識鞏固運用和檢驗。
留白+1,完善項目,學生心中有全局。留白+1,留的不僅僅是知識,留白的更是學習的能力、應對挑戰和變化的能力。時代需要的不是記住很多知識的人,而是能夠迅速找到自己需要的知識,并且用其獨立思考的人。留白+1,留給每位學生主動探究的時空,留給小組學生互動提升的時空,兼顧了實現每位學生的Python普及編程與提升資優生對Python深入研究的興趣。
九十九步是一半,一步是一半,這是個超數學問題,也是個富含哲理的問題,最后的一步是事件的關鍵。+1策略,指的教學設計時的小步伐前進的策略,它是一種基于學情的課堂教學優化,是串聯低層思維和高層思維的優化。+1是個動態的過程,邏輯思維很重,它讓編寫Python代碼不再難,學生就這樣學Python編程,樂學致活,活學致遠。
參考文獻
[1]劉月霞,郭華.深度學習:走向核心素養[M].北京:教育科學出版社,2018.
[2]郭華.帶領學生進入歷史:“兩次倒轉”教學機制的理論意義[J].北京大學教育評論,2016(02):8-26,187-188.
[3]楊曉哲,任友群.普通高中課程標準教師指導信息技術[M].上海:上海教育出版社,2019.