999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

人工智能背景下的Python教學探索

2018-09-17 05:20:34韓志豪
計算機時代 2018年7期
關鍵詞:教學方式人工智能

韓志豪

摘 要: 近幾年隨著人工智能的飛速發展,中國、美國已經將人工智能寫入戰略層面,但高校的程序設計課程與人工智能的發展存在著脫節的現象。本文分析了人工智能特點與發展方向,梳理Python編程語言特點與人工智能的關系,整理針對人工智能的Python程序設計教學內容,結合Python程序設計教學經驗,提出人工智能方向的Python程序設計教學目標、教學模式、教學方法。通過教學實驗,論證了本Python程序設計的教學方式優于一般的Python程序設計教學方式。

關鍵詞: Python; 人工智能; 教學方式; 程序設計

中圖分類號:G434 文獻標志碼:A 文章編號:1006-8228(2018)07-76-06

Abstract: In recent years, with the rapid development of artificial intelligence, China and the United States have written artificial intelligence into strategic layers. However, there is a disconnect between the programming courses in universities and the development of artificial intelligence. To solve this problem, this paper analyzes the characteristics and development direction of artificial intelligence, combs the relationship between the characteristics of Python programming language and artificial intelligence, organizes the teaching content of Python programming for artificial intelligence, and combining with Python programming teaching experience, proposes the artificial intelligence oriented Python Programming teaching objectives, teaching models and teaching methods. Through the teaching experiments, it is demonstrated that the Python programming teaching method is superior to the general Python programming teaching method.

Key words: Python; artificial intelligence; teaching method; programming

0 引言

2017年7月國務院發布《新一代人工智能發展規劃》[1],12月國家工業和信息化部發布《促進新一代人工智能產業發展三年行動計劃(2018-2020年)》[2]。2018年3月起,在計算機二級考試加入了“Python語言程序設計”。Python語言因其特有的屬性:簡潔高效、解釋性、可擴展性、生態性[3],而成為了最受歡迎的語言,它豐富的第三方庫,既避免了重復開發,又增加了語言的張力。目前,98%的人工智能的開發,用的是Python語言編程。

在高校傳統的教學中,用C/C++或Java作為主要語言設計編程課程[3]。但是高校教學需要緊跟時代的步伐,更要走在時代的前列,與此同時,由于大數據分析、人工智能的蓬勃發展,Python語言市場對人才的需求,也正處于供不應求的狀態。因此將Python程序設計作為必修課程顯得尤為重要。

Python語言是一種解釋型高級語言,可移植、跨平臺、面向對象等特點,運用場景也越來越廣泛[3]。與此同時,人工智能提升到了國家戰略層面,推動著人類第四次工業革命。國內高校對Python與人工智能的教學研究還相對較少,人工智能主要集中在科研領域。在此環境下總結Python教學經驗,探索人工智能方向的Python程序設計教育教學。

1 背景

1.1 人工智能的發展與教育

人工智能最早于1965年在Dartmouth學會上被提出,隨后被定義為“人工智能就是研究如何使計算機去做過去只有人才能做的智能的工作”[4],人工智能最開始被盲目追捧,到20世紀七八十年代遭遇發展瓶頸,但在2016年谷歌基于深度學習的AlphaGo戰勝了圍棋世界冠軍,又一次激發了人們對人工智能的熱情[5]。

人工智能(英語:Artificial Intelligence,AI)的核心是能夠構建與人類交流、學習,甚至超越人類推理、知識、規劃、學習、交流、感知、移動和操縱物體的能力[6]。

目前,我國常用的人工智能方向,主要有無人駕駛、機器學習、智能搜索、智能推薦、圖像識別、語音翻譯、機器人、博弈、預測等。國內科技巨頭華為、百度、阿里巴巴、騰訊、科大訊飛等公司,加快布局了人工智能的研究,他們成立了專門的研究機構,開放他們的定制平臺,如百度的apollo系統,用于無人駕駛。阿里巴巴的阿里云ET城市大腦,用于交通管理;科大訊飛的語音云,用于語音識別與實時翻譯。而國內高校對人工智能的研發與教學布局還相對較弱。

1.2 Python編程語言的背景與特點

21世紀,計算機經歷了飛速的發展。計算機的編程語言也蓬勃發展,出現了匯編語言、C++、Java、C#、PHP、Python、Objective-C等等,但是像Python語言既具有面向對象的特點,又像腳本語言方便上手,卻很少有[7]。因此,在2016年,教育部高等學校大學計算機課程教學指導委員會發布了《大學計算機基礎課程教學基本要求》(簡稱:《基本要求》)[8],《基本要求》首次建議將Python語言作為首門程序設計課程的教學語言。

相比其他的傳統語言,Python語言有如下的特點。

⑴ 簡潔、易學。Python的語法邏輯清晰,簡化變量類型的區分,并且增加多維度運算、多類型運算等,簡化了編程的語義表達,提高了程序的可讀性,增強了程序的邏輯結構。

⑵ 可嵌入性、可擴展性。Python語言可以嵌入到C++語言中,從而提供腳本編程的功能。Python程序中,也可以加入C++語言,來提高運行的效率。

⑶ 開放、開源。Python語言遵從GPL(GNU General Public License)協議,所有的代碼都可以開放出來,這也使得Python擁有12萬個以上的第三方庫,避免了重復編程,提升了編程效率。

⑷ 高層語言、面向對象。Python是一種高層語言,當用Python編程時,無需考慮內存細節、指針問題等。而Python的語法既支持面向對象也支持面向過程。

⑸ 跨平臺、可移植性。Python是一種解釋型語言。這使得Python的程序可以直接在各種系統(如Linux、Windows、MacOS)拷貝運行,不必擔心環境配置問題。

2 Python程序設計教學探索

為了適應沒有編程基礎的學生能學深Python語言編程,同時緊跟人工智能的時代背景,Python程序設計課程內容主要包括:Python簡介,Python安裝,Python輸入輸出,數據類型與變量,運算符,條件語句,循環語句,Python特性,函數,面向對象,常見類庫,人工智能編程。

2.1 Python程序設計教學目標

教學目標是使學生進步和變化的明確表述,也是教學活動期望得到的學生的學習結果。因此,Python程序設計的教學目標在整個教學活動中,起著引導性的作用。

教學目標一 學生具有用Python編寫基本程序的能力。要求學生根據程序的功能需求,建立面向對象框架,基于常用類庫,使用Python語言編程并調試,最終實現程序功能。

教學目標二 學生掌握Python編程的特性。每一種編程語言都大同小異,但每一種編程語言都有它獨有的特性。而Python語言是解釋型語言,非常容易進行混合語言編程,方便使用它的第三方庫。因此在運用Python時,必須避免與其他語言混淆,而學生掌握Python語言的特性顯得尤為重要。其中Python較為著名的特性有:①字典;②切片;③生成式;④生成器;⑤逗號的用法;⑥簡單循環;⑦淺拷貝與深拷貝;⑧類屬性與實例屬性;⑨裝飾器,⑩正則表達式。

⑴ 字典的示例代碼

name_scores={‘Jack:80, ‘Kevin:95, ‘Pony:75}

print(name _scores[‘Kevin])

輸出:95

⑵ 切片的示例代碼

sale=[155,102,74,11,55,87,63,42,99,82]

print(sale[0:3])

輸出:[155,102,74]

print(sale[-3:-1])

輸出:[42,99]

注:負號為反方向開始計數

print( sale[:4] )

輸出:[155,102,74,11]

注:默認為從零開始計數

print( sale[::-1] )

輸出:[82, 99, 42, 63, 87, 55, 11, 74, 102, 155]

⑶ 生成式的示例代碼

temp=[x*2 for x in range(1, 11)]

print(temp)

輸出:[2,4,6,8,10,12,14,16,18,20]

⑷ 生成器的示例代碼

temp2=(x*2 for x in range(1, 11))

print(next(temp2))

輸出:2

print(next(temp2))

輸出:4

注:注意括號的區別

⑸ 逗號的示例代碼

a,b=2,5

print(a,b)

輸出:2 5

list_1=[1,2]

list_2=[‘a,b]

for x,y in zip(list_1,list_2)

print x,y

輸出: 1 a

2 b

⑹ 簡單循環的示例代碼

print(“Tom”*2+”Jack”*3)

輸出:TomTomJackJackJack

⑺ 淺拷貝與深拷貝的示例代碼

import copy

a=[1,2,3]

b=a

c=copy.copy(a)

d=copy.deepcopy(a)

print(id(a),id(b),id(c),id(d))

a.append(4)

print(a,b,c,d)

a=[4,5,6]

print(a,b,c,d)

輸出:

19063880 19063880 19089800 19048840

[1, 2, 3, 4] [1, 2, 3, 4] [1, 2, 3] [1, 2, 3]

[4, 5, 6] [1, 2, 3, 4] [1, 2, 3] [1, 2, 3]

⑻ 類屬性與實例屬性的示例代碼

class Tool(object):

num=0

def__init__(self,newname):

self.name=newname

注:其中num為類屬性,name為示例屬性

⑼ 裝飾器的示例代碼

def dec(func):

def innt():

print("zhuangshi")

return func()

return innt()

@dec

def func():

print("func")

func()

輸出:

zhuangshi

func

注:python裝飾器本質上就是一個函數,它可以讓其他函數在不需要代碼變動的前提下增加額外的功能,裝飾器的返回值也是一個函數對象(函數的指針)

⑽ 正則表達式的示例代碼

import re

data="Boys are taller than girls"

result=re.match( r'(.*) are (.*?) .*', data)

if result:

print ("result.group():", result.group())

print ("result.group(1):", result.group(1))

print ("result.group(2):", result.group(2))

輸出:

result.group():Boys are taller than girls

result.group(1):Boys

result.group(2):taller

注:將data中與'(.*) are (.*?) .*'相匹配的內容賦值給result

教學目標三 使學生了解常用的Python庫,了解人工智能思想及編程方式。在人工智能時代背景下,若不借第三方庫,只靠Python的標準庫,很難編寫復雜的處理程序。而Python有開源的特性,其所衍生的第三方Python庫也均都開源,而且很多開源庫都有團隊維護,因此十分適合企業及個人使用。常見的Python標準庫如pdb、urllib、httplib、hash、os、threading等,常見的Python第三方庫requests、numpy、matplotlib、tensorflow等,其中打敗全世界圍棋高手的AlphaGo,就是基于tensorflow開發而來的。由于第三方庫眾多,函數及用法各有不同,讓學生全部掌握十分困難,需要指導學生了解第三方庫的特征及用法。當學生需要用時,采用“help()”指令的方式得到該函數的用法及參數特性,使學生學會去獨立探索Python庫的多樣性,而不是一味的填鴨式教育,這樣可以提升學生學習的積極性與主動性,提高學生的動手能力,增強學生的探索與創新精神。

2.2 任務驅動與項目驅動混合教學模式

為了達到上述的教學目標,Python程序設計在教學活動中采用學生主體、教師主導的任務驅動與項目驅動混合模式,開展教學活動,引導學生完成每一章節的具體任務,從而提升學生的Python語言編程能力。

任務驅動模式是指在教學過程中,以學生為中心,以任務為載體,把教學內容巧妙地隱含在一個個具體任務之中,學生通過獨立或協作完成任務,學習新知識和新技能 [9]。Python程序設計在教學過程中,對于基礎章節每一小節一個任務,以任務結果評價學生掌握情況,通過這樣的方法打破理論與實踐分離,將課堂理論運用到任務中去,實現理論與實踐相統一。

Python程序設計的示例任務如下。

任務1 兩個文件file1和file2,各存放一行字母,要求把這兩個文件中的信息合并,并且按字母順序排列,輸出到一個新文件file3中。

任務1代碼如下:

import string

fp1=open('file1.txt')

data1=fp1.read()

fp1.close()

fp2=open('file2.txt')

data2=fp2.read()

fp2.close()

fp3=open('file3.txt','w')

data_all=list(data1+data2)

data_all.sort()

data_unite=''

data_unite=data_unite.join(data_all)

fp3.write(data_unite)

fp3.close()

項目教學法是師生通過共同實施一個完整的項目工作而進行的教學活動。將一個相對獨立的項目(產品教學法),交由學生自己處理。信息的收集、方案的設計、項目的實施及最終的評價,,都由學生自己負責 [10]。在Python程序設計的項目教學中,考驗了學生對Python基本庫與第三方庫的了解及運用程度,結合人工智能的編程思路,帶領學生了解人工智能在日常生活中的運用。有些大型項目,學生無法直接入手,在課程教學活動中需幫助學生了解大型項目的開發流程,模塊分割,聯合調試等,使得學生在學會協作編程的同時,提高企業項目的編程能力。

任務2 Python程序設計的示例項目:有如下一組數據,X代表房子面積,Y代表房子價格,運用面向對象設計思想,采用線性回歸擬合,將最后回歸信息通過坐標軸展示。

X=[18,20,33,45,94,110,121,133]

Y=[1324,3315,2218,4127,8679,9989,10987,15412]

任務2的關鍵代碼如下:

import numpy as np

import matplotlib.pyplot as plt

house_area=np.array([18,20,33,45,94,110,121,133],

dtype=np.float64)

house_price=np.array([1324,3315,2218,4127,8679,9989,

10987,15412],dtype=np.float64)

class House_Price_Predicted(object):

def__init__(self,datenum,iternum,learnrate):

#super(House_Price_Predicted,self).__init__()

self.date_num=datenum

self.iteration_num=iternum

self.learn_rate=learnrate

def simple_d_a(self,cal_price,price,area):

return (cal_price-price)*area

def simple_d_b(self,cal_price,price):

return cal_price-price

def cal_loss(self,cal_price,price):

return sum((cal_price-price)**2)/(2*self.date_num)

def draw_date(self):

chart1a=np.array(np.linspace(-20,20,100))

chart1b=np.array(np.linspace(-20,20,100))

draw_loss=np.zeros(shape=(len(chart1a),len(chart1b)))

for ai in range(0,len(chart1a)):

for bi in range(0,len(chart1b)):

a0=chart1a[ai]

b0=chart1b[bi]

temp=self.cal_loss(a0*house_area+b0,house_price)

draw_loss[ai][bi]=temp

chart1a,chart1b=np.meshgrid(chart1a,chart1b)

return(chart1a,chart1b,draw_loss)

def draw_chart(self):

fig=plt.figure(1,figsize=(12,8))

chart1=fig.add_subplot(1,1,1)

chart1.plot(house_area,house_price)

chart1.plot(house_area,house_price,'o')

chart1.set_xlabel('X')

chart1.set_ylabel('Y')

for step in range(1,self.iteration_num):

__loss=0

all_da=0

all_db=0

for i in range(0,len(house_price)):

tempda=self.simple_d_a(a*house_area[i]+

b,house_price[i],house_area[i])

tempdb=self.simple_d_b(a*house_area[i]+

b,house_price[i])

all_da=all_da+tempda

all_db=all_db+tempdb

__loss=(a*house_area[i]+b-house_price[i])**2/2.0

tempx=np.linspace(0,1,4)

tempy=tempx*a+b

chart1.plot(tempx,tempy)

a=a-all_da * self.learn_rate

b=b-all_db * self.learn_rate

all_loss.append(__loss)

all_step.append(step)

plt.ioff()

plt.show()

def main():

hp=House_Price_Predicted(8,100,0.01)

hp.draw_chart()

if __name__ == '__main__':

main()

注:為了方便運算,代碼通過標準化將數據調整到0~1之間。

通過上述代碼當迭代次數為20次時,線性擬合為圖1所示。

當迭代次數設為100時,線性擬合如圖2所示。

當迭代次數設為500時,線性擬合如圖3所示。

Python程序設計的任務驅動與項目驅動混合教學模式,在整個教學過程中,基礎知識部分適合以任務驅動教學模式,而在拓展知識部分及綜合訓練適合以項目驅動教學模式,其中拓展知識部分主要包括面向對象,常見類庫,人工智能編程。

任務驅動與項目驅動混合教學模式,克服了理論知識枯燥乏味,學生積極性、主動性不高,實操能力不強等問題,同時與單一的任務驅動相比,增加了學生真實的項目經驗,實現了產教融合,與單一項目驅動相比,減輕了學生學習Python編程與人工智能編程的壓力,給予學生更多的編程信心與編程樂趣。

2.3 Python程序設計“1171”教學方法

教師為實現教學目標而開展各種教學活動設計教學程序,采用必要的教學手段。

在Python程序設計課程中,把每次課程分為4個階段,分別占用課時比例為10%,10%,70%,10%,故簡稱為“1171”教學法。前10%主要采用講授法或啟發式教學法,帶學生引入課程,并理解知識點;接下來10%為課程的演示階段,主要通過演示法或討論法,向學生演示編程實現某個功能的過程,或向學生提出綜合性的項目問題,與學生展開討論;占比最大的70%時間,用于學生的編程實操、實驗,在學生需要幫助時給予啟發,提高學生自主探索的能力;最后的10%時間,采用講授法或討論法,向學生闡述整個課程中遇到的常見問題及編程技巧,總結本堂課的重點內容。

根據實踐,在整個Python程序設計的教學活動中,采用“1171”的教學法,能大大提升學生的自主性與創新創造力,而采用傳統的講授法與實驗法結合教學,難以激發學生的興趣,通過在課程中間穿插學生對于項目、任務的討論,加深學生對于知識點的理解,并為編程實訓做好鋪墊,同時讓學生懂得了團隊合作。而最后的總結時間,是引導學生對于實操中問題的回顧,加深了學生對重點和難點的印象。

3 結束語

在浙江國際海運職業技術學院的程序設計課程中進行了教學實踐。實踐表明,該教學目標、教學模式、教學方法可以激發學生對Python程序設計的學習熱情,并且了解人工智能的編程思路,同時使學生具有運用Python解決實際問題的能力。逐漸的Python代替C語言成為其他非計算機專業的程序設計必修課,學生可以告別復雜語法的困擾,而專注于其專業領域的研究。但目前國內高校的Python師資短缺,希望本文能為程序設計相關的教輔人員提供教學思路,以期更好的推廣Python教學。

參考文獻(References):

[1] 新一代人工智能發展規劃[Z].國發〔2017〕35號.

[2] 《促進新一代人工智能產業發展三年行動計劃(2018-2020年)》印發[J].機器人產業,2018.1:70-79

[3] 秦科,劉貴松.面向Python應用的大學教學改革初探[J].計算機教育,2017.9:21-25

[4] 派崔克·溫斯頓.人工智能[M].劍橋出版社,1984.

[5] 馬玉慧,柏茂林,周政.智慧教育時代我國人工智能教育應用的發展路徑探究——美國《規劃未來,迎接人工智能時代》報告解讀及啟示[J].電化教育研究,2017.38(3):123-128

[6] De Meyer, Kris. Foundations of stochastic diffusion search.Diss. University of Reading,2004.

[7] 秦科,劉貴松.面向Python應用的大學教學改革初探[J].計算機教育,2017.9:21-25

[8] 嵩天,黃天羽,禮欣.Python語言:程序設計課程教學改革的理想選擇[J].中國大學教學,2016.2:42-47

[9] 吳靜.項目教學法與任務驅動教學法的異同比較[J].北京工業職業技術學院學報,2011.10(3):79-82

[10] 徐肇杰.任務驅動教學法與項目教學法之比較[J].教育與職業,2008.11:36-37

猜你喜歡
教學方式人工智能
高校鋼琴教學方式拓展的思考與實踐
河北畫報(2020年8期)2020-10-27 02:55:14
2019:人工智能
商界(2019年12期)2019-01-03 06:59:05
人工智能與就業
IT經理世界(2018年20期)2018-10-24 02:38:24
數讀人工智能
小康(2017年16期)2017-06-07 09:00:59
下一幕,人工智能!
南風窗(2016年19期)2016-09-21 16:51:29
高中數學高效教學方式與方法優選例談
學周刊(2016年23期)2016-09-08 08:57:40
高中化學教學方式探析
學周刊(2016年23期)2016-09-08 08:57:16
探索不同教學方式 提高課堂教學效果
學習月刊(2015年20期)2015-07-09 03:39:42
主站蜘蛛池模板: 一级片一区| 成·人免费午夜无码视频在线观看| 亚洲二区视频| 亚洲全网成人资源在线观看| 黄色三级网站免费| 亚洲欧美日韩色图| 国产高潮流白浆视频| 亚洲国产av无码综合原创国产| 日韩一区二区三免费高清| 免费国产高清视频| 国模粉嫩小泬视频在线观看| 成人一区专区在线观看| 亚洲最大看欧美片网站地址| www.99在线观看| 动漫精品中文字幕无码| 狠狠色噜噜狠狠狠狠色综合久| 国产毛片不卡| 国产小视频在线高清播放 | 另类专区亚洲| 干中文字幕| 丁香六月综合网| 57pao国产成视频免费播放| 亚洲天堂区| 九一九色国产| 国产性生大片免费观看性欧美| 亚洲一级毛片免费观看| 五月天福利视频| 亚洲精品片911| 99re视频在线| 色国产视频| 天天摸夜夜操| 国产精品99在线观看| 国产免费好大好硬视频| 日本不卡在线| 亚洲欧美色中文字幕| 国产第一页屁屁影院| 不卡午夜视频| 青青操视频免费观看| 国产色偷丝袜婷婷无码麻豆制服| 中文字幕无码中文字幕有码在线| 精品国产福利在线| a亚洲天堂| 日a本亚洲中文在线观看| 妇女自拍偷自拍亚洲精品| 国产一区成人| 色哟哟国产精品| 久久综合AV免费观看| 国产日产欧美精品| 亚洲欧美精品日韩欧美| jizz亚洲高清在线观看| 久草视频精品| 少妇露出福利视频| 国产第四页| 国产AV毛片| 伊人久久福利中文字幕| 亚洲成av人无码综合在线观看| 国产成人综合在线观看| 婷婷色在线视频| 亚洲天堂精品视频| 中文字幕av一区二区三区欲色| 日韩AV手机在线观看蜜芽| 欧美人与牲动交a欧美精品 | 亚洲高清在线播放| 久久久久久尹人网香蕉| 日韩大片免费观看视频播放| 人妻丰满熟妇啪啪| 国产欧美日韩精品综合在线| 久青草免费在线视频| 亚洲天堂网视频| 91一级片| 欧美乱妇高清无乱码免费| 2021国产精品自产拍在线| 国产XXXX做受性欧美88| 色综合手机在线| 91在线免费公开视频| 91久久天天躁狠狠躁夜夜| 亚洲精品日产AⅤ| 狠狠亚洲五月天| 国产二级毛片| 国产亚洲美日韩AV中文字幕无码成人 | 99热这里只有精品5| 乱人伦视频中文字幕在线|