

摘 要:C語言作為20世紀70年代開發的語言,其出現的時代背景與應用需求和現在的需要相差甚遠。然而由于慣性,基于C語言的編程導論課程體系依然沿用至今。本文分析了C語言作為編程入門語言所存在的缺陷,最終給出了麻省理工學院與優達學城的基于python的計算機專業課程體系架構的基本框架。
關鍵詞:C語言;python;編程導論
計算機專業學生入學后的第一個專業課程的安排總是設計培養計劃時討論的焦點。其中比較熱點的問題是,第一個專業課應該是介紹為主的還是開始嘗試解決一些挑戰性問題。20年前的做法是,第一個專業課以介紹為主,不引入過于專業的內容。然而,隨著時代的發展,電腦得到了普及。編程語言的日益更新也為一些改變提供了方便。
1 基于C語言的教學體系
20世紀80年代,C語言首次作為編程入門教學語言被使用[1]。在那個時代,面向對象的語言還沒有得到廣泛的推廣。很多人對計算機的基本理解還未成熟。在這種社會背景下,C語言就成為了當時的最佳選擇。在國內,清華大學的譚浩強老師帶頭開發了基于C語言的編程教學課程體系。由于該課程體系符合當時的教學環境,得到全國高校計算機專業的普遍認可。然而,將近40年后的今天,雖然有更好的選擇,僅僅是因為慣性,我們還是在沿用著當時的課程教學體系。
現在很多國內的大學在教學編程導論課程的時候依然將C語言選為程序設計入門語言。雖然從全世界范圍統計,C語言的使用量與Python是不相上下的,可是由于以下幾個原因,C語言已經不再是編程入門教學的最佳選擇:
(1)C語言是比較原始的語言,其開發時間是1972年,那個時候寫程序是以節省內存為主要考慮。其開發時的時代背景與應用需求和現在相差甚遠。
(2)C語言是比較接近計算機底層的語言,對于新入校的學生教這種語言可能會有一定的壓力,尤其是講到有關指針的內容時,學生可能會比較困擾。
(3)從行業現狀來看,能把C語言當成常用語言編程的程序員一般都是處在金字塔頂端的稀缺人才。換句話說,完全掌握C語言的靈活又實用的技巧需要很大的耐心和付出。如果學了一點語法就半途而廢,學習的內容也不具備繼承性。
(4)由于其他編程語言的快速發展,C語言適用的環境非常的有限。從商業角度看,現在C語言主要用于嵌入式開發,內核開發等編寫比較底層的代碼。相比之下,雖然Python不會用于底層,可其應用面很廣,非常適合初學者。而C語言更適合學有所成,并想了解底層的開發人員。
2 基于Python的計算機專業教學體系
Python包含了一組功能完備的標準庫[2]。在這些庫的協助下,程序編寫者可以高效的完成許多復雜的任務。它的語法非常接近人類的思考方式,它使用縮進定義語句塊的方式簡化了大多數程序設計語言使用大括號傳統。由于上述原因,Python已成為主流大學最常用的編程語言。尤其是在教學編程的導論類課程中,大量的在使用Python編程語言。
Python之所以能如此流行起來,很大程度上受益于其簡單的語法結構。Python的定位是“優雅”“明確”“簡單”,所以Python程序看上去總是簡單易懂,初學者學Python,不但入門容易,而且如能深入學習,可以編寫非常復雜的程序。
2.1 麻省理工學院
麻省理工學院(MIT)素以頂尖的工程學和計算機科學而著名。該校的計算機工程、電機工程等諸多工程學領域在2019—2020年世界大學學術排名中位列世界前五,在2018—19年US News美國研究生院排名中位列工程學第一、計算機科學第一,與斯坦福大學、加州大學伯克利分校一同被稱為工程科技界的學術領袖。[3]。
2001年,美國麻省理工學院主導并啟動了開放課件項目,決定將其所屬二級學院的3000多門課程的所有資源發布到互聯網上,供全球學習者免費使用。經過20年時間的積累,其資源的受益者已超過1億[4]。
通過研究MIT《電子與計算機科學學院》的課程體系框架,不難發現,其中大多數需要計算機編程的課程是基于python展開的。這些課程貫穿算法、數據結構、數據科學、人工智能、機器人學等二級學科。開課層次不僅有本科生,還包含了研究生階段。因此,MIT還專門開發了一門名為《Introduction to Computer Science and Programming in Python》的課程。而該課程被定位為所有后續需要編程的計算機類課程的先導課程。下表中給出了部分以python作為開發語言的課程名單與開課的層次。
2.2 優達學城
Udacity(優達學城)是由前 Google X Lab 創始人、斯坦福大學人工智能教授、全球無人車發明者 Sebastian Thrun 在2011年創立的在線前沿科技教育平臺[5]。目前,優達學城在中國、印度、歐洲、巴西、迪拜5個國家設立分部。Udacity(優達學城)與全球行業領袖共同設計教育內容,讓每個人都有機會學習并掌握人工智能、數據科學、自動駕駛、自然語言處理、計算機視覺、AI量化投資、區塊鏈、云計算等前沿科技與熱門信息與開發技術。Udacity(優達學城)的“納米學位”認證項目和Google、Facebook、IBM、亞馬遜、Nvidia等全球知名科技企業合作開發,通過系統的課程設計、項目實戰和個性化輔導,將學員培養為優秀的工程師、開發者和數字經濟時代為企業所需的優質人才。
優達學城的納米學位項目,為學員提供貼合實際應用場景的實戰項目、一對一技術輔導、個人職業建議和咨詢服務,一門納米學位課程的學習時長從3個月到9個月不等,到目前為止已發布超過30門的在線課程。而這些納米學位課程中,一半以上的課程都是基于Python編程語言展開的。在編程語言的選擇上該公司遵循的原則是,只要能用Python解決的問題,盡量不使用其他編程語言。而《Python編程入門》作為入門課程提供給零基礎學員。下圖展現了優達學城基于Python的課程教學體系。其中分別包含了《人工智能》《數據科學》與《無人駕駛》三個教學系列。而這三個系列都是以Python語言作為自己的編程語言展開教學的。
3 結語
C語言作為第一批廣泛使用的編程語言之一,從開發至今在高校計算機教學體系內流行了40余年。然而隨著計算機硬件成本的降低與開發人員人力成本的提高,工程開發效率逐漸放到了程序運行效率之前。在這種大背景下,python語言成為了很多國外高校與慕課平臺的編程入門課程的首選。本文分析了C語言不適應當前教學環境的一些缺陷和python作為教學編程語言的一些優勢,并進一步給出了MIT與優達學城基于python開發出的課程教學體系。
參考文獻:
[1]陳婷.C語言程序設計實驗教學改革探究[J].實驗技術與管理,2010,27(10):182-184.
[2]肖旻,陳行.基于Python語言編程特點及應用之探討[J].電腦知識與技術,2014,10(34):8177-8178.
[3]許濤,嚴驪.國際高等教育領域創新創業教育的生態系統模型和要素研究——以美國麻省理工學院為例[J].遠程教育雜志,2017,35(04):15-29.
[4]李靜,王美,任友群.解放知識,給力心智:訪美國麻省理工學院開放課件對外關系部主任史蒂芬·卡爾森[J].開放教育研究,2011(4):4-11.
[5]趙宏媚.Udacity在線課程平臺研發人工智能系統以實現慕課可視化[J].世界教育信息,2019,32(16):78.
作者簡介:肖克來提(1988— ),男,維族,新疆博樂人,碩士研究生,講師,研究方向:人工智能。