周利榮
關鍵詞:三階段教學法;高效課堂;程序設計;認知規(guī)律;教學理念
中圖分類號:G642 文獻標識碼:A
文章編號:1009-3044(2023)02-0124-03
高效課堂是符合學生的認知規(guī)律的,以學生為主體,以教師為主導的課堂。高校課堂是有效能的課堂,它促進了學生的發(fā)展,并且有利于學生的可持續(xù)發(fā)展,學生不僅學到了實實在在的知識,有一定的學習成果,而且提高了能力,學到了方法,培養(yǎng)了情感,鍛煉了思維,養(yǎng)成了好的學習習慣[1]。因此,高效課堂是教學永恒的主題,是教師永遠的追求。
1 高效課堂的幾個特征
一是符合學生的認知規(guī)律。認知學習理論認為人類獲取知識的過程是感知、注意、記憶、理解、問題解決的信息交換過程。程序設計課堂教學首先必須引起學生的注意與興趣,讓學生感知學習內容。在此基礎上記憶理解程序設計知識,然后應用程序設計知識解決問題即編程。
二是以學生為主體,以教師為主導。高效課堂并不是只是看教師教了什么,而主要是看學生學到了什么,并不是教師教得高效,而是學生學得高效。因此,必須以學生為主體,以教師為主導,以學生發(fā)展、學生學習、學習成果為導向,教師只不過是學生學習的促進者、幫助者、引導者。教學的目標是使學生會學習、愛學習。
三是學生的學習是自主學習,合作學習。在高效課堂里,教師應盡量把時間留給學生,讓學生自覺地閱讀學習材料,理解學習內容,總結學習方法;讓學生自己去發(fā)現(xiàn)問題、提出問題、探究問題、分析問題、解決問題。在高效課堂里,教師應該設計好任務活動,將任務活動交給一個小組合作完成,合作學習有利于提高學習效率,學生之間取長補短,相互交流,增進情感,共同成長。
四是教師能及時準確評價學生,學生能及時得到反饋。高效課堂里,每堂課每個學生有一定的學習成果,學習成果的完成效率及完成質量如何,教師能夠及時做出準確客觀評價,學生能及時得到自己的學習成果的反饋。即高效課堂里教師能夠對學生進行過程性評價[2]。
五是著眼于學生的可持續(xù)發(fā)展。當今世界,信息技術日新月異,大數(shù)據、云計算、人工智能方興未艾,新的編程語言不斷出現(xiàn),知識更新日益加快。大學所學知識不可能受用終生,學生學會學習、熱愛學習,才有可能適應變化的世界。因此,高效課堂的目標是四維的,一是知識,二是能力,三是方法,四是情感。
2 三階段教學法的三個階段
程序設計課堂教學如何構建高效課堂?在Py?thon程序設計教學實踐中總結出“三階段教學法”(編輯調試階段、閱讀理解階段、動手編程階段),使學生更好地掌握了程序設計的知識,提高了學生的編程能力,掌握了編輯調試程序、閱讀理解程序、動手編寫程序的方法,提高了學生的編程興趣。
編輯調試階段是指對于教師尚未講解的教材內容,學生在尚未能完全理解程序的具體含義的情況下,提前編輯、輸入教材中的程序,然后調試、運行得到正確結果。此階段最容易實施,以Python程序設計教學為例:(1)打開Python自帶的編輯器IDLE;(2)執(zhí)行新建文件命令;(3)編輯、輸入教材中的程序;(4)執(zhí)行運行程序命令,如有錯誤則對照教材修改、調試直到得到正確運行結果。學生只要掌握上述四個簡單步驟即可實施。
閱讀理解階段是指在教師的引導下,學生讀懂第一階段編輯調試成功的程序。此階段最為關鍵,教師起重要作用。程序調試成功,運行得到結果,但學生并未真正理解程序的含義,也未掌握蘊含在其中的編程技巧,如同吃下去的食物沒有真正消化吸收一樣。那么,教師應如何引導學生讀懂程序呢?一是要理解每個變量在程序中的功能和作用(存儲結果、循環(huán)變量、標志變量等);二是要將程序分解成有獨立功能的各個部分,指出各部分的功能;三是將各個部分綜合起來得到整個程序的功能。萬丈高樓平地起,這些都是建立在對程序設計語言知識熟練掌握基礎之上的,教師應將講解知識點與閱讀理解程序結合起來。
動手編程階段是指在教師的指導下,學生自己動手編寫程序。學生經過大量編輯調試、閱讀理解程序后,接下去就應該自己動手編程,掌握編程的技巧了。此階段最為艱難,學生不僅要熟練掌握程序設計基礎知識(基本概念、編程規(guī)范、數(shù)據類型、程序結構),還要有較強的抽象思維能力和邏輯思維能力,根據題意總結出算法,選擇一定的數(shù)據結構,編寫出易讀、健壯、高效的程序。教師應遵循先易后難的原則,有目的、有步驟地指導學生編寫程序,使學生學會編程,看到自己實實在在的學習成果,從而熱愛編程。
3 三階段教學法的具體實施
以劉慶編寫的教材《Python編程案例教程》為例,第一章(開始Python編程之旅)和第二章(Python編程基礎知識)為第一個教學單元。編輯調試階段共輸入編輯11個例題;閱讀理解階段講解相關知識點并理解11個例題及完成相關練習題共20 題;動手編程階段共編寫4個程序。
第三章(判斷和循環(huán)語句)和第四章(字符串的使用)為第二個教學單元。編輯調試階段共輸入編輯20 個例題;閱讀理解階段講解相關知識點并理解20個例題及完成相關練習題共17題;動手編程階段共編寫7 個程序。
第五章(列表和元組)和第六章(字典和集合)為第三個教學單元,編輯調試階段共輸入編輯22個例題;閱讀理解階段講解相關知識點并理解22個例題及完成相關練習題共23 題;動手編程階段共編寫9個程序。三階段教學法較為靈活,可根據學生的基礎知識及學習進展情況,增刪教材例題和練習題。
4 三階段教學法是打造程序設計教學高效課堂的有效途徑
4.1 三階段教學法是符合學生的認知規(guī)律的
教學必須符合學生的認知規(guī)律,這是教學必須遵循的基本原則。編輯調試階段最容易實施,且運行程序得到結果后,學生獲得成就感,激發(fā)了學生的學習動機和學習興趣,學生感知并注意了學習內容;閱讀理解階段需要記憶程序設計基礎知識,理解程序的含義和功能;動手編程階段則是問題解決的過程。因此,三階段教學法與認知學習理論是吻合的,是符合學生的認知規(guī)律的。
4.2 三階段教學法真正體現(xiàn)了以學生為主體,以教師為主導的教學理念
教學理念的發(fā)展大致經歷了三個階段:以教師為中心的階段;以學生為中心的階段;以學生為主體,以教師為主導的階段[3]。
以教師為中心,即以“課堂、教師、教材”為中心,教師是教學目標、教學內容、教學方法、教學過程的確定者,是絕對的權威。這種教學理念有利于學生系統(tǒng)地掌握知識,但學生缺乏自由思考、自主探索,不利于創(chuàng)新型人才的培養(yǎng)。以學生為中心的教學理念,強調學生的中心地位,倡導發(fā)現(xiàn)學習、探究性學習、合作學習、個性化教學。主張讓學生自由地發(fā)展,讓學生自己去探究、去發(fā)現(xiàn)和創(chuàng)造知識,學生能夠影響自己的學習內容、形式和進度。這種教學理念有利于學生自主地學習知識,但過分夸大學生的能動性,教師的作用有被弱化的傾向。實際上,教學實施的每個環(huán)節(jié)要落到實處,都離不開教師的指導作用。以學生為主體,以教師為主導的教學理念,綜合了以教師為中心和以學生為中心兩種教學理念的優(yōu)點,有利于調動教師和學生兩方面的積極性,得到了廣泛的認同。
三階段教學法真正體現(xiàn)了以學生為主體,以教師為主導。在編輯調試階段,教師只要講解四個操作步驟即可,基本上是學生編輯、輸入,調試、運行得到結果,發(fā)現(xiàn)問題可以小組交流討論。整個過程以學生為主體,教師很少介入[3]。在閱讀理解階段,教師可以先講解知識點,然后通過填空題、判斷題、選擇題、閱讀程序將程序補充完成,閱讀程序寫出程序的運行結果等練習形式,使學生掌握Python程序設計基礎知識(基本概念、編程規(guī)范、數(shù)據類型、程序結構)。教師可以修改程序,使學生比較不同程序的運行結果,自己總結出Python編程規(guī)范、語句的功能。在動手編程階段,教師只給出適當?shù)奶崾荆ㄊ褂玫淖兞考邦愋汀⒄Z句、畫出流程圖),學生以小組為單位共同編寫程序。因此,三個階段教學法無論在哪個階段,都是以學生為主體,教師為主導。
4.3 三階段教學法,學生的學習是自主學習,合作學習
三階段教學法有利于培養(yǎng)學生的自主學習精神和自主學習能力。一是三階段教學法促進了學生的課前預習。在編輯調試階段,學生提前編輯、輸入教材中的程序,學生在此過程中提前感知、注意了學習內容,雖然不能深入理解程序的具體含義,但初步理解了題目的含義及程序的功能。俗話說,眼過千遍不如手過一遍,這種預習的效果比單純看書效果要好得多,為教師后續(xù)講解奠定了一定的基礎。二是三階段教學法使學生的學習從課內拓展到課外,線下拓展到線上。教師可以組織學生在課內分組完成學習內容,可以在課內布置后在課外分組完成,使學生的學習從課內拓展到課外。如果在課外完成,遇到學生不能解決的問題,可以通過超星網絡教學平臺、QQ、微信、釘釘?shù)忍峤挥懻?。課外完成的作業(yè)可以通過超星網絡教學平臺、電子郵件、QQ、微信等方式提交,使學生的學習從線下拓展到線上。
三階段教學法提高了學生合作學習的水平。三階段教學法是一種合作學習,促進了學生的相互交流和共同進步。[4]通過合作學習,程序設計基礎扎實的學生可以幫助基礎薄弱的學生,在這種幫助中,其基礎知識又得到了鞏固,對兩者都是提高。在編輯調試階段可采用小組合作的方式進行,一個小組完成一個程序,如果程序較短,則小組的人數(shù)少;如果程序較長,則小組的人數(shù)多;如果程序很長,則每個小組完成其中一段程序,再由多個小組合并而成整個程序。在動手編程階段也可采用小組合作的方式進行,一個小組共同完成一個程序的編寫。
4.4 三階段教學法能及時準確評價學生的學習,學生能及時得到反饋
每個學生有三個文件夾,編輯調試、閱讀理解、編寫程序,分別上傳對應的結果。對于編輯調試,編寫程序兩個文件夾,里面存放的都是.py程序文件,批量運行相同目錄下.py文件可得完成正確率。通過按修改日期排序可得完成效率,從而快速得到每個學生的準確評價,并將結果反饋給學生。
4.5 三階段教學法著眼于學生的可持續(xù)發(fā)展
三階段教學法加深了學生對已學知識的理解。課外完成程序編輯、調試任務需搭建Python開發(fā)環(huán)境,加深了對搭建Python開發(fā)環(huán)境這一知識點的理解。程序編輯、調試中遇到許多錯誤,大多數(shù)是沒有遵守Python編碼規(guī)范引起的,加深了對Python編碼規(guī)范這一知識點的理解。通過輸入調試面向對象程序設計編程實例,加深了對Python是面向對象的程序設計語言這一知識點的理解。通過輸入調試GUI編程實例,加深了對Python圖形界面開發(fā)這一功能的理解。通過輸入網絡爬蟲編程實例,加深了對Python網絡爬蟲編程開發(fā)這一功能的理解。通過輸入教材中“飛機大戰(zhàn)”編程實例,加深了對Python游戲開發(fā)編程這一功能的理解。
三階段教學法提高了學生的能力,包括程序調試能力、閱讀理解能力、動手編程能力。學生在編輯、輸入教材中的程序后,執(zhí)行運行程序命令,如果不能得到正確結果,IDLE編輯器會給出錯誤提示,說明程序有誤。學生可根據錯誤提示,認真比對輸入程序與教材中程序的差別,發(fā)現(xiàn)錯誤并修改,直到得到正確結果。教學實踐中發(fā)現(xiàn),學生在編輯、調試程序過程中出現(xiàn)的錯誤是五花八門的,如不滿足縮進格式、語句格式,多輸入、少輸入、錯誤輸入代碼,中文狀態(tài)下輸入代碼等。任何程序都要符合編程規(guī)范及正確的語法,才能通過解釋或編譯,得到正確結果。三階段教學法培養(yǎng)了學生一絲不茍的學習態(tài)度,提高了學生的程序調試能力。通過大量填空題、判斷題、選擇題、閱讀程序將程序補充完成,閱讀程序寫出程序的運行結果等練習,提高了學生閱讀理解程序的能力。通過前面兩個階段的大量練習,學生掌握了程序設計的基礎知識。再通過大量由淺到深,由易到難的編程題目訓練,學生掌握了編程的步驟、技巧,提高了學生的動手編程能力。
三階段教學法使學生掌握了編輯調試程序、閱讀理解程序、動手編寫程序的方法。以Python程序設計教學為例,對于編輯調試程序,只要掌握四個步驟即可,由于例題都是教材中正確的程序,只要認真仔細輸入,滿足Python編程規(guī)范和語法,運行得到結果并難。如何閱讀理解程序?最重要的是理解變量、函數(shù)、某個程序段的功能。變量、函數(shù)、某個程序段的功能搞清楚了,程序的功能基本上搞清楚了。可以通過閱讀程序注釋部分來明確變量、函數(shù)或程序段的功能;可以在程序中間插入print語句,輸出變量、函數(shù)的結果來理解變量、函數(shù)、某個程序段的功能;可以修改變量或者函數(shù)參數(shù)的值,比較運行結果的不同來理解變量、函數(shù)或程序段的功能。至于動手編程,程序設計有一個著名的公式:程序=數(shù)據結構+算法。因此,編寫程序最重要的是選擇合適的數(shù)據結構或者數(shù)據類型,運用適當?shù)乃惴?。Python常用的數(shù)據結構和數(shù)據類型有:數(shù)字型、字符型、布爾型、列表、元組、字典、集合,數(shù)據類型往往根據題意來選擇。算法是解決問題的過程和步驟,要根據題意選擇適當?shù)恼Z句(賦值、選擇、循環(huán)、輸出)和表達式(算術、關系、邏輯、身份、成員)來完成,需要運用一定的數(shù)學知識進行抽象、判斷、推理,因此學生需要具備一定的邏輯思維能力和抽象思維能力。
三階段教學法培養(yǎng)了學生對程序設計課程的學習熱情。一是三階段教學法提高了高職學生的學習參與度。學習參與度是衡量教學有效性的重要指標,高職學生學習主動性普遍不足,課堂上普遍存在“教師教多少,學生學多少,教師不教,學生不學”的現(xiàn)象,少數(shù)學生甚至根本不參與學習。因此,最大限度地調動高職學生參與課堂學習,是教師面臨的最大挑戰(zhàn)。[5] 教學實踐表明,在編輯調試階段,大多數(shù)學生都能參與到學習中。在動手編程階段,學生通過小組交流討論共同完成程序設計,學生之間的互動變得頻繁了,打破了“課堂沉默”,學生參與課堂學習的積極性明顯提高[6]。二是三階段教學法提高了學生的學習興趣、增加了學習信心。高職學生普遍對自己的學習缺乏信心,學習主動性普遍不足。三階段教學法使學生認識到,學習Python程序設計是有用的、有意義的、有趣的。如教材中的實例:“猜拳游戲”“百錢買百雞”“計算器”“三級菜單”“文本詞頻統(tǒng)計”“學生管理系統(tǒng)”“哥德巴赫猜想”“采集百度搜索結果”“飛機大戰(zhàn)”等。通過編輯、調試上述程序,使學生提前體會到Python的強大功能和實用性。教學實踐表明,三階段教學法提高了學生的學習興趣,增強了學習自信心。
總之,三階段教學法使學生學到了知識,提高了能力,掌握了方法,培養(yǎng)了情感。因此,三階段教學法是著眼于學生的可持續(xù)發(fā)展的。
5 三階段教學法的啟示
啟示一:教師不能忽視學生的潛能。教師最重要的任務是將學生的潛能最大限度地發(fā)揮出來,使每個學生在原有的基礎上都有所發(fā)展。教師要改變高職生是“差生”的固有觀念,采取適合高職學生的符合學生認知規(guī)律的教學方法。教師要調整觀察學生的視角,要關注學生的學,幫助學生掌握一定的學習方法。高職學生編程能力差不等于沒有編輯、調試程序的能力,不等于沒有閱讀程序的能力,教師要從培養(yǎng)學生編輯、調試程序的能力開始,進一步培養(yǎng)學生閱讀程序的能力,進而才是編寫程序的能力。教學實踐表明,三階段教學法不僅提高了學生調試程序的能力,還提高了學生閱讀程序的能力,提高了部分優(yōu)秀學生的編程能力。
啟示二:創(chuàng)新需要突破常規(guī)思維,大膽地嘗試。傳統(tǒng)的教學原則是按教材的編排順序,教師按部就班地教,學生被動地學;教師先講授,學生后練習;前面的知識還沒有掌握,決不要動手搞后面的。三階段教學法卻要求學生先編輯調試程序,再閱讀理解程序,最后編寫程序,即學生先練,教師后講,學生再練,實踐證明是可行的。