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

高職計算思維教育視域下Euclidean算法研究

2020-09-03 02:19:23耿江濤匡增意熊曉波鐘超婷
理論與創新 2020年13期
關鍵詞:高職教育

耿江濤 匡增意 熊曉波 鐘超婷

【摘 ?要】大數據和人工智能的發展,促使對計算思維更加系統和深刻的認知,其本質特征是計算模型和相應的算法設計,計算思維是新時代公民教育的基本內容,也是高職學生計算思維范式培養的重要內容。但在高職教育的算法思維問題求解領域,缺乏合適的案例進行貫穿問題求解框架的教學。本文對傳統Euclidean算法進行計算思維教育視域下的研究,特別是通過對算法實現程序正確性的形式化證明,為高職院校在算法思維問題求解過程提供了適用、完整的案例。

【關鍵詞】 計算思維;Euclidean算法;高職教育;程序正確性;形式化證明

引言

陳國良院士2020年在核心期刊《中國大學教學》發表《走向計算思維2.0》指出,自美國卡內基·梅隆大學周以真教授在權威期刊ACM通訊上提出計算思維(Computational Thinking)新概念以來,計算思維的概念不僅滲透到大學各學科的教學內容,且已延伸到中小學,計算思維被認為是繼數學邏輯思維、物理實證思維后的第三種思維方式,成為新時代公民教育極為重要的基本內容。計算思維常被形象化的描述為計算機科學家解決問題時所用的思維,其本質特征是抽象與自動化。這一時期為計算思維1.0時代。

近年來,在大數據和人工智能推動下,促進了AI賦能的智能時代發展,產生眾多新的計算模型及算法設計技術。2018年,國際教育技術學會(ISTE)發布《教育者計算思維能力標準》,強調教育者將計算思維融入學科教學的五方面標準。這些工作促進了對計算思維更加系統和深刻的認知,其本質是計算模型和相應的算法設計,進入計算思維2.0時代,體現出與1.0時代的顯著不同的特點。

在此背景下,國內高校積極開展以計算思維為導向的計算機課程改革及研究,戰德臣教授在對本科計算思維教育的探索中,使用計算之樹概括了計算機課程計算思維教育空間,闡明了教學內容體系,并在新工科教育中開展了計算思維能力培養的實踐,學者竇祥國也在積極探索適合高職教育的計算思維培養途徑。

1. 高職計算思維教育的現狀

與普通高校相比,計算思維培養在高職教育中的研究被嚴重忽視。在中國知網以“計算思維”為關鍵詞檢索核心期刊,查到文獻超過330篇,其中與高職相關的文獻僅有6篇。雖然程序設計課程被公認為實施計算思維教育的有力工具,但針對高職程序設計課程研究計算思維教育,在核心期刊上的文獻僅有2篇,表明這方面的研究欠缺深度和廣度。

從現有的研究和教學實踐看,針對程序設計課程中算法類問題求解思維的教學,由于抽象、涉及知識點多的特點,應當采取案例化的教學方法闡釋一般性的思維方式和抽象概念,通過案例教學培養學生計算思維能力。

實施案例教學,關鍵核心案例的選擇,既要適合高職學生的特點和基礎,避免難度過大;又不能過于簡單而難以貫穿求解的全過程。然而現有的研究都無法提供適合高職學生水平、又能貫穿問題求解全過程進行計算思維能力培養的恰當案例。

Euclidean算法是非常成熟的算法,易于理解,實現代碼復雜度低,有較完善的基礎研究,已有各種程序設計語言的實現代碼。因此選取Euclidean算法作為高職教育培養計算思維的案例,既能適應高職學生現有的基礎,又能貫穿問題求解過程,是非常理想的典型案例。

2 .基于計算思維教育的Euclidean算法研究

陳國良院士指出,計算思維2.0的本質是計算模型及算法設計。具體到計算學科算法問題求解框架,抽象表示、理論分析和設計實現是其中重要的三個過程。設計實現是從工程實踐的角度,用程序設計語言實現算法、構造計算系統來改造世界的過程;理論分析是從數學和計算理論的角度,對算法的正確性和有效性進行證明,是發現世界規律的過程;抽象表示是從科學抽象和數學分析的角度,感性認識世界構建計算模型的過程。認識世界→發現規律→改造世界,是計算學科發展的基本過程。

分析現階段職業高校程序設計類課程的教學實際,可以看到,由于學生的數學基礎薄弱、教師計算理論水平有限,特別是缺乏適當的教學案例,導致問題求解思維中的抽象表示和理論分析過程沒有實質地開展,僅是將設計實現作為現階段程序設計課程教學的核心內容,這對開展系統的計算思維教育極為不利。

Euclidean算法又稱輾轉相除法,是求兩個正整數最大公約數(Greatest Common Divisor, gcd)的算法,從表面看僅涉及小學數學知識,非常容易理解,且Euclidean算法實現代碼的復雜度較低,是高職實施計算思維教育中極為理想的案例算法。

下面從抽象表示、理論分析和設計實現三個方面對Euclidean算法進行研究。在此過程中,必須使用嚴格的數學和計算理論分析,故在研究方法上,充分考慮高職學生的特點,從簡單的數學基礎出發,摒棄數學家嚴密的證明過程,以學生易于理解的方式進行推導,在不失正確性基礎上構建問題求解框架,以期培養學生建立完整的算法問題求解思維體系。

2.1 Euclidean算法的抽象表達

抽象表達是對客觀事物進行描述、建立具體問題的計算模型的過程,是由感性認識到理性認識飛躍的關鍵環節。以下從Euclidean算法解決問題的背景出發,經過數學抽象處理,得到算法的抽象數學描述和具體的ANSI流程圖表示。

2.1.1 問題背景-丟番圖方程

丟番圖方程是指求解一個或多個變量的整系數方程的整數解,是由代數之父、古希臘的大數學家丟番圖(Diophantine)提出,是數論中基礎的研究內容,其可解性被希爾伯特列為著名的23個數學問題中的第10題。

對于一元線性丟番圖方程:ax=b,只要a能整除b,則方程有整數解,且解為b/a。

對于二元線性丟番圖方程:ax+by=c,其可解性由Bézout定理給出,即先求a和b 的最大公約數d=gcd(a,b),若d能整除c,則此方程有整數解。

可見,整除、最大公約數是丟番圖方程的研究基礎,也是數論基礎的研究內容。

2.1.2 數論基礎

2.1.2.1 除法算法定理

定理1 除法算法:對任意給定的整數a 和b,其中b > 0,存在唯一的整數對q(商)和r(余數)使得 a=qb+r,且0≤r

在除法算法定理中,若r=0,則 a=qb,則稱a可被b整除,記為 b | a 。

如果整數d滿足d | a ?且d | b ,則稱 d 為a ?和 b 的公約數。

2.1.2.2 最大公約數的嚴格數學定義

如果整數d為a和b的公約數,且對a ?和 ?b的其他公約數 d′,都有d′|d ,則稱 d 為 a 和 ?b的最大公約數,記為d=gcd(a,b) 。

2.1.3 Euclidean算法表述

2.1.3.1 Euclidean算法數學表達

定理2 Euclidean算法:對任意給定的正整數 a 和 b,計算最大公約數的算法過程為:gcd (a,b)=gcd(b,a mo d b) 其中a mo d b ,表示用a ?除b ?所得到的余數r 。

2.1.3.2 Euclidean算法的ANSI流程圖表示

圖1為Euclidean算法的ANSI流程圖(Flowchart)表示,見算法程序的正確性證明部分。

2.1.3.3 擴展Euclidean算法

定理3 Bézout定理:對非零整數 a和b ?,存在整數r ?和 s ,使得gcd(a,b)=ar+bs, ?r 和s ?稱為Bézout系數。(證明從略)

Bézout定理表明,非零整數 a 和b ?的最大公約數一定能表達為 ?a和 b 的線性組合。據此對Euclidean算法進行推廣,得到擴展Euclidean算法(extended Euclidean algorithm,xgcd),不但能計算出兩個非零整數 a 和 b 的最大公約數,還同時計算出這個最大公約數如何表達為 a 和 b 的線性組合,即Bézout系數。

2.2 Euclidean算法的理論分析

首先對算法的正確性和有效性進行證明,再對算法實現程序給予正確性的形式化證明。

2.2.1 Euclidean算法的正確性和有效性

以下用數論基礎理論證明Euclidean算法的正確性和有效性。

2.2.1.1 Euclidean算法的正確性證明

要證明 gcd(a,b)=gcd(b,a mo d b) ,不失一般性,不妨設 a>b>0,則只要證明gcd(a,b)=gcd(a-b,b) ?即可。

根據模除消減定理,算法在連續兩次迭代后,a 和 ?b的值都至少消減了一半,意味著算法在O(log a) 步之后會終止。事實上,已經證明,算法的時間復雜度為O(log b)。

2.2.2 Euclidean算法實現程序的正確性

采用軟件測試方法可以發現程序中的錯誤,卻不能證明程序中沒有錯誤。而程序正確性理論則可以證明程序的正確性。程序正確性的形式化方法能夠嚴格分析、證明程序及其性質,對于確保程序正確性和提高可信性具有基礎性的作用。

根據程序正確性理論,程序的完全正確,等價于該程序是部分正確,同時又是終止的。因此,以下通過Floyd不變式斷言法先證明Euclidean算法程序的部分正確性,再使用Knuth計數器法證明Euclidean算法程序的終止性,從而證明了Euclidean算法程序的完全正確性。

2.2.2.1 Floyd斷言法證明程序的部分正確性

Floyd的不變式斷言法是證明程序部分正確性的方法,主要通過以下三個步驟進行證明。

完全正確性:綜合上述證明,程序是部分正確的且也是終止的,故程序是完全正確的。

2.3 Euclidean算法的設計實現

Euclidean算法gcd及擴展Euclidean算法xgcd都可以使用迭代和遞歸兩種方式實現。另外,既可以使用C/C++語言實現,也可以使用Python語言實現。

2.3.1 gcd算法的實現示例

(1)遞歸實現gcd算法的C/C++版

(2)迭代實現gcd算法的C/C++版

(3) 高效二進制實現gcd算法(Stein算法)的C++版

算法核心是避免使用復雜的乘除法計算,而使用減法和更高效的移位操作來提高效率。

int binary_gcd(int a, int b) { int k = 0;

while ( !( (a | b) & 1 ) )

a >>= 1, b >>= 1, k++;

while ( !( a & 1)) a >>= 1;

while ( b ) {

while ( ?!( b & 1) ) b >>= 1;

if ( b < a ) swap( a, b);

b = ( b - a ) >> 1; ?}

return ( a << k ); ?}

(4)使用Python包中函數計算最大公約數

在Python中,還可以使用函數 ?或 ?計算最大公約數。

2.3.2 xgcd算法的實現(Python實現)

def xgcd( a, b ) :

r0, s0, r1, s1 = 1, 0, 0, 1

while b :

q, a, b = a // b, b, a % b

r0, s0, r1, s1 = r1, s1, r0 - q * r1, s0 - q * s1

return a, r0, s0

3. Euclidean算法的綜合實驗

為測試Euclidean算法在各種實現下的效率即時間性能,設計了兩組實驗進行性能統計。

3.1 Euclidean算法C++版各種實現的實驗

實驗數據集:隨機生成200對隨機數,分別采用Euclidean算法的遞歸、迭代和二進制等三種實現程序,對每對隨機數進行一百萬次的求最大公約數。

實驗結果:由于采用隨機數,每次運行的結果有細微的差距,但以秒為單位時,運行時間基本穩定。具體情況是,遞歸實現運行約16.5秒,迭代實現運行約15.1秒,二進制實現運行約13.6秒。

結果分析:Euclidean算法的二進制實現最為高效,遞歸實現耗時最長,效率最低,這是由于會使用函數的遞歸調用,增加了額外的開銷所致。

3.2 Euclidean算法C++與Python各種實現的實驗

實驗數據集:對兩個大整數1160718174、316258250,分別采用Euclidean算法在C++、Python的遞歸、迭代和二進制等各三種實現程序,以及Python的語言包中的函數對這對大整數進行二千萬次的求最大公約數。

實驗結果:由于隨機干擾,每次運行的結果有細微的差距,但以秒為單位時,運行時間基本穩定。具體情況是:

C++編程遞歸實現運行約2.7秒,迭代實現運行約1.5秒,二進制實現運行約1.5秒;

Python編程遞歸實現運行約31.1秒,迭代實現運行約21.0秒,二進制實現運行約13.5秒,函數包中的 運行約7.2秒,運行27.8秒。

結果分析:Euclidean算法的C++實現都非常高效,而各種Python實現都較C++慢幾倍以上,在這些實現中,只有 ?運行程序時間最短,可以優先使用。

4. 結語

算法思維是典型的計算思維,也是其核心概念。掌握算法類問題的求解過程,樹立完整的問題求解框架,對計算思維的培養具有重要的意義。以上對Euclidean算法的研究,旨在為高職計算思維教育提供典型的案例。在案例使用中,框架和求解的過程、結構是教學的核心內容;而證明和分析,則是建立計算模型的基礎;算法實現的正確性和效率,則是計算思維實際應用的指南。

參考文獻

[1] 陳國良,李廉,董榮勝.走向計算思維2.0[J].中國大學教學,2020(04):24-30.

[2] Jannette M. Wing. Computational Thinking[J]. Communication of the ACM. 2006, 49,(3):33-35.

[3] International Society for Technology in Education (ISTE).Computational Thinking Competencies.[EB/OL].[2020-08-03]. https://www.iste.org/standards/computational-thinking

[4] Peter J. Denning. Remaining trouble spots with computational thinking[J]. Communications of the ACM,2017,60(6):33-39.

[5] 戰德臣,王浩.面向計算思維的大學計算機課程教學內容體系[J].中國大學教學, 2014(07):59-66.

[6] 鄧磊,戰德臣,姜學鋒.新工科教育中計算思維能力培養的價值探索與實踐[J].高等工程教育研究,2020(02):49-53.

[7] 竇祥國.面向計算思維培養的高職C程序設計案例教學研究[J]. 中國職業技術教育, 2019(32):93-96.

[8] 王戟等. 形式化方法概貌[J]. 軟件學報, 2019, 30(01):33-61.

基金項目: 1. 廣東省教育廳2019年度普通高校特色創新類項目(2019GKTSCX152);2. 廣東省教育廳2018年度廣東省特色創新項目(2018GWTSCX055); 3. 廣東省教育廳2018年省高職質量工程教改項目(GDJG2019309);4. 廣州涉外經濟職業技術學院2020年校級質量工程重點項目(SWZL202001);5. 廣州涉外經濟職業技術學教育研究院2020年度專項研究重點課題(SWJY202001); 6. 廣州涉外經濟職業技術學院2020年度校級重點科研項目(2018KY01); 7. 廣州涉外經濟職業技術學院2018年校級教研項目(2018JY25)

作者簡介:耿江濤,副教授,高級工程師,華南師范大學博士生,廣州涉外經濟職業技術學院華文與國際教育學院院長。研究方向:大數據應用,程序設計雙語教學;

*通訊作者:匡增意,副教授,碩士,廣州涉外經濟職業技術學院常務副校長。研究方向:高職教育管理。E-mail: 2801756492@qq.com;

熊曉波,教授,碩士,廣州涉外經濟職業技術學院副校長兼信息工程學院院長。研究方向:計算機課程教學;

鐘超婷,講師,碩士,廣州涉外經濟職業技術學院華文與國際教育學院專任教師。研究方向:高職教學實踐。

猜你喜歡
高職教育
職業高校職業思想道德重要性探析
工業分析與檢驗專業專業基礎課課程教學改革研究與實踐
淺談素質拓展訓練對提高高職學生綜合素質的作用
高職軟件技術實訓考核評價標準構建
科技視界(2016年18期)2016-11-03 22:06:01
高職院校新開設無人機專業的探討
人間(2016年26期)2016-11-03 17:52:40
現代學徒制人才培養模式下的高職軟件技術專業課程體系改革研究
“營改增”對高職會計教育的影響及對策研究
時代金融(2016年23期)2016-10-31 13:38:38
人文主義視野下的高職教育研究
職業(2016年10期)2016-10-20 21:52:25
以就業為導向的高職學生綜合素質培養研究
中國市場(2016年35期)2016-10-19 03:04:11
微商思維在高職市場營銷教學中的應用探究
中國市場(2016年35期)2016-10-19 02:57:22
主站蜘蛛池模板: 亚洲人成人伊人成综合网无码| 国产欧美日韩va另类在线播放| 亚洲一区二区无码视频| 亚洲Va中文字幕久久一区| 国产精品久久自在自线观看| 亚洲最新网址| 一本二本三本不卡无码| 国禁国产you女视频网站| 午夜福利免费视频| 色首页AV在线| 美女被操91视频| 国产精品视屏| 最新国产精品鲁鲁免费视频| 国产视频一二三区| 亚洲一区二区约美女探花| 国产一级毛片在线| 国产精品白浆无码流出在线看| 亚洲国产精品成人久久综合影院 | 亚洲人成成无码网WWW| 18黑白丝水手服自慰喷水网站| 免费国产不卡午夜福在线观看| 国产不卡一级毛片视频| 四虎在线观看视频高清无码| 超碰91免费人妻| 好吊妞欧美视频免费| 国产亚洲精| 亚洲男人的天堂久久香蕉网| 亚洲人成在线精品| 高清色本在线www| 欧美另类图片视频无弹跳第一页| 成人小视频在线观看免费| 免费一看一级毛片| 亚洲一区二区三区麻豆| 亚洲三级片在线看| 精品人妻AV区| 久久久精品无码一区二区三区| 999福利激情视频| 无码国产偷倩在线播放老年人| 另类专区亚洲| 狼友av永久网站免费观看| 欧美亚洲欧美| 综合社区亚洲熟妇p| 国产在线欧美| 四虎亚洲精品| 午夜日b视频| jizz亚洲高清在线观看| 四虎国产在线观看| 免费无码AV片在线观看中文| 黄色网址手机国内免费在线观看| 2021国产乱人伦在线播放| www.日韩三级| 亚洲精品视频网| 免费一级无码在线网站| 亚洲精品无码日韩国产不卡| 91 九色视频丝袜| 欧美国产视频| 国产亚洲日韩av在线| 国产第八页| 亚洲第一天堂无码专区| 18禁色诱爆乳网站| 色天堂无毒不卡| 亚洲自拍另类| 免费看久久精品99| 欧美成人影院亚洲综合图| 午夜a级毛片| 日韩欧美国产另类| 波多野结衣一区二区三区四区 | 久久国产成人精品国产成人亚洲| 亚洲国产日韩在线观看| 人人澡人人爽欧美一区| 在线播放精品一区二区啪视频| 亚洲免费福利视频| 99久视频| 国产高清无码第一十页在线观看| 精品国产免费第一区二区三区日韩| 国产拍在线| 成年女人a毛片免费视频| 女人18毛片水真多国产| 亚洲精品第一页不卡| 亚洲无码高清一区| 亚洲精品欧美日本中文字幕| 亚洲av无码人妻|