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