?

基于Python語言的面向對象課程實踐教學探討

2017-04-10 07:00王明松錢靜媛
電腦知識與技術 2017年4期
關鍵詞:Python語言面向對象實踐教學

王明松++錢靜媛

摘要:面向對象開發思維是當代軟件工程領域重要的行為規范,是軟件工程學生必須要掌握的基本理論。該文論述了運用Python語言作為面向對象課程實踐工具的起因、優勢和具體實踐過程,將基礎理論與實踐結合,使學生加深領會面向對象領域概念,為后續課程的深入學習和具體工作實踐奠定良好的基礎。

關鍵詞:Python語言;面向對象;實踐教學;教學改革

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)04-0136-02

1 引言

面向對象課程是軟件工程專業的基礎課程,也是非計算機科學與技術專業學生選修的重要課程,在整個教學體系中占有非常重要的地位。課程教學主要目標是培養學生熟練掌握面向對象的主導思想和行為理念,應用面向對象思想解決和處理實際問題的指導方針和實踐方法。目前主流的軟件開發過程大多采用面向對象思想,用具體的某種面向對象語言去構建軟件主體,同時其也是系統設計、仿真實驗、科學計算等眾多領域的有力工具。本課程主要介紹了面向對象基本思想、類和對象、抽象、封裝、繼承、多態、消息、模板等內容,這些理論在向初學者講解時抽象難懂,學生不能夠透過抽象概念理解面向對象的實際應用過程,不能通過實例看到應用結果,使教學效果不理想。這就需要一種支持面向對象程序設計語言作為描述和實踐工具,通過上機實踐形象化地將面向對象的主要概念原理、設計模式和具體方式方法展示。學生再通過形式化理論深化,又可以熟練運用編程語言進行應用設計開發,為后續課程打下牢固的理論實踐儲備。所以教學中采用的程序設計語言,對學習面向對象知識至關重要,起著橋梁和階梯作用,是引入學生掌握面向對象理論體系的重要媒介。

2 現階段面向對象課程教學主要存在的問題

長期以來,國內眾多高校采用C++或Java作為程序設計語言進行面向對象思想、技術和方法的講授及實踐。C++或Java具有面向對象的核心特性,符合面向對象設計思想,特別是Java是純面向對象語言,要求學生完全按照面向對象模式進行編程。以此作為教學的實踐過程,課程前幾章大都講解C++或Java語言開發環境、基礎語法、程序設計方法等基礎知識,以便為后續章節的學習打下基礎。而在教學中后期引入面向對象的核心概念,如類、對象、封裝、繼承和多態性等主體內容,在教學方法上,采用案例式、研討式、項目驅動式和實踐操作等各種教學方法。這樣的課程體系,希望通過具體實際應用,逐漸構建概念的深入過程,貫穿課程整體系列,使學生通過理論實踐整合,漸次性的迭代序列,最終掌握面向對象知識體系結構。然而,從最終教學效果來看卻不甚理想,通過平時測驗和期末考試,達到優秀水平學生人數較少,大部分學生的成績處于中等偏下的狀態。大部分學生對語言運用掌握不好,語法細節模糊不清,不具備編程基本思想和良較好的編程習慣,導致無法對面向對象中的抽象和復雜的概念進行形式化編程實踐,從而更難深入理解和運用所學知識。面對這些困難,基礎薄弱的學生不得不花費大量時間用于學習基礎語法和編寫調試過程。但是本門課程的中心環節是面向對象相關概念的掌握和應用,編程語言只是實現此目標的中介,教師在前期的編程語言導入過程,不可能深入過多細節,只是起著引導和示范作用。但在課程核心內容的編程實踐時,很多學生在沒有熟練掌握編程知識的前提下,無法對面向對象的抽象進行有效的編程實踐,導致無法對面向對象程序設計范型、設計模式、多態性等內容有著深入的理解。這種雙重失效的局面,使學生感到知識體系的混亂無頭紊,對本門課程學習失去了興趣。綜上分析,形成學習困惑現象很大程度上是由于C++或Java語言及其開發環境的復雜性和細節繁雜,增加了學習課程的負擔和困難。在有限的課程時間內,學習語言反而成了很多學生的主要目標,完全淡化了本門課程的教學宗旨。為了提高學生的編程能力,有時候不得不延長編程語言內容的課時量,壓縮課程后面的核心內容,這樣就會造成本門課程中心教學內容偏離,變成了C++或Java語言編程課程,對學生發出了錯誤的引導信息,使其忽略了宏觀思想的建立,丟了西瓜撿了芝麻。

3 Python語言的面向對象特性

Python是一種面向對象的解釋性計算機程序設計語言,具有功能強大而完善的通用性,具有十多年的發展歷史,成熟且穩定?,F在國內外眾多的大學已將Python課程導入到計算機相關學科的教學體系中。Python本身特性決定了它是一門很好的面向對象程序設計語言,以下幾個特點非常有利于面向對象程序設計教學:

(1) 語法簡單實用。Python是一門語法簡約,表達豐富的計算機程序設計語言。良好的形式化設計使Python程序感覺像閱讀英語文稿,其更加接近人類的自然語言思維方式。這種具有偽代碼的特性讓編程人員專注于設計解決問題的算法過程而不是語言本身的書寫細節。Python設計上的這種清晰劃一的風格,使代碼易讀、易學習和易維護。

(2)Python是完全面向對象的語言。函數、模塊、數字、字符串都是對象,并且完全支持繼承、重載、派生、多繼承等面向對象特性,非常適合面向對象課程教學體系的要求。

(3)Python可以在交互模式下運行。通過輸入操作指令實現即時的運行結果,對教學硬件設備要求不高,非常適合在有限的課堂時間內,通過形象化展示講解教學內容。

(4)代碼的易管理可維護性。作為一種高級語言,Python可以自動管理程序低層次的運行環境,使程序員不必擔心內存泄漏等設計缺陷,能夠高效地運行在不同的操作系統上,達到了一致的通用性。Python在編程設計時讓違反了縮進規則的程序不能通過編譯,以此來強制學生養成良好的編程習慣。

(5)可擴展性。Python可以調用由其他程序語言編譯后的程序,也可以將其嵌入到C/C++程序中,實現高級語言的腳本化能力。Python有功能強大的標準函數庫,實現了許多常用功能,可快速地完成目標業務的組裝。

4 面向對象課程的Python語言實踐

由于Python語言簡單易學易用,所以對于本課程教學內容的設計,可以快速講解Python的基礎語法和基本應用,將更多教學時間分配到更重要的面向對象程序設計內容上。教學關注點不應在python的基礎語法上,程序語言學習只是為了理解面向對象原理的應用工具,要引導學生將更多的精力和時間放在面向對象的概念消化。表1列出了《面向對象》課程教學內容及學時分配。

[序號\&教學內容\&學時分配\&1\&Python語言基礎(變量、字符串和編碼、列表和字典、邏輯結構、函數)\&8\&2\&面向對象基礎(類和對象、封裝、繼承、多態、接口)\&16\&3\&異常處理和調試機制\&4\&4\&面向對象高級編程(多重繼承、元類、設計模式)\&10\&5\&文件處理和序列化\&6\&6\&應用實例\&4\&]

第一部分主要是Python語言基礎知識,包括數據類型和變量,變量引用方式,字符串編碼方式和Unicode與其他編碼的轉換,列表的定義和作用,字典的使用,條件邏輯設計,迭代循環設計,函數的定義、作用和應用。對于專業學生,前期已經學習過C語言程序設計,對于程序設計的結構化思想有著很好的基礎,已具備了一定的程序設計基礎,所以可根據學生接受和理解程度作出適當的課時縮減。對于非專業計算機學生,大部分沒有接受過系統的結構化程序訓練,對于結構化編程的基礎思路、操作技巧不熟練,則可適當增加基礎訓練學時,為以后學習打下基礎。

第二部分是面向對象程序設計基礎,主要內容包括面向對象范型、類和對象、封裝、繼承、重載、多態性、抽象類、接口和模板等,是本課程的主要教學內容。面向對象方法作為一種獨具優越性的新方法引入軟件開發過程以來,引起了行業越來越廣泛的關注和高度重視,一直是計算機界關心的重點。

第三部分異常處理是運行和調試程序的重要工具,它分離了接收程序錯誤信息和錯誤處理過程,對明晰程序設計思路,增強代碼可讀性和可維護性,提高編程效率具有重要的作用。Python的異常處理能力很強大,對于提高學生分析和調試代碼能力有著很大的幫助。

第四部分是本課程較為高級的內容,通過學習使用多重繼承和設計模式等內容,可依照前人創建的某種設計模式,更加簡單快捷地復用成功的軟件設計和體系結構,簡化設計的復雜性,減少未知風險。Python語言可以簡單、靈活和高效地實現設計模式原型。掌握了軟件設計模式,可在更高層次上掌握面向對象整體的設計理念。對以后軟件開發的學習或職業生涯具有較強的指導作用。

第五部分是文件處理及序列化。它是程序設計中經常要用到的模塊與功能,描述了Python程序如何創建、更新及處理數據文件,同時介紹了各種基于文件的數據存儲機制。

5 結語

面向對象設計是一門重要的專業基礎課程,教學目的是讓學生理解面向對象基本理念和應用實踐,學會對實際問題進行分析建模,解決具體問題。它是后續的軟件項目開發案例課程重要基礎理論,能夠加深理解軟件設計模塊化、軟件架框理論和各種開發框架等宏觀體系等高層次理論,奠定了成為優秀IT領域設計開發人才的升級路徑。面向對象思想是現代軟件開發過程的基本行為指南,為今后讓學生更好地走向社會打下良好的基石。

參考文獻:

[1] 魯特茲. Python學習手冊[M]. 3版.侯靖,譯.北京: 機械工業出版社,2009.

[2] Mark Lutz.Learning Python[M].東南大學出版社,200(6).

[3] 挪威.Magnus Lie Hetland Python基礎教程[M].人民郵電出版社,2010.

猜你喜歡
Python語言面向對象實踐教學
面向對象的計算機網絡設計軟件系統的開發
面向對象的數據交換協議研究與應用
面向計算生態的Python語言入門課程教學方案
茶學專業校企合作實踐教學探索
《電氣工程畢業設計》 課程的教學設計
高職院校商務禮儀課程教學改革探索芻議
面向對象Web開發編程語言的的評估方法
面向對象信息提取中影像分割參數的選擇
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合