教学流程 · 16 周 64 学时

本课程的完整教学安排:每周讲哪些讲次、上机练什么、学时怎么分、怎么考核。节奏参照《Hive数据仓库工具》(16 周 / 64 学时 / 每周 2+2),结构参照《数据库原理与应用》(章—讲两级),练习强度参照《Java 程序设计》。

16 周28 讲16 次上机实训1 个综合项目

一、学时分配

与 Hive 课程一致:64 学时 / 4 学分 / 16 周
项目学时说明
理论讲授32每周 2 学时,对应 28 讲 + 4 学时阶段回顾
上机实践32每周 2 学时,16 次实训,与讲授内容同步推进
合计644 学分

二、16 周教学进度表

理论 2 学时 + 实践 2 学时
周次讲次教学内容上机实训 / 作业学时
第1周1.1 / 1.2Scala 是什么、JVM 生态位置;环境搭建、REPL 与第一个程序实训1:装 JDK + sbt(或 scala-cli),跑通 HelloWorld 与 REPL2+2
第2周2.1 / 2.2val 与 var、类型推断;基本类型与三种字符串插值实训2:个人信息卡输出(val + 插值 + 类型转换)2+2
第3周2.3 / 3.1运算符与块表达式;if/else 作为表达式实训3:成绩等级判定与分段计费(表达式写法)2+2
第4周3.2 / 3.3while、for、for-yield 与守卫;match 表达式实训4:九九乘法表、列表筛选与成绩分级 match2+2
第5周4.1 / 4.2定义函数与参数;函数是值(匿名函数、函数类型、柯里化、闭包)实训5:带默认参数的工具函数 + 匿名函数排序2+2
第6周4.3高阶函数:map / filter / reduce / flatMap / foreach实训6:用高阶函数重写实训 4 的循环代码2+2
第7周5.1 / 5.2List / Array / Vector;Map、Set、Tuple实训7:成绩表的增删查改与去重2+2
第8周5.3 / 6.1可变与不可变集合、ListBuffer;class 主构造器与访问控制实训8:按班级分组统计平均分;写一个 Student 类2+2
第9周6.2 / 6.3object 伴生对象与 apply;trait 混入与多重继承实训9:伴生对象工厂 + 用 trait 组合“可打印/可比较”2+2
第10周7.1 / 7.2继承、抽象类、override 与多态;case class 与自动方法实训10:抽象类与多态示例;用 case class 重建学生模型2+2
第11周7.3sealed trait + match:用模式匹配做数据建模与穷尽检查实训11:订单状态模型(sealed)与分支匹配2+2
第12周8.1 / 8.2try/catch/finally 与自定义异常;Option 取值与链式处理实训12:把“层层判空”的代码改成 Option 链2+2
第13周8.3 / 9.1Either 与 Try 的选型;类型参数与上下界实训13:写一个返回 Either 的校验函数;泛型方法收敛重复代码2+2
第14周9.2 / 10.1implicit 隐式参数、隐式类与 Scala 3 的 given;文件读写实训14:读 CSV 统计并按规则筛选(Source / Using)2+2
第15周10.2JSON 解析与分组统计、报表输出实训15:成绩/新闻 JSON 解析 + 报表生成2+2
第16周10.3Future 并发;综合项目验收与答辩实训16:并发计算 + 综合项目演示与答辩2+2

三、十章与教学的对应

章标题讲次周次对应实训
Scala 入门与环境入门1.1、1.2第1周实训1
变量、类型与表达式语法2.1、2.2、2.3第2-3周实训2-3
控制结构流程3.1、3.2、3.3第3-4周实训3-4
函数与高阶函数函数4.1、4.2、4.3第5-6周实训5-6
集合集合5.1、5.2、5.3第7-8周实训7-8
类与对象面向对象6.1、6.2、6.3第8-9周实训8-9
面向对象进阶进阶7.1、7.2、7.3第10-11周实训10-11
异常与 Option健壮性8.1、8.2、8.3第12-13周实训12-13
泛型与隐式类型系统9.1、9.2第13-14周实训13-14
实战:文件、JSON 与并发实战10.1、10.2、10.3第14-16周实训15-16

四、考核与成绩构成 建议方案,可按教学实际调整

类别组成部分占比
平时成绩出勤与课堂表现10%
平时成绩上机实训(16 次)30%
期末考试综合项目(含代码与答辩)40%
期末考试闭卷机试(语法 + 集合 + 模式匹配)20%
说明本课程为自主设计,没有上级下发的课程标准,考核方案为建议值:强调“过程 + 项目”,平时实训占 30%,期末以项目与机试为主。若学校已有考核要求,以学校文件为准。

五、与另外几门课的教学节奏对比

对照结论:Scala 的周次/学时/章讲密度与另外几门课处于同一量级
课程章/单元数讲/节数总学时周次每周节奏实训形式
Hive数据仓库工具8 单元—(按任务拆分)6416 周2 理论 + 2 实验15 个周实训
数据库原理与应用5 章25 讲材料未标注—每讲 1 个知识点闭环Navicat + SQL 实操
Java 程序设计11 章—(773 页课件)材料未标注—每章 4-8 个知识点示例代码 + 上机
Python 程序设计10 章28 讲6416 周2 理论 + 2 实验16 个周实训 + 1 个综合项目
动态网页数据采集与预处理7 项目14 个任务64(建议)16 周2 理论 + 2 实验16 次实训 + 1 个综合系统
Scala 程序设计(本课)10 章28 讲6416 周2 理论 + 2 实验16 个周实训 + 1 个综合项目
为什么这样排Scala 的语法密度高于 Python、低于 Java,所以 10 章可以覆盖到“函数式 + 面向对象 + 工程实践”;但“函数是值”(第 4 章)与“case class + 模式匹配”(第 7 章)必须放慢——这两块既是 Scala 的特色,也是学 Spark 的地基;最后两周留给综合项目,与其他课程一致。

六、每周怎么上(课堂结构建议)

环节时长做什么
回顾与提问10 分钟回顾上次实训问题,抽查 2-3 个知识点
讲授(2 学时)80 分钟按讲次推进:概念 → REPL 演示 → 学生跟敲 → 常见编译错误
上机(2 学时)90 分钟按实训任务练习,教师巡回答疑;结束前 10 分钟点评
作业布置5 分钟布置本周实训报告与练习(见“编程练习”页)