跳到主要內容

[科技]用 1 小時學習程式設計「Code.org」,讓迪士尼角色陪你邁向 Coding 之路。


  剛開始學習程式設計的人,一定會求助於網路上的眾多教學資源,而 Code.org 便是大家絕對不會放過的網站之一,它原本是美國的 Hadi Partovi 和 Ali Partovi 兩兄弟在 2012 年所成立的非營利組織,2013 年開設同名網站,其成立目標在於支援並擴充學校教育的資訊科學課程。

  網站內的所有學習資源與教材均完全免費,不僅面向學習者,同時也面向學校教師,藉由全球各地翻譯志工的協助,其影響力也迅速拓展至美國之外。一般我們常認為程式設計是一個專門的領域,總是與電腦分不開,但事實上,許多程式語言背後的概念,都與日常生活中的經驗不謀而合,所以在 Code.org 網站的課程設計中,亦加入許多「不插電」的教學內容,作為程式設計的叩門磚,大大減低學習者們的抗拒感,而其中最負盛名的,莫過於被稱做「一小時玩程式」(Hour of Code)的趣味學習活動了,甚至得到微軟、Google、Facebook 等科技公司的大力支持。

  「一小時玩程式」是一項由 Code.org 網站所發起的活動,讓教師們可以透過遊戲的方式,從中介紹資訊科學以及程式設計的概念,藉此培養學生邏輯思維的能力,不會耗費太多時間,通常只需要短短一節課左右的時間就能完成,且不管是否曾經學過程式設計都沒關係,4歲到104歲都能輕易上手。這些線上課程內容都是免費開放的,所以就算只有自己一個人,用電腦或手機打開 Code.org 網站,便能立刻自學,不受任何人數、時間及地點的限制,不過官方建議兩人合作的話,最有助於腦力激盪,可激發解決問題的靈感,而據網站統計,已有超過1億名學生體驗過「一小時玩程式」的課程。

  由於免費、簡單又好玩,Code.org「一小時玩程式」得到了相當廣泛的支持,網站內匯集了由 Code.org 及其合作夥伴所設計的各式課程,目前已經超過 100 多種,部分已由志工翻譯為中文,降低不少語言的隔閡。大部分課程的程式語言採用 Blockly,如同 Google 的 Blockly Games 一樣,是透過積木堆疊的方式來編輯程式,此外也有以 JavaScript 與 Python 為主的進階課程。每個「一小時玩程式」課程之間並沒有明顯接續的關係,使用者可依照年齡與類別自由選擇有興趣的題材,它與 Blockly Games 比較不一樣的地方在於,得力於合作夥伴的授權,課程中納入了許多知名角色與主題,例如星際大戰、憤怒鳥等等,並強化了劇情與遊戲性,就算單純把它當成解謎冒險遊戲,也相當值得一玩。

  隨著「一小時玩程式」的內容逐漸增長,使用者可透過篩選器自由挑選喜歡的課程主題。

  除了利用電腦進行程式學習外,Code.org 也提供不插電的教學資源作為課程補充。

  而「一小時玩程式」內的線上課程,均會劃分成若干小關作為學習的步驟,一般狀況下,使用者無須註冊便能開始課程,不過如果申請成為網站用戶的話,登入之後便可隨時記錄並查詢課程進度,另外作為完成課程的獎勵,網站還會提供電子檔的證明書,雖然其象徵性大於實際意義,但畢竟也可算是你的第一張程式設計證書。

  順利完成「一小時玩程式」課程之後,即可獲得 Code.org 的修課證明書。

  經典迷宮:積木堆疊、迴圈與條件控制。


  經典迷宮可以算是熟悉 Blockly 程式運作邏輯的入門課程,課程中導入了憤怒鳥、冰原歷險記等角色,課程目標很簡單,就是控制角色抵達指定的目的地,過程中需透過堆疊積木的方式讓角色移動。「經典迷宮」共有 20 個關卡,當你學會了基本的行進方式後,接著可以透過迴圈積木進行重複的動作,並加上條件控制積木,以免角色走錯路,隨著關卡繼續推進,迷宮會越來越複雜,甚至需要運用到多層次的條件控制才能達成目標。

  1. 課程一開始會播放簡介影片,當進展到較後面的關卡,也同樣會有影片解說過關的提示及基礎概念。

  2. 正式進入課程項目後,就會有基本的操作說明與遊戲目標。

  3. 進入第 5 關之後,便可以使用迴圈積木,讓憤怒鳥可以重複前進的動作。

  4. 透過「重複直到」積木,便不必計算迴圈重複的次數,憤怒鳥會重複你所設定的動作,直到抓到搗蛋豬為止。

  5. 在課程中可以隨時點擊「顯示程式碼」進行檢視,方便確認不同積木的程式碼差異。

  Minecraft 設計師:如何創造自己的世界。


  「一小時玩 Minecraft」是 Code.org 與微軟合作的系列課程總稱,Minecraft 除了是一款微軟收購的知名遊戲外,後續推出的 Minecraft 教育版同時也是微軟推廣 STEM 教學的利器之一,更結合 Code Connection 等附屬應用,實現在 Minecraft 遊戲內寫程式。而「一小時玩Minecraft」則可算是它的入門版本,目前已經推出4個主題課程,包括「水上巡航」、「英雄之旅」、「Minecraft 探險家」等等,這裡以「Minecraft 設計師」為例,在12個關卡中,你可以為其他生物編寫程式,打造屬於自己的世界。

  1. 一開始的目標是讓畫面上的小雞動起來,所以可以幫它加入動作與音效積木。

  2. 如果讓小雞動起來更真實,除了運用迴圈讓它持續移動外,也可加入「隨機」的積木,讓小雞擁有不同的運動模式。

  3. 第 4 關起加入「事件」的探索要素,讓角色可以對物件做進行互動,所以我們要先選擇一個角色。

  4. 例如在第 6 關要讓乳牛前往草地,只要運用迴圈,設定讓乳牛朝著玩家前進,便可順利抵達。

  5. 苦力怕人人都怕,但只要運用它會自爆的特性,便可炸開牆壁,找到綿羊。

  星際大戰:遙遠銀河系裡的小遊戲。


  「一小時玩程式」的特別之處,在於即使課程內容都是相似的程式設計原理概念,仍然可以套用不同的主題框架,所以就算你已經玩過前面提過的憤怒鳥迷宮以及 Minecraft 設計師,再看到這款星際大戰,依然會想要再打開來玩一次,在學習的過程中,便獲得了反覆練習的功效,你會發現自己堆積木的速度變快了,而在這款星際大戰中,除了我們已經熟悉的循序和迴圈控制結構外,還加入了分數規則的設計,讓你可以運用熟悉的角色,逐步建立星際大戰的迷你小遊戲。

  1. 如同其他的課程,當遇到卡關時,只要點擊人物上方的電燈泡圖示,便可請芮提供過關的提示。

  2. 第 7 關起導入「事件」的概念,事件,例如當方向鍵被按下之後,R2-D2 該如何運動,就需要透過程式積木加以定義。

  3. 第 9 關加入計分積木,並預設過關的分數標準,當然如果要偷懶一點,可以把得分數給調高一些。

  4. 課程最後一關並沒有特定的目標要完成,而是提供所有的積木,讓你發揮創意設計小遊戲。

  5. 此外,星際大戰也有 JavaScript 版,不同的是把積木上的說明替換為程式碼方便記憶。

  舞蹈派對:用程式積木創造動態舞會。


  亞馬遜在去年發表了未來工程師計畫(Amazon Future Engineer,AFE),它是是一項以社區為目標的教育推動計畫,其項目內容與 STEM 領域緊密相連,除了提供獎學金與實習機會外,在中小學教育方面也有計畫地與 Code.org 等組織進行合作,「舞蹈派對」即是此一計畫之下的產物,課程特別強調於創造力對於程式設計的重要性,因為即使具備了程式設計的能力,那也僅是你實現創意的基礎技能而已。在「舞蹈派對」裡,你可以選擇人物,讓它對音樂做出反應,並且使它更有互動性。

  1. 第 1 關是先創造出一名角色,可為之命名並透過左邊音樂選單選擇喜愛的歌曲。

  2. 要讓角色的舞步有更多變化,可以加入新的積木,設定在第 6 小節後,變更為其他的舞步。

  3. 在第 6 關可加入其他舞者替皮斯貓伴舞,當然舞步也最好設為一樣,畫面才會協調。

  4. 如果要表現出舞者的前後位置,在第 7 關可以透過尺寸積木,更改舞者的大小屬性。

  5. 最後一關與允許使用者自由運用各種積木,發揮創意,建立自己的獨特舞會動畫,完成後還可把下載動畫保存。

  玩樂實驗室:就用小遊戲來說個故事吧!


  在「一小時玩程式」內的「潛力無限實驗室」以及「玩樂實驗室」兩個課程相當相似,差別是前者的人物角色如杯麵、艾莎等有迪士尼的授權,課程主旨是透過有限的程式積木,說出一個故事或建立小遊戲,這裡也藉由《植物大戰僵屍》開發公司的創始人之口,點出了關於遊戲設計的重要觀念,那就是所謂遊戲並不代表程式有多完美、美術有多厲害,遊戲的本質就是有趣好玩,先把握住這個前提,即使是透過玩樂實驗室,也能創造出有趣的小遊戲,並且在過程中學習到指令、事件、迴圈等基本概念。

  1. 在開始之前,可以選擇要使用哪一個卡通主題,有阿甘妙世界、冰原歷險記等等。

  2. 一開始,要讓角色之間有所互動,利用對話來表現是最快速且容易的方式,可在積木裡輸入角色要說的話。

  3. 在第 5 關裡,熟悉的迴圈概念又出現了,它是讓角色得以持續動作的方便積木。

  4. 從第 6 關之後可以學到更多角色與指令和事件的關係,例如在這一關的積木,要點擊一下角色才會說話。

  5. 第 10 關土司被丟香蕉會生氣,目的是設計出角色對於事件的反應,當完成後,最後的第11關即為自由創作關。

  冰雪奇緣:運用迴圈畫出美麗雪花。


  在 Blockly Games 的烏龜關卡中,我們曾經應用不同的程式積木來進行繪圖,而在「一小時玩程式」內也有類似的課程,他們請到了迪士尼《冰雪奇緣》的主角來協助教學,對於女孩子來說或許更有吸引力。在這個課程中主要應用到的是迴圈及函式的概念,甚至在迴圈之內,還可以再嵌入迴圈組成雙層結構,這樣就不需要複雜而冗長的程式碼,也可繪製出有規律的美麗雪花圖樣,但是在解題過程中,也要用到角度及距離等計算,而越到後面的關卡,要畫出的雪花圖形難度也會稍微高一些。

這個網誌中的熱門文章

[遊戲]中國網友跟魔獸世界說掰了!動視暴雪分手 14 年夥伴網易,出了什麼事?

  動視暴雪上週宣布,2023 年 1 月與網易的授權合約到期後,將不再續約,終止雙方長達 14 年的合作。這代表包括《魔獸世界》、《爐石戰記》、《魔獸爭霸 III:淬鍊重生》、《鬥陣特攻》、《星海爭霸》系列、《暗黑破壞神 III》和《暴雪英霸》等熱門遊戲的中國玩家,只能放棄苦心經營的遊戲成果。   未獲動視暴雪授權續約的消息一出,網易股價在港股應聲下跌了約 11%。網易執行長丁磊回應表示,在和暴雪洽談續約的過程針對關鍵條款存在重大分歧,因此未能獲得授權續約。   不過,動視暴雪和網易在今年攜手推出的手遊《暗黑破壞神:永生不朽》,因為雙方的協議是獨立於《魔獸世界》等遊戲的授權外,因此並不影響未來在中國的發行計畫;同時原訂今年在中國推出的《魔獸世界:龍之軍團》、《爐石傳說:巫妖王進行曲》和《鬥陣特工 2》也將不受影響。   過去 14 年來,網易不僅為動視暴雪在中國發行數款熱門長銷的 PC 遊戲,隨著手機遊戲蓬勃發展,近年更將合作領域擴展至手遊市場,合作關係十分深厚。   而從暴雪的新聞稿可見,雙方停止授權續約是因為對於協議中「符合暴雪營運原則以及對玩家、員工的承諾的條款內容未有共識」而造成,因此推測兩家大型遊戲發行公司終止主要的授權合作,與中國監管單位對科技公司內容及業務縮限有很大的關係。   中國遊戲市場才剛走出監管單位長達數月暫停審核新遊戲的狀況,這個新變化無疑是雪上加霜。   中國政府近年來雷厲風行整肅遊戲產業,不僅暫停遊戲版號審查(在中國發行遊戲必須先經過政府相關單位的內容審查核可後方可上線)、限制未成年上線玩遊戲的時間等,以嚴格的手段把控市場發行遊戲的數量及內容,對於想進入搶攻中國市場大餅的海外遊戲公司來說,更是嚴格把關,不僅一年只開放一次審核申請,在內容審核上更是掐緊遊戲商的脖子。   但就算是這樣,中國,背靠著人口優勢,遊戲產業的成長力道仍十分強勁,也讓海外遊戲商無不努力排除萬難搶佔中國市場。但若是如此,為何動視暴雪會直接放棄與網易的長期授權合作呢?   從動視暴雪的新聞稿提到「正尋找替代方案,讓動視暴雪的熱門遊戲能重回中國」可推測,動視暴雪正積極尋找替代網易的發行合作夥伴。事實上,動視暴雪過去持續透過不同的遊戲開發或發行專案,多元地與不同的中國遊戲公司合作,要找個網易的「備胎」看似不難,但實際上中國的大型遊戲公司網易、

[娛樂]玩了多年的撲克牌,其實背後是結合工程、歷史、設計的大學問!

  全世界各地的人們都知道撲克牌,也都有和撲克牌打過交道,幾乎每個地方都宣稱撲克牌是自己的發明成果。中國人認為撲克牌最早起源於十二、十三世紀南宋時期傳出的中國的葉子戲(按照四季分為四種類別)。法國人則認為撲克牌是由塔羅牌演變而成,而英國人則表示自己是在所有經過認證的記錄資料中最早提到紙牌遊戲的國家。   現在,大家可能都知道怎樣玩「二十一點」或者是橋牌,但很少有人會靜下心來想一下,一副撲克牌其實是工程學、設計和歷史多方面融合而成的一個奇蹟。撲克牌不僅是一種休閒娛樂時的消遣工具,也是高額賭博和魔術技巧的練習和展示工具,不僅是一種數學概率模型,甚至有時候也會被當作貨幣或者是機密訊息的傳播媒介。   在這個過程中,撲克牌不同起源的獨特之處也展現了出來。撲克牌的名稱、顏色、標誌和設計根據不同的出處以及玩家不同的想法而發生變化。這一張張的圖形卡片不僅僅是玩具,或者是工具,他們更是展現不同習俗的一種文化印記:   有關撲克牌的誕生地一直眾說紛紜,外界也沒有達成一個確定的共識,但就像火藥、茶和瓷器這些發明一樣,幾乎可以肯定的是撲克牌也是起源於東方。國際撲克牌協會(IPCS)主席 Gejus Van Diggele 也表示:「學者們和歷史學家對撲克牌的確切起源存在分歧,但他們普遍認為撲克牌是由東方向西方進行擴散傳播的。」   中國唐朝時期有史料提到了一種紙牌遊戲,雖然這種遊戲更像是現在的多米諾骨牌,但專家認為這是有關紙牌最早的書面記載材料。歐洲 14 世紀末期的一些參考文獻曾提到一種「撒拉遜人(阿拉伯人的古稱)玩的遊戲」突然傳入歐洲,這表明紙牌不是來源於中國,而是來自阿拉伯半島。   此外,還有一種說法是,紙牌最早是由游牧民族從印度帶來的一種能夠預測命運的卡片,為紙牌的起源打上了更為久遠的一個印記。但無論是哪一種起源,應該都是有一定的商業契機促進了紙牌在遙遠的東方與歐洲之間的傳播,與此同時印刷技術的發展也加速了紙牌跨國界的生產和傳播。   在中世紀的歐洲,紙牌遊戲多是與喝酒、賭博還有其他的一些陋習聯繫在一起。由於紙牌遊戲傳播的廣泛性,以及它給當地所帶來的破壞性,當局決定禁止紙牌遊戲。歷史學家 Michael Dummett 在他的《塔羅牌遊戲》一書中提到了巴黎的一項法令,禁止公民在工作日玩紙牌。後來,紙牌遊戲被教會視為異端邪說,傳教士也紛紛遊說,認為「

[開發]如何讓 Unicode 圖案 (特殊符號) 在網頁上正常顯示?

展示了許多可以取代網站小圖示的 UNICODE,其優點非常顯而易見: ① 字元的傳輸量遠低於圖片的傳輸量。 ② 可以減少許多小圖示的 http 請求量。 那麼接下來的問題會是,要怎麼讓網站所使用的 UNICODE 表情圖案、特殊字元,都能讓所有訪客看到呢? ⑴ 符號數量。 符號數量越多,代表字型檔案越大。目前 Unicode 各國文字的數量太多先略過,屬於圖案的部分超過一千個,持續有新圖案推出。 ⑵ 編碼為 UTF8。 1 2 3 4 5 <!-- HTML4 --> <meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" > <!-- HTML5 --> <meta charset= "utf-8" > ⑶  使用方式 使用 Unicode 的話,這一切就能懶人化,先查閱 Unicode 特殊符號一覽表,找到對應的圖案,例如西洋棋黑騎士圖案,那麼在網頁想顯示的地方,直接擺上 Html 代碼: 1 &#9822; 輸入以上字元就行,但是為方便維護,建議還是將該內容直接貼上「♞」。 注意:在使用不同的字體時,渲染出來的符號可能會有所不同,因此,iOS 和 Android 將一些unicode字元轉換為表情符號。在您使用這些 unicode 字元之前,最好測試一下它們,確定不會出現在不同瀏覽器表現不同的情況出現。