邵仲世,邵煒世*
(1.陜西師范大學計算機科學學院,陜西 西安 710119;2.南京師范大學計算機與電子信息學院/人工智能學院,江蘇 南京 210023)
近年來,伴隨著人工智能興起及推動,人工智能的相關技術已應用到了衛生、教育、能源、環境等眾多關鍵領域。Python作為人工智能領域最常用的語言,備受學術界和工業界重視。Python定位是“優雅”,“明確”,“簡單”,具有語法簡潔、可移植性、可擴展性、可嵌入性等特點。因此,Python程序設計課程已成為高等學校計算機科學、人工智能等專業的核心課程,也成為非計算機專業計算機編程語言課的首選。
當然,非計算機專業學生學習程序設計并不是為了培養信息技術人才,而是為了方便學生在其所從事的專業領域進行實踐或科學研究。例如:地理學專業的學生通過計算機語言可以處理空間數據、幾何圖形,制作地圖等[1];經管專業的學生可以借助計算機語言進行金融數據的挖掘和處理[2];醫學專業的學生可以分析醫學數據做醫療輔助診斷[3]。Python語言的優勢在于具有非常強大的第三方庫資源,對于不同領域的研究具有很好的支持,在基礎庫上進行開發,可大大縮短開發周期,同時Python也建立了良好的生態環境,這也是非計算機專業學生學習Python編程的必要性。
文章結合非計算機專業學生學習 Python語言的現狀,探討非計算機專業Python程序設計教學中的一些改革措施。
目前,對于“Python程序設計”課程教學,無論是作為主修課程的計算機專業,還是作為輔修課程的非計算機專業,都存在一些共有的問題。特別是面對零基礎的非計算機專業學生,這些問題在很大程度上降低了學生學習的積極性,造成不好的學習效果。具體反映在以下3個方面。
(1)教學大綱及定位不明確。
沿用了C、Java、C#等程序設計教學內容、教學方法和教學案例,無法體現Python語言的特性。C、Java、C#等都屬于強類型計算機語言,在基礎教學中側重于對語法結構知識學習,然而要使用這些語言去解決問題,就必須對算法設計、數據結構等相關課程做進一步學習,這已經超出了非計算機專業學習的范疇。非計算機專業學習的目的就是為了盡快上手,通過若干學時的學習后能直接解決問題。
(2)教學層次不明確。
課程教學內容沒有針對不同層次的學生做適當的調整,依舊是按照傳統教學思路,先講知識點,后練習代碼的原則,這樣思路使得非計算機專業的學生很難直接理解Python語言的特點和學習目的。再者,不同專業的學生基礎不盡相同,比如:數學、物理、自動化、信息管理等專業的學生具有良好的數學功底,對程序邏輯思想的理解較快,這時就需要加快教學進度,盡快進入Python語言的核心環節教學。
(3)實驗環節重視不夠。
傳統程序設計教學都是采用先理論,再上機操作的教學模式。學生是零基礎,在上機操作過程中,剛開始往往不知道如何下手,無法及時理解上課時所講的知識點,特別是還無法理解程序思維,操作難度較大,久而久之產生畏難情緒,上機實驗成為一種負擔,興趣不高。
(1)明確非計算機專業學生Python語言教學大綱。
Python程序設計大綱具有一定針對性,區分于專業計算機學生教學大綱。從教學目標上來講,非計算機專業的學生通過學習基本語法知識和第三方庫的安裝方法后,可以自如地分析和管理相關專業領域的數據。學生既掌握了通用程序的開發技術,又能熟練運用專業相關的Python庫。從教學內容上來講,大部分高校的非計算機專業的Python程序設計都依托于國家計算機二級考試的大綱。上述教學內容可以幫助學生培養Python的通用編程技術,但是很難直接應用 Python去解決專業相關問題。“學以致用”一直是學生希望學習知識技能的初衷,所以針對不同專業學生可以介紹相關專業常用的第三方庫,并依托于專業相關的教學案例介紹第三方庫的使用。
(2)推廣不同專業層次化教學
在有限的教學學時內,可以將Python學習內容分為基礎階段和進階階段。在基礎階段,學生需要掌握程序設計的基本思想、基本語法知識和應用實例,了解集成開發環境的特點和使用方法,培養良好的編程素養。在進階階段,了解Python生態,掌握常用第三方庫的使用方法,并結合專業相關領域,學習本專業的第三方庫,培養解決實際問題能力。從不同專業角度來講,也需要不同層次的劃分,也就是針對不同專業應該設置不同的學習內容和學習目標,達到一類專業一本大綱,如:針對地理、化學專業,學生計算機前驅知識不如信息類專業,在基礎階段就需要考慮利用更多學時以幫助學生建立程序設計的思維;在進階階段,盡可能實現教學案例專業化,專業相關的教學案例更容易激發學生的學習興趣。
(3)融合線上資源鞏固學習成果。
豐富的線上學習資源為學好Python語言提供了堅實的基礎。受制于課時限制,Python基礎語法知識和第三方庫很難完全在線下課堂上進行介紹,這就需要學生在課后通過線上資源進行補充學習。任課教師可以整合線上的優質教學資源,例如:中國大學MOOC平臺國家精品課程、嗶哩嗶哩平臺、菜鳥教程、伯樂在線、量化課堂、Python123等,將資源分配給學生后,學生可以有選擇的自主學習。通過這些平臺可及時跟蹤學生線上學習的效果,對學生在學習過程中產生的問題及時反饋。在限定時間內進行考核,以此來補充解決部分同學學習自主性不夠、渾水摸魚等問題,同時也可以對線下教學和實驗教學進行有針對性的調整。
(4)強化學生上機實驗能力的培養。
實驗教學課時應占到一定的比重,在教授理論知識的同時,將大量的實驗學時分配到上機實驗環節。在上機環節中,應采取任務驅動的方式,制定不同知識點的編程任務。對于非計算機專業學生而言,程序設計的思維尚未形成,編程能力需要培養,所以制定任務不應該太難。任務太大,學生沒有能力完成則會打擊學習積極性;任務太小,又起不到培養學生能力的作用。任務制定應具有梯度性和延續性,以進階的方式逐步引導學生建立知識體系,逐步培養Python語言的應用能力。因此,非計算機專業應以培養合格的Python語言應用能力為導向,以課程知識為載體,結合學生專業領域,制定有針對性的訓練任務。
(5)“課程思政”融入Python教學,激發學生學習興趣。
任課教師在教學的過程中應融入思政內容,使學生在接受專業知識的同時自覺地進行世界觀、人生觀、價值觀的塑造。例如,可以從Python語言發展的歷程中挖掘代表性人物不畏艱苦、勇攀高峰的敬業精神以及追求夢想、不懈奮斗的創新精神,激發學生的愛國主義情懷[4]。也可以在實驗教學中融入理想層面的精神指引,如通過綜合項目達到綜合實踐能力和創新意識的培養。Python程序設計課程蘊含著豐富的思政內容,在思想政治教育中發揮著重要作用,任課教師應在教學過程中,充分挖掘思政元素,激發學生學習興趣。
非計算機專業學生學習python語言具有重要意義,可以開拓視界,更好地培養計算機程序開發思維。文章從教學大綱、教學層次、實驗教學等3個方面對當前Python程序教學現狀進行了分析,并針對Python程序設計在教學大綱、層次化教學、線上教學、實驗教學、課程思政等4個方面提出了教學改革措施,以求激發學生對Python語言的學習興趣,提升Python編程技能和科研創新能力。