前 言
為什么要學(xué)習(xí)Scratch編程
Scratch是由美國麻省理工學(xué)院媒體實(shí)驗(yàn)室“終身幼兒園團(tuán)隊(duì)”針對(duì)5~16歲兒童和青少年設(shè)計(jì)的可視化程序設(shè)計(jì)語言與開發(fā)環(huán)境。Scratch的目的是“創(chuàng)作和分享自己的交互故事、游戲、音樂和藝術(shù)作品”,重點(diǎn)在于循序漸進(jìn)地培養(yǎng)青少年的創(chuàng)造性思維、邏輯思維和合作學(xué)習(xí)的能力,使他們?cè)谝院蟮膶W(xué)習(xí)中能養(yǎng)成獨(dú)立分析、解決問題的習(xí)慣。
Scratch的誕生為信息技術(shù)課堂注入了新的元素,實(shí)現(xiàn)了從“以技術(shù)為核心”向“以學(xué)生能力為本”的轉(zhuǎn)變。Scratch編程實(shí)踐不僅能有效地激發(fā)學(xué)生對(duì)程序設(shè)計(jì)的學(xué)習(xí)興趣,更重要的是鍛煉了他們的邏輯思維能力,這種能力會(huì)伴隨他們的一生。此外,學(xué)生在使用Scratch創(chuàng)作的同時(shí),也是構(gòu)思產(chǎn)品的過程,因而能培養(yǎng)他們的創(chuàng)新精神和探索精神。
Scratch已被翻譯成40多種語言,在超過150個(gè)國家被使用,相信讀者會(huì)很快喜歡上它,并且用它設(shè)計(jì)出更多自己喜愛的作品。
關(guān)于本書
目前市面上關(guān)于Scratch編程的書非常多,尤其是針對(duì)Scratch 2.0版的編程書比比皆是,但介紹Scratch 3.0版的書相對(duì)較少,因此作者決定在Scratch 3.0版的基礎(chǔ)上進(jìn)行編寫。本書并不是單純將Scratch 2.0版的編程升級(jí)為Scratch 3.0,而是真正從零基礎(chǔ)開始,逐步深入分析典型案例,系統(tǒng)講解相關(guān)編程技術(shù),幫助讀者實(shí)現(xiàn)從Scratch編程“菜鳥”到“高手”的飛躍。
第1章~第3章主要講述學(xué)習(xí)Scratch編程的必要基礎(chǔ)。首先,介紹少兒學(xué)習(xí)編程的意義,代碼編程與圖形編程的區(qū)別;然后,介紹Scratch誕生的意義, Scratch 2.0與Scratch 3.0版之間的區(qū)別,如何安裝Scratch,以及Scratch的編程環(huán)境,并從最基礎(chǔ)的“Hello Scratch!”小程序開始,正式開啟Scratch編程的學(xué)習(xí);最后,介紹編程必須掌握的計(jì)算機(jī)理論,計(jì)算機(jī)軟件和硬件的組成,主流的程序設(shè)計(jì)語言和Scratch編程的六大應(yīng)用類型。
第4章~第9章主要針對(duì)Scratch編程的六大應(yīng)用類型展開講解。分別詳細(xì)介紹編寫Scratch動(dòng)畫類、藝術(shù)類、游戲類、音樂類、故事類和教程類編程的意義以及所需的編程知識(shí),每種應(yīng)用類型都提供典型的程序案例并深入分析和講解其實(shí)現(xiàn)過程。通過對(duì)典型案例的學(xué)習(xí),讀者可以舉一反三,創(chuàng)作出更多、更好的作品。
第10章~第12章主要是對(duì)Scratch編程更高級(jí)知識(shí)的擴(kuò)展。數(shù)據(jù)結(jié)構(gòu)和算法是編寫優(yōu)秀程序的關(guān)鍵,掌握數(shù)據(jù)結(jié)構(gòu)應(yīng)用和算法的合理使用是非常重要的。青少年編程等級(jí)考試是對(duì)青少年編程水平很好的檢測(cè);等級(jí)考試真題分析則讓讀者對(duì)等級(jí)考試考查的編程知識(shí)點(diǎn)有更多的了解。
致 謝
本書能夠順利編寫完成,離不開妻子默默的支持。書中所有實(shí)例都經(jīng)過李天睿同學(xué)的嚴(yán)苛測(cè)試,感謝李天睿同學(xué)一絲不茍地驗(yàn)證和測(cè)試每一段程序,以及反饋的很多優(yōu)化建議。此外,還要感謝王笑冬、鮑展翔、樊宇軒、李子嵐、黎書瑞、陳雪琪等同學(xué)提供的優(yōu)秀編程作品作為本書部分實(shí)例的參考。
學(xué)習(xí)資源
在微信平臺(tái)搜索并關(guān)注公眾號(hào)“相信向上的力量”,可以找到本書所使用的軟件安裝程序以及所有實(shí)例的源代碼文件。為方便與讀者交流,特建立讀者交流QQ群926422876。
阿甘于西安
第1章 少兒為什么要學(xué)習(xí)編程 // 1
1.1 少兒編程的現(xiàn)狀 // 1
1.2 編程能為孩子帶來什么 // 2
1.3 代碼編程與圖形編程的區(qū)別 // 3
1.4 本章小結(jié) // 4
第2章 初識(shí)Scratch編程 // 5
2.1 什么是Scratch // 5
2.2 Scratch 2.0與3.0版的區(qū)別 // 6
2.3 安裝Scratch // 8
2.3.1 在Windows系統(tǒng)中安裝Scratch 3.0 // 8
2.3.2 在macOS系統(tǒng)中安裝Scratch 3.0 // 10
2.4 開啟你的第一個(gè)Scratch作品 // 11
2.4.1 Scratch環(huán)境介紹 // 11
2.4.2 角色移動(dòng)與旋轉(zhuǎn) // 13
2.4.3 “Hello Scratch!”小程序 // 15
2.5 本章小結(jié) // 17
第3章 必要的計(jì)算機(jī)知識(shí) // 18
3.1 計(jì)算機(jī)的硬件構(gòu)成 // 18
3.2 軟件的意義 // 19
3.3 程序設(shè)計(jì)語言 // 21
3.4 Scratch編程的六大應(yīng)用類型 // 22
3.5 本章小結(jié) // 23
第4章 Scratch動(dòng)畫類編程 // 24
4.1 動(dòng)畫的基本原理 // 24
4.2 動(dòng)畫類實(shí)例一:交通信號(hào)燈 // 26
4.2.1 準(zhǔn)備編程素材 // 26
4.2.2 編寫程序 // 27
4.2.3 驗(yàn)證程序 // 30
4.2.4 保存程序 // 31
4.3 動(dòng)畫類實(shí)例二:和諧沙灘 // 32
4.3.1 準(zhǔn)備需要的素材 // 33
4.3.2 編寫舞臺(tái)背景程序 // 33
4.3.3 編寫海鳥角色程序 // 35
4.3.4 編寫鴨子角色程序 // 38
4.3.5 編寫海獅角色程序 // 39
4.3.6 驗(yàn)證程序 // 40
4.4 本章小結(jié) // 41
第5章 Scratch藝術(shù)類編程 // 42
5.1 藝術(shù)與STEM的關(guān)系 // 42
5.2 藝術(shù)類實(shí)例一:電子相冊(cè) // 43
5.2.1 設(shè)計(jì)思路 // 43
5.2.2 準(zhǔn)備編程素材 // 43
5.2.3 編寫舞臺(tái)背景程序 // 43
5.2.4 編寫Ready角色程序 // 47
5.2.5 驗(yàn)證程序 // 50
5.3 藝術(shù)類實(shí)例二:繪制房屋 // 51
5.3.1 設(shè)計(jì)思路 // 51
5.3.2 繪制角色實(shí)現(xiàn) // 52
5.3.3 裝飾帽子角色實(shí)現(xiàn) // 56
5.3.4 舞臺(tái)背景實(shí)現(xiàn) // 57
5.3.5 驗(yàn)證程序 // 58
5.4 本章小結(jié) // 59
第6章 Scratch游戲類編程 // 60
6.1 電子游戲的發(fā)展與分類 // 60
6.2 游戲類實(shí)例一:貪吃蛇 // 60
6.2.1 設(shè)計(jì)思路 // 61
6.2.2 蛇角色實(shí)現(xiàn) // 61
6.2.3 食物角色實(shí)現(xiàn) // 63
6.2.4 炸彈角色實(shí)現(xiàn) // 66
6.2.5 舞臺(tái)背景實(shí)現(xiàn) // 67
6.2.6 驗(yàn)證程序 // 68
6.3 游戲類實(shí)例二:射擊害鳥 // 69
6.3.1 設(shè)計(jì)思路 // 69
6.3.2 害鳥角色實(shí)現(xiàn) // 70
6.3.3 益鳥角色實(shí)現(xiàn) // 72
6.3.4 子彈角色實(shí)現(xiàn) // 73
6.3.5 發(fā)射器角色實(shí)現(xiàn) // 75
6.3.6 舞臺(tái)背景實(shí)現(xiàn) // 75
6.3.7 驗(yàn)證程序 // 77
6.4 本章小結(jié) // 78
第7章 Scratch音樂類編程 // 79
7.1 音樂類程序介紹 // 79
7.2 音樂類實(shí)例一:演奏兒歌
《小星星》 // 82
7.2.1 設(shè)計(jì)思路 // 82
7.2.2 演奏角色實(shí)現(xiàn) // 82
7.2.3 舞臺(tái)背景實(shí)現(xiàn) // 86
7.2.4 驗(yàn)證程序 // 87
7.3 音樂類實(shí)例二:測(cè)試絕對(duì)音感 // 89
7.3.1 設(shè)計(jì)思路 // 89
7.3.2 播放角色實(shí)現(xiàn) // 89
7.3.3 玩家角色實(shí)現(xiàn) // 92
7.3.4 驗(yàn)證程序 // 96
7.4 本章小結(jié) // 98
第8章 Scratch故事類編程 // 99
8.1 故事類程序介紹 // 99
8.2 故事類實(shí)例一:守株待兔 // 99
8.2.1 設(shè)計(jì)思路 // 100
8.2.2 創(chuàng)作故事劇本 // 100
8.2.3 舞臺(tái)背景實(shí)現(xiàn) // 101
8.2.4 兔子角色實(shí)現(xiàn) // 102
8.2.5 農(nóng)夫角色實(shí)現(xiàn) // 104
8.2.6 樹木角色實(shí)現(xiàn) // 106
8.2.7 驗(yàn)證程序 // 107
8.3 故事類實(shí)例二:家庭趣事 // 107
8.3.1 設(shè)計(jì)思路 // 108
8.3.2 創(chuàng)作家庭趣事的劇本 // 109
8.3.3 添加舞臺(tái)背景圖片 // 109
8.3.4 兒子角色實(shí)現(xiàn) // 111
8.3.5 爸爸角色實(shí)現(xiàn) // 113
8.3.6 媽媽角色實(shí)現(xiàn) // 115
8.3.7 “與爸爸”按鈕角色實(shí)現(xiàn) // 116
8.3.8 “與媽媽”按鈕角色實(shí)現(xiàn) // 118
8.3.9 驗(yàn)證程序 // 118
8.4 本章小結(jié) // 120
第9章 Scratch教程類編程 // 121
9.1 教程類程序介紹 // 121
9.2 教程類實(shí)例:新型冠狀病毒 // 122
9.2.1 需求分析 // 122
9.2.2 設(shè)計(jì)思路 // 123
9.2.3 舞臺(tái)背景程序 // 123
9.2.4 “主頁”角色實(shí)現(xiàn) // 126
9.2.5 “病毒介紹”角色實(shí)現(xiàn) // 130
9.2.6 “傳播途徑”角色實(shí)現(xiàn) // 132
9.2.7 “如何預(yù)防”角色實(shí)現(xiàn) // 134
9.2.8 “返回”角色實(shí)現(xiàn) // 135
9.2.9 驗(yàn)證程序 // 136
9.3 本章小結(jié) // 139
第10章 基本數(shù)據(jù)結(jié)構(gòu) // 140
10.1 數(shù)據(jù)結(jié)構(gòu)介紹 // 140
10.2 數(shù)據(jù)結(jié)構(gòu)應(yīng)用 // 141
10.2.1 數(shù)組應(yīng)用 // 141
10.2.2 鏈表應(yīng)用 // 142
10.2.3 隊(duì)列應(yīng)用 // 145
10.2.4 棧應(yīng)用 // 147
10.2.5 樹簡介 // 148
10.2.6 圖簡介 // 149
10.2.7 堆簡介 // 149
10.2.8 散列表簡介 // 150
10.3 本章小結(jié) // 151
第11章 算法入門 // 152
11.1 算法簡介 // 152
11.2 常見算法應(yīng)用 // 153
11.2.1 遞推算法應(yīng)用:斐波那契數(shù)列 // 153
11.2.2 遞歸算法應(yīng)用:漢諾塔 // 155
11.2.3 排序算法應(yīng)用:冒泡排序 // 159
11.2.4 貪心算法應(yīng)用:兌換貨幣 // 161
11.3 本章小結(jié) // 164
第12章 青少年編程等級(jí)認(rèn)證 // 165
12.1 青少年編程等級(jí)介紹 // 165
12.1.1 青少年編程教育等級(jí)評(píng)測(cè) // 165
12.1.2 全國青少年軟件編程等級(jí)考試 // 166
12.2 全國青少年軟件編程等級(jí)考試真題
講解 // 166
12.2.1 一級(jí)真題分析 // 166
12.2.2 二級(jí)真題分析 // 168
12.2.3 三級(jí)真題分析 // 171
12.2.4 四級(jí)真題分析 // 172
12.3 本章小結(jié) // 175
參考文獻(xiàn) // 176