第1课 校园义卖找零助手

45分钟 · 18页课件配套 · 每页含讲述、提问、答案与巡视重点。教师参考应在学生独立作答后使用。保持课程包目录完整,离线活动链接才可直接打开。

第01课 · 教师逐页讲稿

第01页 校园义卖找零助手

建议用时 1 分钟

讲述与活动

开场:今天给校园义卖做一个找零助手。学生在本课离线网页独立运行和修改代码,老师用投影讲清关键问题。今天只学变量、赋值、数字与字符串、print,不扩展到 input、条件判断或循环。
课前准备:将完整课程包解压到学生电脑,用浏览器打开包内本课HTML。无需登录或联网。Python已内嵌,首次打开稍候本机初始化。
总时长45分钟;各页依次为1、2、1、2、2、3、2、2、8、2、5、2、2、2、4、1、3、1分钟。封面插画为教学情境示意。

提问

找零助手必须知道哪些数据?

参考答案

单价、数量、付款。总价和找零由程序计算。

巡视重点

区分已知数据与待求结果,先不引入输入、分支和循环。

第01课 · 教师逐页讲稿

第02页 这张义卖小票,怎样算?

建议用时 2 分钟

讲述与活动

先不展示代码,也暂不运行。请学生在纸上写下总价与找零,找两名学生说算式。预期:6×3=18元,50−18=32元。追问:如果换价格、换数量或换付款,哪些数据改变?引出单价、数量、付款,以及始终保留的计算关系。价格均为课堂模拟数据,不是真实售价。

提问

6元一份,买3份,付50元,总价与找零各多少?

参考答案

总价18元,找零32元。单价、数量、付款可以变,计算关系保持。

巡视重点

是否先手算;是否把找零误写成总价减付款。

第01课 · 教师逐页讲稿

第03页 今天完成一份可复用的小票

建议用时 1 分钟

讲述与活动

明确三个可观察的成果:能说变量的含义;能用两组修改数据核对输出;能解释赋值的顺序。课堂收集的证据是学生代码、运行输出和口头解释。网页显示已完成还需要五小步、程序检测、知识检测与迁移自评四项齐全。

提问

怎样证明程序能重复使用?

参考答案

至少换两组数据手算、运行并比对,再说明变量含义和计算顺序。

巡视重点

把程序能运行与结果正确、解释正确分开。

第01课 · 教师逐页讲稿

第04页 学生学习入口

建议用时 2 分钟

讲述与活动

请学生打开完整课程包中“学生离线课程/第01课.html”。PPT中的绿色链接可直接打开本课。离线版无需班级座号或密码,打开后先停留在“学一学”。本页可课前投影。全包保持原有文件夹位置,若演示软件拦截相对链接,就从文件夹手动打开。完成后用导出学习记录JSON和学习报告保留证据。

提问

离线文件从哪里打开,怎样保留学习记录?

参考答案

打开课程包内学生离线课程/第01课.html,无需登录或联网。使用导出学习记录保留JSON,再下载学习报告或代码。

巡视重点

确认每台电脑能进入学一学,不在网站登录页等待;导出文件落到自己的文件夹。

第01课 · 教师逐页讲稿

第05页 变量:给数据一个名字

建议用时 2 分钟

讲述与活动

指着第一行提问:price 是什么,6 是什么?让学生用完整句回答“price 当前保存单价6”。再读 count 和 money。用变量名保存数据,换商品时就容易修改。强调变量名与数值不同。本课沿用网页的变量名,后续自动程序检测依赖这些名字。单位用于理解和输出说明,算术表达式里只写数值。

提问

price = 6中,price和6分别是什么?

参考答案

price是变量名,当前保存数值6,表示单价6元/份。count为数量,money为付款。

巡视重点

变量名拼写、英文等号,以及把单位写进数字的错误。

第01课 · 教师逐页讲稿

第06页 赋值:先算右边,再存入左边

建议用时 3 分钟

讲述与活动

边指代码边口述:先取得 price 和 count 的当前值,右边相乘得到18,再把结果存入 total。第二行使用已经算出的 total,付款减总价得到32,再存入 change。请学生解释为什么不能把计算找零放在总价之前。此阶段不讲浮点误差。基础任务按非负单价、非负整数数量、付款不少于总价来设置。强调英文星号,避免输入数学乘号×。

提问

为什么先计算total,再计算change?

参考答案

change使用total当前保存的总价;total须先由price * count算出。右边先算,结果再存入左边。

巡视重点

是否输入×而非*,是否交换计算顺序或写死答案。

第01课 · 教师逐页讲稿

第07页 print:把结果显示出来

建议用时 2 分钟

讲述与活动

先请学生预测两行输出。print 的作用是把结果显示出来,引号里的“总价”“找零”“元”是说明文字,total、change 不加引号才能取出变量的当前值。逗号分开各部分,默认输出时部分之间有空格。请一名学生说 print("total") 和 print(total) 的区别。检查英文半角括号、逗号和引号。本课预置输入框留空即可。

提问

print("total")与print(total)有什么不同?

参考答案

前者显示文字total,后者显示变量total的当前值,例如18。

巡视重点

引号、括号、逗号是否为英文半角;标签和变量是否区分。

第01课 · 教师逐页讲稿

第08页 数字与字符串

建议用时 2 分钟

讲述与活动

先遮住或口头暂停结果,问学生两段程序是否相同。数字6与字符串"6"看起来相似,但用途不同;两个数字相加得9,两个字符串用+连接为63。运行输出不带引号。不要把“有引号不能计算”说成绝对规则,只强调本例字符串连接与数字加法不同。本课不扩展 int() 等类型转换。

提问

6 + 3与"6" + "3"的结果各是什么?

参考答案

分别为9与63。前者数字相加,后者连接字符串。

巡视重点

学生能否根据引号判断类型,避免笼统说字符串不能运算。

第01课 · 教师逐页讲稿

第09页 自主操作一:完成 5 个小步

建议用时 8 分钟

讲述与活动

保持此页投影,学生在网页独立完成5个小步。不要逐题带做。前2分钟巡视变量与乘号;第4分钟观察引号辨析;最后3分钟看两个代码填空是否运行并检查。卡住时先请学生读题,再用网页提示,必要时向老师求助。
教师参考:小步1 price保存单价3;小步2 *;小步3 输出32;小步4 count=4;小步5 money-total。基础薄弱学生优先完成本步、看反馈再走下一步。提前完成者用一句话说明第4或第5小步的计算顺序。不要进入后续课。

提问

某一步卡住时,先做什么?

参考答案

先重读任务、确认要求输出,再看提示并用自己的话解释。五步答案见本页教师参考。

巡视重点

前2分钟看变量/乘号,第4分钟看引号,最后看代码修改及检查反馈。

教师参考

先认识变量:单价3元
解释:price保存单价3。把单价取一个名字,换价格时就容易修改。
总价用哪种运算:*
解释:*是乘法:单价乘数量得到总价,这里是6元。
数字还是文字:32
解释:"3"和"2"是两个字符串,+把它们拼成"32"。
改一次数量:price = 3
count = 4
total = price * count
print(total)
预期输出:12
解释:count改为4后,下一行重新计算3 * 4,总价就是12。
再算找零:money = 10
total = 6
change = money - total
print(change)
预期输出:4
解释:先有总价,再用付款减总价:10 - 6得到4。
第01课 · 教师逐页讲稿

第10页 一份完整的找零程序

建议用时 2 分钟

讲述与活动

请学生把五个小步放回真实任务。让学生按照保存数据、计算结果、显示小票的顺序读七行代码。提问:为什么 total 和 change 的位置不能随意调换?确认一份程序既要算出结果,也要有使用者看得懂的文字和单位。这是网页原始范例代码。下一页学生进入“改一改 · 运行”,自行先运行原始例子。

提问

这七行中,数据、计算、输出分别在哪?

参考答案

前三行为数据,随后两行为计算,最后两行为输出。总价18元,找零32元。

巡视重点

是否能指出依赖关系,而不只是按颜色或位置背代码。

第01课 · 教师逐页讲稿

第11页 自主操作二:换一笔义卖数据

建议用时 5 分钟

讲述与活动

学生先运行原程序,确认总价18元、找零32元;然后按本页改为price=8、count=2、money=20,预期16元、4元。不要提前把答案投影,让学生手算后比对。只改开头数据,保留price、count、money、total、change。常见问题:输入中文符号;忘了从___改成实际值;把total写死;总价正确而找零用错变量。引导学生先读报错位置和变量,不代替输入。首次打开时等待内嵌Python在本机初始化,无需联网下载。

提问

8元两份付20元,只需改哪几行?

参考答案

改price=8、count=2、money=20;总价16元、找零4元。

巡视重点

先预测再运行;输入区留空;不改变量名和计算关系。

第01课 · 教师逐页讲稿

第12页 核对结果:三组数据都要成立

建议用时 2 分钟

讲述与活动

请学生对照自己的变式输出,说出16、4分别从哪里来,再点击“检测我的程序”。检测用原始数据、变式数据和恰好付款的数据,核对total、change与数字输出。检查通过不能替代解释。如果把total或change直接写死成答案,换数据检测会暴露问题。不要改变量名。第三组10×5=50,找零50−50=0。修改已通过的代码后,需要重新检测。 程序检测同时核对结果变量和数字输出;按示例顺序输出总价、找零。可修改标签、添加说明或额外数据,仍须保留这些目标结果的输出与先后顺序。

提问

恰好付款时找零是多少,说明什么?

参考答案

10元×5份=50元,付50元找零0元。零是正确结果,也是一组应测试的边界。

巡视重点

是否用输出和手算双重核验;修改程序后是否重新检测。

第01课 · 教师逐页讲稿

第13页 数量变了,总价会自动变吗?

建议用时 2 分钟

讲述与活动

先让学生独立预测,再同桌解释20秒。预期输出10。请学生按行记录:price=5,count=2,total=10,count改成4,total仍是10。要点:赋值是在执行当下计算并保存结果,没有建立自动更新的永久关系。此例用不同数据解释赋值原理,课末由学生独立迁移到网页检测题。

提问

count变成4后,为什么total仍可能是10?

参考答案

total在第3行已经保存5×2=10;后面只给count赋值,没有重新计算total。

巡视重点

让学生逐行记变量值;特别听是否把赋值误作永久等式。

第01课 · 教师逐页讲稿

第14页 重新计算,才得到新的总价

建议用时 2 分钟

讲述与活动

解释两种情形。情形一:在代码开头改count,再从头运行,total会按新数据重算。情形二:同一次执行过程中,在计算total之后才给count新值,必须再执行total=price*count才会更新。新增一行不是所有改数场景都必须补,只是本页顺序下需要重新计算。若要新找零,之后还需重算change。用这一对例子避免学生误解“编辑count后重新运行也不会变”。

提问

编辑开头的count再从头运行,与本页执行中途改count有何区别?

参考答案

从头运行会重新执行total公式;中途修改count后,需要再执行total=price*count才更新total。

巡视重点

避免形成“改数量永远不会更新总价”的新误解。

第01课 · 教师逐页讲稿

第15页 自主操作三:设计自己的义卖小票

建议用时 4 分钟

讲述与活动

学生在原程序上自定模拟商品和数据,保留全部既有变量名与计算关系。本任务设置一组自己选的数据,手算后运行核对。加上之前8/2/20的变式,累计完成两组修改数据,不需要新增输入功能。提示输出单价、数量可用 print("单价",price,"元") 和 print("数量",count,"份"),不要一开始就展示完整答案。让同桌独立手算核对。基础薄弱学生先完成计算与总价、找零输出,再补单价、数量;学有余力者增加商品名称与付款说明,或一次运行先后打印两张小票。付款不足情形留给后续选择结构。修改后重新检测程序。 程序检测同时核对结果变量和数字输出;按示例顺序输出总价、找零。可修改标签、添加说明或额外数据,仍须保留这些目标结果的输出与先后顺序。

提问

怎样让同桌核验自己设计的小票?

参考答案

说清模拟单价、数量、付款,给出含单位的输出,再由同桌独立手算核对。

巡视重点

保留约定变量名;数量非负整数、付款不少于总价;至少已有两组修改数据证据。

第01课 · 教师逐页讲稿

第16页 给同桌解释这一行

建议用时 1 分钟

讲述与活动

请同桌轮流用各自数据解释这一行,不能只背“单价乘数量”。倾听是否说出先取右侧当前值、再存左侧变量。若学生说“等号两边永远相等”,回指第13—14页纠正。教师抽一名学生作20秒说明。可给求助AI的学生补充口头提醒:说明自己试过什么、只要提示,最后仍须自己运行核验。无需开展AI选做实验。

提问

用自己的数字解释total = price * count。

参考答案

先取price和count当前值,相乘得到总价,再把该结果保存到total。

巡视重点

是否说出先右后左;若只背“单价乘数量”,追问当前值从哪里来。

第01课 · 教师逐页讲稿

第17页 课末检测与迁移自评

建议用时 3 分钟

讲述与活动

请学生独立选择和提交,教师不口述选项。只在学生提交后依据班级错误情况讲评。教师参考:题1输出7,先用旧值5计算5+2,再保存7;题2total为18,count变化后没有重新计算total;题3找零26元。自评三项为:能说清数据含义,换两组模拟数据并手算核对,能解释改数量后还要重算总价。按真实完成情况勾选,未完成者补做,不为进度强行打勾。四项齐全才显示已完成。最后导出学习记录JSON和学习报告,必要时“下载代码”保留作品。离线记录仅在本机,不会上传。

提问

本课完成时应留下哪些证据?

参考答案

五小步通过、生活问题程序检测、三道知识题、真实自评,再导出学习记录及代码。知识题解释见教师参考。

巡视重点

不口述答案代答;错题先解释再订正;离线没有云端同步。

教师参考

知识题1:7。右边先用旧值5算出7,再把7存回a,最后显示7。
知识题2:18。total计算时count是3,所以保存18。后来count变成4,已经保存的total不会自动重新计算。
知识题3:26元。总价是4×6=24元,找零是50-24=26元。
第01课 · 教师逐页讲稿

第18页 带走一个能解释的程序

建议用时 1 分钟

讲述与活动

请学生用一组自定数据与输出完成口头出口说明,或在老师指定位置提交代码与结果。评估三点:变量含义是否正确、结果与手算是否一致、赋值顺序能否解释。课堂只需完成第一课,下一课和AI时代互动实验留待之后。未完成的学生保留草稿,按网页反馈补齐本课。
简要板书可保留:数据 price/count/money;计算 total=price*count、change=money-total;输出 print;解释“先右后左,从上往下”。

提问

我怎样证明这个找零程序算得对?

参考答案

展示一组自己选的数据、手算与实际输出,并解释先计算总价再计算找零的理由。

巡视重点

只需本课证据,未完成者导出草稿并记录具体卡点。