在本課中谒府,我們將學(xué)習(xí)事件和事件處理程序,它們是計(jì)算機(jī)科學(xué)中的重要概念争便,在所有的編程語言都可以找到级零。我們將從一個(gè)有趣的活動環(huán)節(jié)來展示因和果,以及現(xiàn)實(shí)世界中事件如何觸發(fā)動作滞乙。接著奏纪,我們將親手在Minecraft中使用MakeCode編程,最終你將接受挑戰(zhàn)創(chuàng)建屬于自己的MakeCode項(xiàng)目斩启,使用事件來激活程序的不同部分序调。
課程結(jié)構(gòu)
- 概述:事件
- 講解活動:事件和處理程序
- Minecraft活動1:黃金路
- Minecraft活動2:鸚鵡
- Minecraft活動3:僵尸
- Minecraft活動4:鏈接墻
- 獨(dú)立項(xiàng)目:響應(yīng)事件
課程目標(biāo)
本課課程目標(biāo)如下:
CPP.L1:6-05 - 能夠根據(jù)課程講解步驟創(chuàng)建程序
CPP.L1:6-06 - 能夠使用基于塊的可視化編程語言實(shí)現(xiàn)問題解決方案
概述:事件
計(jì)算機(jī)科學(xué)中的事件是由計(jì)算機(jī)檢測到的動作或事件。例如兔簇,當(dāng)有人點(diǎn)擊鼠標(biāo)時(shí)发绢,計(jì)算機(jī)會產(chǎn)生"mouse click event"事件。在現(xiàn)實(shí)生活中男韧,也有事件可能與行為相關(guān)朴摊,如因和果。這里有些例子:
事件 | 動作 |
---|---|
開始下雨了 | 人們打開打傘 |
鈴聲響起 | 學(xué)生去上課 |
按下電源按鈕 | 電腦打開 |
雙擊鼠標(biāo) | 應(yīng)用程序打開 |
你能想出一些其他的事件以及它們可能導(dǎo)致什么動作發(fā)生嗎此虑?
在編程中,一個(gè)event handler是程序的一部分口锭,它在特定的事件發(fā)生時(shí)運(yùn)行(它"處理"事件)朦前。在MakeCode中,事件處理程序塊看起來像中間有間隙的矩形塊鹃操,通常以"當(dāng)"(英文為"on")開頭韭寸。
講解活動:事件和處理程序
教學(xué)提示
講解活動環(huán)節(jié)不需要使用電腦。本課程通過有趣的方式來介紹新概念荆隘,經(jīng)常通過面對面的玩游戲和完成挑戰(zhàn)來開展互動恩伺。講解活動環(huán)節(jié)讓孩子在無需電腦的條件下實(shí)踐相關(guān)概念,因此當(dāng)他們轉(zhuǎn)移到計(jì)算機(jī)上開展活動時(shí)椰拒,他們已經(jīng)實(shí)踐并自己思考過這些概念了晶渠。
目的
通過事件和由事件觸發(fā)的行為處理演練來強(qiáng)化事件驅(qū)動編程模型。
概覽
班級三分之一的學(xué)生扮演"事件"燃观,其余來扮演"事件處理"褒脯。
對于扮演"事件"的學(xué)生,每個(gè)人想出一個(gè)事件模型缆毁。學(xué)生應(yīng)該創(chuàng)造自己的事件番川,但是一些例子可能是:
- 門打開了
- 燈熄滅了
- 雙手拍了兩下
- 雙手舉起
當(dāng)決定后每個(gè)學(xué)生應(yīng)將事件內(nèi)容重復(fù)寫到兩張卡片上。所有的卡片經(jīng)過洗牌后傳遞給扮演事件處理的學(xué)生。
當(dāng)扮演事件處理的學(xué)生收到分配的事件后颁督,每個(gè)學(xué)生應(yīng)該基于對應(yīng)的事件提出某類行為践啄。學(xué)生應(yīng)該創(chuàng)造自己的行為,但是一些例子可能是:
- 門打開了 -> 走出外面
- 等熄滅 -> 去睡覺
- 雙手拍兩次 -> 跺腳三次
- 雙手舉起 -> 說“觸地得分”
讓扮演事件的學(xué)生在教室前站成一排沉御,每個(gè)學(xué)生挨個(gè)扮演自己的事件屿讽。當(dāng)事件執(zhí)行時(shí),對應(yīng)的扮演事件處理的學(xué)生要執(zhí)行對應(yīng)的后續(xù)動作嚷节。
當(dāng)所有的事件和事件處理者都完成一遍后聂儒,你可以隨機(jī)讓某個(gè)扮演事件的學(xué)生執(zhí)行事件,并觸發(fā)對應(yīng)的事件處理者進(jìn)行動作硫痰。你可以加快速度看學(xué)生能夠快速做出反應(yīng)衩婚。
材料
- 卡片
- 鋼筆或鉛筆
規(guī)則
- 除非另有說明,否則學(xué)生在此活動期間不準(zhǔn)說話或發(fā)出聲音效斑,除非是他們的活動或行動的一部分非春。
- 學(xué)生應(yīng)該了解課堂上其他人的活動,但不能告訴其他學(xué)生該做什么缓屠。
思考
- 系統(tǒng)中是否存在任何編程錯(cuò)誤或錯(cuò)誤奇昙?學(xué)生錯(cuò)過了處理事件嗎?
- 跟蹤正在發(fā)生的不同事件是什么感覺敌完?
- 有時(shí)給定事件有多個(gè)事件處理程序......這是如何工作的储耐?
- 可能有多個(gè)事件只有一個(gè)事件處理程序嗎?(是)
- 事件處理程序是否也可以觸發(fā)事件滨溉?(是的)如果是這樣什湘,那將如何運(yùn)作?(燈關(guān)閉 - >去睡覺 - >老師說晦攒,“醒醒闽撤!”)
關(guān)于計(jì)算機(jī)編程
計(jì)算機(jī)程序是一組指令,告訴計(jì)算機(jī)如何處理輸入和傳送輸出脯颜。編程的一個(gè)重要部分是告訴計(jì)算機(jī)何時(shí)執(zhí)行一個(gè)特定的任務(wù)哟旗,事件是一種觸發(fā)特定指令的方式。