Skip to content

Workshop @ DaSE ​

Workshop @ DaSE 是模仿 MIT The Missing Semester of Your CS Education 开设的一组短课程,用来训练数据专业学生的基本工程能力:shell 与命令行、Git 版本管理、调试与性能分析工具等,并提供一个在线 Terminal,让学生不装环境也能直接跟着练。

为什么做这个 ​

数据科学的课程把学时给了算法、数据库与系统原理,却默认“会用电脑”是天赋。真实的工程日常——在 shell 里把几件小事串起来、用 Git 把改动管清楚、出问题时知道怎么调——通常是学生之间口耳相传,传歪了也没人纠正。

MIT 的 Missing Semester 证明了一件被忽略的事:这些内容可以在几周里成体系地教,而且教完立刻见效。但原课是英文讲义,练习也要求学生自己配好本地环境——而“环境配不上”恰好是我们最想避免的第一道门槛。Workshop 因此做了两件事:把课程内容落到中文短课上,把练习环境搬进浏览器。

核心能力 ​

课程 ​

按主题切分的小课时,每课一次讲授加一组练习,一学期内可以走完全部主题:

  • shell 与命令行:路径、管道与重定向、进程与任务、环境变量,以及 grep / sed / awk / find / xargs 的组合使用
  • 脚本与自动化:Bash 脚本、定时任务、把重复的手工操作写成可复用的流水线
  • Git 与协作:工作区与暂存区、分支与合并、冲突处理、rebase、bisect,以及多人协作的基本礼仪
  • 调试与剖析:断点调试与打印调试的取舍、strace 类系统调用观察、性能剖析定位热点
  • 数据与工具链:结构化数据在命令行里的清洗与转换、备份策略、抓取与整理网页数据

讲义参照 MIT 公开课程组织并本地化重写,示例与练习数据均取自学院课程中真实遇到过的场景。

在线 Terminal ​

每课练习都在浏览器内的 Linux 终端中完成,无需本地安装任何工具:

  • 打开即用:统一身份登录后直接进入本次课程的实验环境,几秒内可用
  • 任务自动校验:每道练习配套检查脚本,提交后立即得到通过 / 未通过的具体原因,而不是“等助教回复”
  • 隔离与限额:会话运行在受限容器内,隔离文件系统与网络,CPU / 内存 / 会话时长有上限,防止误操作与资源滥用
  • 可回溯:命令历史与检查日志留存,用于自查,也用于教师了解班级整体卡在哪一步
  • 环境可复现:每个课程版本固定镜像,同一次练习在任何学生手里得到相同结果

技术形态 ​

前端以 xterm.js 呈现终端,通过 WebSocket 连接到服务端为每个学生拉起的容器内 PTY;课程与讲义以 Markdown 存放在仓库中,随版本发布同步到平台。练习校验由独立的 runner 执行,避免用户代码与判题逻辑共享权限。会话按空闲时长回收,结果与命令历史落库。

与水杉系列的关系 ​

Workshop 补的是水杉在线“学、练、测、创”中练的工程基本功部分,与JupyterHub @ DaSE形成互补:命令行与版本管理能力在 Workshop 里练成,数据处理与模型实验在 JupyterHub 里进行。它同时依赖OnlineJudge @ DaSE的沙箱执行与判题机制,两者共享同一套隔离运行方案。

作为试验品,验证重点是:学生是否真的完成了练习,以及这些能力是否体现在后续课程的作业质量上。若结论为正,在线 Terminal 与课程框架会作为水杉在线的实验场景继续投入;若使用率低,则只保留讲义,运行环境合并进现有平台。

使用范围 ​

  • 面向数据专业学生,作为课程配套训练或独立选修使用;也可供任课教师嵌入自己的课程。
  • 开课需提供课程主题范围、班级规模与练习形式,由部门配置镜像与容量后交付。
  • 在线 Terminal 为课程专用环境,不适合长期驻留任务或个人数据存储。