L4K ︰ 通往 Python 的道路 ── GvR 視覺回饋

百家姓

趙錢孫李 周吳鄭王 馮陳褚衛 蔣沈韓楊
朱秦尤許 何呂施張 孔曹嚴華 金魏陶姜
戚謝鄒喻 柏水竇章 雲蘇潘葛 奚范彭郎
魯韋昌馬 苗鳳花方 俞任袁柳 酆鮑史唐
費廉岑薛 雷賀倪湯 滕殷羅畢 郝鄔安常
樂于時傅 皮卞齊康 伍余元卜 顧孟平黃
和穆蕭尹 姚邵湛汪 祁毛禹狄 米貝明臧
計伏成戴 談宋茅龐 熊紀舒屈 項祝董梁
杜阮藍閔 席季麻強 賈路婁危 江童顏郭
梅盛林刁 鍾徐邱駱 高夏蔡田 樊胡凌霍
虞萬支柯 昝管盧莫 經房裘繆 干解應宗
丁宣賁鄧 郁單杭洪 包諸左石 崔吉鈕龔
程嵇邢滑 裴陸榮翁 荀羊於惠 甄曲家封
芮羿儲靳 汲邴糜松 井段富巫 烏焦巴弓
牧隗山谷 車侯宓蓬 全郗班仰 秋仲伊宮
寧仇欒暴 甘鈄厲戎 祖武符劉 景詹束龍
葉幸司韶 郜黎薊薄 印宿白懷 蒲台從鄂
索咸籍賴 卓藺屠蒙 池喬陰鬱 胥能蒼雙
聞莘黨翟 譚貢勞逄 姬申扶堵 冉宰酈雍
卻璩桑桂 濮牛壽通 邊扈燕冀 郟浦尚農
溫別莊晏 柴瞿閻充 慕連茹習 宦艾魚容
向古易慎 戈廖庚終 暨居衡步 都耿滿弘
匡國文寇 廣祿闕東 毆殳沃利 蔚越夔隆
師鞏厙聶 晁勾敖融 冷訾辛闞 那簡饒空
曾毋沙乜 養鞠須豐 巢關蒯相 查後荊紅
游竺權逯 蓋益桓公 万俟司馬 上官歐陽
夏侯諸葛 聞人東方 赫連皇甫 尉遲公羊
澹臺公冶 宗政濮陽 淳于單于 太叔申屠
公孫仲孫 軒轅令狐 鍾離宇文 長孫慕容
鮮于閭丘 司徒司空 亓官司寇 仉督子車
顓孫端木 巫馬公西 漆雕樂正 壤駟公良
拓拔夾谷 宰父谷粱 晉楚閆法 汝鄢塗欽
段干百里 東郭南門 呼延歸海 羊舌微生
岳帥緱亢 況後有琴 梁丘左丘 東門西門
商牟佘佴 伯賞南宮 墨哈譙笪 年愛陽佟

 

『GvR 機器人』與『小海龜繪圖』有什麼不同嗎??若說百家姓之編撰求『順口易記』而已!!

百家姓(拼音版)

《百家姓》是北宋初年錢塘(杭州)一書生所編撰的蒙學讀物,將常見的姓氏編成四字一句的韻文,像一首四言詩,便與誦讀和記憶 ,因此流傳至今,影響極深。

《百家姓》的次序不是各姓氏人口實際排列,是因爲讀來顺口 ,易學好記。《百家姓》與《三字經》、《千字文》並稱“三百千”,是中國古代幼兒的啟蒙讀物。“趙錢孫李”成爲《百家姓》前四姓是因爲百家姓形成於宋朝的吳越錢塘地區,故而宋朝皇帝的趙氏、吳越國國王錢氏、吳越國王錢俶正妃孫氏以及南唐國 王李氏成爲百家姓前四位。王明清《玉照新志》記載:“如市井間所印《百家姓》,(王)明清嚐詳考之,以是兩浙錢氏有國時小民所著,何則?其首雲:‘趙錢孫 李’,蓋錢氏奉正朔,趙本朝國姓,所以錢次之;孫乃忠懿(錢)之正妃;又其次,則江南李氏。次句雲‘周吳鄭王’皆武肅而下後妃。”。

《百家姓》本來收集411個經增補到504個姓,其中單姓444個,複姓60個(彩色字體)。日常用語中百家姓泛指各種姓氏。

 

那麼『視覺回饋』非獨『GvR 機器人 』有之,『小海龜繪圖』也有 ,難到『Python Turtle』就沒有耶??!!

有人講語言規模小,無須執行環境設定,不必程式庫導入 …… 等等 ,皆有利於小朋友、初學者之事也。然而以派生 Python 而言,果真很難用教材適當安排乎!!??更何況所謂程式『輸出的結果』與寫作『組織之方法』是兩件很不相同的事,焉能只強調其一!故生疑惑矣?

派︰各位同學好,【學堂漸漸安靜下來】

只聽到稽古老企鵝說道︰過去阿, 學 學這個字兒,指的是學堂,那個時候大家都住校。先生 教 教的,要是 學習 習不好,可是用棍子打欸。那個時候我們也上實習課,用的最好的 機 機器,能夠跑組合語言,這可比機器碼強的多啦。寫碼的時候,一塊一個巨集 Macro 單元的寫,寫的夠多了,練熟啦,就能把它們貫串起來 ,表達天南地北的東西。這個串珠之法,就像編輯《千字文》差不多吧!畢竟是老古的啦,不知今兒好不好使,倒是給你們講講,也算是傳承之意的吧,《 典 》典說︰

何謂寫程式?!

在《樹莓 λ 者程式探源 》一文裡,我們談到︰

到 底『程式』是什麼呢?假使『廣義』的講是恰當的話,所謂的『食譜』就是『做菜的程 式』。因此寫的『好』的食譜,也就是『表達清晰』、『步驟清楚』而且『程序簡潔』,使得人們能夠『依樣畫葫蘆』之程式章法。即使將『程式』限定在『計算 機』裡,使用特定的『程式語言』,上面的說法依然適用。

這可以進一步用『作文章』來比擬,傳聞梁武帝選取了王羲之寫的一千個字體,使其親人練習書法,之後覺得『雜亂無章』,於是令周興嗣編此千字成一篇文章,這就是《次韻王羲之書千字》,也就是大名鼎鼎的《千字文》。全文『引經據典』,文理一脈相承,出典所用的『典籍』含括︰《易經》、《淮南子》、《詩經》、《尚書》、《禮記》、《春秋》、《論語》、《孝經》、《孟子》 、《史記》、《神農本草經》、《管子》、《韓非子》、《莊子》 、《漢書》

這個『古典的』 classic 『詩詞文章程式』,所用的『引經據典』就宛如『副程式呼叫』,所謂的『成語熟套』是也。古今文人經由唸『好文章』來學寫『文章』;正像是今天透過讀『好程式』開始設計『程式』一樣,使用適當的『程式庫』 library ,就是『出典』的吧!所以何不《吃著魚釣魚!!有何不可?》的呢!!

千字文

‧敕員外散騎侍郎‧周興嗣

天地玄黃 宇宙洪荒 日月盈昃 辰宿列張
寒來暑往 秋收冬藏  閏餘成歲 律召調陽
雲騰致雨 露結為霜 金生麗水 玉出崑崗
劍號巨闕 珠稱夜光 果珍李柰 菜重芥薑
海鹹河淡 鱗潛羽翔  龍師火帝 鳥官人皇
始製文字 乃服衣裳 推位讓國 有虞陶唐
吊民伐罪 周發殷湯 坐朝問道 垂拱平章
愛育黎首 臣伏戎羌  遐邇壹體 率賓歸王
鳴鳳在樹 白駒食場 化被草木 賴及萬方

蓋此身髮 四大五常 恭惟鞠養 豈敢毀傷
女慕貞絜 男效才良  知過必改 得能莫忘
罔談彼短 靡恃己長 信使可覆 器欲難量
墨悲絲染 詩贊羔羊 景行維賢 剋念作聖
德建名立 形端表正  空谷傳聲 虛堂習聽
禍因惡積 福緣善慶 尺辟非寶 寸陰是競
資父事君 曰嚴與敬 孝當竭力 忠則盡命
臨深履薄 夙興溫清  似蘭斯馨 如松之盛
川流不息 淵澄取映 容止若思 言辭安定
篤初誠美 慎終宜令 榮業所基 籍甚無竟
學優登仕 攝職從政  存以甘棠 去而益詠
樂殊貴賤 禮別尊卑 上和下睦 夫唱婦隨

外受傅訓 入奉母儀 諸姑伯叔 猶子比兒
孔懷兄弟 同氣連枝  交友投分 切磨箴規
仁慈隱惻 造次弗離 節義廉退 顛沛匪虧
性靜情逸 心動神疲 守真志滿 逐物意移
堅持雅操 好爵自縻  都邑華夏 東西二京
背邙面洛 浮渭據涇 宮殿盤鬱 樓觀飛驚
圖寫禽獸 畫仙靈 丙舍傍啟 甲帳對楹
肆筵設席 鼓瑟吹笙  升階納陛 弁轉疑星
右通廣內 左達承明 既集墳典 亦聚群英
杜稾鐘隸 漆書壁經 府羅將相 路俠槐卿
戶封八縣 家給千兵  高冠陪輦 驅轂振纓
世祿侈富 車駕肥輕 策功茂實 勒碑刻銘

磻溪伊尹 佐時阿衡 奄宅曲阜 微旦孰營
桓公匡合 濟弱扶傾  綺迴漢惠 說感武丁
俊乂密勿 多士寔寧 晉楚更霸 趙魏困橫
假途滅虢 踐土會盟 何遵約法 韓弊煩刑
起翦頗牧 用軍最精  宣威沙漠 馳譽丹青
九州禹跡 百郡秦并  嶽宗恒岱 禪主云亭
雁門紫塞 雞田赤城 昆池碣石 鉅野洞庭
曠遠綿邈 巖岫杳冥  治本於農 務資稼穡
俶載南畝 我藝黍稷 稅熟貢新 勸賞黜陟
孟軻敦素 史魚秉直 庶幾中庸 勞謙謹敕
聆音察理 鑒貌辨色  貽厥嘉猷 勉其祗植

省躬譏誡 寵增抗極 殆辱近恥 林皋幸即
兩疏見機 解組誰逼 索居閒處 沉默寂寥
求古尋論 散慮逍遙  欣奏累遣 感謝歡招
渠荷的歷 園莽抽條 枇杷晚翠 梧桐早凋
陳根委翳 落葉飄颻 游獨運 凌摩絳霄
耽讀玩市 寓目囊箱  易輶攸畏 屬耳垣牆
具膳飯 適口充腸 飽飫烹宰 饑厭糟糠
親戚故舊 老少異糧 妾御績紡 侍巾帷房
紈扇圓潔 銀燭煒煌  晝眠夕寐 藍筍象床
弦歌酒 接舉觴 矯手頓足 悅豫且康
嫡後嗣續 祭祀烝嘗 稽顙再拜 悚懼恐惶
箋牒簡要 顧答審詳  骸垢想浴 執熱願涼

驢騾犢特 駭躍超驤 誅斬賊盜 捕獲叛亡
布射僚丸 嵇琴阮嘯 恬筆倫紙 鈞巧任釣
釋紛利俗 並皆佳妙  毛施淑姿 工顰妍笑
年矢每催 曦暉朗耀 璇璣懸斡 晦魄環照
指薪修祜 永綏吉劭 矩步引領 俯仰廊廟
束帶矜莊 徘徊瞻眺  孤陋寡聞 愚蒙等誚
謂語助者 焉哉乎也

據說《千字文》一夜而成,周興嗣果真了得!!

☆ 編者言說明

這位『稽古老企鵝』想必是『春之祭』,說到的那位博古通今的老先生。編者不解所指的《 典 》典是什麼?本想刪了此篇,又覺得可惜,於是望文生義,假以《千字文》一說充數,怕是誤謬難免的吧!此記。

─── 摘自《M♪o 之學習筆記本《卯》基件︰【䷒】教思無窮

 

 

 

 

 

 

 

 

L4K ︰ 通往 Python 的道路 ── GvR 語言參考

《三字經》

人之初 性本善 性相近 習相遠 茍不教 性乃遷 教之道 貴以專
昔孟母 擇鄰處 子不學 斷機杼 竇燕山 有義方 教五子 名俱揚
養不教 父之過 教不嚴 師之惰 子不學 非所宜 幼不學 老何為
玉不琢 不成器 人不學 不知義 為人子 方少時 親師友 習禮儀
香九齡 能溫席 孝於親 所當執 融四歲 能讓梨 弟於長 宜先知
首孝弟 次見聞 知某數 識某文 一而十 十而百 百而千 千而萬
三才者 天地人 三光者 日月星 三綱者 君臣義 父子親 夫婦順
曰春夏 曰秋冬 此四時 運不窮 曰南北 曰西東 此四方 應乎中
曰火水 木金土 此五行 本乎數 十干者 甲至癸 十二支 子至亥
曰黃道 日所躔 曰赤道 當中權 赤道下 溫暖極 我中華 在東北
曰江河 曰淮濟 此四瀆 水之紀 曰岱華 嵩恆衡 此五岳 山之名
曰士農 曰工商 此四民 國之良 曰仁義 禮智信 此五常 不容紊
地所生 有草木 此植物 遍水陸 有蟲魚 有鳥獸 此動物 能飛走
稻梁菽 麥黍稷 此六穀 人所食 馬牛羊 雞犬豕 此六畜 人所飼
曰喜怒 曰哀懼 愛惡慾 七情具 青赤黃 及黑白 此五色 目所視
酸苦甘 及辛鹹 此五味 口所含 羶焦香 及腥朽 此五臭 鼻所嗅
匏土革 木石金 絲與竹 乃八音 曰平上 曰去入 此四聲 宜調協
高曾祖 父而身 身而子 子而孫 自子孫 至玄曾 乃九族 人之倫
父子恩 夫婦從 兄則友 弟則恭 長幼序 友與朋 君則敬 臣則忠
此十義 人所同 當順敘 勿違背 斬齊衰 大小功 至緦麻 五服終
禮樂射 御書數 古六藝 今不具 惟書學 人共遵 既識字 講說文
有古文 大小篆 隸草繼 不可亂 若廣學 懼其繁 但略說 能知原
凡訓蒙 須講究 詳訓詁 明句讀 為學者 必有初 小學終 至四書
論語者 二十篇 群弟子 記善言 孟子者 七篇止 講道德 說仁義
作中庸 乃孔伋 中不偏 庸不易 作大學 乃曾子 自修齊 至平治
孝經通 四書熟 如六經 始可讀 詩書易 禮春秋 號六經 當講求
有連山 有歸藏 有周易 三易詳 有典謨 有訓誥 有誓命 書之奧
我周公 作周禮 著六官 存治體 大小戴 註禮記 述聖言 禮樂備
曰國風 曰雅頌 號四詩 當諷詠 詩既亡 春秋作 寓褒貶 別善惡
三傳者 有公羊 有左氏 有穀梁 經既明 方讀子 撮其要 記其事
五子者 有荀揚 文中子 及老莊 經子通 讀諸史 考世系 知終始
自羲農 至皇帝 號三皇 居上世 唐有虞 號二帝 相揖遜 稱盛世
夏有禹 商有湯 周文武 稱三王 夏傳子 家天下 四百載 遷夏社
湯伐夏 國號商 六百載 至紂王 周武王 始誅紂 八百載 最長久
周轍東 王綱墜 逞干戈 尚游說 始春秋 終戰國 五霸強 七雄出
贏秦氏 始兼併 傳二世 楚漢爭 高祖興 和業建 至孝平 王莽篡
光武興 為東漢 四百年 終於獻 魏蜀吳 爭漢鼎 號三國 迄兩晉
宋齊繼 梁陳承 為南朝 都金陵 北元魏 分東西 宇文周 與高齊
迨至隋 一土宇 不再傳 失統緒 唐高祖 起義師 除隋亂 創國基
二十傳 三百載 梁滅亡 國乃改 梁唐晉 及漢周 稱五代 皆有由
炎宋興 受周禪 十八傳 南北混 遼與金 皆稱帝 元滅金 絕宋世
輿圖廣 超前代 九十年 國祚廢 太祖興 國大明 號洪武 都金陵
迨成祖 遷燕京 十六世 至崇禎 權閹肆 寇如林 李闖出 神器焚
清世祖 應景命 靖四方 克大定 由康雍 歷乾嘉 民安富 治績誇
道咸間 變亂起 始英法 擾都鄙 同光後 宣統弱 傳九帝 滿業歿
革命興 廢帝制 立憲法 建民國 古今史 全在茲 載治亂 知興衰
史雖繁 讀有次 史記一 漢書二 後漢三 國志四 兼證經 參通鑑
讀史者 考實錄 通古今 若親目 口而誦 心而惟 朝於斯 夕於斯
昔仲尼 師項橐 古聖賢 尚勤學 趙中令 讀魯論 彼既仕 學且勤
披蒲編 削竹簡 彼無書 且知勉 頭懸梁 錐刺股 彼不教 自勤苦
如囊螢 如映雪 家雖貧 學不輟 如負薪 如掛角 身雖勞 猶苦卓
蘇老全 二十七 始奮發 讀書籍 彼既老 猶悔遲 爾小生 宜早思
若梁灝 八十二 對大廷 魁多士 彼既成 眾稱異 爾小生 宜立志
瑩八歲 能詠詩 泌七歲 能賦碁 彼穎悟 人稱奇 爾幼學 當效之
蔡文姬 能辨琴 謝道韞 能詠吟 彼女子 且聰明 爾男子 當自警
唐劉宴 方七歲 舉神童 作正字 彼雖幼 身已仕 有為者 亦若是
犬守夜 雞司晨 茍不學 何為人 蠶吐絲 蜂釀蜜 人不學 不如物
幼兒學 壯而行 上致君 下澤民 揚名聲 顯父母 光於前 裕於後
人遺子 金滿籯 我教子 惟一經 勤有功 戲無益 戒之哉 宜勉力

 

如果對比

三字經

三字經》是中國的 傳統兒童啟蒙教材,在中國古代經典當中,三字經是最淺顯易懂的讀本之一,歷久不衰。《三字經》取材典故廣範,包括中國五千年傳統文化的文學、歷史、哲學、 天文地理、人倫義理、忠孝節義等等,內容相當豐富。背誦《三字經》的同時,就了解了常識、傳統國學及歷史故事,以及故事內涵中做人做事的道理。[1]

在格式上,三字一句朗朗上口,因其文通俗、順口、易記等特點,使其與《百家姓》、《千字文》、《千家詩》同為中國古代私塾的初級入門課本,合稱「三百千千」。

作者

原典作者

  • 一說是宋代人王應麟。初著傳說為宋朝王應麟,明、清兩代人(如清初康熙年間王相與清末大學問家章太炎)多認定作者是王應麟。其次,從文風看,王應麟的其他著作也多三字句,幾年前 ,在鄞州還出土了王應麟用「三字經」句式作結尾撰寫的廟記。另外,王應麟是一個關心兒童教育的學者,除了《三字經》,他還有六本兒童啟蒙讀物(《詞學指南》、《小學紺珠》、《姓氏急就篇》、《小學諷詠》、《蒙訓》……)。[2]這些都是非常有力的證據。
  • 一說是宋代人區適子。明末清初屈大均在「廣東新語」卷十一中記載:「童蒙所誦三字經乃宋末區適子所撰。適子,順德登洲人 ,字正叔,入元抗節不仕」,認為廣東順德人區適子才是《三字經》的真正作者。
  • 一說是明代人黎貞。清代邵晉涵詩:「讀得貞黎三字訓」,自註 :「《三字經》,南海黎貞撰。」即以為明代黎貞撰。

中國寧波大學文學院教授張如安在《北京大學學報》2009年第二期上發表了《歷史上最早記載〈三字經〉的文獻——〈三字經〉成書於南宋中期新說》一文,判斷《三字經》應成書於南宋紹熙(1190年-1194年)至嘉定(1208年-1224年)年間,其時代要早於王應麟(1223年-1296年)和區適子。而寧波是目前已知的《三字經》最早流傳的地區。

增改作者

原典內容之外,後經章太炎等人多次增改,故三字經內容在「敘史」部份,也已包含民國時期。

 

與後繼者為兒童啟蒙而編修之學語文知綱目的宗旨。

以及於吉多 Guido 機器人程式語言之目的

Guido van Robot Language Reference

【極簡的基本指令字詞】

The Five Primitive Guido van Robot Instructions:

    move
    turnleft
    pickbeeper
    putbeeper
    turnoff

 

【逐行堆壘指令字詞,符合一定留白,形成程式區塊。】

Block Structuring

Each Guido van Robot instruction must be on a separate line. A sequence of one or more Guido van Robot instructions that are all indented the same number of spaces compose a block of code.   <instruction> refers to any of the five primitive instructions above, the conditional branching or iteration instructions below, or a user defined instruction.

    <instruction>
    <instruction>
      ...
    <instruction>

 

【三種條件句選擇程式區塊流程】

Conditional Branching

Conditional branching refers to the ability of a program to alter it’s flow of execution based on the result of the evaluation of a conditional. The three types of conditional branching instructions in Guido van Robot are if and if/else and if/elif/else.   <test> refers to one of the eighteen conditionals below.

    if <test>:
        <block>
    if <test>:
        <block>
    else:
        <block>
    if <test>:
        <block>
    elif <test>:
        <block>
    ...
    elif <test>:
        <block>
    else:
        <block>

 

【十八種內建條件測試】

Conditionals

GvR has eighteen built-in tests that are divided into three groups: the first six are wall tests, the next four are beeper tests, and the last eight are compass tests:

    front_is_clear
    front_is_blocked
    left_is_clear
    left_is_blocked
    right_is_clear
    right_is_blocked

    next_to_a_beeper
    not_next_to_a_beeper
    any_beepers_in_beeper_bag
    no_beepers_in_beeper_bag

    facing_north
    not_facing_north
    facing_south
    not_facing_south
    facing_east
    not_facing_east
    facing_west
    not_facing_west

 

【重複、迴圈程式區塊組織結構】

Iteration

Iteration refers to the ability of a program to repeate an instruction (or block of instructions) over and over until some condition is met. The two types of iteration instructions are the do and while instructions.   <positive_number> must be an integer greater than 0.

    do <positive_number>:
        <block>
    while <test>:
        <block>

 

【定義新的指令功能】

Defining a New Instruction:

New instructions can be created for Guido van Robot using the define statement.   <new_name> can be any sequence of letters or digits as long as it begins with a letter and is not already used as an instruction. Letters for Guido van Robot are A..Z, a..z, and the underscore (_) character. Guido van Robot is case sensitive, so TurnRight, turnright, and turnRight are all different names.

    define <new_name>:
        <block>

 

【正確程式之規定】

Simplest GvR Program

Execution of a GvR program ends with the turnoff instruction. Any program which reaches the end of its instruction sequence without encountering turnoff is considered in error. Thus the simplest GvR program is:

    turnoff

An Example Program

Given the following world:

rightWall world

The following program will make Guido follow the right wall until he encouters a beeper:

    define turnright:
        do 3:
            turnleft

    define follow_right_wall:
        if right_is_clear:
            turnright
            move
        elif front_is_clear:
            move
        else:
            turnleft

    while not_next_to_a_beeper:
        follow_right_wall

    turnoff

 

皆是有所謂擇取安排之作為。

難道果不同於『吉多理念』的耶??

 

220px-PythonProgLogo 1990s-2005

Python 語言的創造者吉多‧范羅蘇姆 Guido van Rossum 先生非常注重『程式風格』!主導著整體 Python 語言之內蘊。一九九四年元月,那時網際網路還盛行用『地鼠』 Gopher 挖掘資訊的時代, Python 1.0 發布。同年七月 Michael McLay (mclay@eeel.nist.gov)
Wed, 29 Jun 94 10:07:42 EDT 寫了一篇

If Guido was hit by a bus? 》 ── 萬一吉多被巴士撞了? ──

的文章,或許促進了 Python 語言的開始標準化。之後 Python 社群開始稱呼 Guido 『生殺決策之慈悲獨裁者BDFL Benevolent dictator for life︰

BDFL is a title given to a small number of open-source software development leaders, typically project founders who retain the final say in disputes or arguments within the community.

無疑的吉多是第一位擁有這個殊榮稱號的第一人。二零零一年三月六日『 Python軟體基金會』 PSF Python Software Foundation 成立,一個月後 Python 2.1 發行,所有的發行版開始使用 PSF 授權。事實上吉多的熱情與睿智,更多的展現在『 Python 改進提案PEPs Python Enhancement Proposals 的發文裡。有關『可讀性』之『程式風格』的論述主要集中在︰

PEP 7 – Style Guide for C Code

PEP 8 – Style Guide for Python Code

也許吉多的理念是︰

程式雖是一時一人之寫作,確有多時多人的閱讀,因此『可讀性』是十分重要的事情。

─── 摘自《Physical computing ︰ python 《補充》︰ IDE 用法 ……

 

 

 

 

 

 

 

 

 

L4K ︰ 通往 Python 的道路

程式語言何其多!教育程式語言也不少?且讓我們藉著

The Guido van Robot
Programming Language

About GvR

Guido van Robot is a minimalistic programming language providing just enough syntax to help students learn the concepts of sequencing, conditional branching, looping and procedural abstraction. Its biggest strength is that it permits this learning in an environment that combines the thrill of problem-solving with instant visual feedback. In short, it is an interactive, introductory programming language that is excellent for learning the basic concepts of programming, applicable in any high-level language. Best of all, it’s a whole lot of fun, too!

At this point, you are probably asking yourself, What is GvR, specifically? The gist of it is that it is a robot represented by a triangle on the screen that moves around in a world made up of streets and avenues, walls and beepers, which Guido can collect or set. His actions are completely guided by a program written by the user.

One other item of interest about GvR is that it is a student-created project. GvR was initially written by students at Yorktown High School in Arlington, Virginia, with the help of professional programmers serving as mentors. You can navigate to the History page to learn more about this part of the project.

History

Everyone loves robots. Remember R2-D2? Logo? Data? HAL? Well… maybe HAL isn’t such a good example. In any case, back in the early 80s, Richard E. Pattis, a professor at Carnegie Mellon University, was developing a project to introduce his first-year programming students to the Pascal programming language. The result? The Karel the Robot programming language. Its strengths lie in the fact that it is extremely simple (it only has five commands) yet can be used to teach some of the most advanced concepts, without all the complicated syntax.

Enter Steve Howell, a dashingly handsome, ambitious young student at Duke University. In taking “An Introduction to Programming,” taught by Owen Astrachan, he encountered the Karel Programming Language. While it was merely an introduction to Pascal, and had no practical commercial use, it proved memorable.

Flash Forward fifteen years to November 2001. Steve, as industrious as ever, furiously works on a Python project of his, designed as a sort of academic project to hone his skills. What did he create? A Python implementation of Karel the Robot, of course.

But Rome wasn’t built in a day. Steve’s program still needed substantial improvement. While fully functional, it only ran in a terminal, using the Python curses module. Steve Howell needed somebody to work with his Python version of Karel, preferably an educator. That way, Karel could then be used as an educational tool as well as a programming project. He then examined his options: he could write a Personals ad (Wanted: Programmers, know Python, enjoy long, moonlit walks on the beach), or he could use the power of the Internet to find someone on one of the Open-Source school mailing lists, such as schoolforge-discuss@schoolforge.net After much debate, he settled on the latter, and came across Jeff Elkner, infamous masked Open-Source avenger from Yorktown, armed with student prodigies Waseem Daher and Donald Oellerich: Keepers of the Code. Their mission was to rewrite the GUI using wxPython, enabling graphical support in both Windows and Linux. Aptly named pyKarel, it had much potential.

Of course, everyone is above average at Yorktown High School, but even then, Waseem and Donald needed some help with the GUI, more help than Steve could always provide. Here’s where Michele Moore of MetaSlash Inc. comes in. Whenever a problem arose, they’d fire off an email in her direction with the latest question. Think of her as the Ms. Cleo for Donald and Waseem’s undertaking.

But misery loves company, and apparently so does programming. Donald and Waseem, after much effort, needed some fresh help with the project. That’s where programmer extraordinaire Paul Carduner comes in. He proceeded to rewrite the entire compiler, and what’s more, brought the project to its current state. Karel the Robot was designed to teach introductory Pascal students about Pascal. Enter Guido van Robot, a Python-esque programming language designed to teach students about Python. Paul has been the principal author of this new use for an older project, working closely alongside all the familiar pyKarel faces.

The work on GvR continues to this day. Luckily, since it was built off the pyKarel compiler engine, and still uses the same familiar GUI, it already is fairly robust and can be used as an excellent precursor to Python in the classroom environment.

sudo apt-get install gvrng

 

以及

Learning Python: Child’s Play with RUR-PLE!

André Roberge, © 2004, 2005

Learning to program computers should be fun, for adults and children alike. RUR-PLE is an environment designed to help you learn computer programming using the language Python. Within an artificial world in which a robot can be programmed to perform various tasks, you will learn what it means to write a computer program, using Python’s syntax. You will also be able to apply your programming skills in a more traditional environment using the built-in interpreter. If these words don’t mean much to you for now, don’t worry.

While learning to program can be fun, it does require some work on your part. I will be your guide, so that you can learn on your own; however, you will not learn if you do not write your own programs. This is important enough that you should take it as a rule to follow.

Rule # 1
Learning about computer programming is like learning to play a musical instrument: you have to do it, not simply read about it.

The second thing you need to know is the most important, best-kept secret for writing good computer programs.

Rule # 2
Write your computer programs to make them easy for people to read.

That’s right, write your computer programs so that other people, just like you, would find them easy to read on their own. Yes, computer languages are designed to allow you to communicate with computers, just as human languages have evolved to allow humans to communicate with each other. But computer languages, which are much simpler than human languages, are often used by programmers to share their work with other programmers. Just as you can improve your English writing skills by reading well-written novels, you can improve your programming skills by reading well-written computer programs. However, you will still need to write your own programs to learn how to do it.

To get you started on writing computer programs, you will make a robot, named Reeborg, perform certain tasks on your computer screen. While doing so, you will learn universal programming concepts as well as the language named Python. Later on, we will move away from having Reeborg perform tasks, and learn to do other things using the computer.

Find out more about RUR-PLE including a summary of instructions as well as acknowledgements to various people.

sudo apt-get install rurple-ng

 

的設計理念談談兒童學習編程之事。想想為什麼不能直接教導派生 Python 呢?

 

 

 

 

 

 

 

 

L4K ︰學琴的小孩不會變壞 ??!!

』操琴可得情操『』乎?有位奧地利的政治、經濟學家約瑟夫‧熊彼特談過一個稱為『亞當‧史密斯問題 』 das ‘Adam Smith-Problem’ 之矛盾︰

對於亞當斯密在強調同情的道德情操論與強調私利的國富論兩書間是否存在矛盾一直有很大爭論。經濟學家約瑟夫·熊彼特稱這為「亞當斯密問題」(das ‘Adam Smith-Problem)。 在道德情操論一書裡,斯密似乎強調人類在慈善動機下的意圖與行為的同步性,而在國富論裡這則被分裂為「看不見的手」,亞當斯密宣稱,在資本主義體制裡,個 人依照他們自己的利益行動時也會提升共同體的利益。於是這便解除了私利的矛盾,他也多次指出對於利己和人類動機的狹窄定義所可能引發的矛盾。不過這並不表 示斯密的道德情操論一書否定了私利的重要性,他寫道:

因此,物種自我保衛和繁殖的機能架構,似乎是自然界給予所有動物的既定目標。人類具有嚮往這些目標的天性,而且也厭惡相反的東西;人類喜愛 生命、恐懼死亡、盼望物種的延續和永恆、恐懼其物種的完全滅絕。雖然我們是如此強烈的嚮往這些目標,但它並沒有被交給我們那遲緩而不可靠的理性來決定,相 反的,自然界指導我們運用原始而迅速的天性來決定實現這些目標的方式。飢餓、口渴、尋求異性的情慾、愛情的快樂、和對於痛苦的恐懼,都促使我們運用這些手 段來達成其本身的目的,這些行動都將實現我們原先所未料想到的結果—偉大的自然界所設定的善良目標。

 

『道德情操』和『私利利己』都能達成目標與成就國富耶!

人類的本質是什麼??性善、性惡之論辯久已夫!!茲舉一二以觀諸︰

孟子‧告子上

告子曰:性猶湍水也,決諸東方則東流,決諸西方則西流。人性之無分於善不善也,猶水之無分於東西也。

孟子曰:水信無分於東西。無分於上下乎?人性之善也,猶水之就下也。人無有不善,水無有不下。今夫水,搏而躍之,可使過顙;激而行之,可使在山。是豈水之性哉?其勢則然也。人之可使為不善,其性亦猶是也。

孟子‧公孫丑上

孟子曰:人皆有不忍人之心。先王有不忍人之心,斯有不忍人之政矣。以不忍人之心,行不忍人之政,治天下可運之掌上。所以謂人皆有不忍人之心者,今人乍見孺子將入於井,皆有怵惕惻隱之心。非所以內交於孺子之父母也,非所以要譽於鄉黨朋友也,非惡其聲而然也。由是觀之,無惻隱之心,非人也;無羞惡之心,非人也;無辭讓之心,非人也;無是非之心,非人也。惻隱之心,仁之端也;羞惡之心,義之端也;辭讓之心,禮之端也;是非之心,智之端也。人之有是四端也,猶其有四體也。有是四端而自謂不能者,自賊者也;謂其君不能者,賊其君者也。凡有四端於我者,知皆擴而充之矣,若火之始然,泉之始達。苟能充之,足以保四海;苟不充之,不足以事父母。

荀子‧勸學

南方有鳥焉,名曰蒙鳩,以羽為巢,而編之以髮,繫之葦苕,風至苕折,卵破子死。巢非不完也,所繫者然也。西方有木焉,名曰射干,莖長四寸,生於高山之上,而臨百仞之淵,木莖非能長也,所立者然也。蓬生麻中,不扶而直;白沙在涅,與之俱黑。蘭槐之根是為芷,其漸之滫,君子不近,庶人不服。其質非不美也,所漸者然也。

 

假使『人性』只是『可能性』,『然』或『不然』焉能衝突也!! ??所以 M♪o 如此眉批矣??!!

派 ︰西有『葉慈』者,浪漫賦神秘,善寫《奧義詩》,其詞雖簡易,其意實難測︰

The Song of Wandering Aengus
W.B. Yeats (1899)

I went out to the hazel wood,
Because a fire was in my head,
And cut and peeled a hazel wand,
And hooked a berry to a thread;
And when white moths were on the wing,
And moth-like stars were flickering out,
I dropped the berry in a stream
And caught a little silver trout.

When I had laid it on the floor
I went to blow the fire aflame,
But something rustled on the floor,
And some one called me by my name:
It had become a glimmering girl
With apple blossom in her hair
Who called me by my name and ran
And faded through the brightening air.

Though I am old with wandering
Through hollow lands and hilly lands,
I will find out where she has gone,
And kiss her lips and take her hands;
And walk among long dappled grass,
And pluck till time and times are done
The silver apples of the moon,
The golden apples of the sun.

漂泊的安格絲之歌
葉慈

我前往榛子林
顱腔熱火在呼喚
切剝榛枝正嫩
漿果鉤住了思緒
忽而,白蛾乘羽翼
星兒彷彿蠹飛影搖曳
拋莓入溪後
恰獲一尾小銀鮭

 

任之將之委諸地
反身吹燃燄
簌簌有聲來處響
誰人在呼喚我之名
怎想它早已化作微光少女
蘋果花,隨髮絲綻放
她既呼喚我之名又奔棄
漸淡入,黎明空靈中

 

 

儘管年華因著漂泊老
穿越山谷和山丘
誓將找到她鄉去時路
吻芳唇,攜伊之手
漫步長斑青草間
採綠意,直至時盡次不再
月月銀林檎
日日金蘋果

眉 眉批︰拋漿果,得銀鮭?甚可疑?『反身吹燃燄』心欲何為?『顱內火』,林中之榛有何益?何事『切剝』榛嫩枝?哪處飛來了『白娥』?意念藏心底,時流往復 反,意象難分明,誰知他說的是過去還是未來!若講『命中注定』,所謂伊人又豈該在『夢之鄉』 !怕卻是『當面錯過』!!那將怎能夠不為著此『呼喚』,去漂泊天之涯地之角的呢??

── 摘自《M♪o 之學習筆記本《丑》控制︰【白金西】時回流反

 

』,說文解字講:

喿,鳥群鳴也。从品,在木上。

 

怎知是『噪音』還是『樂音』的呢?故而『

,把持也。从手,喿聲。

琴者因『把』、『持』,方得『情操』哉!!人生的道路

終只能︰

論語‧衛靈公

子貢問曰:有一言而可以終身行之者乎?
子曰:其恕乎!己所不欲,勿施於人。

 

特此介紹

MUSIC BLOCKS

Music Blocks is a collection of manipulative tools for exploring fundamental musical concepts in an integrative and fun way.

Using Music Blocks

Music Blocks is designed to run in a browser. It is derived from Turtle Blocks JS which can be found here. You can run the software locally from the index.html file, from the github repo, or by setting up a local server.

If you want to run Music Blocks offline, download this repo and point your browser to the index.html file found in the musicblocks directory on your local file system.

See Using Music Blocks and Music Blocks Guide

Credits

Music Blocks is a fork of TurtleArtJS created by Walter Bender. (Turtle Blocks JS has many contributors).

Devin Ulibarri has contributed functional and user-interface designs. Many of his contributions were inspired by the music education ideas, representations and practices (e.g. aspects of matrix, musical cups) developed and published by Dr. Lawrence Scripp with whom Devin studied at New England Conservatory and for whom he worked at Affron Scripp & Associates, LLC.

Larry Scripp

Center for Music and the Arts in Education (CMAIE)

Music in Education

Some of the graphics were contributed by Chie Yasuda.

Much of the initial coding of the fork from Turtle Blocks was done by Yash Khandelwal as part of Google Summer of Code (GSOC) 2015. Hemant Kasat contributed to additional widgets as part of GSOC 2016.

Many students contributed to the code as part of Google Code-in (2015-16)

 

 

 

 

 

 

 

 

 

L4K ︰將童年還給小孩!!??

奧林·列維·華納的作品「想像」(1896年),現存於華盛頓特區的托馬斯傑斐遜國會大廈圖書館

 

『走路』的渴望,開啟了學習大門。『想像』之創造,推動著潮流變遷。遊戲中學會人我間應互惠合作。

柯靈烏於《歷史的理念》一書中講︰

基於自然的『人性』,人的『同理心』和『同感心』是否能夠用著『想像力』的翅膀重回『歷史的現場』,再次在心中『重演』那些『歷史事件』,『體驗』事件中人物的『思想』以及『情感』,因此『解讀』歷史事件中的『人性抉擇』之理性『必然性』。

《說文解字》講:游,旌旗之流也戲,三軍之偏也。一曰兵也

600px-Two_baby_game

德國詩人和劇作家席勒提出『遊戲』之理論。席勒說:『只有當人充分是人的時候,他才遊戲;只有當人遊戲的時候,他才完全是人。』。或許人類在生活中勢必受到『精神』與『物質』的雙重『束縛』,因而喪失了『理想』和『自由』。於是人們假借剩下的精力打造一個『自在』的國度,這就是『遊戲』。此種『創造性』活動,源自人類的『本能』。

這些年來,有學者指出『數位遊戲式學習』 Digital game based learning 的好處。經由『遊戲』進行『學習』,達到『寓教於樂』的目的。就像一九九六年,美國喬治亞大學 Hogle J. G. 在《 Considering Games as Cognitive Tools:  In Search of Effective “Edutainment” 》論文中談及遊戲對於學習的諸多優點:

一、提高學習的樂趣,引發內在的動機。

二、故事般情節,能夠強化記憶。

三、可以重複操作,產生回饋。經由多次練習,促進目標的達成。

四、符應人類認知結構之場景,提供高層次的思考機會。

然而『教育的問題』並非只在於『科技之應用』的有無,比方說,美國科羅拉多大學的 PhET Physics Education Technology 計劃,雖然發表了許多『互動式』學習軟體,據聞推動的尚不成功。為什麼呢?假使僅有『軟體』,卻缺乏適當的『教師』,即使是輔之以科技的『工具』,恐怕還不能夠『自行』的吧!或許也還需要『整體規劃』之『教材』的吧!!因此『給根釣竿』的作法,能比『給一條魚』又好多少呢?假使父母想將『教育』的重責大任,歸之於『老師』和『社會』,那麼『心肝寶貝』難道不擔心有『失學』的『風險』嗎??

如果我們希望『兒童』學會『獨立自主』,那就從小『引導』他作『選擇』,而不是替他作選擇。讓他知道如何去面對『競爭』與『挫折』之情況;使他明白怎麼來處理『勝敗』和『得失』的處境。這些事看似無關乎『 IQ 』,它可是打開『 EQ 』以及『 SQ 』學習大門的『關鍵』。

─── 摘自《玩遊戲有何不好??λ