蘆洲國中研習:運算思維與程式設計(1050614)

時間:105年6月14日

地點:新北市蘆洲區蘆洲國中二樓電腦教室D

主題:運算思維與程式設計

講師:兒童程式設計 Kids Coding Studio、Coding for Fun 創辦人蔡淑玲

Kids Coding Studio 建構孩子學習「程式設計」的第一哩路。無論城市或偏鄉,每個孩子都有機會,無壓力、快樂地學會新世紀的溝通語言「程式語言」。

Kids Coding Studio 推廣兒童程式設計教育, 提供國小以上學童免費課程,適合小五以上自學,小四以下親子共學。

投影片:

課程內容:

一、什麼是運算思維?如何培養運算思維?

(參考 http://www.kidscoding.tw/2016/06/blog-post.html)

什麼是運算思維 (Computational Thinking)?

運算思維就是解決問題的方法。
讓我們面對複雜的問題,能夠理解問題本質、發展可能的解決辦法。然後使用電腦、人或兩者都可以理解的方式來呈現這些解決方案。(參考:BBC

分成四個部分:

  1. 拆解(Decomposition):將複雜的問題或系統分解成更小、更易於管理的問題;
  2. 模式識別(Pattern Recognition):為了讓解決問題更有效率,將每個小問題分別檢視,思考之前是否有解過類似的問題;
  3. 抽象(Abstraction):只注意重要的細節,忽略不相關的資訊;
  4. 演算法(Algorithms ):設計簡單的步驟或規則來解決每個小問題。

最後,將這些簡單的步驟或規則寫成程式。

圖片來自 BBC BiteSize

程式是工具,實現「解決問題」的工具。程式語言本身並不涉及運算思維。

如何培養運算思維 (Computational Thinking)?

既然單純地學程式語言,無法增進運算思維,那麼要如何培養運算思維呢?
其實很簡單,ScratchEd 集合了資訊教育專家,經過多年的研討,設計了一套 Scratch 課程,讓學生在實作中,不知不覺地學會運算思維。這一套教材,也正是 Coding for Fun 課程的核心。

這套教材從三個方面來培養運算思維(參考:ScratchED):

運算觀念

  • 序列(sequence):對某一個任務,確定一系列的步驟
  • 迴圈(loops):重複執行相同的序列
  • 平行(parallelism):在同一時間讓許多事同時發生
  • 事件(events):一件事引發另一件事的發生
  • 條件(conditionals):根據條件做決定
  • 運算子(operators):支援數學與邏輯的表達
  • 資料(data):儲存資料、讀取資料與更新資料

實作

  • 反覆地增加(being iteratively and incrementally):發展了一點點,試試看,然後再發展一些
  • 測試與除錯(testing and debugging):確保事情能執行,發現錯誤並解決問題
  • 重複使用與混合(reusing and remixing):在現有的專案或想法上做點什麼
  • 抽象與模組化(abstracting and modularizing):探索整個問題與其他部分的連結

建立觀點

  • 表達(expressing):了解「電腦運算」是一種創作的媒介,「我可以創造」
  • 連接(connecting):體認到「與他人一起創造」和「為他人創造」的力量,「當我有機會接觸他人,我可以做不一樣的事!」
  • 質疑(questioning):有能力對世界提出問題,「我可以(運用電腦運算)提問,並理解(電腦運算)世界!」

二、「Coding for Fun」快樂學程式

(參考 http://www.kidscoding.tw/2016/01/coding-for-fun.html)

「當你學會閱讀,你便能藉著閱讀學習更多知識,程式設計也是一樣的道理;如果你會撰寫程式,你能透過程式語言學到的事物將更為多樣」
– MIT 多媒體實驗室 米切爾.瑞斯尼克

什麼是 Coding for Fun?

Kids Coding Studio 建構孩子學習「程式設計」的第一哩路。無論城市或偏鄉,每個孩子都有機會,無壓力、快樂地學會新世紀的溝通語言「程式語言」。

       服務對象

對於電腦操作,以及文字理解具備基礎能力的學生。建議國小五年級以上自學,國小四年級以下親子共學。如果老師願意採用,我們提供「教學指導手冊」與相關資料,請參閱網頁

為什麼學 Scratch?

Scratch 是美國麻省理工學院媒體實驗室(MIT Media Lab)發展的一套「程式積木」,適合 8 歲以上小孩。像玩積木一樣,只要將「程式積木」做堆疊與組合,就能創造出動畫與遊戲。它的核心概念是為孩子設計一套利用「電腦運算」來實現「創意」的工具 :
  • 低門檻,容易學(low floor)
  • 可以創造出複雜的作品(high ceiling)
  • 支援廣泛、多樣性的創意(wide walls)

課程特色

Coding for Fun 教材是根據 ScratchEd 在 2010 年與 2014 年所發表的教材「Creative Computing」所改寫,融合 Kids Coding Stduio 的教學經驗 (請參考部落格),將課程轉化為線上教材。讓好的教材不受老師、地域的限制,無遠弗屆。
  • 100%影音教學與引導
  • 以 Scratch 為創作工具
  • 在探索中學習
  • 在創作中學習
  • 在解決問題中學習
  • 啟動學習動機
  • 增進自學能力

課程總覽

課程需求

桌上型電腦或筆記型電腦
  • Windows/OS X/Linux
  • 麥克風
  • 喇叭/耳機
  • 攝影機
  • 可以連上網際網路

課程使用方式

Coding for Fun 師資培訓

課程網站:

課程資源:

Python 語言及其應用

Python官方網站:

補充教材:

流行的雲端平台

Google

AWS: https://aws.amazon.com/tw/sdk-for-python/

OpenStack:

尋找 Python 源碼

教學

網路

Redis

ZeroMQ

整合開發環境

IDLE

PyCharm

IPython

Python 解譯器

PyPy

Anaconda

NumPy

  • NumPy引入了多維陣列以及可以直接有效率地操作多維陣列的函式與運算子。因此在NumPy上只要能被表示為針對陣列或矩陣運算的演算法,其執行效率幾乎都可以與編譯過的等效C語言程式碼一樣快。
  • NumPy提供了與MATLAB相似的功能與操作方式。
  • 官方網站:http://www.numpy.org
  • NumPy – 維基百科,自由的百科全書

遊戲

Pygame

明志國中研習:APP Inventor 2 程式設計(1050525)

時間:105年5月25日下午

地點:新北市三重區明志國中三樓電腦教室

主題:APP Inventor 2 程式設計

講師:師大附中學務主任李啟龍博士

  • 電子郵件:jet.jason@gmail.com
  • 個人網站:http://140.131.146.1/jason/

講義:

官方網站:http://ai2.appinventor.mit.edu

軟體安裝網址:

  1. 連線軟體下載:下載模擬程式 或 http://appinventor.mit.edu/explore/ai2/windows.html

  2. Java檢測及安裝:http://www.java.com/zh_TW/

  3. MIT App Inventor 2 開發網站:http://ai2.appinventor.mit.edu

  4. FB社團

教學網站:

DreamSpark 正式版本軟體下載

網址:https://www.dreamspark.com/

簡介

DreamSpark是一項由微軟公司設立的,免費為學生提供軟體設計和開發工具的計劃,亦稱「微軟學生軟體資源—點亮夢想計劃」或「DreamSpark 學生夢想火花計劃」。該計劃最初針對白俄羅斯、比利時、中國、芬蘭、法國、德國、印度、西班牙、瑞典、瑞士、突尼西亞、英國和美國的大學或學院學生,現已擴充功能到80多個國家,並涵蓋了許多高中學生。學生可存取Dreamspark網站進行註冊,並認證其學生身份。

DreamSpark計劃是由比爾·蓋茲於2008年2月19日在史丹福大學的演講上宣布實施的。 (維基百科,DreamSpark)

什麼是 DreamSpark?(Microsoft DreamSpark)

DreamSpark 是一項支援技術教育的 Microsoft 方案,藉由提供 Microsoft 軟體的存取權利,以供學習、授課與研究之用。

DreamSpark 的概念十分單純:其主要目的是免費為學生提供 Microsoft 專業級開發與設計工具,讓他們能夠追求自己的夢想,開創新世代的重大技術突破,或者只是藉此踏出職場生涯的第一步。

DreamSpark 可協助教師傳授最新技術,以及進行實驗研究。Microsoft 了解,要讓今日的學生在學習時更有動機、讓學習內容更相關,或是讓學習過程更吸引人,教育者需要一系列多元化的資源。DreamSpark 提供教師資源,讓他們在課堂上可隨時援引最新技術,以全新的方式挑戰、激發學生並持續吸引他們參與。

DreamSpark 也是適合學術機構的訂閱方案:此方案能以符合成本效益的方式,針對學習及研究,在實驗室與教室、以及學生和教職人員的電腦上安裝 Microsoft 開發人員工具、平台及伺服器,因此將能降低實驗室成本和授課預算。

使用 Joomla! 架設本校程式開發研究室

碧華國小程式開發研究室
http://webnas.bhes.ntpc.edu.tw/joomla

Joomla!簡介

Joomla!是一套相當知名的內容管理系統(Content Management System, CMS),內容管理系統是一種用來管理網站上的內容的應用程式,什麼是網站上的內容?文字、照片、影片、音樂、檔案文件都得上是,網站上的內容是非常多元且豐富。一般人對這類型的內容管理系統可能會有以下的其他名稱:

  • 架站程式(架站軟體)
  • 網站應用程式
  • 網站管理系統

Joomla!是使用PHP程式語言與MySQL資料庫所開發,可以在Linux、Windows、Mac OS X等各種不同的平台上執行。Joomla!專案最早是在2005年8月,由當時知名的內容管理系統Mambo分支(Fork)而來。目前是由Open Source Matters (簡寫為OSM,網站www.opensourcematters.org)這個基金會進行推廣、開發與支援,除了基金會的成員外,相關的成員來自全世界各地,除了負責開發的成員約有20位之外,工作小組成員約有100多人,包含了語言翻譯、設計者、系統管理者、文件撰寫者。

事實上,網站本身就是許多相關技術的混合體,網站管理系統也並非指單一種技術,也是許多技術的整合,一個網站管理系統有可能會同時包含以下的相關技術:

項目 說明 註明
網址 網路上的住址
網站主機 存放網站主要程式或檔案的空間 Apache、IIS等
資料庫 記錄相關的資料、會員資料等等 MySQL、MSSQL
伺服器端程式語言 執行位於主機空間的相關程式,主要是存取資料庫上的資料 PHP、ASP等
客戶端(瀏覽器端)程式語言 執行於使用者瀏覽器的程式,主要用於許多特效或操作介面(例如下拉選單) Javascript(以及其他相關的函式庫如Mootools及jQuery)
HTML 網頁的格式編寫語言
CSS 樣式表,主要是用來訂製網頁的呈現風格,例如字體大小、顏色、背景等等
Flash動畫 一種常見的網站上動畫技術,由Adobe公司所開發,Flash不僅會用在動畫的顯示,目前有很多特殊的應用程式上也會使用到(例如很常見的檔案上傳功能)
搜尋引擎相關 為了讓使用者更容易找到這個網站所使用的技術 比較接近網站行銷領域
社群網站相關 為了讓使用者更容易找到這個網站,以及更容易使用網站功能(例如結合Facebook帳號)所使用的技術 比較接近網站行銷領域

全世界有數以萬計的內容管理系統,雖然會使用不同的程式語言和設計的方式,以及符合不同的應用需求,不論在商業或開放原始碼的市場中,內容管理系統是競爭十分激烈的。並沒有確切的數據說明到底全世界共有網站使用了Joomla!作為管理系統(根據一份來自Joomla!官方在慶祝五週年的新聞,全世界約有2.5%的網站是使用Joomla!系統),但在許多統計及調查的資料中顯示,在開放原始碼的網站類管理系統,Joomla!經常是排名中的前三名(註:其他兩名通常是Drupal和Wordpress)。

功能特點

先進的網站技術的運用:
Joomla!應用了非常多的網站進步的新技術,像是「網站快取技術」可以加速網站的反應與效能。「RSS新聞聯播與新聞讀取」是最近十分熱門的網站新聞讀取的技術,在部落格程式中(Blog)中十分常見。「SEO搜尋引擎最佳化」這個是目前所有網站必備的技術之一,這個功能主要是讓搜尋引擎更容易的瀏覽您網站上的資料,讓更多人在搜尋引擎上找到您的網站,相當於為自己的網站帶來更多的人潮和商機。

擴充套件及商機:
來自全球上千種不同網站應用的擴充套件及美工設計佈景,都是以這套系統為基礎而開發。使用者可以很方便的安裝上這些附加套件,如同在桌上電腦中的Windows作業系統中安裝新的軟體一般,簡單且很方便就可以安裝和管理。開發社群總是發揮無止盡的創意,不斷的開發符合使用者需求的產品。Joomla!的商用套件市場也有許多價廉物美的軟體及美工設計佈景主題。

簡單且豐富的操作介面:
Joomla!的操作介面除了美觀之外,也花了很多心力在設計這些介面的簡易操作性。雖然初次使用者需要花一點時間學習一下操作的方式,才能運用自如。但相信學會使用之後,這是很值得的。另外可搭配的多種所視即所得編輯程式,更可讓對網頁設計語言不熟悉的管理者,很簡易的就可以管理和編輯網站上的文章。

高度的客製和開發的彈性:
對於網站程式開發者和美工設計者,Joomla!保留了最大的客製化彈性和整合能力。全世界的網站相關開發人員,都十分關注與推薦這套系統。是由於這套系統不斷在強大能力與客製彈性之間找尋平衡點,受到許多知名廠商的使用。

全世界數萬個網站的使用見証:
自從Mambo 1.0版本以後,全世界有數萬個網站使用這個系統作為架站用的核心系統,其中不乏大公司的網站,例如最有名的保時捷網站(巴西)、三菱公司全球網站、麥克傑克森的官方網站等等,都是十分好的例子。

在2010年10月份在官方的社群上已有超過40萬的註冊會員,主程式已超過一千萬次的下載次數。代表目前對於這個系統的重視與積極參與的人是很多的。藉由使用社群和開發社群的良好互動,充分發揮了開源碼程式的開發正向回饋,目前有愈來愈多優秀的美工設計及程式研發人才投入開發的行列。

Joomla!系統是一個通用性的網站系統,意指幾乎所有類型的網站都可以在這個系統的基礎下建立或發展,不論是個人使用的部落格、一般企業使用的網站到大型的社群網站或新聞網站,透過豐富而多元的擴充套件,都可以找到對應的功能。快速、多樣化而方便的擴充管理功能,減少建置的時間和成本,是最吸引使用者選擇這套系統的優點。

Joomla!入門介紹文章

以上文章引用自 Joomla!台灣繁體中文社群:http://www.joomla.org.tw/