第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;解释“先右后左,从上往下”。
提问
我怎样证明这个找零程序算得对?
参考答案
展示一组自己选的数据、手算与实际输出,并解释先计算总价再计算找零的理由。
巡视重点
只需本课证据,未完成者导出草稿并记录具体卡点。