龔曉靜 李明進 溫苾芳


摘?要:編程語言由于需要學生具有邏輯思考、數學、英語等多學科綜合能力,其學習難度較大、學習過程較枯燥,容易引起學生的畏難情緒。而寫作學習的“字、詞、句、段、篇”教學方法恰恰與編程知識的學習步驟不謀而合。根據建構主義的思想,教學是引導學生以原有的經驗為基礎,建構起新經驗的過程。因此,通過對寫作教學方法的借鑒,在編程課堂上,教師可以循序漸進地引導學生對編程語言的知識點進行系統學習,增加學習過程的趣味性、參與度和學習者的主動性,從而通過學生熟悉的方法,有效地開啟“授之于漁”的學習路徑。
關鍵詞:字詞句段篇;Python教學;建構主義
一、概述
黨的二十大報告提出數字化轉型是教育強國的必經之路。相應地,教育信息化的發展促進了信息技術的教學普及率,為培養新時代信息科技人才創造了良好的條件。目前,無論是K12教育還是中高職、大學教育,編程語言的學習已成為課堂中必不可少的內容。
編程語言由于需要學生具有邏輯思考、數學、英語等多學科綜合能力,其學習難度較大、學習過程較枯燥,容易引起學生的畏難情緒。以Python為例,此前做過一次問卷調查,共收到94份問卷答案。問卷中,當學生被問及學習動力弱的原因時,有62.77%的學生反饋是思路少,無從下手。[1]由此可見,一部分學生還沒有掌握如何學習編程語言。因此,如何引導學生循序漸進地學習知識點、增加學習過程的趣味性,提升學生的學習主動性,成為編程課堂設計的重點和難點。
寫作學習的“字、詞、句、段、篇”教學方法恰恰與編程知識的學習步驟不謀而合。由于每個學生在小學階段就對寫作進行過系統性學習,對該學習方法已常記于心。因此,將寫作學習的方法應用到編程教學中,可以增加學生的熟悉感,便于引導學生用已有的知識結構對編程進行系統性學習和練習。
二、寫作教學方法與編程教學方法的關聯分析
由字及詞、由詞及句、由句及段、由段及篇是學習語文的規律,也體現了人們認知世界由易到難、由簡單到復雜的過程。在K12教育中,“字、詞、句、段、篇”是語文教學的基礎和前提。學生沒有一定的對字詞句段的判斷和積累,很難開展后續對“篇”的學習。實際上,“字、詞、句、段、篇”中,對每一個環節的學習都是下一環節學習的前提。它遵循了語文知識學習的循序漸進過程。[2]
Python是一種跨平臺、開源、免費的解釋型高級動態編程語言。隨著人工智能技術的快速發展,Python作為該領域應用最廣的編程語言,也在IT行業日益普及。與C、Java等其他編程語言相比,Python有其獨特的優勢。首先,Python語言聚焦于循環、函數等基本的程序邏輯關系及功能強大的函數庫應用,它是目前最接近自然語言的通用編程語言。其輕語法、弱類型的特點,使得它在實現同樣功能時,其代碼量是C語音的1/10~1/5。其次,Python語言的應用,側重于培養使用者以計算思維將計算問題轉變為計算機程序,從而解決實際問題的能力。因此,它不僅適用于計算機領域的人員,同樣也適用于所有需要利用計算機解決各類計算問題的群體。[3]根據TIOBE?2023年1月發布的編程語言排行榜,Python已成為全球最流行的編程語言。對編程語言的教學研究,以Python為例,有典型的代表意義。
建構主義認為,教學不是將客觀知識點直接灌輸到頭腦的機械傳遞,而是引導學生以原有的經驗為基礎,建構起新經驗的過程。學生已有的日常經驗和知識是其思維發生的基礎。[4]以Python教學為例的編程課堂教學方法改進,正是利用了學生在K12教育中就已經積累的“字、詞、句、段、篇”學習經驗,將其移植到編程語言學習中,以建構主義的思想為指導,對編程語言學習開啟新路徑。
(一)字詞:文章的最小單位
字詞是文章的最小結構單位,也是理解閱讀過程中的最基本條件。在學習寫作時,首先要學習的就是字詞部分,足夠詞匯量的積累是后續“句、段、篇”學習的基礎。
在Python中,各種數據類型、運算符、序列可以看作是編程的最小單元,對應于寫作學習中的“字詞”。如代碼“print(8>7and6>5)”,“5、6、7、8”是常量,“>、and”是運算符,“8>7”和“6>5”是表達式,將這些“字詞”組合到一起,就形成了一段代碼。
(二)句:文章的重要組成部分
句子由字詞組成,能表達一個完整的意思。通過句子的含義及相互間的特定關系,可以清楚地表達整篇文章的思想。在學習寫作之初,通常會學習主謂賓等語法的特定結構,并且利用好詞佳句摘抄的形式,臨摹已有句型,使學習者快速掌握造句技巧。
在Python中,每一行代碼可以被看作是一個句子,通過不同的字詞組合,表達不同的內容,執行后得到不同的結果。Python語句有兩個典型的控制語句結構:選擇結構和循環結構。選擇結構由“if…else”的主要形式進行體現。循環結構有while語句(無限循環)和for語句(遍歷循環)兩種形式。這就好比寫作訓練中句型的歸納和應用。學生可以采用固定的句型,準確并清楚地進行表達。同時,也可以借鑒“好詞佳句”的積累方式,對實現某一特定功能的經典程序語句進行記錄,在后續的應用中直接借用。這大大提高了編程的效率和質量,亦可以統一代碼格式,增加程序的可讀性。
(三)段:文章中相對獨立的部分
段落,是根據文章或事情的內容,階段劃分的相對獨立的部分。一篇文章會有很多段落,每個段落表達比較完整的一個單獨的意思。如此布局,使文章結構清晰,便于理解。
在Python中,函數和模塊可以被看作獨立的段落。任何完成特定任務的代碼塊也可以看作一個段落。如圖1所示,在利用Python生成詞云的任務中,除去庫導入部分的代碼外,對主程序代碼可以根據不同的任務內容進行分段。將“對詞源文件的分詞”“生成詞云和設置詞云參數”“輸出圖形”劃分為不同的段落。如此,便于理解的同時,也將任務進行了分解。學生在學習和練習過程中,可以按段落梳理各段不同的含義,也可以分段落編寫程序后進行匯總。增加了編程學習的靈活性,減少了編程學習的難度。
(四)篇:一篇完整的文章
完整的一篇文章正如完整的一個程序,可以表達作者的總體思想,可以完成整體的程序設計要求。在寫作學習中少不了佳作欣賞的環節,無論是說明文、議論文還是其他文體,總是有很多范文,或是結構值得學習,或是好詞佳句值得摘抄。在Python的學習中也是如此。許多教科書都設置了經典算法的學習章節,如詞云生成、詞頻統計、水仙花數的輸出等。這些算法作為相對獨立的程序任務,每一行代碼都是經過反復推敲的,是學習Python編程中必不可少的例子。如圖1所示生成詞云的程序,只要熟記基本結構和語句,對于不同的源文件和不同的輸出要求,只需要修改其中的讀取文件途徑、名稱,以及生成詞云的參數,就可以得到個性化的輸出結果,而程序的80%內容不需要修改。這大大降低了編程難度。
(五)文章結構與程序結構的關聯
在學習寫作之初,往往采用經典的“總—分—總”結構,用第一個段落交代故事背景,最后一個段落總結全文,中間的段落對具體事件進行描述。不同的段落在文章的不同位置有著不同的作用,Python語句亦然。
程序編寫的主要方法被稱為IPO法。I為input(輸入),表示一個程序的開始,通常程序處理的數據需要通過文件輸入、網絡輸入、交互界面輸入等各種途徑獲得。P為process(處理),表示程序的主要邏輯,即程序對輸入數據進行計算產生輸出結構的過程,這個處理方法也稱為算法。這一部分是程序的主要部分。O為output(輸出),是程序展示運算結構的方式,通常通過控制臺輸出、圖形輸出、文件輸出等形式體現。對于圖1所示的程序,代碼塊1中包含了從文件輸入的編程內容,代碼塊3完成輸出任務的編程內容,代碼塊2則完成了對數據的處理。可見,寫作中的“總—分—總”結構與程序編寫中的IPO形式剛好一一對應,為編程學習提供了很好的參考依據。
三、依據寫作教學方法對編程課堂進行設計
根據寫作“字、詞、句、段、篇”的學習內容和步驟,不難對編程課堂進行相應的設計。
(一)學習Python語法基礎,即“字詞”的學習
這部分是學習整個體系架構的第一步,需要熟練掌握的內容有:
1.數據類型
包括數值類型、字符串、布爾型等。相當于學習寫作時,先掌握漢字,以便于后續用于組詞、造句。
2.運算符與表達式
運算符通常與數值、字符串等數據配合使用。可以將它們看作“標點符號”,而將其與數據連接起來最終呈現的表達式可以看作是詞。表達式會作為編程語句的一部分,完成條件判斷、計算等功能。
3.序列
包括列表、元組、字典和集合。這也可以看作是由數據這種“字”所組成的“詞”。
(二)學習Python控制語句,即“句”的學習
這部分的學習,通常包括選擇結構、循環結構以及常用算法三部分內容。選擇結構和循環結構有固定的格式,而常用算法的學習作為范文學習,可以鞏固學生對兩種結構的理解。常用算法的應用實例包括累加與累乘、求最大數和最小數、枚舉法、遞推與迭代等。學好了這些經典算法,在后續的編程中則可以直接運用。
(三)學習Python函數與模塊,即“段”的學習
這部分內容包括函數的定義、使用、參數設置、遞歸調用等,也包括模塊的導入和常用模塊的介紹。通過本階段的學習,學生已經掌握了寫作段落的能力,為獨立完成編程任務做好了準備。
(四)學習Python文件,即“篇”的學習
Python語言采用IPO的編程方法,在學習了函數與模塊后,學生已經具備了P(數據處理)這一個主要能力。通過學習如何讀取、輸出數據到文件,則可以完成I(輸入)和O(輸出)的編程任務,從而完整地編寫一個程序。這就好比寫作時,對于事件的描述,加上開頭和結尾,一篇完整的文章就成形了。
四、教學反饋
以電子科技大學成都學院商學院管理與技術專業19復合班作為本次教學方法改革的實施對象,該班共有20位學生參加學習。在Python教學中,引入了“字、詞、句、段、篇”的寫作學習方法,并在期末對該方法進行了問卷調查。其問卷主要圍繞“引入新方法是否有效”開展,其具體反饋信息如下:
針對問題1“是否認為‘字、詞、句、段、篇的學習步驟和Python學習的步驟相類似”,用1~10分進行打分(1分為不相似,10分為非常相似),85%的學生給出了6分及以上的反饋。可見,大多數學生認為這兩種學習方法是比較類似的。針對問題2“采用‘字、詞、句、段、篇的學習方式,是否有助于循序漸進地學習Python”,用1~10分進行打分(1分為無幫助,10分為非常有幫助),90%的學生給出了6分及以上的反饋。可見,大多數學生認為“字、詞、句、段、篇”的學習方式對Python學習是有借鑒意義的。問題1和2的具體分值分布如圖2所示:
最后,學生們也各抒己見,表達了對這兩種學習方法相結合的看法。有同學認為“將Python的學習方法和語文學習方法結合起來很有意思,能夠激起學習的情緒,也能更好地去理解和記憶Python代碼”。也有學生認為“最開始的語文學習都是從基礎開始學習的,只有先認識字才能看懂詞,然后是句、段、篇。Python也可以這樣,和語文的學習一一對應,經典代碼的學習也可以在未來的代碼中運用借鑒到,Python語言和語文一樣的,萬變不離其宗,最主要的就是靈活”。
五、總結
寫作的學習是一個長期性、持續性和復雜性的提升過程,編程語言的學習也是如此。因而,在編程課堂的教學中,教師要將重點從講解知識點變換為教授學習方法。“授之以魚,不如授之以漁”,讓學生掌握如何學習,才是提升學習積極性、參與性、趣味性的有效途徑。
參考文獻:
[1]段亞西,徐成振,魏凌華,等.Python語言程序設計課程教學方法探究[J].科技風,2021(17):4042.
[2]靳彤.“語文方法性知識”研究[D].山東大學,2018.
[3]嵩天,黃天羽,禮欣.Python語言:程序設計課程教學改革的理想選擇[J].中國大學教學,2016(02):4247.
[4]鄭紅娜.從建構主義到社會實在:知識教學的反思與重構[J].當代教育科學,2022(02):3340.
基金項目:2021—2023年四川省高等教育人才培養質量和教學改革項目——《基于思政“人格”引導的“闖關”式創新創業人才培養模式研究》項目(JG20211549)
作者簡介:龔曉靜(1980—?),女,四川自貢人,碩士,工程師,研究方向:人工智能與科學、通信與信息系統、職業教育;李明進(1977—?),男,海南澄邁人,碩士,副教授,高級工程師,研究方向:嵌入式系統與人工智能;溫苾芳(1985—?),江西撫州人,碩士,講師,工程師,研究方向:電氣工程及其自動化。