国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Python語言教學(xué)中問題解決能力和創(chuàng)新能力的培養(yǎng)實踐

2017-09-28 19:06趙霞張珣韓忠明嵩天
計算機教育 2017年9期
關(guān)鍵詞:Python語言解決問題能力計算思維

趙霞++張珣++韓忠明++嵩天

摘 要:針對在財經(jīng)類大學(xué)非計算機專業(yè)計算機公共課程中培養(yǎng)計算思維、解決問題能力和創(chuàng)新能力的問題,分析引入Python程序設(shè)計的優(yōu)勢,提出Python語言教學(xué)的四段教學(xué)法和演化式案例教學(xué)法,從心理認知機制角度探索培養(yǎng)計算思維、問題解決能力和創(chuàng)新能力的教學(xué)模式和方法。

關(guān)鍵詞:課程改革;Python語言;計算思維;創(chuàng)新能力;解決問題能力

1 背 景

對于非計算機專業(yè)人才培養(yǎng)的計算機技術(shù)課程教學(xué)定位,近年來國內(nèi)外教學(xué)領(lǐng)域已經(jīng)形成共識,即計算機技術(shù)課程的核心價值就是培養(yǎng)學(xué)生的計算思維,培養(yǎng)學(xué)生用計算機解決問題的能力,應(yīng)該以計算思維為導(dǎo)向進行計算機技術(shù)課程的教學(xué)改革[1-4]。在共識基礎(chǔ)上,如何將計算思維培養(yǎng)在程序設(shè)計課程教學(xué)中落地是一個重要問題,由此帶來一系列值得思考的問題:怎樣結(jié)合程序設(shè)計內(nèi)容培養(yǎng)非計算機專業(yè)學(xué)生的計算思維?如何結(jié)合學(xué)生所在專業(yè)(如注冊會計、國際貿(mào)易、金融、食品工程、機械等)需求,培養(yǎng)學(xué)生使用程序解決問題的能力,同時提升學(xué)生的創(chuàng)新意識和創(chuàng)新能力?

對于非計算機專業(yè)人才培養(yǎng)而言,計算思維教育的目的是培養(yǎng)一種思維習(xí)慣和用計算機解決問題的能力,像計算機科學(xué)家一樣思考、分析和解決問題,面對具體而復(fù)雜的現(xiàn)實世界抽象出信息處理的概念,基于概念來分析、綜合和演繹問題,進一步找出解決問題的方法;在實踐層面體現(xiàn)為利用計算機解決問題的能力,即利用程序設(shè)計語言或者軟件工具,將抽象概念和解決問題的方法變成程序或者操作步驟的能力。因此,非計算機專業(yè)的計算機公共課需要選擇合適的教學(xué)內(nèi)容和教學(xué)模式作為計算思維和能力培養(yǎng)的載體,降低學(xué)生在理解計算機系統(tǒng)上的難度,并體現(xiàn)出計算思維中計算、抽象、自動化等核心概念;更需要給學(xué)生提供易于掌握的工具載體,使學(xué)生在學(xué)習(xí)和實踐中能夠體會到“具體問題抽象化,抽象解決方案具體化”的全過程。

2 研究現(xiàn)狀

計算思維最早由周以真(Jeannette M. Wing)教授準確提出并完整闡述[5]。計算思維是運用計算機科學(xué)的基礎(chǔ)概念進行問題求解、系統(tǒng)設(shè)計以及人類行為理解等涵蓋計算機科學(xué)之廣度的一系列思維活動。這些基礎(chǔ)概念包括仿真、遞歸、并行、抽象、分解、建模、啟發(fā)式推理、規(guī)劃、學(xué)習(xí)、調(diào)度等,希望人們能夠通過運用計算思維在各自的學(xué)科領(lǐng)域里面進行創(chuàng)造性的科學(xué)發(fā)現(xiàn)與技術(shù)創(chuàng)新。

國內(nèi)許多高校都在尋求計算思維培養(yǎng)在程序設(shè)計課程上的具體落地途徑。能夠講授C語言課程的師資力量相對充足,因此許多高校開設(shè)C語言程序設(shè)計,采用傳統(tǒng)的教學(xué)模式,從數(shù)據(jù)類型開始由淺入深講解知識點,并配以大量的針對知識點的編程訓(xùn)練,然而C語言體現(xiàn)的是“計算機系統(tǒng)結(jié)構(gòu)時代”的計算思維外延[6],主要培養(yǎng)程序的高效運行模式,其底層系統(tǒng)級的特性更適合計算機專業(yè)學(xué)生學(xué)習(xí)。對于剛?cè)雽W(xué)的非計算機專業(yè)學(xué)生尤其是文科類專業(yè)學(xué)生,通過C語言培養(yǎng)良好的計算思維能力會遇到較大困難,主要有3個原因:①高中階段的數(shù)學(xué)、邏輯及抽象思維訓(xùn)練尚未讓學(xué)生達到順暢理解C語言的程度,表現(xiàn)為學(xué)生對編程還“沒有感覺”,學(xué)習(xí)C語言相對困難;②計算機體系結(jié)構(gòu)相關(guān)知識和C語言語法的復(fù)雜性進一步增加了學(xué)習(xí)困難;③非計算機專業(yè)學(xué)生的專業(yè)學(xué)習(xí)和未來工作缺少C語言的應(yīng)用場景,導(dǎo)致學(xué)生的學(xué)習(xí)動力不足。為了取得更好的C語言教學(xué)效果,教師需要在教學(xué)內(nèi)容和教學(xué)方法上投入“更多”的時間和精力才能“略微”提高學(xué)生的學(xué)習(xí)興趣。

Python語言是一門發(fā)展了近30年的通用編程語言,語法簡單,接近自然語言,是使學(xué)習(xí)者不需要了解計算機底層知識而更多關(guān)注應(yīng)用計算機解決問題的思路和方法,是“復(fù)雜信息系統(tǒng)時代”最直觀的表達工具,降低了學(xué)習(xí)的門檻。Python語言發(fā)展成熟,全部開源,大量第三方擴展庫為各個學(xué)科領(lǐng)域的專業(yè)問題處理提供方便易用的支持,學(xué)生可將其與各專業(yè)業(yè)務(wù)需求相結(jié)合,快速編寫解決復(fù)雜問題的可用程序和軟件,特別在圖形圖像、人工智能、數(shù)據(jù)處理和可視化等方面有得天獨厚的優(yōu)勢。

Python語言是目前美國大學(xué)最受歡迎的程序設(shè)計語言,成為金融、商業(yè)、化學(xué)、工程等非計算機專業(yè)的首選語言課程。在我國,北京理工大學(xué)最早從2013年開始面向非計算機專業(yè)開設(shè)相關(guān)課程,隨后,南京大學(xué)、哈爾濱工業(yè)大學(xué)、中南大學(xué)等也相繼開設(shè)課程。截止2017年6月,全國近百所高校相繼開設(shè)針對非計算機專業(yè)的Python語言課程,國內(nèi)教學(xué)改革如火如荼。在教育部愛課程網(wǎng)中國大學(xué)MOOC平臺上,出現(xiàn)了多門Python語言相關(guān)MOOC課程,在小象學(xué)院、實驗樓、優(yōu)才學(xué)院等商業(yè)互聯(lián)網(wǎng)+教學(xué)平臺上,也出現(xiàn)了幾十門Python相關(guān)的課程,年均學(xué)習(xí)人數(shù)超過20萬。

面對Python語言的迅速發(fā)展和普及以及互聯(lián)網(wǎng)上豐富的教學(xué)資源和在線學(xué)習(xí)課程,國內(nèi)高校面臨程序設(shè)計課程教學(xué)改革的難得機遇。北京工商大學(xué)從2016年開始嘗試把Python教學(xué)引入非計算機專業(yè)的計算機技術(shù)課程,已有教學(xué)實踐表明,Python語言程序設(shè)計不僅是計算思維培養(yǎng)的良好載體,而且利用Python特有的計算生態(tài)和優(yōu)秀案例、基于MOOC和SPOC的混合教學(xué)模式所衍生出來的創(chuàng)造性思維和能力培養(yǎng)成果,也是令人鼓舞的。

3 計算思維從零開始:四段教學(xué)法

面對不知道計算機編程是什么及其跟自己所學(xué)專業(yè)有什么關(guān)系的學(xué)生講授Python語言程序設(shè)計,如何設(shè)計教學(xué)內(nèi)容、節(jié)奏和方式,是一個挑戰(zhàn)。筆者在兩年的教學(xué)經(jīng)歷中總結(jié)出一個四段教學(xué)的基本模式,即把一個學(xué)期的教學(xué)過程從預(yù)備級到高級劃分為4個階段——認識、會讀、會寫、會解決問題,每個階段的目標、做法、具體目標見表1。

第1階段是認識Python,為期2周。課堂教學(xué)介紹計算機基礎(chǔ)知識和Python基礎(chǔ)知識的同時,演示各種小例子程序。課后作業(yè)是讓學(xué)生執(zhí)行現(xiàn)成的小程序,體驗程序執(zhí)行的結(jié)果;讓學(xué)生了解用計算機解決問題的基本IPO(輸入—處理—輸出)模型,并且形成“Python程序蠻有趣”的認知。endprint

第2階段是會讀階段。通過拆解例題、解釋語句的含義、演繹解決問題的過程,不僅僅教學(xué)生學(xué)習(xí)Python語言的語法點,更重要的是引導(dǎo)學(xué)生理解程序是怎樣解決問題的。程序=算法+數(shù)據(jù)結(jié)構(gòu),一個好程序里蘊含的計算思維要素,遠遠超出一段文字描述。教學(xué)生讀程序,可以類比于欣賞一件藝術(shù)品。當我們教會學(xué)生欣賞程序時,也交給他們一把自學(xué)的金鑰匙,其重要性不言而喻。這個階段從第3周開始將一直持續(xù)下去,只是隨著學(xué)習(xí)的深入,閱讀程序更深入,技能更加嫻熟。

第3階段是會寫階段。對于零基礎(chǔ)或者文科背景的學(xué)生而言,花點時間專門糾正寫程序中語句對齊和程序段里的冒號是一件值得的事情。教師要讓學(xué)生意識到編程是一件非常嚴謹認真的事情,寫代碼需要準確的思維和判斷,不僅僅糾正的是一些學(xué)習(xí)習(xí)慣,更為重要的是心性的修煉;讓學(xué)生盡快轉(zhuǎn)換學(xué)習(xí)態(tài)度和思維模式是非常重要的事情。寫程序可以從解決簡單的問題開始(只有1~2行代碼),也可以從修改一個現(xiàn)成的復(fù)雜程序開始(10行甚至20行代碼)。教學(xué)實踐表明,由于生源差異,學(xué)生素質(zhì)參差不齊。修改復(fù)雜一些的程序,意外的程序執(zhí)行結(jié)果會給學(xué)生帶來智力挑戰(zhàn)或者意外的樂趣,可以刺激他們深入理解程序的邏輯流程、參數(shù)的含義以及程序構(gòu)造的內(nèi)涵,在做作業(yè)的過程中訓(xùn)練邏輯性和嚴謹性。這個階段一旦開始,就會一直延續(xù)至終。

第4階段是會解決問題。期中以后,學(xué)生已經(jīng)學(xué)完了Python的基本數(shù)據(jù)結(jié)構(gòu)、控制結(jié)構(gòu)、函數(shù)、迭代等內(nèi)容,并且會使用turtle庫、math庫、random庫等第三方庫實現(xiàn)程序設(shè)計的基本功能,能夠解決一些問題。教師可以通過更為實際的、復(fù)雜的或者專門化的案例,教授解決問題的高級技巧和方法,包括如何抽象出問題的本質(zhì)概念、用數(shù)據(jù)結(jié)構(gòu)表達抽象概念、用流程圖表達解題思路以及借助流程圖優(yōu)化思路、通過復(fù)用和函數(shù)優(yōu)化程序等;還可以開展與專業(yè)結(jié)合的應(yīng)用案例學(xué)習(xí),如商業(yè)數(shù)據(jù)分析處理。

影響四段教學(xué)成功的因素,除了教師有效的引導(dǎo)、細致的監(jiān)督考評、充足的課外編程訓(xùn)練外,還取決于學(xué)生的學(xué)習(xí)心態(tài)和時間投入的保證。與C語言程序設(shè)計課程教學(xué)相比較而言,Python語言給學(xué)生留下的印象主要是簡單的語法和豐富的生態(tài)系統(tǒng)資源,可以使學(xué)生更快捷、方便地做出更多功能、更專業(yè)化的程序以解決實際問題,更易于建立成就感。

4 計算思維的顯化:演化式案例教學(xué)

以案例教學(xué)作為課堂教學(xué)的核心線索,以解決問題的需求組織知識點,是否具有更優(yōu)的教學(xué)效果,是我們近年來一直探索的問題。傳統(tǒng)的程序設(shè)計課程教學(xué)大都以知識點本身的內(nèi)在結(jié)構(gòu)和演化邏輯組織教學(xué),用實例說明語法和知識點的用法。知識的系統(tǒng)性比較強,有利于學(xué)生系統(tǒng)、全面、深入地掌握知識,但對于零基礎(chǔ)、非專業(yè)、缺乏學(xué)習(xí)動機的學(xué)生而言,學(xué)生容易在學(xué)習(xí)知識點的過程中迷失或者發(fā)出“我們學(xué)習(xí)這個有什么用,能做什么”的質(zhì)疑。

解決這種問題的關(guān)鍵是回歸兩個基本點:課程教學(xué)目標和學(xué)習(xí)者普遍具有好奇心的心理特征。課程教學(xué)目標是培養(yǎng)計算思維和解決問題的能力,需要從擬解決的問題出發(fā),分析抽取問題的本質(zhì),尋求解決問題需要的知識、工具和步驟,明確解決方案的步驟和預(yù)期的結(jié)果。就求知者的心理特征而言,在問題驅(qū)動下的學(xué)習(xí)是積極主動的,處于開放的心理狀態(tài),能夠?qū)W(xué)習(xí)到的新知識與大腦記憶中已有的知識點建立連接,所建立的知識體系與內(nèi)在記憶和外在信息之間形成有機整體。如果教師能夠引導(dǎo)學(xué)生從問題出發(fā),就更容易使課堂教學(xué)有吸引力和挑戰(zhàn)性,帶給學(xué)生更多的成就感。

我們基于已有的教學(xué)實踐和創(chuàng)新理念的文獻[7],提出演化式案例教學(xué)法,即課堂講授的內(nèi)容以案例開頭,但問題及其解決過程是逐步演化和生長的,演化方式有兩種:種子生長式和關(guān)鍵路徑式。

種子生長式以簡單問題開始,逐步增加問題的變量和條件,引導(dǎo)學(xué)生不斷擴展解決問題的思路,引入新的程序設(shè)計語法要素和解題思路,逐步增加程序的復(fù)雜度。例如,從數(shù)字、字符數(shù)據(jù)類型開始,逐步演化到列表、元組、字典;從順序結(jié)構(gòu)開始,演化到循環(huán)、分支、函數(shù)、迭代等結(jié)構(gòu);同時融入抽象、自動計算、復(fù)用等思維,編寫的程序像一顆種子長成一棵大樹一樣,由小變大,具有越來越多的功能和越來越復(fù)雜的結(jié)構(gòu)。

關(guān)鍵路徑式以貌似復(fù)雜的問題開始,先引導(dǎo)學(xué)生運用流程圖工具,分析問題的本質(zhì)以及解決問題的關(guān)鍵點和關(guān)鍵路徑,在問題空間里運用抽象、自頂向下、分而治之、逐步求精等思維拆解問題;然后再引導(dǎo)學(xué)生求解問題,運用系統(tǒng)模塊圖工具,在解空間里以自底向上、封裝與接口、聚合等增量式思維獲取解決復(fù)雜問題的最終解。編寫程序的過程像建筑工人做磚頭、搭架子、蓋房子或蓋大樓一樣:起初是一個個獨立功能的函數(shù),有輸入輸出參數(shù)和處理過程,然后通過函數(shù)調(diào)用,連接成能夠解決問題的一組程序和文件。

當然,成功的問題驅(qū)動式案例教學(xué)模式對教師有很高的要求。首先,案例設(shè)計至關(guān)重要,關(guān)鍵要素包括知識點的組織、問題的彈性和解決方案的開放度。文獻[7]中已經(jīng)提供了很多非常好的案例,如天天向上、文本進度條、七段數(shù)碼管、科赫曲線、中文文本分析、網(wǎng)絡(luò)爬蟲等,無論是在趣味性、實用性還是在問題的彈性、解的開放性上都具有鮮明的特色,都可以在課堂教學(xué)中采用上述的演化式案例教學(xué)法。其次,課堂講授是顯化案例設(shè)計的過程,教師對案例理解的深度、教師的授課技能和掌控課堂能力也決定了教學(xué)效果,需要教師不斷修煉提高。

5 Python 教學(xué)中的創(chuàng)造力培養(yǎng)

認知心理學(xué)有兩種重要的思維模式:發(fā)散思維和聚合思維[8]。向?qū)W生提出開放性的問題,啟發(fā)學(xué)生理解并發(fā)展與其專業(yè)或者興趣相關(guān)的其他領(lǐng)域的新想法和新觀念,是培養(yǎng)創(chuàng)新性思維和能力的關(guān)鍵要素之一。啟發(fā)式的課堂講授和隨后的開放問題,首先向?qū)W生提供了發(fā)散思維的起始點,引發(fā)學(xué)生自發(fā)的、直覺的、擴散式的發(fā)散思維過程。在問題的驅(qū)動下,學(xué)生會在大腦中搜索、篩選新的想法和方案,綜合先前分離的想法、概念或其他視覺信息、抽象符號,就可能形成創(chuàng)造性的激發(fā)和組合。

好的案例教學(xué)能夠把學(xué)生的創(chuàng)造性思維通過編程顯化出來,使其創(chuàng)作出意想不到的優(yōu)秀作品,這也是Python語言程序教學(xué)實踐中的現(xiàn)象。例如,在講授函數(shù)和遞歸知識點時,以科赫曲線和太極樹為案例,講解自然界中一種普遍的分形現(xiàn)象:看似一個復(fù)雜的圖形實際上是由一個簡單的圖形,在參數(shù)不斷變化的條件下多次迭代產(chǎn)生的,如圖1所示。

課后作業(yè)是根據(jù)課堂學(xué)到的知識,自己編程創(chuàng)作一個有新意的程序。收到的作業(yè)體現(xiàn)了被激發(fā)的學(xué)生的創(chuàng)造力,為此我們專門組織了一次延續(xù)教學(xué)以演示和討論這些優(yōu)秀的創(chuàng)意和作品,如圖2所示。

圖2(a)的3張圖是同一個程序執(zhí)行過程中不同階段畫出的圖形。這些結(jié)果表達的是一點點微小的變異在無數(shù)次迭代情況下,演化出非常復(fù)雜的對象。背后的原理是什么、迭代次數(shù)與參數(shù)選擇怎樣影響結(jié)果、如何找到這樣的參數(shù)等問題,可以引發(fā)學(xué)生課上充滿好奇的討論,也可以成為引導(dǎo)教師和學(xué)生未來展開更深入的探討和研究的引子。

圖2(b)是一名注冊會計專業(yè)的學(xué)生用250行代碼畫出的藝術(shù)作品。在課堂討論中,教師帶領(lǐng)學(xué)生逐行分析源代碼,現(xiàn)場演示如何利用列表、函數(shù)等優(yōu)化這個程序,使得程序更精煉簡潔,激發(fā)了更多學(xué)生的創(chuàng)作欲望并創(chuàng)作出后續(xù)的好作品。作品的創(chuàng)意之美令人驚嘆;而學(xué)生在課堂案例中吸取有效元素(如太極樹、迭代、函數(shù)、隨機數(shù)、列表等)基礎(chǔ)上展現(xiàn)出來的創(chuàng)造力,帶給我們非常有益的啟示,如果能夠加以利用改進教學(xué)內(nèi)容,可以培養(yǎng)出更多的優(yōu)秀人才。

6 結(jié) 語

針對互聯(lián)網(wǎng)與人工智能時代對非計算機專業(yè)人才的需求,教學(xué)實踐表明Python語言程序設(shè)計是肩負這個使命非常理想的載體。在實踐中探索的四段教學(xué)法和演化式案例教學(xué)法針對零基礎(chǔ)的非計算機專業(yè)學(xué)生特點,能夠激發(fā)學(xué)生的學(xué)習(xí)興趣,培養(yǎng)計算思維和解決問題的能力。此外,如果能夠?qū)ython特有的計算生態(tài)資源和優(yōu)秀案例與學(xué)生的專業(yè)或者興趣相結(jié)合,就可以激發(fā)學(xué)生的創(chuàng)造性思維和創(chuàng)新能力,引導(dǎo)學(xué)生開展基于Python的藝術(shù)創(chuàng)作和科學(xué)探索,通過不斷調(diào)整優(yōu)化教學(xué)內(nèi)容和教學(xué)方式,有效提升教學(xué)質(zhì)量,達到培養(yǎng)計算思維和創(chuàng)新能力的育人目標。endprint

猜你喜歡
Python語言解決問題能力計算思維
基于Python語言和支持向量機的字符驗證碼識別
論Python程序設(shè)計語言
基于Python語言的面向?qū)ο笳n程實踐教學(xué)探討
培養(yǎng)小學(xué)生解決數(shù)學(xué)問題能力的策略和方法
轉(zhuǎn)換數(shù)量關(guān)系角色,提高解決問題能力
程序設(shè)計課程中計算思維和應(yīng)用能力培養(yǎng)問題研究
基于Android的Python語言英漢維電子詞典設(shè)計與實現(xiàn)
民族高校C語言程序設(shè)計課程教學(xué)改革的研究
算法的案例教學(xué)探析
淺談藝術(shù)專業(yè)學(xué)生計算思維能力的培養(yǎng)
施甸县| 慈溪市| 嵊泗县| 齐齐哈尔市| 慈利县| 泰兴市| 华阴市| 建宁县| 吴旗县| 枝江市| 仁寿县| 曲沃县| 景德镇市| 吐鲁番市| 潮安县| 石屏县| 浦东新区| 林州市| 龙口市| 诸城市| 嵊泗县| 安图县| 武威市| 平昌县| 来安县| 那曲县| 宜宾市| 内丘县| 吴川市| 四子王旗| 贵阳市| 盘山县| 汶川县| 新巴尔虎右旗| 彰武县| 广宁县| 呼图壁县| 交口县| 沁水县| 灯塔市| 高雄县|