到五秒就停下—公开课教案


前言

感谢各位老师、领导、专家莅临指导,不胜荣幸

各位老师手上拿到的资料,既是教案,也是学生学习的笔记,和学生看到的一样。

因为本人记忆力越来越糟糕,经常上课到一半,突然忘记后面该干嘛(甚至包括公开课的时候),于是就把上课的内容提前发布到笔记平台,一边上课一边看,结果效果出奇的还不错。

回想我的学生时代,也常常走神,也会因为PPT翻页速度太快而产生焦虑,最后干脆摆烂,所以我实在不忍心以这一原因去责怪学生。在教案平台,上面几乎有详细的步骤、解析和原理,毕竟我必须保证我自己也能通过这个东西完成任务,书写代码,如果要用到之前的知识,也可以很方便地翻出来查看。

我的编排都是任务式的,以完成任务为目的去学习知识点,完成了诸多小任务之后,我又会带学生做一个综合的大项目。

总之,各位专家也可以登录到这个网站,xiaolily.cn,在笔记中找到这篇教案,甚至可以通过操作步骤完成这个游戏,完整体验整个过程。(账号名:体验账号,密码:666666)

这些都是我自己瞎琢磨出来的土方法,也没有经过系统的论证,如有不足之处还望不吝指出,感谢!

一、情境导入(3分钟)

观看视频:周大生玩游戏送金条游戏反悔

提问:

你是如何评价周大生的行为,是否符合道德?

看看网友怎么说:

网友揭秘程序其实可以作弊,提前铺垫扩展任务的情境

二、试玩游戏(2分钟)

在xiaolily.cn网站中,打开友链,访问我的友链,体验实际效果

说明:

每次在做新的网页之前,我都会将我做好的成品放到我的友链,这样学生是以最直观的方式去感受,理解本次课的任务是什么,方便随时参考,但是我不希望每个学生都模仿得和我一样,每个学生都可以在平台上搭建出专属于自己的友链,去展示自己独特的创意,参与到做网站的快乐。

三、新课讲解(10分钟)

函数的定义

函数是一段可重复调用的代码块

基本语法

function 函数名(参数1,参数2,...){
    函数体
}

案例展示

function a(){
    alert('a函数里的代码被执行了')
}
function b(){
    alert('b函数里的代码被执行了')
}

在上述案例中,a函数和b函数虽然已经被定义了,但是却没有被调用,函数不会执行。

函数的调用

直接调用

直接使用函数名加括号 () 来调用,若函数有参数,就在括号内传入对应的参数

function a(){
    alert('a函数里的代码被执行了')
}
function b(){
    alert('b函数里的代码被执行了')
}
a()

在上述案例中,a函数被调用了

课上练习:(随机请人回答)

观察,哪个函数被调用了,程序运行的结果是什么?

function a(){
    alert('a函数里的代码被执行了')
}
function b(){
    alert('b函数里的代码被执行了')
}
a()
b()

答案:a函数和b函数都被调用了,程序是从上到下运行的,a函数先执行。

function a(){
    alert('a函数里的代码被执行了')
}
function b(){
    alert('b函数里的代码被执行了')
}
c()

答案:报错c is not defined,因为没有定义过c函数,无法调用不存在的函数

点击调用

直接在 HTML 标签里添加 onclick 属性,绑定点击事件,点击之后执行指定的函数

<button style="font-size: 50px;" onclick="a()">点击我</button>
<script>
    function a() {
        alert('a函数被执行了');
    }
</script>

思考:观察,在“带五秒就停下”案例中,需要定义几个函数?是如何进行调用的

四、任务实施(10分钟)

基础页面(发给学生)

<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
</head>
<body>
	
</body>
</html>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<h2 style="color: red;">游戏规则:到五秒就停下!</h2>
		<h1 id="shijian" style="font-size: 50px;text-align: center;">0.0</h1>
		<button>开始</button>
		<button>停止</button>
	</body>
</html>

<script>

</script>

<style type="text/css">
	button{
		font-size: 40px;
	}
</style>

加上功能逻辑(学生自己完成)

<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
</head>
<body>
	
</body>
</html>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<h2 style="color: red;">游戏规则:到五秒就停下!</h2>
		<h1 id="shijian" style="font-size: 50px;text-align: center;">0.0</h1>
		<button onclick="start()">开始</button>
		<button onclick="stop()">停止</button>
	</body>
</html>

<script>
	let haomiao = 0   // 计时,单位毫秒
	let timer         // 定义计时器
	// 开始按钮
	function start(){
		haomiao = 0  // 每次开始都从0秒重新计时
		// 间歇函数,每100毫秒增加100毫秒,记得找个变量保存计时器,一会还得停止计时器
		timer = setInterval(function(){
			haomiao += 100
			// 将时间挂载在页面上,将毫秒转换为秒,并且将结果固定保留一位小数
			shijian.innerHTML = (haomiao/1000).toFixed(1)
		},100)
	}
	// 停止按钮
	function stop(){
		clearInterval(timer)       // 停止计时器
		// 游戏判断
		if(haomiao == 5000){
			alert('恭喜你,游戏成功')
		}else{
			alert('很遗憾,游戏失败')
		}
	}
</script>

<style type="text/css">
	button{
		font-size: 40px;
	}
</style>

五、作业评价(10分钟)

使用AI辅助批改学生作业

六、作品展示(3分钟)

通过友链,请学生展示优秀作品

七、拓展任务(2分钟)

情境(假设的情境,虚拟的商家名字,仅作教学使用,请别对号入座):

周小生虽然弄了四位小数,难度相当高,但是也架不住小孩哥运气好,经过了上次的事件,周小生引以为戒,痛定思痛,变本加厉,在程序中加入了作弊代码,让用户永远也无法成功

这显然是一种更加不诚信经营的行为,你作为市场监管部门首席计算机专家,现接到群众的举报,需要检查商家有没有作弊代码

任务:

在我的友链中,模拟出了作弊版,右键—查看网页源代码,找出商家作弊的证据,肃清市场的歪风邪气。


文章作者: 彭韦浩
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 彭韦浩 !
  目录