Teaching Python · 四层课堂设计

讲好 Python
不靠讲得多好

你手里已经握着三样别人没有的东西:实时大屏、过程性评价、 「教师当编剧」的教学法。讲好 Python 的关键不是把语法讲得多漂亮, 而是把这三样用进课堂。

理念 · 把语法换成作品 结构 · 三条主线 课堂 · 六个动作 手册 · 三张纸带回家
guess.py 只改 3 处
1import random
2
3print("Hello World")   # ① 改欢迎语
4answer = random.randint(1, 100)
5for i in range(3):          # ② 改次数
6    guess = int(input("猜一个 1-100 的数:"))
7    if guess  > answer:   # ③ 改判断
8        print("太大啦")
9    else:
10        print("太小啦")
运行中 · 3 处待改

第一课的第一个练习:先跑通,再只改这三处。改代码比写代码门槛低十倍,成就感却是即时的。

01 / 理念层IDEA

把「讲语法」换成「出作品」

你平台的方法论可以直接迁移:学生练工程,教师当编剧,AI 当陪练,数据来评价。落到 Python 课上,就是四条硬规矩。

RULE 01

每节课都有一个能跑的小成果

一节课结束时,学生手里必须有一个「刚才不存在的、能跑的东西」——猜数字游戏、给照片批量加水印、爬一条天气数据画成曲线。语法是顺手捡的,不是主线。

RULE 02

第一课不讲语法

先发一个能跑的小程序,让学生只改 3 处:改欢迎语、改次数、改判断。改对了就「通关」。改代码比写代码的门槛低十倍,成就感却是即时的。

RULE 03

报错是教材,不是事故

现场故意写错 → 全班一起读报错信息 → 定位 → 修好。Python 的报错是所有语言里最友好的,把它当第一课的正式内容,学生以后就不怕红字了。

RULE 04

学期末,全班给你的平台写功能

心跳上报脚本、数据采集器——学生写的代码真上线,跑在你现在的五屏系统里。这是别的老师给不了的东西,也是整门课的收口。

「讲得好的课,学生记不住代码;做出东西的课,学生忘不掉自己。」 —— 一句话版本的教学主张:把课堂的产出物,从笔记换成能运行的程序。
02 / 结构层TRACKS

三条主线,贯穿整个学期

三条线并行推进,每一条都指向同一个东西:可展示的产物。第三条,是你真正的差异化。

小工具线

TOOLS · 每周一个小工具
  1. 猜数字
  2. 文件批处理
  3. 爬虫
  4. pandas 清洗
  5. 可视化

每个都有即时产物,难度阶梯平缓,适合作为课堂主线推进。

数据线

DATA · 专业真实场景
  1. 爬课表 / 天气 / 招聘
  2. 数据清洗
  3. 图表呈现
  4. 简单结论

用「大数据管理与应用」的专业叙事,学完直接「像那么回事」。

杀手锏

系统线

SYSTEM · 真上线的代码
  1. 心跳上报脚本
  2. 数据采集器
  3. 写入 crawl_events 表
  4. 教室大屏实时跳动

学生写的爬虫往 crawl_events 灌数据,大屏上自己的数据实时跳动——「我写的代码在真实系统里跑起来了」,这一刻的教育价值超过十次作业。

03 / 课堂层MOVES

讲得好的六个动作

都可以在下一节课直接用。前三个关乎「怎么讲」,后三个关乎「怎么让全班参与进来」。

MOVE 01

Live coding,不切 PPT

一个空文件从头敲,敲慢一点,边敲边说思路。你写错的每一笔都是教学素材。

现场版 · 第 4 周现场写批量重命名,故意敲错扩展名,让 FileNotFoundError 替你讲开场那一分钟。

MOVE 02

一屏一概念

变量、循环、函数,每屏只出现一个新东西,其余全是学生见过的旧代码。

现场版 · 讲循环只加一个 for,剩下十行全是上一课的旧代码——新旧比例控制在 1 : 10。

MOVE 03

类比克制且准确

变量是标签不是盒子,列表是可变的货架。好类比讲一遍就通,烂类比制造二次误解。

现场版 · 变量是标签不是盒子:a=[1,2]; b=a; b.append(3) 之后 a 也变了——一条命令讲透引用。

MOVE 04

先读后写再评

AI 时代的教学姿势:让学生读 AI 生成的代码找 bug、改需求、评优劣——正好接上你们「评价学生如何指挥 AI」的能力维度。

现场版 · 发一段 AI 写的爬虫:找出它没处理的 404 和反爬。挑错比新写难,也更像真实工作。

MOVE 05

当堂提交,实时上屏

学生把当堂结果提交到 crawl_events,或新建一个 class_answers 表,教室大屏实时显示全班提交——你现成的大屏就是 Python 课堂的互动系统。

现场版 · 每周产物都推 class_answers,期末回看就是一条完整的学习曲线——评价数据自己长出来。

MOVE 06

过程性评价

不考「默写语法」,考「这个程序为什么错、怎么改、AI 给的答案哪里不行」。你平台的评价体系天然支持。

现场版 · 期末不收单版代码,收三版对比:手写版 / AI 辅助版 / 重构版,外加 10 分钟答辩。

04 / 避坑层PITFALLS

三个最常见的流失点

学生放弃 Python,极少是因为「太难」,几乎都是踩在这三处。

✕第一周配环境劝退
→
✓用在线环境(Jupyter 在线版 / Colab),或课前发预装镜像;本地环境放到第三周再配。
✕面向对象讲太早
→
✓函数讲扎实后再碰 class;多数应用场景,函数够用很久。
✕语法细节完美主义
→
✓学生不需要「学完」Python 才能做事——需要的 20% 语法覆盖 80% 场景,剩下的边做边查。
✕把题目直接丢给 AI,复制粘贴交差
→
✓作业改成「指挥 AI + 评审 AI」:提交时必须附 prompt 演化记录,并写清你对 AI 答案改了什么、为什么。
05 / 落地RHYTHM

一学期的节奏

从「改程序」开始,以「答辩自己的代码怎么演化」结束。

第 1 周
改程序通关 + 在线环境就绪(不配本地环境)
产物 · 通关的 guess.py
第 2–4 周
变量 / 循环 / 函数,每课一个小工具
产物 · 批量重命名 / 词频统计 / 密码生成器
第 5–8 周
文件 + 爬虫 + pandas,数据线启动
产物 · 一份带图表的数据小报告
期中
全班给平台写采集器,系统线启动,数据开始上大屏
产物 · 跑在 crawl_events 里的采集器
第 9–14 周
可视化 + 综合:每人一个小项目,名片式验收
产物 · 个人小项目 + 名片页
期末
过程性评价答辩——「讲讲你的代码怎么演化的」
产物 · 三版代码对比 + 10 分钟答辩
06 / 手册层PLAYBOOK

三张纸,直接印了发

理念说完是手艺:一套读报错的口诀、一节课的剧本、一张评价量表——下一节课就能用。

PAPER 01 · 报错诊疗室完整版 ↗
traceback · grades.py 红字 = 线索
Traceback (most recent call last):
  File "grades.py", line 12, in <module>
    avg = round(total / count, 1)
ZeroDivisionError: division by zero

课堂口诀:一读病名,二翻病历,三问数据。十二个字背下来,红字就从「事故」变成「线索」。

PAPER 02 · 第一课 · 45 分钟剧本完整版 ↗
时间环节现场怎么做
00–05开场不点名直接投一个跑着的猜数字:「这节课结束,你也有一个。」
05–12全班跑通发 guess.py,只做一件事:让它在你电脑上跑起来。跑不起来的举手,助教包干。
12–28只改 3 处欢迎语、次数、判断。改完即通关,通关的同学去帮同桌。
28–40炸一次当场删掉 int() 再输入字母——全班一起读报错,走 PAPER 01 的三步口诀。
40–45提交上屏结果提交进 class_answers,大屏亮起全班名单:「下节课,从你们的代码开始讲。」
PAPER 03 · 过程性评价量表完整版 ↗
维度权重看什么证据不给分的典型样例
作品完成度40期末能跑的小项目 + 每周小工具的提交记录只交截图,环境里跑不起来
代码演化30Git 提交历史,或「手写 → AI 辅助 → 重构」三版对比一次性上交,没有任何中间版本
指挥 AI20prompt 演化记录 + 对 AI 答案的修改说明原样粘贴 AI 代码,说不出改了哪
讲述与答辩10期末 10 分钟:讲「我的代码怎么长成这样」念稿,答不出任何一个「为什么」

权重的潜台词:证据必须在系统里留痕——提交记录、版本 diff、prompt 历史都自动存在,不用老师额外记。你现成的平台就是量表本身。

把任何一节课,做成完整教学包

选定一节课,剩下的材料可以一次性配齐——全部咬合你现有的系统。

01 / SCRIPT逐分钟的 live coding 脚本 02 / EXERCISE预埋 bug 的课堂练习文件
03 / API当堂提交接口设计(接现有数据库)
04 / SCREEN配套的实时大屏页面
选一节课试试。