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