編輯的話

     

  本期電子報中的經驗分享文章,感謝國立 高師大附中 江其勳老師所提供的—『 談談反射機制以及使用場合』,江老師在文章中提到在程式語言中,Reflection語言是一個可以自我識別,且理解自己的類別具備哪些field, method 等基本訊息,以 JAVA 為例,使用者可以在程式運行的時候,動態的載入在編譯期間未知的類別。也就是說,JAVA 可以在運行的時候才載入一個 class 並且獲得內部構造,並且將這個 class 實例化,並且可以呼叫 methods 來進行各種 getter, setter 的動作。有了這些特性,JAVA可以被稱為準動態語言,許多偉大的框架主要都是由 Reflection 語言才可以去實現的,因此使用者利用 Reflection 將這些枯燥的物件包裝過程通用化,不僅可以少打幾行字,也可以讓機器自行去偵錯,以避免人為的錯誤,這麼人性的程式語言,歡迎各位老師們閱讀。

   另外學科中心預告下期電子報主題由國立彰化師範大學附屬高工 楊昭德老師所撰寫的【 翻轉教學-動手做】,文章即將公開,敬請期待。


敬祝    教學順心

 

 高中職教師產業世界與生涯輔導研習培訓之企業參訪(健豪印刷廠)

《活動照片》

 

高中職教師產業世界與生涯輔導研習培訓之企業參訪(新竹科學園區)

《活動照片》

《高中資訊學科中心即將辦理》

103年度十二年國民基本教育教師教學專業能力-多元評量研習

壹、依據

一、依據 教育部103年3月26日臺教授國字第1030031799號函核定辦理。
二、依據資訊學科中心102年10月1日(星期二)召開「普通高級中學課程資訊學科中心102年度第1次工作會議」決議辦理。

貳、目的
一、藉由教師研習增進教師教學之研究風氣,促進教師專業成長,提昇教師教學品質,以便發揮更大教學成效。
二、透過教學研習活動,進而分享教師與同儕之間的教學模式,提升教師教學方法與創新思維。
三、因應12年國民基本教育,期望透過此研習,讓教師對於資訊科之多元評量方式及應用有更深入的瞭解與認識。

參、辦理單位
一、指導單位:教育部國民及學前教育署
二、主辦單位:資訊科學科中心-國立臺南第二高級中學
三、協辦單位:國立臺灣師範大學附屬高級中學、國立臺中第二高級中學

 

肆、辦理內容

一、參加對象:全國各普通高中、完全中學、綜合高中資訊教師各校1至2人(至少1人),預計270人。

二、研習時地:


時間

南區
10
21()

中區
1028()

北區
114()

900~

930

報到

930~

1000

開幕

1000~

1200

多元評量應用-以資訊科為例

台北市立中正高中
賴和隆老師

1200~

1300

午餐及休息

1300~

1600

多元評量理念與實務

國立新竹教育大學教育與學習科技學系
張美玉教授

1600~

1630

綜合座談及討論/意見交流

1630

賦歸

三、報名方式:

1﹒報名時間:

  (1)南區即日起至103年10月16日(星期四),課程代碼:1629925

  (2)中區即日起至103年10月22日(星期三) ,課程代碼:1629932

  (3)北區即日起至103年10月29日(星期三) ,課程代碼:1629937

2﹒報名網址:全國教師在職進修資訊網

3﹒報名事宜聯絡人:許雅婷小姐、高廷瑋先生,電話:06-2514526轉608。

﹒e-mail:yatin731106@mail.tnssh.tn.edu.tww09391@mail.tnssh.tn.edu.tw

2014亞洲機器人運動競技大賽

一、主旨:
1.促進各級學校重視技能教學,提昇機電整合知識與技能之教學水準。
2.提昇各級學校師生及社會人士手腦並用之實作水準,培養創造思考之能力與習慣。
3.促進各級學校師生及社會人士電機、電子、電腦、控制、資訊等相關技術之整合能力。
4.促進各級學校師生於教學及學習上之相互交流與觀摩。

二、參加對象
高中高職組:限高中高職學校學生報名參加,每隊最多可報 4 名選手。

三、比賽項目:
自走車競速、工業機器人大挪移、智高自走車相撲、遙控人形機器人擂台、智高自走車競速........等

比賽日期:11月15日(星期六)
會議地點:
正修科技大學大禮堂
大會官網:點我連結

 

TANET2014 臺灣網際網路研討會

  臺灣網際網路研討會(TANET)是國內網路資訊領域相當重大的年度盛會,本研討會以台灣學術網路發展為核心主軸議題,其中包括相關網際網路之學術研討與應用技術,此外,網際網路相關實務方面議題的經驗分享與交流也是本會的重點項目之一。政府近年來極力推動資訊資源整合,以期能進一步活化資料應用,刺激台灣產業之發展,當中有許多重要資訊議題因而需要被加以重視與探討,例如如何有效處理大量資訊、如何保護個人私有資訊不被有心人士濫(盜)用、如何有效建置雲端應用服務及如何增強行動數位生活。

綜觀所知,TANET 2014研討會的主題將囊括上述各項議題,主題則定為「雲端智慧計算、巨量資料探掘、行動數位生活、個資安全保護」,冀望能藉由此次研討會邀請各產官學界之專家學者、兩岸資訊從業人員共襄盛舉,為台灣打造一個安全無虞之資訊共享社會,創建資訊經濟發展,為台灣科技業奠定相當之資訊發展基礎。

會議日期:2014年10月22、23、24日(星期三、四、五)
會議地點:高雄國際會議中心
大會官網:點我連結

  簡化手機介面 Yahoo Aviate智慧桌面中文版推出!

 美國加州開始公測無人駕駛汽車

  湯匙也要防手震!Google收購智慧型湯匙公司Lift Labs

  升級SSD免重灌 SanDisk新硬碟3步全搞定!

  Google 邀你同游大海,海洋 360 度環景清涼一夏

 雲端情人不是夢?智慧型耳機時代將臨

  可穿戴設備成功的六大要素


 無線充電怎麼充?全部丟碗裡就對了!

  3D列印不思議之筆電也能用印的!

  只要有傳送點 不搭飛機就可以出國?

  低頭族專用: 大陸開設「手機行人道」

  品酒師要失業了麼?丹麥發明可以品紅酒的機器人

  讓朋友督促你運動!藍牙跳繩計數不忘分享

  手機與電腦完美結合 跨越螢幕的直覺操作!
 

 


EZoApp

  近年來隨著瀏覽器等級與效能的大幅躍進,HTML5 + JavaScript + CSS3 的前端技術竄起,許多前端框架與跨平台展現的語法,有如雨後春筍般的萌生,jQuery Mobile 便是一套建立於 jQuery 與 jQuery UI 的強健基礎上,提供行動裝置跨平台的使用者介面的系統,也是近幾年來最夯的技術之一。
在眾多編輯器當中,近年來迅速受到開發者喜愛與關注的 EZoApp ,便是由 jQuery Mobile 為基礎而誕生的開發工具,EZoApp 不僅一應俱全的保留了 jQuery Mobile 所具備的優勢和功能,更結合了 EZo 研發團隊多年的開發實戰和經驗,讓使用者在瀏覽器上工作,撰寫簡單的語法,打造出無限可能的創意能量和跨平台產品,除此之外,EZoApp 採用雲端的運算與儲存方式,讓開發者更能輕鬆共享自己的程式代碼,設計師也可毫不費力的編輯畫面或進行操作體驗規劃,彼此相得益彰,創造更省時省力的工作方式。
網址:http://www.ezoui.com/app/index.html

 

Google發表Blockly Games,讓小學生邊玩邊學習程式設計概念

  Google是在去年底舉行的電腦科學教育周(Computer Science Education week)展示了Blockly,這是一個以網頁為基礎的圖像設計編輯工具,使用者只要拖曳圖塊就能打造應用程式,完全不需輸入文字,並可將Blockly程式匯出成JavaScript、Python或XML程式。Google表示,Blockly環境已被應用在全球5∼12歲的教室,以用來教授程式語言,而Blockly Games則是一項激勵未來程式設計師的Google專案。

  Blockly Games含有表達各種程式設計概念的遊戲,例如最基本的Puzzle主要是介紹圖塊的拼接與設定方式,Maze則是以迷宮遊戲來表達簡單的迴圈與條件概念,Bird則是進階的條件與控制教學,Turtle為進階的迴圈概念遊戲,以Movie來介紹數學方程式,Pond則是一個可程式化鴨子的競賽遊戲,Pond JS將圖塊轉成文字介面,讓鴨子的行動更快而且能力更強。

  Google表示,新手藉由Blockly Games能以自己的步調自行學習程式設計,這是一個開放源碼專案,歡迎各界在教室內、外進行Blockly遊戲,也歡迎開發人員的貢獻。

  Blockly還有其他有趣的相關專案,例如可以Blockly打造Android程式的App Inventor,以及能以Blockly控制機器人的Play-i或Lil'Bot,其實麻省理工學院(MIT)在2003年就曾打造適用於兒童的Scratch程式語言,這也是一個視覺化的程式設計工具,Scratch 1.0版於2007年1月問世,目前的版本為Scratch 2.0,可支援Windows、Mac OS與Linux等平台,亦可於Scratch官網上學習。
網址:https://code.google.com/p/blockly/

 

中鋼集團子公司-中冠資訊EZoApp

  網站照片

 

 

 

 

 

 

 

 

 

 

 

 

Google  Blockly Games

  網站照片

 

 

Intelligent and Innovation 智慧生活科技創新應用

《 YZU's GRC's Channel》


=========================================================

一手掌握智慧城市
《Oleg Logvinov at TEDxTaipei 2014》

 
 


《法治教育》
資訊科技與人類社會

撰文/台南市聖功女子高級中學  毛全量老師

。一、前言

主題

主要內容

說明 參考節數

資訊科技與

人類社會

1.資訊科技與生活

1-1資訊科技與生活的關係

1-2資訊科技的優點與限制

1-3未來的資訊科技

4-8

2.資訊科技與學習

2-1電腦輔助學習軟體

2-2電腦網路與學習

2-3電腦輔具與無障礙設計

3.資訊社會相關議題

3-1電腦使用與身心健康議題

3-2資訊倫理與道德

3-3資訊相關法律問題

。貳、導論:

  資訊科學發展部份其實可以和資訊科技與生活相結合,介紹在資訊科學發展的過程中,與生活相關的資訊科學發展;亦可以延伸介紹資訊未來的發展與限制;或是在資訊科學發展的介紹中,加入相關的資訊科技發展的限制級資訊科技的優缺點。
  資訊科學發展亦可以和資訊科技與學習相關連,例如在介紹資訊科學的發展時,可以以在學習方面的發展來加以舉例說明,甚至介紹目前漸漸為國人所重視的電腦輔具與無障礙設計。
 

。參、電腦硬體:

  電腦硬體概論部分,可以於電腦電腦組成帶入資訊科技的優點域限制及未來的資訊科技,或於電腦設備使用介紹中帶入資訊科技與生活相關的範例介紹。
  電腦硬體基本單元部分,可以加入資訊科技與生活的關係、資訊科技的優點與限制的相關介紹。

《 精彩全文閱讀》
 

 

  

 談談反射機制以及使用場合

撰文/國立高師大附中 江其勳老師

 

  程式語言中的 Reflection 一般我們翻譯為「反射」,但其實有一個相對來說更為貼切的說法「自識」(introspect)。雖然不同的程式語言有不同的實作方式而產生了這兩個不同的名詞,但排除深究其中實作原理的時候,實際上筆者更喜歡後者,因為語義更加明確。「反射」對於剛接觸的人來說,不太容易從中文語義當中理解。「自識」則是表示自我識別的意思,也就是說一個物件可以理解到自己的類別具備那些 field, method 等基本訊息。舉個例子,要讓一個物件列出自己擁有哪些 public 的 method, 有哪些 private 的 field,就是個典型應用。
  然而,Reflection 的能力遠不止與如此,以 JAVA 為例,我們可以在程式運行的時候動態的載入在編譯期間未知的類別。也就是說,JAVA 可以在運行的時候才載入一個 class 並且獲知起內部構造,並且將這個 class 實例化,並且可以呼叫 methods 來進行各種 getter, setter 的動作。有了這些特性,JAVA 可以被稱為準動態語言,許多偉大的框架都是根基於 Reflection 才有可能實現的。
  話說回來,我們到底可以拿 Reflection 來做什麼?聽起來好像很厲害,很高檔,可是又好像找不到什麼理由來使用它。我寫了這麼多程式,沒有用到任何 Reflection 還是可以勝任愉快啊。
 

 JAVA 的反射機制

  學過 JAVA 物件導向的人都知道一個觀念,就是 JAVA 的物件都有一個共同祖先,叫做 Object, Object 堶惟w義了所有物件最基本的一些特性,比如 toString(), equals(), clone(), hashCode(), getClass() ...等。其中有一個叫做 getClass() 用來返回一個 Class Object. Class 是一個很特殊的類別。而這個 Class 就是所有 Reflection 的源頭了。來試試看一個小例子,拿我們很常用的 String 來試試看。透過 String.class 就可以取得 Class 類別再列舉出 DeclaredMethods

for (Method method : String.class.getDeclaredMethods()) {
System.out.println(method.getName());
}
得到的結果為:
equals
toString
hashCode
compareTo
indexOf
valueOf

  這些都是我們在使用 String 過程中習以為常的methods. 我們所使用的程式工具比如 Eclipse, 為何能夠提示我們有哪些方法可以用呢?就是利用 Reflection 做出來的。

 實用場合

  說了一大篇 Reflection 的原理跟用法,我們會用別人寫出來的框架就很好了,根本不要自己開發框架,那到底在什麼場合會用到?我們就來舉個實用場合,有寫過資料庫的人就會知道,假設我們在資料庫當中有一個 table ,名稱叫做 users ,這是我們會設計一個類別就叫做 User 。這個 table 堶捧|有一些欄位,比如 userid, username, email,這些我們就會設計在 User 塈@為 fields,並且加上相對的 getter, setter

public class User {
private int userid = 0;
private String username = "";
private String email = "";
public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}

假設我們要從網頁上新增一個使用者。我們大致上會設計一個頁面來新增使用者。

<form method="post" action="">
使用者編號:<input name="userid" value="" /><br />
使用者姓名:<input name="username" value="" /><br />
email:<input name="email" value="" /><br />
<input type="submit" value="送出" />
</form>

這個頁面提供給使用者分別填入三個欄位的資料。
然後我們在後端就可以用 request.getParameter(“欄位”); 來讀取送過來的資料。

User newuser = new User();
newuser.setUserid(request.getParameter("userid"));
newuser.setUsername(request.getParameter("username"));
newuser.setEmail(request.getParameter("email"));
new UserService().insert(newuser);

  因此我們 new 一個 User 然後分別用 setter 把從前端頁面的資訊存入 newuser 這個 Object 然後再交由資料庫處理程式將它 insert 進資料庫。
  以上所寫的確是個正確可行的方式,多數的系統也是如此實作。只不過,如果是比較複雜的 POJO 呢?如果我的 User 包含了 60 個 fields ,我們就必須用 setter 將參數一個一個加入到 newuser 當中,看起來是一個相當冗長又無聊又容易出錯的寫法,在 request.getParamter(“參數名稱”)當中,我們用「純字串」的方式來指定”參數名稱”,敏感的人就會發現,這會有大麻煩,因為如果打錯字,編譯器可是完全不會發現。如果在這六十行堶惘酗@行寫了 request.getParameter(“name”) 而非正確的 request.getParameter(“username”) ,我們恐怕容易忽略掉,就會不可避免的出現錯誤。
  這個時候我們觀察 input 標簽的 name 都一定是對應到我們 User 內的 field ,我們可以直接取得這些 name 然後呼叫 setter 將對應的 value 塞進 user 堶情C程式碼如下..........
 

《 請點這看完整全文》
 


::更多資訊請上 高中資訊學科中心::

用心  專業  熱忱  創新

您有任何問題需要協助或有好文章、網路資源要與大家分享,請洽:
高中資訊學科中心專任助理
 許雅婷高廷瑋 

感謝您的投入與支持,讓電子報的內容更加豐富!

發行單位:教育部高中資訊學科中心

承辦學校:國立臺南第二高級中學 

地       址:704臺南市北區北門路二段125號

電       話:06-2514526#608、06-2828059

發行人:鄭忠煌校長

總編輯:陳美芳主任

編輯群:許雅婷小姐、高廷瑋先生

出刊日期:2014年09月