曹志民,韓 建,呂秀麗,吳 云
(東北石油大學物理與電子工程學院,黑龍江 大慶 163318)
智能油田建設是保障油氣資源戰略安全底線的關鍵所在[1]。然而,我國陸上油氣資源大多已進入開發中晚期,非常規油氣資源早已成為當前我國支撐油氣生產的主力[2-3]。另一方面,海上油氣資源的可動用能力還極大地受到各種因素的制約[3]。在這種情況下,智慧油田建設已經成為我國油氣田發展的必然選擇。然而,與計算機視覺、智慧交通、智慧城市等領域相比,我國智慧油田建設才剛剛起步,還存在大量基礎性問題需要解決,同樣,對于具有智慧油田建設所需創新能力的基層人才的需求也是非常迫切。
作為油田人工智能所必需的輔助技術,石油高校中電子信息工程、計算機、自動化等專業本科人才培養方面必須針對智慧油田建設需求進行教學內容的調整與改革[4-5]。其中,程序設計類課程群建設是一個重要領域,為此本文提出了一套有效的程序設計類課程群教學體系。
為了完成程序設計類課程群教學理念和教學內容的改革,首先采用產出導向的思想,從智慧油田建設所需創新型人才知識結構,相關專業培養學生需要對典型勘探開發數據類型及特點、典型應用的性能評價要求、人工智能相關基礎理論有一定的理解,同時還需要具有數據處理、數據分析、數據可視化以及機器學習方法等多方面程序設計能力。
基于以上產出導向的分析,程序設計類課程群整體教學理念應該為:使學生在充分學習程序設計基本知識和熟練掌握程序設計方法與技巧的前提下,進一步了解勘探開發及典型“石油+智能”復雜工程應用的基本概念,并通過逐級遞進的程序設計練習來切實掌握勘探開發領域數據處理基本原理和任務分析的外延思維,以完成智慧油田建設復雜工程中智能數據分析相關領域關鍵知識的積淀,為今后成為合格的具備足夠解決跨學科復雜工程問題的智慧油田建設人才打下堅實基礎。
“C語言與數據結構”是學生大學期間學習的第一門程序設計類課程,其教學理念必須以夯實基礎和開拓視野為基礎。那么,這里說的“基礎”除了高級語言程序設計的知識基礎外,還要通過對油氣工業知名的大工程、大突破等內容拓寬學生的眼界、激發學生的學習熱情,逐步滲透石油工業中勘探開發典型應用及典型數據的相關基礎。“C語言與數據結構”課程的基礎包括如下幾個方面:
2.1.1 程序的基本組成及典型結構
該部分的重點在于通過貫穿全課程始終的反復強調與對比,以常量、變量、指針等基本概念的理論定義及內存中的物理實現及區別為基礎和根本,不斷深入理解數組、函數、結構體、鏈表、樹、圖等越來越復雜的概念和數據結構。
2.1.2 程序的調試和分析方法
作為學生接觸的第一門程序設計課程,該部分內容的重點是要求學生建立良好的程序設計思維和習慣,并不斷在程序調試和分析過程中把變量、數據和內存的關系進行具體化,使學生真正掌握程序設計是和計算機“交流”的語言這一概念進行深入理解。
2.1.3 算法與數據結構典型思維
前兩部分內容是“C語言與數據結構”這門課的基本要求和整個程序設計體系的基礎。該部分通過算法、算法評價及數據結構對算法的影響等內容的講解,以儲層巖性識別算法的性能評價及對比為例,幫助學生切實實現對于數據結構和算法在復雜工程問題解決過程中的重要性的理解,完成程序設計類課程體系中從學習基礎知識到解決實際問題的過渡。
2.2.1 以靈動的函數設計為重點,強調工程問題分析的模塊化、接口化方法
MATLAB程序設計具有C語言程序無法比擬的靈活性,以實際項目開發歷程為例,重點強調解決工程問題過程中靈活實現程序設計的模塊化,特別是接口設計的重要性,培養學生靈活地解決實際問題的能力并建立良好的程序設計習慣。
2.2.2 以豐富直觀的數據可視化為重點,提高對工程問題分析實現能力
承接“C語言與數據結構”課程的大實驗,以實際測井大數據及其聚類分析結果為基礎,通過相關數據的可視化處理讓學生真正感受數據可視化重要性,提升學生數據分析和展示的實現能力。
2.2.3 以全面系統的科學計算為重點,增強工程問題數學建模分析的能力
該部分內容以測井大數據為載體,通過曲線擬合、缺失曲線重構等形式,結合數據可視化過程,增強學生對復雜工程為題地理解,建立良好的數據分析與相關方案設計的能力。
2.2.4 以人工智能實現體系為重點,建立對勘探開發應用中大數據分析的初步了解
通過典型機器學習方法的學習,讓學生充分理解人工智能的概念和特點,結合前面的數據處理、分析及可視化學習,全面提升學生利用人工智能方法解決勘探開發及相關領域工程問題的能力。
Python語言的面向對象能力、可擴展能力及可解釋能力都非常優秀,是進一步夯實程序設計,特別是智能程序設計能力的高級語言。為此,“Python語言程序設計”課程的教學理念是開拓程序設計眼界,培養智能應用設計能力。
2.3.1 以面向對象程序設計為基礎,強調工程問題分析中任務對象的抽象
該部分內容以Python語言基本語法為基礎,重點介紹面向對象程序設計的思想,并通過單砂體儲層類對象的建立增強學生程序設計能力和對勘探開發領域應用地理解。
2.3.2 以典型人工智能任務及實現為例,講解人工智能應用系統的程序設計方法和理念
通過基于TensorFlow及OpenCV等相關Python工具的介紹和應用,以基于CNN的人臉識別項目開發為例,通過對比分析讓學生建立數據量、數據質量和算法質量對問題解決的重要性,進一步梳理從數據到最終人工智能方案實現中各個環節的關系和知識重點。
2.3.3 以實際勘探開發大數據分析任務為例,鍛煉混合編程智能任務快速開發能力
該部分內容讓學生綜合利用MATLAB和Python程序設計的優勢,完成測井大數據巖性智能識別復雜工程問題的人工智能解決方案設計,進一步夯實學生利用人工智能技術解決復雜工程問題的能力。
通過以上三門程序設計類課程的綜合設計,不僅能夠從接觸程序設計開始就建立學習程序設計及人工智能的積極性外,還能通過持續加深融入的智慧油田建設相關內容,切實提高電子信息工程專業本科生培養質量。
針對石油高?,F有程序設計類課程教學與飛速發展的智慧油田建設的要求越來越脫節的問題,完成了“石油+智能”理念指導下的石油類高校程序設計類課程群設計,提升了課程群對學生創新能力培養的作用。通過近一輪的教學實踐,相關老師普遍反映學生的程序設計能力和復雜工程問題的分析能力得到了顯著提升,教學成果也得到了工程專業認證入校專家的認可,課程群建設為電子工程專業通過工程教育認證作出了較大的貢獻。