童 玲
(西安外國(guó)語(yǔ)大學(xué) 通識(shí)教育學(xué)院,陜西 西安 710128)
現(xiàn)代社會(huì)對(duì)文科專業(yè)的人才需求是交叉型和復(fù)合化的,在信息社會(huì)體現(xiàn)在需要更多具有計(jì)算思維能力的文科從業(yè)者。社會(huì)傳統(tǒng)一般認(rèn)為文科學(xué)生形象思維、想象力強(qiáng)而邏輯思維與抽象思維弱,而人才培養(yǎng)方案中課程設(shè)置“人文社科一邊倒”情況與學(xué)生選修避開科學(xué)技術(shù)課程的習(xí)慣,更加劇了此類說法的認(rèn)可度。計(jì)算思維是20 世紀(jì)周以真教授提出的一種思維模式,其并非要求所有非計(jì)算機(jī)專業(yè)人士去學(xué)習(xí)計(jì)算機(jī)學(xué)科知識(shí),而是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計(jì)以及人類行為理解等一系列思維活動(dòng),這被視作信息社會(huì)的個(gè)人技能的組合成分。學(xué)習(xí)計(jì)算思維在復(fù)雜專業(yè)問題求解方面的落腳點(diǎn)是程序設(shè)計(jì),這也正是近年來(lái)文科專業(yè)開設(shè)程序設(shè)計(jì)課程的初衷。程序設(shè)計(jì)語(yǔ)言繁多,Python 語(yǔ)言以其簡(jiǎn)單易學(xué)、強(qiáng)大的數(shù)據(jù)處理能力和豐富的第三方開源庫(kù)的支持等優(yōu)勢(shì),近年來(lái)逐漸受到高校非計(jì)算機(jī)專業(yè)的認(rèn)可。在這種背景下,越來(lái)越多文科專業(yè)在培養(yǎng)方案中開始增設(shè)Python 程序設(shè)計(jì)課程。
Python 課程受到歡迎的同時(shí)也暴露出教學(xué)中的一些問題,如部分同學(xué)反映編程學(xué)習(xí)“課上感覺聽會(huì)了,課后卻無(wú)從下手”“成就感與茫然感并存”等;教師反饋教學(xué)過程中期開始學(xué)生學(xué)習(xí)效果下降現(xiàn)象突出,學(xué)生自主編程能力弱等。傳統(tǒng)程序設(shè)計(jì)教學(xué)在文科專業(yè)中“水土不服”,亟須研究設(shè)計(jì)一套適合的方案來(lái)改變現(xiàn)狀。
通過師生交流走訪,本課程教學(xué)存在主要問題可歸納如下。
1)課時(shí)不充分,前修課程匱乏,且短期內(nèi)無(wú)法改觀。
零基礎(chǔ)文科專業(yè)程序設(shè)計(jì)課程課時(shí)目前大多僅為32~48 學(xué)時(shí),突出的課時(shí)缺口使得許多教師“不得已”選擇“滿堂灌”方式,預(yù)留給編程輔導(dǎo)的時(shí)間嚴(yán)重不足。另外,文科專業(yè)Python 教學(xué)大多不設(shè)置前修課程,學(xué)生在剛接觸時(shí)感覺十分新鮮,學(xué)習(xí)困難尚不突出,隨著進(jìn)度推進(jìn),由于基礎(chǔ)知識(shí)缺乏引發(fā)的學(xué)習(xí)困難直線增加,學(xué)習(xí)效果下滑明顯,表現(xiàn)為教師課堂教學(xué)的“查漏補(bǔ)缺”比例上升,課時(shí)缺口矛盾越來(lái)越嚴(yán)重。但必須正視的是,課時(shí)匱乏和基礎(chǔ)薄弱問題短期內(nèi)幾乎無(wú)法改變。
2)目的不明確,學(xué)習(xí)動(dòng)力欠缺,編程氛圍不強(qiáng)烈。
程序設(shè)計(jì)的學(xué)習(xí)需要足量的練習(xí)才能充分理解概念的含義、掌握編程方法和技巧。Python 課程不屬于傳統(tǒng)文科課程,多數(shù)學(xué)生不明白該課程的意義,加之教學(xué)案例也多與文科專業(yè)無(wú)關(guān),難以引起學(xué)生重視,進(jìn)而出現(xiàn)學(xué)習(xí)動(dòng)力不足,主要表現(xiàn)為課后不愿主動(dòng)編寫和思考代碼。同時(shí)非專業(yè)課的課程地位也實(shí)際造成了學(xué)生課外互相交流編程經(jīng)驗(yàn)渠道不暢。當(dāng)學(xué)生整體沒有建立起Python 編程的氛圍時(shí),往往會(huì)陷入“一聽就會(huì),一寫就錯(cuò),一要原創(chuàng)就沒思路”的怪圈。
元認(rèn)知是20 世紀(jì)70 年代中期由弗拉威爾(J·H·Flavell)提出的心理學(xué)理論,是從更深層次理解人類學(xué)習(xí)和解決問題的過程,其實(shí)質(zhì)是認(rèn)知主體對(duì)自己認(rèn)知活動(dòng)的自我意識(shí)、自我監(jiān)控和自我調(diào)節(jié)。元認(rèn)知將學(xué)生主體和學(xué)生的學(xué)習(xí)作為最高目標(biāo)和核心任務(wù),將學(xué)生從外部刺激的被動(dòng)接受者和知識(shí)灌輸對(duì)象轉(zhuǎn)變?yōu)樾畔⒓庸さ闹黧w和知識(shí)意義的主動(dòng)建構(gòu)者,將教師從知識(shí)傳授者、灌輸者轉(zhuǎn)變?yōu)閷W(xué)生主動(dòng)建構(gòu)意義的幫助者、促進(jìn)者和引導(dǎo)者。
學(xué)習(xí)生態(tài)系統(tǒng)理論是20 世紀(jì)由詹·威瑟(Jan Visser)提出的一種分析學(xué)習(xí)的視角,一般認(rèn)為是由學(xué)習(xí)共同體及其現(xiàn)實(shí)的和虛擬的學(xué)習(xí)環(huán)境構(gòu)成的一個(gè)功能整體,學(xué)習(xí)者與學(xué)習(xí)環(huán)境、學(xué)習(xí)者與其他學(xué)習(xí)個(gè)體和學(xué)習(xí)群體之間密切聯(lián)系、相互作用,通過知識(shí)吸納、內(nèi)化、創(chuàng)新、外化、反饋等過程實(shí)現(xiàn)有效學(xué)習(xí)的發(fā)生。學(xué)習(xí)生態(tài)系統(tǒng)強(qiáng)調(diào)“學(xué)習(xí)共同體”理念,由學(xué)習(xí)者和助學(xué)者共同組成的,以完成共同的學(xué)習(xí)任務(wù)為載體,以促進(jìn)成員全面成長(zhǎng)為目的,強(qiáng)調(diào)在學(xué)習(xí)過程中以相互作用式的學(xué)習(xí)觀作指導(dǎo),通過人際溝通、交流和分享各種學(xué)習(xí)資源而相互影響、相互促進(jìn)。
傳統(tǒng)程序設(shè)計(jì)教學(xué)一般為理論講解、實(shí)驗(yàn)練習(xí)和調(diào)試驗(yàn)證3 部分,有限的課堂實(shí)踐時(shí)間通常僅能滿足“驗(yàn)證結(jié)果”,甚至代碼調(diào)試都未能通過,根本談不上理解算法、更談不上構(gòu)建自主的編程思想,課外編程氛圍不濃厚、學(xué)習(xí)指導(dǎo)力量嚴(yán)重不足,學(xué)習(xí)效果自然大打折扣。研究者以元認(rèn)知理論為基礎(chǔ),以“做中學(xué)、迭代學(xué)”的形式組織學(xué)生學(xué)習(xí),發(fā)揮主動(dòng)學(xué)習(xí)思想加深知識(shí)的理解和能力的訓(xùn)練;以網(wǎng)絡(luò)學(xué)習(xí)平臺(tái)搭建學(xué)習(xí)生態(tài)系統(tǒng),將學(xué)生的課外學(xué)習(xí)以“學(xué)習(xí)共同體”模式緊密聯(lián)系起來(lái),以“互助學(xué)、總結(jié)學(xué)”的形式,營(yíng)造編程氛圍,主動(dòng)反思和互評(píng),達(dá)到建構(gòu)新的思想和知識(shí)體系的目的。
1)課前:目標(biāo)清單+基礎(chǔ)內(nèi)容,消除“零基礎(chǔ)”。
課前內(nèi)容包括每次課的學(xué)習(xí)目標(biāo)和本次課的初級(jí)知識(shí)。學(xué)習(xí)目標(biāo)應(yīng)清晰、少量,且貫穿整個(gè)教學(xué)期,可以幫助學(xué)生在整個(gè)過程中自主設(shè)定學(xué)習(xí)計(jì)劃和檢查學(xué)習(xí)效果。言簡(jiǎn)意賅的初級(jí)知識(shí)可以幫助學(xué)生以“非零基礎(chǔ)身份”甚至是“帶著相關(guān)問題”來(lái)到課堂參與課中學(xué)習(xí)活動(dòng)。
特別值得一提的是,第一堂課非常關(guān)鍵。教師要明確告知學(xué)生學(xué)習(xí)該課程的意義,介紹學(xué)習(xí)方法,糾正部分帶有“誤解”的學(xué)生樹立正確學(xué)習(xí)態(tài)度,引導(dǎo)學(xué)生認(rèn)可“學(xué)習(xí)是一種自我認(rèn)知活動(dòng),包括學(xué)科知識(shí)和學(xué)習(xí)方法”的元認(rèn)知理念和接受學(xué)習(xí)共同體的學(xué)習(xí)模式。同時(shí),介紹一些與專業(yè)相關(guān)的案例可以提升學(xué)習(xí)興趣,幫助學(xué)生確立自主的課程學(xué)習(xí)目標(biāo)。
2)課堂:項(xiàng)目迭代+反例分析,解決“疑難雜癥”。
方案將課堂設(shè)計(jì)為“做中學(xué)、迭代學(xué)”的形式,用項(xiàng)目驅(qū)動(dòng)的方式開展教學(xué)。從問題分析入手,引導(dǎo)學(xué)生首先編寫功能最簡(jiǎn)單的代碼,并在此基礎(chǔ)上逐步更新案例,每次增添新的功能或優(yōu)化原有功能,完成代碼迭代。多輪優(yōu)化功能與代碼迭代可以將一段代碼講解透,將迭代功能理解透。在實(shí)際教學(xué)中,為了鼓勵(lì)學(xué)生主動(dòng)思考,提倡學(xué)生“先寫注釋再寫代碼,功能未成注釋替代”,讓文科專業(yè)學(xué)生像寫作文一樣寫代碼。教師在課堂上的另一個(gè)作用是以學(xué)生眼光講評(píng)代碼,包括講解思路陷阱和常見錯(cuò)誤,將有限的課堂講授時(shí)間留給疑難關(guān)鍵點(diǎn)。
例如,課堂教學(xué)通過“人民幣與美元的兌換”代碼講解數(shù)據(jù)類型和運(yùn)算符、輸入輸出語(yǔ)句、類型轉(zhuǎn)換、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、函數(shù)、代碼封裝等。
第1輪完成書寫最簡(jiǎn)單代碼,引入IPO概念,學(xué)習(xí)注釋、表達(dá)式和輸出語(yǔ)句的寫法。
先給出“美元數(shù)額=人民幣數(shù)額/兌換匯率”或“人民幣數(shù)額*兌換匯率’”的數(shù)學(xué)表達(dá)式,假設(shè)兌換匯率為7,再把這個(gè)數(shù)學(xué)表達(dá)式“翻譯”成Python 代碼:
按照這樣的思路,第4 輪代碼新增根據(jù)用戶輸入的數(shù)據(jù)單位判斷后進(jìn)行相對(duì)應(yīng)的轉(zhuǎn)換功能;第5 輪代碼新增判斷用戶貨幣單位,對(duì)非識(shí)別單位的輸出信息的功能;第6 輪代碼新增對(duì)用戶輸入的數(shù)據(jù)單位進(jìn)行多種形態(tài)的識(shí)別的功能;第7輪代碼新增根據(jù)用戶輸入信息連續(xù)進(jìn)行匯率轉(zhuǎn)換功能;第8 輪代碼新增用戶兌換次數(shù)提示功能,改善輸出效果;第9 輪代碼設(shè)計(jì)匯率轉(zhuǎn)換代碼函數(shù)并調(diào)用;第10 輪代碼對(duì)匯率轉(zhuǎn)換代碼進(jìn)行結(jié)構(gòu)化封裝。
多輪迭代的功能逐步增加可以讓學(xué)生很好地理解程序優(yōu)化的過程,同時(shí)理解新知識(shí)點(diǎn)出現(xiàn)的原因,開拓思維,鼓勵(lì)學(xué)生發(fā)現(xiàn)問題自主優(yōu)化,得到了很好的課堂效果。
3)課后:默仿編練習(xí)+自評(píng)互評(píng),增強(qiáng)“收獲感”。
在實(shí)際Python 教學(xué)中發(fā)現(xiàn),課后編程實(shí)踐體驗(yàn)需要格外重視,幾次課后編程挫敗就會(huì)消磨掉課中積累的興趣。對(duì)此,方案用“小步快走、幫扶前進(jìn)”的方法加以解決,即代碼練習(xí)難度增幅要小,中間起過渡作用的“腳手架”案例必不可少,學(xué)生之間的互助互評(píng)往往能帶來(lái)意想不到的效果。
方案將課后練習(xí)分成默寫、仿寫、編寫3 階段。第1 步,課堂教學(xué)示例的默寫,幫助學(xué)生復(fù)習(xí);第2 步,仿寫示例代碼,幫助學(xué)生徹底消化知識(shí)點(diǎn),提倡學(xué)生自主設(shè)計(jì)仿寫內(nèi)容。例如根據(jù)“人民幣兌換美元”的代碼思路仿寫“攝氏和華氏溫度轉(zhuǎn)換”代碼;第3 步,自主編寫代碼,例如,編寫二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)代碼、明文和密文轉(zhuǎn)換代碼等。充分的準(zhǔn)備使得學(xué)生不再對(duì)自主編寫代碼產(chǎn)生畏懼心理,愿意嘗試新功能代碼編寫,也愿意將自己的代碼心得在課程討論群里相互分享、點(diǎn)評(píng)。對(duì)于優(yōu)秀代碼,大家紛紛點(diǎn)贊;對(duì)于有疑惑的地方,也有同學(xué)愿意解釋交流,同時(shí),教師在群里不定期將經(jīng)典案例或者典型作業(yè)推送出來(lái)進(jìn)行討論,形成一種和諧的、濃厚氛圍的編程微環(huán)境,為課程學(xué)習(xí)效果助力。
除此之外,課程考核方式也應(yīng)是多元化的。學(xué)習(xí)生態(tài)策略中強(qiáng)調(diào)評(píng)價(jià)包含終結(jié)性的評(píng)價(jià)也應(yīng)包含過程性的評(píng)價(jià),既體現(xiàn)學(xué)習(xí)結(jié)果,也體現(xiàn)學(xué)習(xí)態(tài)度與方法。通過各種手段促進(jìn)學(xué)生研究學(xué)習(xí),既是課程教學(xué)需要,也為學(xué)生構(gòu)建終身學(xué)習(xí)理念奠定基礎(chǔ)。
實(shí)踐證明,在我校文科專業(yè)實(shí)行基于元認(rèn)知Python 教學(xué)設(shè)計(jì)方案后,切實(shí)提高學(xué)生學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言的熱情,高度認(rèn)可計(jì)算思維理念,更加快速地具備了運(yùn)用信息技術(shù)解決專業(yè)領(lǐng)域問題的基本能力。
現(xiàn)代社會(huì)對(duì)人才復(fù)合性的要求越來(lái)越高。對(duì)于文科專業(yè)的學(xué)生而言,Python 程序設(shè)計(jì)課程既是一種全新領(lǐng)域的體驗(yàn),也開啟了一種全新的計(jì)算思維理念。教育是培養(yǎng)人的事業(yè),除了知識(shí)與方法的培養(yǎng)外,Python 程序設(shè)計(jì)課程對(duì)一個(gè)人的專注思考與探究思維的培養(yǎng)也具有突出優(yōu)勢(shì)。作為教師,如何做到“授之以漁”、點(diǎn)亮學(xué)生心中希望的種子,培養(yǎng)更多優(yōu)質(zhì)復(fù)合型人才,值得長(zhǎng)期研究實(shí)踐。