计算机程序的构造与解释
课程概述¶
本课程为大一上学期计科大班的专业课(和计科大班《程序设计基础》为二选一的关系),只在每年的上学期在鼓楼开设。
如果需要选修,需要在“跨专业课程”中选择。
本课程是伯克利 CS 61A 的一个复刻
教材信息可参考课程网站
课程评价(25级情况)¶
李樾老师(樾哥)身体不太好,但是上课非常有激情,讲课很清晰易懂,平易近人,有人格魅力。
课程群非常活跃,助教认真负责且平易近人。如果有问题,发在群里马上就有热心的同学和助教解答。
知乎上有很多对这门课的评价,可以看一看。
25 级该课程与《信计导论实验》有部分冲突,需要申请免修不免考;冲突时间恰好为期中时间,可能需要请假。
课程内容¶
从 Python 基础语法、函数式编程和数据结构讲起,期中后介绍面向对象式编程和 Scheme 语言,最后以声明性语言 SQL 收尾。
每周一节实验课,有 Lab 和 Homework,作业难度较大,几个小时做不完很正常。
总共有 4 个 Project,需要阅读较长的框架代码后进行编程。所有 Project 均来自 CS 61A,质量很高,也非常有趣。第一个 Project 是一个策略型的竞技小游戏,有排行榜和小礼品;第四个 Project 需要你在给定的框架下写出一个 Scheme 解释器,非常有成就感。
Homework 和 Project 都有 Optional Problem 或者 JFF (Just For Fun),会有一些拓展的或者较难的知识。
期中难度较大,期末比较简单。25 级期中平均分 58.77,中位数 57.5,最高分 99;期末平均分 79.57,中位数 80.5,最高分 99。
25 级期末成绩分布

期中是半开卷,可以带一张 A4 纸。没什么用,不建议带,不过带着可能会比较放心。
给分¶
作业 50% + 期中 25% + 期末 25%,很难见到作业分占比更高的课了。(作业一般都是满分,除非你忘记写了)
没有考勤分,可以随便翘课。但是少有人翘课,可见课程质量。
25 级总评均分 82.9,中位数 84,最高分 99.3。