周曉燕

摘要:面向對象技術作為程序設計中的重要思想和模式在業界早已普遍使用。但由于難度、課時等多方面的因素,在高中信息技術課程的程序設計教學模塊中一直難以展開和深入。該文就近年來在高中信息技術課程中面向對象技術的教學嘗試做了初步的經驗總結,并提出成熟的教學思路,以期利用有限的課時,能夠將面向對象技術核心的思維方式及編程思路傳授給學生。
關鍵詞:高中信息技術;面向對象;思維方式;教學實踐
中圖分類號:G642? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)33-0257-02
開放科學(資源服務)標識碼(OSID):
1引言
隨著計算機軟件技術的發展,面向對象程序設計在行業中的應用早已占據主導地位。同時,面向對象在軟件工程中,也是一種思維方式,甚至工作方法,其重要性不言而喻。
但在現階段的中學信息技術教學中,由于種種原因,面向對象程序設計的內容有限,教師的重視程度也不足,這與其自身的重要性和在行業中的地位并不相符。
筆者在以往的教學過程中,也時常遇到學生提出相關問題,一般都無法用三言兩語解釋清楚。所以近兩年,筆者嘗試將面向對象的內容融入教學中,初步取得了一些經驗。
2 高中階段面向對象技術的教學現狀
2.1 普通高中教學
以蘇教版的高中信息技術教材為例,在程序設計模塊中,面向對象的內容只占一個小結。以往的講授只是簡單地介紹,比較合理的做法是結合VB的界面編程,通過控件來介紹屬性、方法等概念。而關于面向對象的三個最重要的特性,即封裝、繼承和多態,一般只是照本宣科,學生難以做到完全理解。
從學科知識的角度而言,教學效果自然差強人意。索性考核要求也不高,所以多年來,面向對象這部分內容只是簡單介紹,甚至就直接跳過。
2.2 學科競賽
信息技術奧賽,作為最權威也最具代表性的學科競賽,主要使用C++編程語言(很快將不采用C, Pascal),涉及了更多的面向對象的知識,例如運算符重載、stl編程等等。事實上,這些都要求學生具備一定的面向對象編程能力和思想。
2.3 與國際課程接軌
對比國外的相關課程,例如英國的A-Level課程體系中的計算機科目,面向對象是作為重要內容系統講解的,且對編程的要求也很高。所以可以肯定的是,從難度上講,面向對象編程對高中生,特別是在小學初中有一定基礎的學生而言,是不成問題的,當然,這還需要足夠的學時。
2.4學生情況
在日常教學中,學生往往會提出或者遇到面向對象相關的問題。例如VB.net(代替老舊的VB6.0)中最常用的輸出語句Console.WriteLine,到底是什么語法現象。再如很多學生接觸了流行的Python語言(Python已作為新一代教材的指定語言),往往會對其“一切都是對象”的說法產生困惑。還有一些學生會結合小學階段所學習的Scratch來思考程序的結構,如果沒有面向對象的概念則仍然難以理解。這樣的問題不在少數。
上述情況由來已久,使筆者感到,在教學中刻意回避面向對象的相關內容,已經遠遠不能跟上技術的發展,反而讓學生的疑惑得不到解答。而在教學過程中適當引入面向對象的內容,采用一定的方法講授給學生,是否對高中生而言就會困難重重,是否對教師而言就是費時費力?通過近幾年的教學實踐,答案是否定的。
3 教學實踐中的幾點問題
3.1 教學安排
毋庸諱言,課時有限是教學過程中最突出的問題,系統地講解面向對象程序設計仍然難以做到。所以采用集中分散相結合的辦法。集中講解的課時不超過2堂課,甚至更少,主要以程序演示為主。分散是指講授其他知識點時,聯系或引申面向對象的內容和思想。例如,向VB的frame上拖拽按鈕的時候,很容易就可以區分類和對象的概念。
教學方法上,盡量多通過實例引出概念,通過問題啟發思考。這里的實例不僅僅是具體程序,還可以是生活的事例。例如,以現實中繼承的例子,從而過渡到面向對象的繼承。所提問題也需要精心設計,例如通過“類與結構體有哪些異同?”這樣的問題,讓學生掌握屬性和方法的運用。
3.2 難度把握
從知識點難度上考慮,面向對象的封裝、繼承兩個概念,學生易于理解。筆者在教學中通過人與人的關系來講解封裝和消息的概念;通過現實生活中的繼承來講解繼承的含義。如果時間允許,花一節課時,由老師編寫相關的程序(現為VB.net)并做解釋,不僅能夠讓學生的理解更加清晰,同時也解答了程序應用中的種種疑惑。
而對于面向對象的多態性,不管從概念還是程序理解上來說難度相對較大。現在采取的方法是通過簡單例程講解靜態多態。而動態多態性,則期望普及Python語言后,通過Python來講解,則會非常方便。
3.3 強調優勢
在教學過程中,盡量讓學生體會面向對象的優勢。通過與面向過程的編程方式做比較,讓學生理解從函數模塊到“類”的發展;結合人們日常的思維方式,讓學生體會“面向對象其實是編程思維的返璞歸真”;再從開發者的角度,讓學生切實感到面向對象也是一種高效率的軟件開發方式。從多個方面使學生能夠自然地接受面向對象技術。
4 高中信息技術課程面向對象知識模塊教學總結
4.1教學效果總結
通過對學生學習情況的了解,絕大部分學生對面向對象編程有了初步了解,能夠將其與面向過程的編程方式區分開來,并理解面向對象編程的特點和優點,特別是對遇到的一些語法現象不再迷茫。就難度而言,學生普遍反映課上所講完全可以理解,包括例程。當然,更深刻的體會不可能一蹴而就,但已經完全達到打好面向對象編程基礎的教學目的。
此外,一些學習較好的學生,已經能夠用面向對象的思路模仿著編寫一些程序,對遇到的問題,會主動思考是否可以用類來做抽象。對這些學生,筆者引導他們嘗試對以往的程序用面向對象編程做改寫,在這個過程中,更能清楚地比較面向過程和面向對象兩種編程模式。但這些工作暫未全班推廣。
4.2教學經驗
首先,筆者認為,現有的高中信息技術課程中的程序設計教學模塊,難度和深度已經足以講解面向對象的相關知識,無須刻意回避。而講解面向對象的相關知識,學生的收獲是很大的,所以完全應該堅持下去。
其次,通過精心的教學設計,可以盡量做到化難為易,化繁為簡,同時也增強了學生的學習信心。例如,編寫合適的例程;概念多角度講解;多舉實例和生活中的例子等等。
最后,根據學生特點,對較優秀的學生再推一把,通過指導課外學習,充分調動他們的積極性。
4.3 量表評價
具體的面向對象技術在高中信息技術課程中的教學效果,以校本課程評價量表的形式說明如下:
5 結束語
在整個面向對象技術的教學過程中,筆者覺得,最理想的狀態是在講解基本概念的基礎上,引導學生自覺地去使用面向對象技術思考問題、分解問題、解決問題,使學生真正體會到其優勢和好處。
事實上,面向對象,從來不僅僅是編程技術,也是方法和模式。在高中信息技術的課堂上,利用有限的課時,能夠將這種思維方法和工作模式傳授給學生,那么面向對象技術的教學目的也就真正達到了。
參考文獻:
[1] 韓燕麗,楊慧炯.工程應用導向的面向對象系列課程體系重構[J]. 軟件工程,2019(3):60-62.
[2] 張成.基于核心素養的高中信息技術學科教學策略研究[J].中小學教學研究,2019(1):73-76.
[3] 譚火彬,林廣艷.培養軟件工程思想的面向對象程序設計課程改革與實踐[J].計算機教育,2018(8):53-58.
[4] 孫勇徐,建輝.定位于實踐的面向對象程序設計課程教學探索[J].教育現代化,2018(10):271-274.
[5] 譚珊珊,楊簡云,程慶雷.高中信息技術項目學習記錄表的設計與實施路徑——以《人工智能及其應用》單元為例[J].中國信息技術教育,2020(21):58-60.
[6] 周靜,吳涵.項目化學習在高中Python編程教學中的應用[J].中國信息技術教育,2020(20):55-56.
[7] 韋麗娟. 面向對象程序設計的高中編程思維培養[J]. 信息化建設, 2016(8):42.
[8] 丁智國,錢婕. 面向對象程序設計課程教學改革[J].計算機教育,2011(9):9-12
[9] 毛曉娟.基于創客教育理念的項目教學應用研究——以普通高中信息技術課程為例[D]. 天津職業技術師范大學,2018
【通聯編輯:王力】