彭鵬



摘要:自定節(jié)奏教育是斯坦福2025計(jì)劃四項(xiàng)核心部分中的一項(xiàng),將大學(xué)生的在校學(xué)習(xí)分為了三個(gè)階段(調(diào)整、提升、啟動(dòng))。本次研究基于斯坦福2025計(jì)劃,以Python程序設(shè)計(jì)為背景,以在校生特色為主,將Python程序設(shè)計(jì)的教學(xué)模式分為四個(gè)階段,讓學(xué)生根據(jù)自己的掌握情況在階段中進(jìn)行學(xué)習(xí)調(diào)整。以此來達(dá)到因材施教,提升學(xué)生的編程能力,從而推動(dòng)教學(xué)改革。
關(guān)鍵詞:Python程序設(shè)計(jì);斯坦福大學(xué)2025計(jì)劃;自定節(jié)奏教育;教學(xué)改革
中圖分類號(hào):TP311? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)34-0164-03
1 引言
提及人工智能,我們腦海中浮現(xiàn)出的往往是Python程序語言,迄今為止,人工智能在現(xiàn)代社會(huì)中的地位越來越重要,而Python作為人工智能(機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等)的首選編程語言,由于其開源的特性,已經(jīng)被移植到多個(gè)平臺(tái)上(Linux、Window、MacOS、Solaris等),且標(biāo)準(zhǔn)庫已經(jīng)非常強(qiáng)大,再由全球的開發(fā)者持續(xù)貢獻(xiàn)更多的庫資源,Python不僅與人工智能緊密地捆綁在一起,也滲透到日常辦公、IT運(yùn)維、電子商務(wù)、社交網(wǎng)絡(luò)等各個(gè)行業(yè)當(dāng)中,體現(xiàn)出其強(qiáng)大功能。
截至2020年,TIOBE榜(結(jié)合程序員、課程和廠商使用搜索引擎等工具統(tǒng)計(jì)出的排名數(shù)據(jù)榜),Python優(yōu)勢(shì)非常明顯,不僅漲幅巨大,而且依靠其強(qiáng)大的社區(qū)資源,生態(tài)應(yīng)用日益劇增,用途廣泛。
1.1 Python語言
Python是最為熱門的編程語言之一,語法要素不多,是一門簡(jiǎn)單易學(xué)的程序設(shè)計(jì)語言,依靠其便捷性、靈活性的第三方擴(kuò)展,成就了其在程序開發(fā)領(lǐng)域的地位。特點(diǎn)如下[1]:
(a)簡(jiǎn)單:對(duì)于初學(xué)者(包括計(jì)算機(jī)專業(yè)或非計(jì)算機(jī)專業(yè)的學(xué)生),非常接近人類的語言,強(qiáng)制的語法格式,使其代碼易于閱讀。Python是解釋類型的程序設(shè)計(jì)語言,偽代碼本質(zhì)是其較大的優(yōu)勢(shì),能夠降低學(xué)生
(b)開源:Python由全世界的工程師共同維護(hù),無論你是面向過程、面向?qū)ο蠡蛘呤呛瘮?shù)式編程的工程師,都可以在Python中找到合適的語言范式。而且依賴Python的開源性,在面向開源及私有軟件項(xiàng)目的托管平臺(tái)Github上擁有近一百八十萬個(gè)項(xiàng)目倉庫。
(c)緊缺:目前國內(nèi)對(duì)Python開發(fā)工程師的需求高達(dá)四十萬,涉及領(lǐng)域如大數(shù)據(jù)分析、人工智能、應(yīng)用運(yùn)維等,且薪資普遍高于其他類型工程師,隨著國內(nèi)在人工智能的投入與規(guī)劃,對(duì)于Python人才的需求會(huì)呈現(xiàn)爆發(fā)式增長。
2 自定節(jié)奏教育
斯坦福大學(xué)于2010年成立專門的教學(xué)改革小組,開啟新的本科教學(xué)工作研究項(xiàng)目。圍繞著幾百年來一直保持不變的教育模式進(jìn)行研究,認(rèn)為在線學(xué)習(xí)會(huì)潛在地影響高等教育中的時(shí)間、空間、專業(yè)知識(shí)、資格認(rèn)證和學(xué)生機(jī)構(gòu)。斯坦福大學(xué)認(rèn)為大學(xué)有多重目標(biāo),它不只是一個(gè)獲得專業(yè)知識(shí)和發(fā)展能力的地方,也是一個(gè)成熟的地方。在這種復(fù)雜特殊的環(huán)境當(dāng)中,多重因素交織在一起,希望通過探索現(xiàn)在和未來的校園學(xué)習(xí)和生活來更好地推動(dòng)教育的發(fā)展。
四項(xiàng)核心要素組成了斯坦福大學(xué)2025計(jì)劃的教育目標(biāo)。它們是開環(huán)大學(xué)、軸翻轉(zhuǎn)[1]、自定節(jié)奏學(xué)習(xí)[2]、有目的地學(xué)習(xí)。此次教學(xué)改革的探索嘗試是自定節(jié)奏教育。
自定節(jié)奏教育(Paced Education):強(qiáng)調(diào)學(xué)生個(gè)性發(fā)展,根據(jù)學(xué)生個(gè)人的基礎(chǔ)條件和意愿設(shè)計(jì)自己的學(xué)習(xí)節(jié)奏來完成各階段的學(xué)習(xí),主要包括三個(gè)階段:調(diào)整(Calibrate)、提升(Elevate)和啟動(dòng)(Activate)。這三個(gè)階段又分別個(gè)性化地預(yù)設(shè)了學(xué)習(xí)時(shí)間及其目標(biāo):
(a)調(diào)整階段為6至18個(gè)月,旨在使學(xué)生通過了解學(xué)校、教師、專業(yè)以及自己的興趣特質(zhì)等來選擇未來的學(xué)習(xí)。
(b)提升階段為12至24個(gè)月,學(xué)生在此階段組件包括學(xué)術(shù)導(dǎo)師、個(gè)人導(dǎo)師以及高年同學(xué)和信任伙伴在內(nèi)的個(gè)人學(xué)習(xí)委員會(huì),營造有利于深度學(xué)習(xí)專業(yè)知識(shí)的環(huán)境。
(c)啟動(dòng)階段為12至18個(gè)月,意在培養(yǎng)學(xué)生將學(xué)習(xí)的知識(shí)轉(zhuǎn)化為實(shí)際應(yīng)用活動(dòng)中,如實(shí)習(xí)、項(xiàng)目、研究等。
結(jié)合我校軟件技術(shù)專業(yè)的人才培養(yǎng)方案,在開設(shè)《Python程序設(shè)計(jì)》之前的學(xué)期已經(jīng)學(xué)習(xí)了《Java程序設(shè)計(jì)》和《Java程序設(shè)計(jì)實(shí)訓(xùn)》,學(xué)生已經(jīng)有了編程的基礎(chǔ),尤其是面向?qū)ο蟮氖浅绦蛟O(shè)計(jì)思想,便于開展Python程序設(shè)計(jì)教學(xué)。
我校軟件專業(yè)學(xué)生在兩年的專業(yè)學(xué)習(xí)后將進(jìn)行一年的頂崗實(shí)習(xí),然后進(jìn)入社會(huì)工作,為了更好地滿足相關(guān)公司對(duì)軟件專業(yè)學(xué)生的能力要求,增強(qiáng)學(xué)生的動(dòng)手能力和主動(dòng)學(xué)習(xí)習(xí)慣,希望通過此次教學(xué)探索達(dá)到目標(biāo)。
3 自定節(jié)奏教育的教學(xué)實(shí)踐
結(jié)合我校軟件專業(yè)學(xué)生的人才培養(yǎng)方案,在《Python程序設(shè)計(jì)》課程開設(shè)前的學(xué)期已經(jīng)開設(shè)的課程有《C#程序設(shè)計(jì)》《軟件工程》《大數(shù)據(jù)分析與應(yīng)用》《數(shù)據(jù)結(jié)構(gòu)》《Linux程序設(shè)計(jì)》《計(jì)算機(jī)網(wǎng)絡(luò)》《Java程序設(shè)計(jì)》《網(wǎng)頁設(shè)計(jì)與開發(fā)》等課程,同學(xué)期開設(shè)的課程有《軟件測(cè)試技術(shù)》《數(shù)據(jù)庫應(yīng)用與維護(hù)》《UML建模與設(shè)計(jì)模式》《JavaEE企業(yè)級(jí)開發(fā)》等課程,其中有專業(yè)核心課程,也有基礎(chǔ)必修課程,其中網(wǎng)頁設(shè)計(jì)、數(shù)據(jù)庫、計(jì)算機(jī)網(wǎng)絡(luò)等基礎(chǔ)課程是學(xué)習(xí)Python程序設(shè)計(jì)的基礎(chǔ),再加上已經(jīng)學(xué)習(xí)過Java程序設(shè)計(jì),有了面向?qū)ο笏季S模式,對(duì)Python程序設(shè)計(jì)有相當(dāng)?shù)膸椭δ堋?/p>
在斯坦福大學(xué)2025計(jì)劃軸翻轉(zhuǎn)[2]的基礎(chǔ)上,已經(jīng)把教學(xué)過程分為如表1所示:
在傳統(tǒng)的高職教育中,學(xué)生的學(xué)習(xí)計(jì)劃被分為兩年在校學(xué)習(xí)時(shí)間和一年的實(shí)習(xí),在每一門的課程學(xué)習(xí)中每個(gè)專業(yè)、每個(gè)班級(jí)的學(xué)生被當(dāng)成一個(gè)整體來進(jìn)行教學(xué),優(yōu)點(diǎn)是可以整體把握教學(xué)進(jìn)度,存在的缺點(diǎn)是學(xué)生的學(xué)習(xí)能力參差不齊,導(dǎo)致最終的掌握程度不同。
自定節(jié)奏教育[3]將學(xué)生的學(xué)習(xí)過程分為“調(diào)整階段(Calibration)”“提升階段(Elevation)”“啟動(dòng)階段(Activation)”,每個(gè)學(xué)生可以根據(jù)自己的學(xué)習(xí)習(xí)慣在自我掌握的程度上決定是否進(jìn)入下一階段,也可循環(huán)往復(fù)在三個(gè)階段。
第一階段(調(diào)整階段):該階段重點(diǎn)在于使學(xué)生盡快適應(yīng)Python開發(fā)特色。
Python的基礎(chǔ)語法如下:
(1)開發(fā)環(huán)境搭建:針對(duì)Windows、Linux、MacOS各種系統(tǒng)的搭建,開發(fā)工具PyCharm的使用方式等;
(2)基本語法:注釋、行與縮進(jìn)、變量和數(shù)據(jù)類型、標(biāo)識(shí)符和關(guān)鍵字、數(shù)值類型、運(yùn)算符及位運(yùn)算等;
(3)常用語句:判斷、循環(huán)和其他語句等;
(4)字符串:輸入輸出、內(nèi)建函數(shù);
(5)列表、元組和字典:不同容器的操作方式和內(nèi)建函數(shù)用法;
(6)函數(shù):參數(shù)、返回值、作用域、遞歸和匿名函數(shù)、日期時(shí)間函數(shù)等。
軟件專業(yè)學(xué)生在之前的學(xué)期中已經(jīng)學(xué)習(xí)過Java、C#等程序設(shè)計(jì)語言,已經(jīng)掌握了較好的面向?qū)ο笏季S模式開發(fā)基礎(chǔ),所以絕大多數(shù)學(xué)生能夠順利平穩(wěn)地度過,而且軸翻轉(zhuǎn)教學(xué)中的第一階段為基礎(chǔ)語法,與自定節(jié)奏教育的“調(diào)整階段”契合,與Java、C#語言相似的語法以相對(duì)較快的速度講授并練習(xí),重點(diǎn)講授Python特有的語法知識(shí)點(diǎn),如:列表、元組和字典等,通過四個(gè)教學(xué)周的學(xué)習(xí)讓學(xué)生調(diào)整好自己的狀態(tài)適應(yīng)Python的開發(fā)特色。
第二階段(提升階段):該階段重點(diǎn)在于讓學(xué)生結(jié)合實(shí)際項(xiàng)目發(fā)現(xiàn)薄弱點(diǎn),學(xué)習(xí)后能提升自身能力。
教學(xué)中以Python最常見的爬蟲項(xiàng)目為例,目前比較常用的爬蟲技術(shù)有urllib、requests、scrapy等[4],各自優(yōu)缺點(diǎn)不同,選取urllib為例進(jìn)行教學(xué),流程如圖1所示:
(1)導(dǎo)入包涉及知識(shí)點(diǎn):Python模塊,知識(shí)薄弱點(diǎn)為如何引入第三方模塊;
(2)設(shè)置抓取網(wǎng)頁、HTTP頭部header:知識(shí)薄弱點(diǎn)為網(wǎng)頁URL組織Get請(qǐng)求參數(shù)和HTTP請(qǐng)求頭部參數(shù);
(3)發(fā)送HTTP請(qǐng)求網(wǎng)頁:知識(shí)薄弱點(diǎn)為如何使用第三方模塊相關(guān)函數(shù)方法;
(4)解析返回的網(wǎng)頁內(nèi)容并存入列表:知識(shí)薄弱點(diǎn)為HTML網(wǎng)頁代碼結(jié)構(gòu)、XPath格式用法;
(5)進(jìn)入列表循環(huán)并解析內(nèi)容存入文本文件:知識(shí)薄弱點(diǎn)為列表循環(huán)、Python文件讀寫操作、使用第三方模塊進(jìn)行圖片下載等。
通過該階段的項(xiàng)目應(yīng)用讓學(xué)生發(fā)現(xiàn)已學(xué)知識(shí)當(dāng)中的薄弱點(diǎn),不只是Python的知識(shí)點(diǎn),還包括HTML、計(jì)算機(jī)網(wǎng)絡(luò)等其他學(xué)科的薄弱點(diǎn),通過項(xiàng)目促進(jìn)學(xué)生再次夯實(shí)相關(guān)學(xué)科知識(shí)點(diǎn),促進(jìn)學(xué)生全面發(fā)展,增強(qiáng)其自我學(xué)習(xí)、自我修復(fù)、自我增強(qiáng)的能力。補(bǔ)齊短板后并自我選擇進(jìn)入下一階段學(xué)習(xí)新技能。
第三階段(啟動(dòng)階段):
斯坦福2025計(jì)劃當(dāng)中的激發(fā)階段是指將已掌握的技能知識(shí)應(yīng)用到現(xiàn)實(shí)當(dāng)中,結(jié)合本校軟件專業(yè)學(xué)生特點(diǎn)布置相應(yīng)的項(xiàng)目,在對(duì)應(yīng)的項(xiàng)目中重新進(jìn)入第二階段再次發(fā)現(xiàn)新的知識(shí)薄弱點(diǎn),以此循環(huán)往復(fù)第二、第三階段,能夠豐富學(xué)生的Python編程知識(shí)并提升能力,項(xiàng)目如表2:
該階段教學(xué)以項(xiàng)目督促學(xué)生找自身的薄弱點(diǎn),如此反復(fù)多個(gè)項(xiàng)目后學(xué)生即可自主學(xué)習(xí)大型項(xiàng)目增強(qiáng)動(dòng)手能力。
4 結(jié)語
針對(duì)斯坦福大學(xué)2025計(jì)劃的自定節(jié)奏教育模式,借以項(xiàng)目教學(xué)的模式查找學(xué)生的薄弱點(diǎn),反向督促學(xué)生找到掌握還不夠熟練的技能知識(shí)點(diǎn),通過課堂教學(xué)和持續(xù)的自我學(xué)習(xí)來補(bǔ)足技能短板,提升對(duì)Python的興趣。此種教學(xué)改革探索也督促任課教師持續(xù)的學(xué)習(xí)能力,通過編寫多個(gè)項(xiàng)目來融入課堂教學(xué)當(dāng)中,促成自身的技術(shù)迭代更新。
參考文獻(xiàn):
[1] 嵩天,黃天羽. Python語言程序設(shè)計(jì)教學(xué)案例新思維[J]. 計(jì)算機(jī)教育,2017(12):11-14.
[2] Stanford University 2025. Axis Flip[EB/OL].[2020-12-12].http://www.stanford2025.com/axis-flip
[3] Stanford University 2025. Paced Education[EB/OL].[2020-12-12].http://www.stanford2025.com/paced-education
[4] 孫夢(mèng)薇,姚渝琪.關(guān)于爬蟲在網(wǎng)頁信息統(tǒng)計(jì)中的應(yīng)用探討[J].電子世界,2020(5):60-61.
【通聯(lián)編輯:王力】