2018年1月12日 星期五

《穹頂之下》-PM2.5的威力

禁片《穹頂之下》-讓我們知道PM2.5的威力
前央視記者柴靜製作的有關中國大陸霧霾的紀錄片《穹頂之下》在互聯網大面積流傳,數日內獲得大約兩億點擊率。












加入好友

2018年1月10日 星期三

點擊立方體旋轉它並收集傳入的球 -scratch練習題


測試你的大腦的反應!

只需點擊立方體旋轉它並收集傳入的球。

聽起來很簡單? 嘗試一下,看看你能不能擊敗朋友們的最好成績。

點綠旗開始遊戲......





加入好友

2018年1月7日 星期日

專為中學生寫的JavaScript 程式書

程式入門

  1. JavaScript程式語言可以用來編寫網站的前端(目前是唯一可在瀏覽器中執行的語言)和後端程式。
  2. 會撰寫前端和後端程式的軟體工程師,稱為全端工程師(full stack engineer)。
  3. Node.js是一種JavaScript開發工具,主要用來開發網站的伺服器端。
  4. 採用UTF8編碼才可以正常顯示繁體中文,使用ANSI則不能。
  5. Node.js預設採用UTF8編碼。

基本語法

  1. 基本變數型態、相關函式語法、流程控制語法。

陣列與字串

  1. 索引的使用。
  2. 相關基本函式的使用。
  3. 字串可以根據索引取得特定字元。

函數

  1. 宣告並定義函數,以重複使用程式碼。
  2. 函數可以採用直接宣告、定義,在JavaScript中也可以用變數連結函數(亦即"匿名函數"),欲呼叫函數時,直接呼較使用該變數並給予所需的參數即可。
  3. 對於函數參數的傳遞,基本型態的參數採用call by value,物件型態的參數則採用call by reference。
  4. 函數可以當作參數,供另一個函數使用。可以藉此實現呼叫不特定函數、callBack(回呼,執行完特定步驟後再呼叫執行該函數)。

字典與JSON

  1. Dictionary(字典),屬於較高階的資料結構,主要為key/value的配對。
  2. Dictionary可以為單層或多層結構。Value為Dictonary資料結構時,即為多層結構。
  3. JSON(全名為Javascript Object Notation),採用{…}和[…]等簡單的語法產生可供使用的物件,較傳統的網路交換格式XML更方便資料的交換,傳遞相同資料內容所需的網路傳輸量也較小。
  4. 物件是JavaScript的核心,以{ }進行宣告和定義。

物件導向與原型(prototype)

  1. 在 log() 函數中使用 %j 的格式,代表要將該物件以JSON 的方式印出來。(如:A.log(“k=%j", k); )
  2. 物件可以連續使用".",連續呼叫執行多個函數。
  3. 可以採用Object.create()或new的方式產生新物件。
  4. 採用prototype的方式宣告變數成員或函數,使得相同類型的物件可以共用變數、函數,而不需讓重複的內容占用記憶體。(若不使用prototype,每產生一次物件,該物件的記憶體皆會包含相關的函數和變數)。個人認為這種做法和C#的static宣告意義相同。
  5. 在原型中可再加入原型,可以藉此實現類似物件導向的"繼承"效果。

函式庫

  1. 瀏覽JavaScript標準函式庫,以大致了解有哪些函數可供使用。
  2. 瀏覽Node.js函式庫,以大致了解有哪些函數可供使用。
  3. 藉由Node.js官方套件管理器-npm(node package manager),可以用來安裝、管理、發佈套件。目前已發佈數十萬種套件,可搜尋所需的功能套件並安裝使用。

模組

  1. 在JavaScript中,模組可以是物件(物件本身可能同時包含"變數成員"和"函數")或函數,可以將模組分享給其他程式使用。
  2. Node.js中,模組的定義分為匯出"物件"的靜態模組、匯出"建構函數"的動態模組。
  3. 要匯出模組者,需使用"module.exports"語法。
  4. 要引用模組者,需使用"require"語法和"相對路徑"。
  5. 可以使用"建構函數"產生物件。
  6. 採用跨平台相容的模組匯出寫法,使得瀏覽器、node.js、CommonJS 與其 Asynchronous Module Definition (AMD) 實作版的 RequireJS都可以使用該模組。
  7. 安裝、使用、發佈npm套件基本介紹。

檔案與標準(鍵盤/螢幕)輸出入

  1. JavaScript語言一開始是直接內嵌在"網頁"使用,因此標準函式庫中沒有檔案輸出入的相關函數。
  2. Node.js提供了檔案輸出入的函數,預設為非阻斷式(Non-blocking)、非同步式(nonsynchronize)、大量使用回呼函數(callback function)的方式,因此即使未寫成multi-thread或multi-process的寫法也會有較高的效能,但程式碼的可讀性較差。

資料庫

  1. 安裝mongo DB。
  2. 資料庫的CRUD(Create、Read、Update、Delete)相關語法。
  3. 在程式中使用mongo DB。

網路

  1. 使用fs、http、URIjs等套件,產生網頁爬蟲、聊天室(server-client架構)網路程式範例。

完整案例 RLab

  1. 因為有開源程式碼可供使用,可善用外部函式庫、軟體,組合出我們想要的系統。
  2. 在科學計算領域,目前有商業軟體matlab、用R/Octave/Python語言撰寫的numpy, scipy等開放原始碼軟體。
  3. 分享實作JavaScript的科學計算套件RLab.js之經驗。
  4. 科學計算軟體通常需要有"矩陣"和"機率統計"功能,因此採用了numeric.js(矩陣套件)和jstat.js(統計套件),進而組合成科學計算套件RLab.js

學習資源

專為中學生寫的 JavaScript 程式書







加入好友

2018年1月5日 星期五

重要通知-寒假冬令營課程更改

重要通知:
為配合講師進修時間,今年寒假冬令營課程更改:
原本A班課程日期將取消,B班課程保留,調整後日期如下




[ 日期與時間 ]

107年 02/05 ~ 02/09

**B班上午 --數學週,09:00~12:00
**B班下午 --遊戲週,13:00~16:00

兩班課程可任選其一,或全上。

原先報名A班同學,請再次確認上課事宜,或與我們聯繫保留或更改。






加入好友

焦點訊息

寒假學習營 - 探索AI奇蹟:兒童程式設計夢幻之旅

探索AI奇蹟:兒童程式設計夢幻之旅 課程大綱: 天數 1:程式入門與遊戲設計 課程目標: 引導兒童進入程式設計的世界,學習基本的編程概念。 內容摘要: 簡介程式設計基礎概念。 使用視覺化編程工具創建簡單的互動遊戲。 學習控制流程、變數和基本演算法。 天數 2:動手製作繪圖程式 課...

神奇的耳穴保健與心靈修練-點一下正念工坊