2016年11月16日 星期三

從 Scratch 邁向 Python

Scratch 讓初學者很容易地進入「真正的」程式設計, 學習者為了達到創意的目的, 必須解決較為複雜的問題。

寫 Scratch 與程式設計師解決問題的方式相當類似。

具備了 Scratch 經驗後, 學習者要進入文字模式的程式語言, 變得相當容易。尤其是程式語言 Python。

以下將 Scratch 的部分程式積木與 Python 語法和內建功能做對照。

輸入

圖左是 Scratch 的表達方式, 圖右是 Python 的語法。在 Scratch 中提問的結果會放入「答案」這個變數, Python 可以使用 input() 達到相同的效果。而且 Python 可以使用中文「答案」當作變數名稱。

輸出

圖左是 Scratch 的表達方式, 圖右是 Python 的語法。

數學運算

圖左是 Scratch 的表達方式, 圖右是 Python 的語法。


字串運算

圖左是 Scratch 的表達方式, 圖右是 Python 的語法。

字串運算

圖左是 Scratch 的表達方式, 圖右是 Python 的語法。


進階數學運算

圖左是 Scratch 的表達方式, 圖右是 Python 的語法。


迴圈

圖左是 Scratch 的表達方式, 圖右是 Python 的語法。


變數

圖左是 Scratch 的表達方式, 圖右是 Python 的語法。Python 可以使用中文「分數」當作變數名稱。



列表

圖左是 Scratch 的表達方式, 圖右是 Python 的語法。Python 可以使用中文「清單」當作變數名稱。


2016年11月14日 星期一

「Coding for Fun 快樂學程式偏鄉推廣計畫」贊助第三波結案報告

第三波總共寄出 256 本。

贊助總額  60,900 元。原本只能寄送 203 所學校,提高到 256 所學校。所有偏鄉小學都收到了我們的教材。

以下為詳細經費使用報告:



105/10/18 寄出 1 所學校

縣立大進國小 [976]花蓮縣光復鄉大進村糖廠街4號

105/10/21 寄出 83 所學校

市立仁和國小 [717]臺南市仁德區仁愛里保仁路68號
市立虎山國小 [717]臺南市仁德區成功里虎山一街100號
市立保東國小 [718]臺南市關廟區埤頭里關新路一段776號
市立崇和國小 [718]臺南市關廟區田中里南雄南路568號
市立文和國小 [718]臺南市關廟區布袋里長文街37號
市立深坑國小 [718]臺南市關廟區南雄路一段487號
市立新光國小 [718]臺南市關廟區新光街76號
市立龍崎國小 [719]臺南市龍崎區崎頂里新市子41號
市立口碑國小 [712]臺南市新化區知義里口埤88號
市立層林國小 [714]臺南市玉井區層林里115號
市立南化國小 [716]臺南市南化區南化里17號
市立北寮國小 [716]臺南市南化區北寮里110之27號
市立西埔國小 [716]臺南市南化區西埔里117號
市立玉山國小 [716]臺南市南化區玉山里48之1號
市立瑞峰國小 [716]臺南市南化區關山里96號
市立左鎮國小 [713]臺南市左鎮區中正里7號
市立光榮國小 [713]臺南市左鎮區榮和里61之1號
市立善糖國小 [741]臺南市善化區溪美里245號
市立文正國小 [721]臺南市麻豆區南勢里86號
市立安業國小 [721]臺南市麻豆區安東里113號
市立北勢國小 [721]臺南市麻豆區北勢里15號
市立港尾國小 [721]臺南市麻豆區港尾里港尾9號
市立紀安國小 [721]臺南市麻豆區謝安里231號
市立塭內國小 [722]臺南市佳里區龍安里40號
市立子龍國小 [722]臺南市佳里區三協里潭墘5號
市立通興國小 [722]臺南市佳里區通興里埔頂5之1號
市立松林國小 [723]臺南市西港區檨林里39之1號
市立後港國小 [724]臺南市七股區大潭里台潭1號
市立竹橋國小 [724]臺南市七股區竹橋里130號
市立三股國小 [724]臺南市七股區三股里100號
市立光復國小 [724]臺南市七股區_埕里_埕1號
市立篤加國小 [724]臺南市七股區篤加里120號
市立龍山國小 [724]臺南市七股區龍山里12號
市立建功國小 [724]臺南市七股區十份里74之1號
市立大文國小 [724]臺南市七股區大寮里36之2號
市立樹林國小 [724]臺南市七股區樹林里65之11號
市立鯤鯓國小 [725]臺南市將軍區鯤溟里6號
市立長平國小 [725]臺南市將軍區長沙里132之2號
市立文山國小 [727]臺南市北門區中樞里50號
市立錦湖國小 [727]臺南市北門區錦湖里75號
市立雙春國小 [727]臺南市北門區雙春里35之2號
市立三慈國小 [727]臺南市北門區慈安里381號
市立宅港國小 [726]臺南市學甲區宅港里13號
市立頂洲國小 [726]臺南市學甲區三慶里頂洲108號
市立賀建國小 [735]臺南市下營區賀建里麻豆寮49號
市立甲中國小 [735]臺南市下營區甲中里71號
市立嘉南國小 [734]臺南市六甲區龍湖里珊瑚路301號
市立渡拔國小 [720]臺南市官田區拔林里77之1號
市立二溪國小 [742]臺南市大內區二溪里154號
市立新橋國小 [730]臺南市新營區鐵線里1號
市立新生國小 [730]臺南市新營區姑爺里52號
市立土庫國小 [730]臺南市新營區土庫里71之1號
市立坔頭港國小 [737]臺南市鹽水區南港里202號
市立竹埔國小 [737]臺南市鹽水區竹埔里92之1號
市立仁光國小 [737]臺南市鹽水區舊營里117號
市立岸內國小 [737]臺南市鹽水區岸內里新岸內96號
市立文昌國小 [737]臺南市鹽水區後宅里10之3號
市立竹門國小 [732]臺南市白河區竹門里113號
市立內角國小 [732]臺南市白河區內角里1號
市立仙草國小 [732]臺南市白河區仙草里22號
市立河東國小 [732]臺南市白河區河東里83之1號
市立大竹國小 [732]臺南市白河區大竹里3號
市立果毅國小 [736]臺南市柳營區果毅里61號
市立太康國小 [736]臺南市柳營區太康里4之1號
市立新山國小 [736]臺南市柳營區旭山里新吉庄28之1號
市立菁寮國小 [731]臺南市後壁區墨林里282號
市立安溪國小 [731]臺南市後壁區長安里5號
市立新東國小 [731]臺南市後壁區仕安里81號
市立永安國小 [731]臺南市後壁區嘉田里48之5號
市立新嘉國小 [731]臺南市後壁區新嘉里210之2號
市立樹人國小 [731]臺南市後壁區烏樹里145號
市立聖賢國小 [733]臺南市東山區聖賢里田尾29號
市立東原國小 [733]臺南市東山區東原里23鄰8號
市立青山國小 [733]臺南市東山區青山里16號
市立吉貝耍國小 [733]臺南市東山區東河里15號
市立龍崗國小 [702]臺南市南區鯤鯓里鯤鯓路147號
市立青草國小 [709]臺南市安南區青砂街二段105巷32號
市立鎮海國小 [709]臺南市安南區大眾路381號
市立顯宮國小 [709]臺南市安南區顯宮二街1號
市立長安國小 [709]臺南市安南區長溪路三段249號
市立安南區南興國小 [709]臺南市安南區公學路五段627號
市立安佃國小 [709]臺南市安南區海佃路四段493號
市立學東國小 [709]臺南市安南區公學路六段589號

105/10/24 寄出 48 所學校

市立興田國小 [840]高雄市大樹區興田里興田路59號
市立龍目國小 [840]高雄市大樹區龍目里56號
市立嘉誠國小 [815]高雄市大社區嘉誠里嘉誠路22號
市立深水國小 [824]高雄市燕巢區深水里深中路2號
市立金山國小 [824]高雄市燕巢區金山里番田路29號
市立田寮區新興國小 [823]高雄市田寮區新興里大新路2號
市立崇德國小 [823]高雄市田寮區崇德里崇德路101號
市立三埤國小 [821]高雄市路竹區三爺里民權路7號
市立北嶺國小 [821]高雄市路竹區北嶺里民治路85號
市立三侯國小 [829]高雄市湖內區中正路二段544號
市立新港國小 [828]高雄市永安區新港里新興路25號
市立東門國小 [843]高雄市美濃區東門里民族路36巷2號
市立龍肚國小 [843]高雄市美濃區龍肚里龍東街43號
市立廣興國小 [843]高雄市美濃區興隆里廣興街124號
市立龍山國小 [843]高雄市美濃區龍山里龍山街62號
市立福安國小 [843]高雄市美濃區中山路二段358號
市立吉東國小 [843]高雄市美濃區吉東里吉頂路19號
市立六龜國小 [844]高雄市六龜區義寶里光復路40號
市立荖濃國小 [844]高雄市六龜區荖濃里南橫路72號
市立新發國小 [844]高雄市六龜區新發里和平路130號
市立龍興國小 [844]高雄市六龜區中興里中庄193號
市立新威國小 [844]高雄市六龜區新興里新威路212號
市立寶來國小 [844]高雄市六龜區寶來里中正路89號
市立月美國小 [846]高雄市杉林區月眉里象寮巷39號
市立上平國小 [846]高雄市杉林區上平里山仙路212號
市立新庄國小 [846]高雄市杉林區新庄里司馬路45巷5號
市立集來國小 [846]高雄市杉林區集來里通仙巷333號
市立杉林國小 [846]高雄市杉林區杉林里合森巷41號
市立內門國小 [845]高雄市內門區內豊里內埔24號
市立觀亭國小 [845]高雄市內門區觀亭里中正路203號
市立溝坪國小 [845]高雄市內門區溝坪里廣福巷47號
市立金竹國小 [845]高雄市內門區金竹里吉民28號
市立木柵國小 [845]高雄市內門區木柵里木柵3號
市立西門國小 [845]高雄市內門區內東里柿子園24號
市立景義國小 [845]高雄市內門區永富里萊坑8號
市立甲仙國小 [847]高雄市甲仙區西安里文化路45號
市立小林國小 [847]高雄市甲仙區小林里五里路24-2號
市立寶隆國小 [847]高雄市甲仙區寶隆里光華路20號
市立杉林區民族大愛國小 [846]高雄市杉林區月眉里和氣街15號
市立民生國小 [849]高雄市那瑪夏區達卡努瓦里大光巷159號
市立茂林國小 [851]高雄市茂林區茂林里4之3號
市立多納國小 [851]高雄市茂林區多納里1-2號
市立桃源國小 [848]高雄市桃源區桃源里北進巷五十號
市立建山國小 [848]高雄市桃源區建山里96號
市立興中國小 [848]高雄市桃源區高中里興中巷44號
市立寶山國小 [848]高雄市桃源區寶山里98號
市立樟山國小 [848]高雄市桃源區拉芙蘭里南橫公路45號
市立那瑪夏區民權國小 [849]高雄市那瑪夏區瑪雅里平和巷220號

105/10/26 寄出 36 所學校

市立外社國小 [338]桃園市蘆竹區山林路二段525號
市立頂社國小 [338]桃園市蘆竹區山林路三段232號
市立內海國小 [337]桃園市大園區內海里一鄰18之1號
市立后厝國小 [337]桃園市大園區國際路二段147號
市立沙崙國小 [337]桃園市大園區沙崙里九鄰75號之2
市立陳康國小 [337]桃園市大園區建國八村151號
市立大埔國小 [333]桃園市龜山區舊路里18之2號
市立大坑國小 [333]桃園市龜山區大坑里四鄰23號
市立龍壽國小 [333]桃園市龜山區龍壽里龍校街30號
市立美華國小 [335]桃園市大溪區金山路50號
市立百吉國小 [335]桃園市大溪區復興里百吉2號
市立瑞祥國小 [335]桃園市大溪區瑞源里59號
市立中興國小 [335]桃園市大溪區瑞興里一鄰大鶯路1125號
市立永福國小 [335]桃園市大溪區永福里信義路十二鄰1165號
市立瑞原國小 [326]桃園市楊梅區瑞原里七鄰60號
市立啟文國小 [327]桃園市新屋區清華里三鄰62號
市立笨港國小 [327]桃園市新屋區笨港里二鄰1之1號
市立北湖國小 [327]桃園市新屋區石牌里3鄰32號
市立蚵間國小 [327]桃園市新屋區後庄里三鄰40號
市立社子國小 [327]桃園市新屋區社子里七鄰3之1號
市立大潭國小 [328]桃園市觀音區大潭里濱海路大潭段687號
市立保生國小 [328]桃園市觀音區保生里十四鄰5號
市立育仁國小 [328]桃園市觀音區坑尾里四鄰23之1號
市立樹林國小 [328]桃園市觀音區樹林里新里路二段12號
市立三和國小 [325]桃園市龍潭區三和里直坑39號
市立介壽國小 [336]桃園市復興區澤仁里中正路33號
市立三民國小 [336]桃園市復興區三民里十一鄰57號
市立義盛國小 [336]桃園市復興區義盛里一鄰11號
市立霞雲國小 [336]桃園市復興區霞雲里六鄰14號
市立奎輝國小 [336]桃園市復興區奎輝里三鄰25號
市立光華國小 [336]桃園市復興區華陵里四鄰12號
市立高義國小 [336]桃園市復興區高義里三鄰28號
市立長興國小 [336]桃園市復興區長興里十六鄰頭角43號
市立三光國小 [336]桃園市復興區三光里六鄰7號
市立羅浮國小 [336]桃園市復興區羅浮里三鄰16號
市立巴崚國小 [336]桃園市復興區華陵里九鄰75號

105/10/28 寄出 64 所學校

市立保長國小 [221]新北市汐止區大同路三段553號
市立東山國小 [221]新北市汐止區東山里汐平路二段76號
市立萬里國小 [207]新北市萬里區瑪鋉路18號
市立野柳國小 [207]新北市萬里區野柳里港東路167號
市立大鵬國小 [207]新北市萬里區大鵬里加投路14號
市立大坪國小 [207]新北市萬里區雙興里大坪路1號
市立崁腳國小 [207]新北市萬里區崁脚里崁脚路59號
市立金山國小 [208]新北市金山區中山路234號
市立中角國小 [208]新北市金山區萬壽里海興路49號
市立三和國小 [208]新北市金山區重和里十一鄰六股林口38號
市立直潭國小 [231]新北市新店區直潭路92號
市立雙峰國小 [231]新北市新店區北宜路三段66號
市立屈尺國小 [231]新北市新店區屈尺路55號
市立龜山國小 [231]新北市新店區新烏路三段99巷10號
市立深坑國小 [222]新北市深坑區深坑里文化街45號
市立石碇國小 [223]新北市石碇區石碇里石碇西街15號
市立和平國小 [223]新北市石碇區隆盛里八分寮5號
市立永定國小 [223]新北市石碇區永定里蚯蚓坑20號
市立雲海國小 [223]新北市石碇區北宜路五段坑內巷1號
市立坪林國小 [232]新北市坪林區坪林里坪林街114號
市立烏來國(中)小 [233]新北市烏來區啦卡路5號
市立福山國小 [233]新北市烏來區福山里李茂岸56號
市立瑞芳國小 [224]新北市瑞芳區龍川里中山路2號
市立義方國小 [224]新北市瑞芳區龍山里逢甲路360號
市立瑞柑國小 [224]新北市瑞芳區明燈路一段18巷13號
市立瑞濱國小 [224]新北市瑞芳區瑞濱路34號
市立九份國小 [224]新北市瑞芳區永慶里崙頂路145號
市立瓜山國小 [224]新北市瑞芳區石山里五號路306號
市立濂洞國小 [224]新北市瑞芳區_洞里洞頂路101巷80號
市立猴硐國小 [224]新北市瑞芳區弓橋里九芎橋路69-1號
市立瑞亭國小 [224]新北市瑞芳區四腳亭埔路23號
市立吉慶國小 [224]新北市瑞芳區吉安里大埔路95號
市立鼻頭國小 [224]新北市瑞芳區鼻頭里鼻頭路99號
市立雙溪國小 [227]新北市雙溪區共和里東榮街54號
市立柑林國小 [227]新北市雙溪區長源里柑腳3號
市立上林國小 [227]新北市雙溪區上林里內平林60號
市立牡丹國小 [227]新北市雙溪區三貂里政光路3號
市立貢寮國小 [228]新北市貢寮區雙玉里學苑街7號
市立福隆國小 [228]新北市貢寮區福隆里東興街35號
市立和美國小 [228]新北市貢寮區和美里龍洞街1之9號
市立福連國小 [228]新北市貢寮區福連里福連街1號
市立平溪國小 [226]新北市平溪區平溪街56號
市立菁桐國小 [226]新北市平溪區菁桐街45號
市立十分國小 [226]新北市平溪區十分里十分街157號
市立育英國小 [251]新北市淡水區埤島里14號
市立水源國小 [251]新北市淡水區水源里北新路二段15號
市立興仁國小 [251]新北市淡水區興仁路101巷10號
市立忠山國小 [251]新北市淡水區忠山里椿子林16之8號
市立屯山國小 [251]新北市淡水區淡金路五段111號
市立中泰國小 [251]新北市淡水區中和里北勢子5號
市立坪頂國小 [251]新北市淡水區坪頂里小坪頂18號
市立石門國小 [253]新北市石門區尖鹿里中央路9號
市立乾華國小 [253]新北市石門區茂林里茂林社區74號
市立老梅國小 [253]新北市石門區老梅里老梅路10號
市立三芝國小 [252]新北市三芝區埔頭里育英街22號
市立橫山國小 [252]新北市三芝區橫山里86號
市立興華國小 [252]新北市三芝區興華里5號
市立長坑國小 [249]新北市八里區長坑里長坑口12鄰25號
市立南勢國小 [244]新北市林口區南勢里南勢街215號
市立嘉寶國小 [244]新北市林口區嘉寶里22號
市立瑞平國小 [244]新北市林口區太平里後坑路34之1號
市立興福國小 [244]新北市林口區下福里20鄰一○之一號
市立金美國小 [208]新北市金山區忠孝一路111號
市立豐珠國(中)小 [228]新北市貢寮區美豐里雞母嶺街6-6號

105/11/14 寄出 24 所學校

縣立仁愛國小 [900]屏東縣屏東市興樂里仁愛路98號
縣立海豐國小 [900]屏東縣屏東市三山里海豐街3號
縣立公館國小 [900]屏東縣屏東市龍華里公華街182號
縣立凌雲國小 [900]屏東縣屏東市鵬程里光大巷61號
縣立振興國小 [907]屏東縣鹽埔鄉振興村光明路36號
縣立光春國小 [920]屏東縣潮州鎮光春里志成路201號
縣立光華國小 [920]屏東縣潮州鎮光華里南進路2號
縣立信義國小 [900]屏東縣屏東市信義路262號
縣立崇蘭國小 [900]屏東縣屏東市廣東路1259號
縣立潮和國小 [920]屏東縣潮州鎮三和里華巖街1號
縣立民生國小 [900]屏東縣屏東市瑞光里安心四橫巷139-1號
東新國中 [928]屏東縣東港鎮興東里東新路一號
萬丹國中 [913]屏東縣萬丹鄉四維村萬丹路2段5號
市立林森國小 [600]嘉義市東區林森東路346號
市立蘭潭國小 [600]嘉義市東區小雅路419號
市立興安國小 [600]嘉義市東區興安街35號
市立世賢國小 [600]嘉義市西區世賢路一段687號
市立興嘉國小 [600]嘉義市西區重慶路51號
市立港坪國小 [600]嘉義市四維路63號
市立文雅國小 [600]嘉義市東區盧厝里11鄰文雅街2號
縣立臺西國小 [636]雲林縣臺西鄉台西村民權路9號
縣立崙豐國小 [636]雲林縣臺西鄉永豐村崙豐路42號
縣立泉州國小 [636]雲林縣臺西鄉牛厝村舊泉州20號
縣立新興國小 [636]雲林縣臺西鄉和豐村復興路53號

2016年11月12日 星期六

如何建構孩子的程式能力

其實寫程式, 就是 maker。從有興趣的主題出發、發現真實世界的問題,克服各種技術與知識上的困難,努力找出解答方案。 換句話說,maker 的培養沒有標準課程。你可以教會孩子許多工具、許多知識,但是不給孩子時間與空間來嘗試錯誤、思考,他/她很難成為 maker。 曾有孩子的朋友問我,學過了 C 和 java。學程式到底能做什麼? 這樣的學習者很多,因為他們被制式的課程帶著走,無法理解自己的需要與課程有什麼關聯,所以找不到應用點。另一方面,這兩種程式語言要寫出應用並不容易,課程教了一大堆語法與架構,學生找不到著力點。 既然是從小學習,方法不應該與大人學習方法相同。孩子應該從有興趣的應用下手,讓他持續嘗試,發現不足,然後再往下學習。 以我兒子最近的學習為例。 他在大學旁聽了資訊研究所的「雲端運算」,教授說「你們應該都寫過 socket 程式,這很基本。」他沒學過,於是回家 google 了一下,應用 python,兩天就寫出了一個以 socket 做溝通的應用程式。 有了這個基礎,加上他對於寫遊戲很有興趣,所以他開始構思如何製作多人線上遊戲。 前幾天他問我,「一個點到一條直線的最短距離」怎麼算?這是他高二上應該學習的數學課程,但我讓他跳過,直接學微積分。沒想到需求竟然產生了,有了學習動機,短短幾小時,他就運用程式寫了一個小工具,讓電腦算出「一個點到一條直線的最短距離」,而且是以動態的圖像來展示。 大多數的 maker,絕對不是養足了知識才開始動手,而是邊學邊動手,邊動手邊學。程式能力也是這樣培養出來的。而這些學習的印記,絕對是帶得走的能力。