推薦序
為什麼要學程式設計?為了讓電腦解決特定的問題,我們把指揮電腦工作的指令寫在程式中,當電腦執行程式時,即可依這些指令完成工作。程式設計,基本上是一種問題解決活動。在問題解決的活動中,學生需要瞭解問題、分析問題、思考解題方法(或規劃解題步驟)、將解題方法付諸實施(執行解題步驟)、評估解題成效。這一系列的活動都是高層次思考活動,透過程式設計,學生可以經歷、學習這些高層次思考技能。
程式設計也是一種邏輯思考活動。在程式設計過程中,學生需要分析相關事、物間的因果關係,依給定的條件或情況推論可能結果;程式如果無法正確執行時,需要抽絲剝繭回溯解題方法,分析問題之所在。學習程式設計有助於邏輯思考的訓練。
學習程式設計有助於瞭解資訊科技與資訊科學。程式的撰寫、編譯、執行、及測試等過程都須要使用資訊科技工具;程式設計中不可或缺的輸入、運算(處理)、輸出、及儲存(記憶)等元素,即是現代電腦架構的基本組成,學習程式設計可以瞭解電腦工作原理;程式設計中的解題方法(演算法)規劃,更涉及電腦科學的理論核心。
為什麼使用Scratch 來學習程式設計?
其實,只要是能避開傳統程式設計缺點:語法瑣碎複雜、例子枯燥、不易觀察程式執行過程與結果,都是有利於初學者學習程式設計的工具,Scratch 就具備了上述的特色。Scratch 是由MIT 的Media Lab 所開發的程式設計環境,使用者可以用它來設計多媒體動畫、遊戲、及互動式故事等,目前該工具已翻譯成四十多種語言在全世界使用,它已是一個發展相當成熟的產品。對於Scratch 使用者而言,他們並不覺得自己是在「寫」程式,而比較像是在設計一個遊戲或動畫故事:他們需要布置一個舞台場景(背景畫面),決定舞台場景中有哪些角色(物件)活動,設定這些角色的特性(屬性)以及如何與其他角色互動。他們不需要如傳統程式設計般撰寫文字語法,只要透過一連串的設定及指令流程安排,就可以在很短時間內完成有趣的動畫故事或遊戲設計。
高慧君老師畢業於臺灣師範大學資訊教育系、所,畢業後即擔任高中資訊科教師,長期投入資訊科學教育工作,其個人興趣喜好涉獵各種程式語言,並樂於分享其程式設計撰寫心得。本書以遊戲案例的方式,深入淺出的帶領讀者進行學習;透過一個個案例的完成,讀者將循序漸進習得程式設計概念,並體會到程式
設計的樂趣。值此出版之際,特為之序。
國立臺灣師範大學資訊教育研究所∕吳正己
作者序
在高中教了十多年的程式設計,總感覺有許多學生不容易有學習的進展,他們經常受困於語法的規則,無法融入程式邏輯的解題思維。再者,一般的程式語言都是使用英文撰寫,更增加了理解與表達的困難。此外,示範的例子多為計算導向的數學問題,並不能引發學生的興趣與成就感。
2010 年,在國立臺灣師範大學資訊教育研究所林美娟教授的介紹下,筆者認識了Scratch 這個教學軟體,進一步研究之後,發現它非常適合做為程式設計入門的課程使用。首先,在Scratch 中,你不用擔心語法的問題,因為它使用拖曳積木的方式來撰寫程式,而積木的組裝本身就隱含了語法的檢查。其次,Scratch 的積木是使用中文來表達,而且官網上來自全世界的許多作品,都可以被翻譯成中文的積木,創造了無國界的學習環境。最後,運用Scratch 可以輕易地完成各式各樣的互動遊戲,對於數位原生的新世代,他們玩過了許多電腦遊戲,但並不知道遊戲背後運作的原理,學習用Scratch 來開發遊戲,應該是與玩遊戲截然不同的另一種體驗。
本書以遊戲案例的方式,帶領讀者學習Scratch,在程式篇中,隨著程式觀念的逐漸累積,能完成的遊戲也愈來愈複雜,在技巧篇中,整理了遊戲常用到的功能。在實戰篇中,介紹了13個完整的遊戲案例,提供讀者磨練與增進程式設計的功力。在Arduino 互動科技篇中,特別引入了一些硬體以讓Scratch 程式與現實世界連結,探索更多的可能性。
特別感謝松崗的伙伴們,對於本書的出版奉獻無比的心力,使得本書得以更加完善。最後,盼望各位先進給予批評與指教。
高慧君謹識