程式語言基本概念.功能及用途


1.為何要學習程式?

「動機」和「堅持」才是學習最重要的兩把鑰匙

學程式的目的不是讓你可以寫程式賣錢,而是學習程式設計的思維。從中學會運算思維,把事情程序化,把資料結構化、模型化

24小時學寫程式

活動設計1-為何要學程式?

2.什麼是程式?有何功能?用在哪裡?

活動設計2-寫程式是甚麼?

軟體(Software)就是程式(Program),它是由一連串的指令(Instructions)所組成。

人與人透過語言溝通,如果我們需要電腦來幫我們做事,就必須想辦法與電腦溝通。

程式語言就是人與電腦溝通的工具。為了讓電腦能夠完成工作,電腦專家就為程式語言制定一套特定的格式與語法規則,指揮電腦完成工作。 不同類型的程式語言,語法格式就不同,就如同中文英文法文,語法是不一樣的。 簡單的說程式就是許多叫電腦做事的指令程序

程式設計就是用程式語言把求解特定問題的演算法描述出來的指令

活動設計2.1-寫程式是甚麼?對電腦下指令練習

按鍵精靈下載

2048遊戲開放原始碼下載

https://github.com/gabrielecirulli/2048

 


3.程式語言種類

大致區分

(1)視覺化程式語言

a.Scratch.Kodu. Blockly.Project Spark........

視覺化程式語言介紹

程式教育工具

進學國小電子書

b.谷歌與麻省理工合作開發下一代Scratch

Scratch Blocks

活動設計3-視覺化程式語言網站體驗1

1小時程式活動

code.org

參考網站

(2)Blockly(Google開發)

特色及內容

Blockly目前主要分為7個小遊戲包含飛機座位計算(Plane Seat Calculator)、迷宮(Maze)、圖形計算器(Graphing Calculator)、拼圖(Puzzle)、驗證碼(Code)、海龜圖形 (Turtle Graphics)、模塊工廠( Block Factory)。每一個遊戲又分成許多的關卡,雖著關卡越高難易度也跟著提升,遊戲還有許多國家語言可以選擇,因此,幾乎全世界的孩童都能輕鬆學習。

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

 

活動設計4-視覺化程式語言網站體驗2

Blockly Games(IE無法執行)

迷宮關卡說明


第一關主要是讓學生熟悉環境,如果已經有學過 Scratch 的學生應該會很快就上手。把程式積木依說明指示拉進程式區後,可按執行程式。如果還沒過關,可以按「重設」讓主角回到出發點,修改程式後再執行一次。如要移除程式積木,可以把積木拉進指令區或是垃圾筒。

第二關開始加入了「向左轉」、「向右轉」的概念,可以訓練學生的方向感,要完成任務的程式碼也比較多。對一些低年級的學生來說,會需要多想一下。老師可以在旁協助,教導學生對程式做一些簡單的執行測試。讓學生自己學會 trial and error.

第三關開始,加入了一個「重複執行」(迴圈) 的程式積木,老師可以示範原地旋轉。由於程式會限制可以使用的積木數量,所以一定會讓學生使用「重複執行」的積木,只需提醒把向前移動拉進重複的區域中即可。

第四關開始才是真正練習使用「重覆執行」,一共可以使用 5 塊程式積木。老師也許可以先引導不用使「重複執行」積木,只用向前、向左、向右寫程式,來讓學生觀察程式重複性,或用紙筆寫下程式執行步驟。後續再把結論用「重複執行」包起來。

第五關是讓學生可以判斷何時才運用重複執行,何時不需要。例如最前面一小段路,如果重複執行向前移動,主角會一直撞牆,可做為上課笑點,後面引導至長的直路時才使用迴圈的概念。

第六關加入了「偵測」的概念,並且需要「如果…,就執行…」的邏輯判斷,並且刻意設計成只有左轉的路徑。提醒老師,左方有路的偵測積木,裡面是有下拉選單可以偵測「前方有路」和「右方有路」的。還有左、右轉方塊也有下拉選單可用。

第七關的解法不只一種,但最基本的概念有兩種,一種是「摸著左邊的牆走」另一種是「摸著右邊的牆走」,也就是較短路徑的方式。可做為後續較難關卡的一個基礎教學,讓學生仔細觀察兩種走法的不同。

第八關由於沒有叉路,很適合學生自行練習偵測左方有沒有路,或是右方有沒有路。但往往容易遺忘偵測「前方」有沒有路,老師可適時提點一二。另外偵測的順序也很值得讓學生在這關學習測試。

第九關加入了「如果…,否則…」的程式積木,讓整個程式更加複雜困難。還有許多叉路、圓環在混洧視聽。此關,可以讓學生先畫好要走的路線,並加入程式碼後,讓學生練習從腦海模擬程式執行,之後再看程式是否如設想的一樣。是需要 Step by Step 測試的一關。過關後學生邏輯和抽象思考能力會大大提升。

第十關這可以說是 Blockly 中最難的一關。所謂最難,指的是如何在有限程式碼內,找出最短行走路徑的程式邏輯。如果學生沒辦法以最短路徑,可建議使用「摸右邊牆壁走」的方式來教學。

教學網站

參考網站


(2)文字型程式語言

a.程式語言擬人化

https://kheresy.wordpress.com/2014/03/21/moe-program-language-part1/

b.程式語言種類與金庸小說中的絕世武功

C 比之九陰真經,學會並掌握指標,天下無敵。
C++ 比之龍象般若功,有十三層,但修煉不易,無人超過第十層。
C# 比之彈指神通,高手運用手指的巧勁就能施展。
Java 比之獨孤九劍,敗中變化出的招式,不限平台的 JVM 。
JavaScript 比之胡家刀法,六字訣變幻莫測,瀏覽器上都能運作。
Objective-C 比之六脈神劍,獨家不傳絕技。
Perl 比之龍爪手,少林正宗武學,幾乎 Linux 高手必備。
PHP 比之黯然銷魂掌,需要深厚內力才能使出。
Python 比之降龍十八掌,簡單卻威力強大。
Ruby 比之乾坤大挪移,這要用過了才會知道。
Swift 比之一陽指,六脈神劍的精髓,本來同樣是獨家不傳絕技,不過現在 open source 了。

c.程式語言與魔戒小說中的人物

這裡看原尺寸圖檔1666x1841

c.該選擇何種程式語言

想清楚做什麼再決定學什麼

http://blog.ntsec.edu.tw/index.php?tid=531&id=254

d.程式語言學習資源網站

活動設計5-非視覺化程式語言體驗(使用Blockly)

步驟

1.下載3個範例檔(xml)

2..解壓縮code.zip

3.開啟01_circle_area.txt.全選(編輯/全選.CTRL+A).複製(右鍵/複製.CTRL+C)

4.進入https://blockly-demo.appspot.com/static/demos/code/index.html?lang=zh-hans 介面改為正體中文.點XML語言

5.將預設內容清空-全選(CTRL+A) 刪除(DELETE) 6.將01_circle_area.txt的內容貼上

 

7.點積木程式及其他程式語言例如Python

 

8.請觀察一下.積木或程式碼.說說你覺得這個程式的目的(功能)為何?

9.點選執行看看程式結果是否與你想的一樣呢?可否將輸入訊息改為中文呢?

 

 

10.或點刪除第一題的程式碼.繼續完成02_one_two_three.txt及03_prime_number.txt的練習.說一說這兩個程式的目的為何?可否修改程式的互動介面為中文呢?

11.其他更多的練習https://sites.google.com/site/ssblockly/ren-shiblockly/code-xie-cheng-shi-jiao-xue

參考網站

https://sites.google.com/site/warkeyli/blockly

其他相關網站

http://jimmyscratchlab.blogspot.tw/p/jforthblocks.html