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

淺談Prolog在教育教學中的運用

2018-01-17 17:40:53王佳楠
軟件工程 2018年12期
關鍵詞:教育

摘 要:Prolog作為一種邏輯語言廣泛被運用于人工智能和專家系統(tǒng)中。不同于其他編程語言,Prolog類似自然語言的語法使它更容易被讀懂和理解,因此它被認為可能是一種出色的幫助學習邏輯知識的工具,一些科學家已經通過實驗證明了Prolog甚至可以很好的被兒童運用和學習,本文將延續(xù)這個思路,回顧過往實驗和結果,結合數學中幾何證明問題的例子,提出將Prolog運用于教育,尤其是面向非計算機專業(yè)相關人員進行邏輯相關問題的學習上的可能性和優(yōu)勢。

關鍵詞:Prolog;教育;幾何證明

中圖分類號:TP311.1 文獻標識碼:A

Abstract:As a famous logic programming language,Prolog is widely used as an AI language and a great tool to design expert systems.Different from other programming languages,Prolog is expressed as a natural language,which makes it much easier to read and understand.Therefore,it is a great tool for teaching logic.Results of scientific experiments have shown that Prolog can even be used and learned by children.Following this idea,the paper reviews some previous experiments and their results.Combined with some examples of using Prolog to handle geometric proof problems,the paper proposes the possibilities and advantages of using Prolog in education,especially in the field of helping nonprogrammers and laypersons to study logic.

Keywords:Prolog;education;geometric proof

1 引言(Introduction)

Prolog是“Programming in Logic”的縮寫,這個名字的由來指明了這是一種邏輯編程語言。最初它經常被運用于自然語言處理等研究領域,而現如今,它更多的和AI或計算語言學聯(lián)系在一起。盡管AI是目前最前沿的計算機技術之一,Prolog本身卻并未深奧的令人望而卻步,與此相反,它比人們想象中更容易理解。

第一個Prolog系統(tǒng)誕生于1972年,這也使它成為世界上最早的邏輯編程語言之一。之后Prolog在北美洲和歐洲被廣泛運用,在日本,Prolog也被賦予重任,被運用構建第五代ICOT計算機系統(tǒng)。在智能系統(tǒng)研究領域,Prolog一直擔任著重要開發(fā)工具的角色。

2 文獻綜述(Literature review)

1980年,Prolog首次被Kowalski建議可以為兒童所用[1]。從1981年開始,有多個將Prolog運用在教育上的實驗項目陸續(xù)展開[2],1986年,一個命名為Prolog教育小組(PRG)建立,他們提供了多種工具組和系統(tǒng)供學校使用,以此進行了數個相關實驗[3]。1987年,Prolog被PRG的組織者之一Jon Nichol明確指出可以作為杰出的教育工具。

除了兒童教育,Peter Gibbins系統(tǒng)地介紹了如何和為何將Prolog運用于解決普遍的邏輯問題[4],Richard Spencer-Smith為這一論點提供了更多的理論支持[5]。James L.Hein在2009年提出,Prolog是解決離散數學問題的最好的工具之一[6]。眾所皆知,數學本身也是計算機科學的基礎課程,因此,Prolog也是教授計算機和編程語言的杰出工具[7]。

Prolog并不僅僅被運用在計算機學科,它已經開始被拓展運用于其他工程類學科,中村教授也給出了多個運用Prolog展現化學過程和解決普通數學計算的例子[8]。1990年,一本名為《Prolog構建的數學世界》的教材展現了大量運用Prolog學習和解決數學問題的實例,包括集合運算、拓撲空間等問題[9]。2011年,丁盤蘋通過基于本體的Prolog規(guī)則對幾何定義、定理和公理進行描述,使之能通過知識庫推理機來完成幾何定理證明[10]。在新系統(tǒng)中,Prolog經常和專家系統(tǒng)一同被提起[11],專家系統(tǒng)可以提供和學生互動的脫離課堂式教學[12]。因為Prolog可以和基于知識的語義本體完美搭檔,這也使運用網絡教育系統(tǒng)收集知識,且在多個學術領域提供互動教學系統(tǒng)成為可能[13]。

3 Prolog與教育(Prolog and education)

3.1 教授Prolog的優(yōu)勢

教授學生Prolog有許多益處,而其中最突出的優(yōu)勢毫無疑問是可以提高學生們的邏輯思維。Prolog可以教授規(guī)范邏輯的概念,眾多的Prolog課程也選擇從教授規(guī)范邏輯開始。Prolog代表了編程語言的另一種形式:邏輯編程關注的是一個問題的邏輯定義或者描述[3]。所有的Prolog表達都被規(guī)定為一種叫做霍恩子句的形式,這是一種格式為“A if B and C”的子句。所有的事實和規(guī)則都被用這種形式的子句表達,這種形式的語句表達清晰,使用者非常容易理解其中的邏輯關系,此外簡潔的子句形式使得低年齡的學生可以輕松地掌握和編寫這些語句。

教授Prolog的另一個好處是它提供了一個良好的環(huán)境將知識點結構化,它可以通過知識之間的關聯(lián)將許多知識點聯(lián)系成一個整體的知識塊,在掌握了基礎的編寫技巧之后,學生和老師都可以利用它將所教授學習或者感興趣的學科知識點改寫成子句。在這個過程中,學生可以更為透徹的了解這些知識點,并且理清這些學科知識點之間的關系。

最后,Prolog作為一種易于理解和起步學習的高級語言,教授Prolog有很大可能使剛開始接觸計算機領域的學生因為Prolog的易懂和易編寫而對該領域產生興趣。實驗顯示Prolog的學習曲線普遍呈現一種非常陡峭的角度,尤其在前期,學習收益顯著。此外,作為一種工具語言,Prolog也同樣適合計算機相關專業(yè)進階階段的學生,作為一種不同于傳統(tǒng)C語言、Java語言的語言進行拓展學習。

3.2 將Prolog運用于教學的優(yōu)勢

Prolog的一個特征就是它非常容易學習和被使用,它不需要任何編程或者語言基礎就能開始使用它。如果將Prolog用于教學,在已經擁有完整的知識塊的前提下,老師可以通過Prolog輕易地展示其中的邏輯和知識點間的關聯(lián)。此外老師也可以選擇自行添加子句來呈現希望教授的知識。作為一種高級語言,Prolog非常接近自然語言,這使它適合任何階段的學校學習,同時它也適合任何學科的老師使用。它并不需要使用的老師擅長計算機,因此Prolog并不局限于計算機或者相關學科的課程教學使用,它也非常適合計算機技術或編程基礎一般的老師使用。只需要給出簡單易懂的軟件界面,老師就能夠通過非常基礎的學習掌握錄入條件或知識點的方式,在未來課程不斷深入的過程中,也非常方便在任意時間由老師自行添加和更新知識點,它提供了一種開放簡便的構建知識基礎的結構。

及時反饋是Prolog的另一個優(yōu)勢。Prolog提供的互動性環(huán)境有助于提高學習效率,在學習過程中,如果能及時給出正確或者錯誤的反饋,將會激勵學生不斷嘗試和發(fā)現正確答案的積極性。

4 相關實驗(Relevant experiments)[3]

在1980年,Prolog第一次被認為可用作教學工具,Kowalski教授指出,將Prolog運用于課堂可以分為兩個階段,第一階段是教授學生通過Prolog學習邏輯知識,而第二階段是通過讓學生自行編輯邏輯語言以提高他們的邏輯思維能力,并使其能在其他學術領域表現更為突出。

約1982年,Jon Nichol在Exeter大學建立了Prolog學習小組,關注Prolog在教育教學運用中的進展。他們在之后的幾年內完成了大部分的實驗,并在1988年發(fā)表了大部分研究結果。他們的實驗在多所學校進行,其中部分實驗歷時長達五年,為這個小組的核心研究課題——如何將Prolog用于教育提供了大量可靠的數據和信息。

在實驗開始前期,研究者們首先開始了一些小型實驗比較了top-down和bottom-up兩種教學方式哪種更加適合用于教授Prolog,top-down即首先給學生編寫好的語句讓學生從閱讀理解并且使用這些語句編寫的程序開始學習,而bottom-up方式即直接教授給學生編寫Prolog語言的必要技能,讓學生們自行從零開始進行學習和編寫。這個實驗持續(xù)了六個月,最終得出了top-down的教學方式更加利于學生學習和掌握編程技能,也為Kowalski教授提出的兩個階段的教學方式提供了一定的實驗支持。

主體實驗由Geoff和Elizabeth主持。他們一共選取了317名五六年級的學生和117名十年級的學生參與了這個持續(xù)三年的實驗,以測試將Prolog作為課題學習媒介的可行性。他們完全參考了Kowalski教授的思路,首先使用Prolog作為輔助教學的媒介,同時也嘗試讓學生們掌握一定的Prolog編程技能。得益于本實驗的長周期和足量樣本,這一實驗得出了多個有用且可靠的結論。

長期的實驗結果證明了不同接收能力的孩子都能很好地接受Prolog課堂的知識輸出。盡管他們發(fā)現一些接收能力較弱的孩子需要一些額外的幫助,但這也僅僅發(fā)生在起步階段。即使將不同接收能力的孩子編入同一個小組也并不會在組里產生明顯的差距,當接收能力強的孩子給接收能力弱的孩子提供幫助后,后者就很快上手并且很快追趕至平均水平。

實驗結果明確顯示了學生年齡和Prolog技能掌握程度之間的正相關。五六年級的學生都能掌握基本知識,而大部分六年級生已經能夠理解其中的部分邏輯規(guī)律,并且利用部分規(guī)律,一部分六年級學生甚至已經能夠自己創(chuàng)造規(guī)律語句,而十年級中的大部分學生都可以自己創(chuàng)造規(guī)律語句。簡言之,大部分學生都能很好的使用Prolog程序進行互動學習,隨著年齡的增長,更多的學生可以由使用程序進步為掌握編程技能。

5 Prolog在特定學科,如數學學科中的運用

(The application of Prolog in a particular

subject:Mathematics)

5.1 基礎運算

雖然Prolog是一種邏輯工具,但是這并不代表它無法完成運算的工作。它和大部分編程軟件一樣,使用+、-、*、/表達加減乘除四種基礎運算符,此外也有特定的函數完成簡單運算,例如mad(a,b)表示取a/b后的余數。

Prolog也可以用來解決一些經典的數學問題,例如中國學生熟知的問題:有兩個工人A和B在制造同一種玩具,每小時B制造的玩具數量是A的兩倍多3個,問題:如果A一小時可以制造20個玩具,B一小時可以制造多少個玩具?

這時我們需要設定一個分句:B_DoubleA_Add_3并且設定如下

B_DoubleA_Add_3(X,Y) : -Y is 2*X+3.

設定完成后,問題可以輕易的用以下語句解決:

?- B_DoubleA_Add_3(20,X).

5.2 代數證明問題

中村教授曾經提出可以用Prolog教授一些自然數的基礎運算和推理問題。例如,“如果X是一個自然整數,那么它的下一個整數必然是自然數。”這個基本定理,我們可以用s(X)來代表下一個整數,具體描述如下:

natural_number(s(X)):-natural_number(X).

如果我們添加一句natural_number(0).

那么這段Prolog語句可以用以表達出另一個定理:自然數是一個從0開始的整數。

當使用者輸入:

-? natural_number(X).時,Prolog將首先回答,X=0。

但是之后的回答將依次為s(X)、s(s(X))而不是1、2、3。因為并沒有向Prolog提供s(X)=X+1這一規(guī)律,通過繼續(xù)向Prolog提供更多的規(guī)律,Prolog可以表達出更多的定理。

5.3 幾何證明問題

與處理代數問題相比,幾何問題顯得更為復雜一些,首先需要通過描述讓Prolog來判斷輸入的是哪一種幾何圖形。這時我們需要語義來幫助我們建立一個完整的數據庫。

首先,幾何問題需要被分為幾個大類,比如說,三角、線、點、角。這幾個大類中還能被分出多個分支,例如三角中有直角三角形、鈍角三角形等。

其次,我們需要定義一些特性,如表1所示就是對“長度”這一特性的定義。

當完成了所有信息的輸入后,程序將會分別對比每一個特征來做出自己的“判斷”。

以下是一個運用Prolog,將簡單的數學中三角形邊長問題轉換為Prolog程序的例子:

定理:三角形的兩邊之和大于第三邊。

三角形的三條邊長可以自由賦值,這里設定為小于10,方便學生計算,設定如下:

A is random(9)+1,% generates a random number between 1 and 10

B is random(9)+1,

C is random(9)+1,

當程序開始時,學生會看到如下的問題:

1 ?- go.

三角形三條邊長分別為:a:1cm b:6cm c:4cm

它們可以組成一個三角形嗎?(請回答Yes或No)

可見在這組隨機產生的三條邊長中,a邊和c邊之和為5cm,并不大于第三邊6cm,因此B>=A+C,此時程序將會調用相對應的判斷語句如下:

triangleAnswer(A,B,C,'no',',因為邊長AC之和不大于第三邊B'):-

B>=A+C.

而當隨機產生的ABC的長度可以構成一個三角形時,程序將會調用如下語句:

triangleAnswer(A,B,C,'yes',',因為任意兩邊之和都大于第三邊'):-

A

B

C

當用于教學時,學生可以和Prolog進行問答形式的互動,可以通過讓程序分別讀取學生給出的答案UserAnswer和程序本身判斷出的答案Answer進行比對,當學生給出Yes或者No的回答后,程序可以直接對學生做出的回答判斷對錯,并且附帶相應的解釋,這樣可以輕易地為不同學生提供不同的試題,并且反復進行具有即時反饋的作業(yè)批改。

例如上文中,當學生鍵入No,程序可以給出反饋:你的答案是正確的。答案是No,因為邊長AC之和不大于第三邊B。

通過這個方式,在老師教授了定理之后,可以讓學生運用Prolog進行多次練習,且提供的隨機數使每個學生接收到的題目都和其他同學不同,利于學生自主判斷解答。

Prolog還可以廣泛和非常簡單的運用于類似的定理練習中,除了進行判斷練習還可以完成一些簡單的計算練習,以下是一個三角形角度定理轉化為簡單的Prolog練習程序的例子:

定理:如果ABC是一個三角形,那么∠A+∠B+∠C=180。

每個角的角度需要設定一定的限制,在這里選擇設定為隨機數,設定如下:

A is random(90)+1;B is random(80)+1,

X is random(2);Y is random(10)+1,

C is 180-(A+B)+(X*Y)

當程序開始時,Prolog會隨機給ABC三個角賦值,學生將會看到如下的問題:

1 ?- go.

角ABC分別為: a:8 b:23 c:157

它們可以組成一個三角形嗎? (請回答 Yes或No)

和邊長問題類似,這時學生可以通過自己的計算給出Yes或者No的答案,Prolog會對學生給出的答案進行判斷并給出解釋。

除了可以進行判斷,因為三角形之和為固定值180度,Prolog還可以針對該定理讓學生進行運算練習。

我們可以使用A is random(88)+1,B is random(88)+1使AB都設定為1至89間的隨機數,然后設定S is A+B,Answer is 180-S。這樣可以輕易在之前進行判斷的程序中添加一個已知ABC是三角形且知道A與B的角度,讓學生計算C的角度的功能。

這是一個僅需要進行一步計算就能完成的程序,只要給出A和B的值,答案就已經呼之欲出,并且也非常方便給出簡單易懂的解釋。

例子如下

3?- go.

ABC是一個三角形,A角和B角的度數分別為:a:14;b:46。

請問角C的度數是?

這時學生可以自行在運算后輸入答案,程序將同樣給出是否正確的回應。當面對更低年齡的學生時,可以在題干中給予提示,例如給出AB之和,直接讓學生進行減法運算。

同樣因為解釋的語句可以自由編寫,老師也可以通過編輯語句給予學生鼓勵,例如在回答正確后添加一些褒獎的語句,在回答錯誤后出現一些鼓勵的語句。

6 結論(Conclusion)

研究可知,Prolog是一種適合用于教育且同時適合被教授的語言,尤其在培養(yǎng)較低年齡學生的邏輯思維方面有著得天獨厚的優(yōu)勢,同時因為Prolog并非傳統(tǒng)編程語言,所以對學習者和使用者沒有編程基礎的要求。而在基礎較弱的學生學習過程中,根據Prolog學習小組的實驗結論,隨著使用者年齡的增長,年齡較大的使用者可以自行發(fā)掘邏輯關系,創(chuàng)造規(guī)律語句,在此基礎上,讓處于起步階段的學生首先使用Prolog已經編譯好的程序進行計算練習,學習例如幾何定理等知識,在之后的學習中讓學生逐漸向編輯語句、構建邏輯關系的方向轉化,則有可能構成一個較為完整的Prolog的學習過程,正如前文所說,出色的邏輯思維能為學習眾多科學學科和知識打下良好的基礎,現如今,越來越多的兒童、低年級學生已經加入了學習編程的行列,Prolog作為一種易于理解的編程語言,同樣是一個很好的選擇。同時,在高層次領域,基于專家系統(tǒng)的智能教學系統(tǒng),和基于語義的幾何知識庫[14]的搭建等都是可以深入研究的方向。

參考文獻(References)

[1] J. R Ennals.Beginning micro-PROLOG[M].New York:Harper & Row,1983.

[2] Cumming,G.,Abbott,E.Prolog as a medium for learning in the classroom[C].Proceedings of the IFIP TC 3.1st European Conference on Computers in Education―ECCE 88,Lausanne,Switzerland,24-29. July,1988,North-Holland:IFIP Technical Committee 3,1988:317-321.

[3] Nichol J.,Briggs J.,Dean,J..PROLOG,Children and Students[M].London:Kogan Page,1988.

[4] Gibbins,P..Logic with PROLOG[M].Oxford:Oxford University Press,Inc.,1988.

[5] Richard Spencer-Smith.Logic and PROLOG[M].New Jersey: Prentice-Hall,1991.

[6] Hein J L..Prolog Experiments in Discrete Mathematics,Logic,and Computability[R].Portland:Portland State University,2009.

[7] Christiansen H..Prolog as description and implementation language in computer science teaching[C].Ducassé,Mirelle.Proceedings of The First International Workshop on Teaching Logic Programming-TeachLP.Saint Malo:Link?ping electronic conference proceedings,2004:43-54.

[8] 中村 治.Prolog プログラミング[R].橫濱:高知大學,2011.

[9] 飯高 茂.Prologで作る數學の世界―Prologそして集合-位相-群[M].新宿:朝倉書店,1990.

[10] 丁盤蘋.基于本體和Prolog規(guī)則的幾何定理證明的研究[D].電子科技大學,2012.

[11] Mcfarland T D,Parker R.Expert systems in education and training[M].Englewood Cliffs:Educational Technology Publications,1990.

[12] Colbourn C J,Light P H.Social interaction and learning using micro‐PROLOG[J].Journal of Computer Assisted Learning,1987,3(3):11.

[13] Peylo C,Teiken W,Rollinger C R,et al.An Ontology as Domain Model in a Web-Based Educational System for Prolog[C].Thirteenth International Florida Artificial Intelligence Research Society Conference.Palo Alto:AAAI Press,2000:55-59.

[14] 佘莉.基于語義的幾何學科知識平臺[D].中國科學院成都計算機應用研究所,2006.

作者簡介:

王佳楠(1991-),女,碩士,助理實驗員.研究領域:數據庫技術,管理信息系統(tǒng).

猜你喜歡
教育
國外教育奇趣
華人時刊(2022年13期)2022-10-27 08:55:52
車內教育
英語文摘(2022年8期)2022-09-02 01:59:30
題解教育『三問』
當代陜西(2022年4期)2022-04-19 12:08:52
軟件工程教育與教學改革
軟件導刊(2022年3期)2022-03-25 04:44:48
“雙減”如劍,“體外教育”何去何從?
當代陜西(2021年15期)2021-10-14 08:24:24
教育心得
贏未來(2020年1期)2021-01-07 00:52:26
努力辦好人民滿意的教育
人大建設(2020年1期)2020-07-27 02:47:08
什么是“好的教育”?
當代陜西(2019年21期)2019-12-09 08:36:36
教育有道——關于閩派教育的一點思考
讓教育成為終身之擇
商周刊(2018年25期)2019-01-08 03:31:10
主站蜘蛛池模板: 新SSS无码手机在线观看| 日韩在线永久免费播放| 永久免费av网站可以直接看的| 无码一区18禁| 成人福利在线看| 国产日韩精品欧美一区喷| 依依成人精品无v国产| 日本一本正道综合久久dvd| 好紧太爽了视频免费无码| 中文字幕 欧美日韩| 永久成人无码激情视频免费| 99re在线免费视频| 特级做a爰片毛片免费69| 欧美午夜性视频| 婷婷综合亚洲| 无码AV日韩一二三区| 久久大香伊蕉在人线观看热2| 中文字幕欧美日韩| 在线观看国产精品日本不卡网| 亚洲AV无码不卡无码| 久久精品国产一区二区小说| 亚洲欧美h| 日韩精品一区二区三区免费| 在线看片国产| 中国国产一级毛片| 看av免费毛片手机播放| 免费国产一级 片内射老| 亚洲成aⅴ人片在线影院八| julia中文字幕久久亚洲| 免费国产黄线在线观看| 久久国产精品国产自线拍| 国产成人免费观看在线视频| 亚洲婷婷六月| 国产chinese男男gay视频网| 另类重口100页在线播放| 特级精品毛片免费观看| 日本少妇又色又爽又高潮| 天天激情综合| 视频二区亚洲精品| av在线手机播放| 国产综合精品日本亚洲777| 国产成人乱无码视频| 国产真实二区一区在线亚洲 | 久久99国产视频| 久久久国产精品免费视频| 国产免费羞羞视频| 亚洲国产午夜精华无码福利| 欧美成人看片一区二区三区| 成人91在线| 国产成人高清在线精品| 97久久精品人人做人人爽| 狠狠色丁香婷婷| 欧美日韩一区二区三区在线视频| 国产在线91在线电影| 热这里只有精品国产热门精品| 国产精品亚欧美一区二区 | 亚洲欧美精品日韩欧美| 91精品福利自产拍在线观看| 伊人激情综合| 亚洲日韩高清在线亚洲专区| 欧美在线中文字幕| 久久国产亚洲偷自| 亚洲乱码在线播放| 亚洲中文精品人人永久免费| 亚洲色无码专线精品观看| 蜜臀av性久久久久蜜臀aⅴ麻豆 | 欧美在线精品一区二区三区| 精品一区二区三区中文字幕| 日韩经典精品无码一区二区| 国产一级视频在线观看网站| 国产99精品久久| 夜精品a一区二区三区| 色噜噜综合网| 欧美高清三区| 婷婷色一区二区三区| 97色伦色在线综合视频| 正在播放久久| 国产免费久久精品99re丫丫一| 免费人欧美成又黄又爽的视频| 一级全免费视频播放| 亚洲国产欧美国产综合久久 | 欧美国产精品不卡在线观看|