前言
最近在学习 CS61B: Data Structures,最初我使用的是 Spring 2024 版本的课程资料,但由于该版本未提供公开的自动评分器,因此无法通过 Gradescope 提交作业并获得自动评分。所以就切换到了Spring 2021的版本,并写个文章简单记录一下配置的过程
如果是第一次参加这种课程的时候难免会不清楚自己该干什么,面对各种链接不知从何下手。因此,我在本文中我会引用大量课程提供的文档链接,旨在提供一个指引。本文不可完全替代课程文档的作用,配置完以后还是建议再看一遍课程文档。
课程网站
课程主页:
- CS 61B Data Structures Spring 2021
https://sp21.datastructur.es/
课程主页里包含了你要看的视频,幻灯片,和作业文档
环境配置
课程作业通常会提供一组起始代码,我们需要在指定文件中实现或修改代码以完成任务。这些起始文件托管在 GitHub 上,因此在开始作业之前,需要将他们拉取到本地,并配置开发环境。
我们首先需要完成第一周的两个Lab。这两个 Lab 提供了完整的环境配置说明。不过,由于其面向UCB在校学生,其中部分步骤对自学者并不适用,因此阅读时可能会产生一定困惑。
所以,我在下文分解了一些步骤,暂时不需要看下面这两个链接
1 安装 IntelliJ IDEA
首先需要从 JetBrains 官网下载 IntelliJ IDEA,百度搜索下载即可。
自 2025 年 12 月起,JetBrains 已取消Community Edition 与 Ultimate Edition 的版本区分,官网仅提供统一安装包。另外,我们不需要对它进行破解,免费的社区版已经完全满足我们的使用需求
完成安装后,需要按照官方文档安装两个课程插件,请按该课程文档一步一步完成:
https://sp21.datastructur.es/materials/lab/lab1setup/lab1setup#f-installing-the-intellij-cs-61b-plugins
需要安装的插件:
- CS 61B Plugin
- Java Visualizer
其中 Java Visualizer 在后续学习数据结构与算法执行过程时非常有用。
2 安装Java和Git
接下来需要安装以下开发工具,请自行百度“Java安装“和“Git安装“
- Java Development Kit (JDK)
- Git
对于JDK,安装任意较新的稳定版本即可(例如JDK17或更高版本)
3 获取课程代码并初始化仓库
CS61B 的大多数作业都基于官方提供的代码仓库,所以我们要在本地创建一个目录,负责拉取并存放这些代码
在这里我们需要用到git,但如果你是初学者第一次接触git也没关系,现在就跟着文档走就可以,课程到最后也会系统性讲解git的原理。
首先在本地任意位置创建一个文件夹,命名为skeleton-sp21,在该文件夹中打开终端执行下面的命令,用于初始化git仓库
1 | git init |
接着,添加课程仓库为远程仓库,并把skeleton代码拉取到本地:
1 | git remote add skeleton https://github.com/Berkeley-CS61B/skeleton-sp21 |
现在,你的skeleton-sp21目录中应该多了很多文件夹,他们都是课程文件,日后完成作业的时候就是打开某个文件夹并编辑其中的内容。如果拉取失败,请考虑网络问题。
接下来,我们需要加载子模块。这里的原理是,skeleton-sp21仓库中的Java库文件被作为子模块管理,按照上面的clone方式无法直接得到他们,这也是cs61b特意设计的。该部分存在于Lab2 的 Getting Java Libraries
执行下列命令以加载子模块:
1 | git submodule update --init |
该命令会自动下载 library-sp21 子模块,并在library-sp21目录中生成一个javalib文件夹
如果子模块下载失败,也可以手动克隆,执行命令git clone https://github.com/Berkeley-CS61B/library-sp21.git,并将它放到library-sp21文件夹内
这时无论用哪种方式,library-sp21文件夹下都会额外多出来一个.git文件夹,可以把它删掉。
4 配置 Git 远程仓库
请为课程代码创建一个 私有Github仓库,用于进行版本管理和备份,后续使用自动评分器的时候也需要用到,请自行百度“Github创建私有仓库“以及“Github创建访问令牌“
在完成GitHub账户配置后,在 skeleton-sp21 目录中执行:
1 | git remote add origin https://github.com/你的仓库地址.git |
这样即可将课程代码推送到自己的 GitHub 仓库。这时在github中打开你自己的仓库就可以发现你的课程代码了。后续写作业时候,也需要将代码推送到该仓库中,详见本文后续的章节。
如果你是第一次使用git,可能需要设置用户名和邮箱。注意你设置的邮箱一定要和你Github注册时用的邮箱保持一致,否则Github会认不出来你。
此时,你可能会发现library-sp21并没有被推送到你的仓库中,这是因为library-sp21目录本来是作为子模块管理的,git会自动忽略这个文件夹。如果不想让它被忽略,把skeleton-21目录下的.gitmodules文件删掉,并在.gitignore文件中!library-sp21这行的下面新增内容为:!library-sp21/**的一行即可。(但你其实没必要这么做)
5. IntelliJ IDEA 项目配置
完成上述步骤后,课程目录结构应该和下面一样:
1 | skeleton-sp21/ |
CS61B Spring 2021使用Maven管理项目依赖,现在我们需要再完成一个一次性配置(如果你不知道Maven是什么也没关系,这不重要,)
请按照下面课程文档,完成其中标题为One-Time Setup的部分:
https://sp21.datastructur.es/materials/lab/lab2setup/lab2setup
注意,必须完全按照文档配置,否则可能会出现看不懂的报错。
由于课程文档基于较旧版本的 IntelliJ IDEA 编写,其中部分界面选项在新版 IDE 中已经发生变化,没有的选项跳过即可。
由于官网是英文版本的不太方便阅读,所以中文版本设置完以后应该差不多长这个样子: 
最后点击 应用 和 确认 即可保存设置。
6. 后续完成作业的流程
我强烈建议在IDEA中分别以独立项目的形式打开对应的作业目录,例如 lab3 、proj2,而不是直接打开整个 skeleton-sp21根目录。
每当完成作业,可以将其提交至Gradescope进行评分。请前往 Gradescope注册一个帐号,学校选择“UC Berkeley“,并输入课程代码 MB7ZPY 以添加课程。先将代码推送到git仓库中,再在Gradescope中选择对应的仓库和分支即可。
Git基础教学
Git是一个分布式版本管理工具,我们用它管理自己代码的版本,并与他人协作。下面是一个将代码从本地推送到Github仓库的完整流程:
1 | # 进入skeleton-sp21目录 |
7. 报错处理
如果出现 无法编译为 JVM 目标 6 配置的模块 'lab3': 当前与该模块关联的 JDK Oracle OpenJDK 21.0.7 - aarch64 不支持所需 jvm 目标 6。 报错:
- 请重新完成本文中“5. IntelliJ IDEA 项目配置”提到的内容,或重新完成Lab2的One-Time Setup部分
如果出现 找不到插件 'org.apache.maven.plugins:maven-compiler-plugin:3.1' 报错:
- 也请重新完成本文中“5. IntelliJ IDEA 项目配置”提到的内容,或重新完成Lab2的One-Time Setup部分
如果出现 java: 程序包org.junit不存在 、java: 程序包ucb.gui2不存在或 java: 程序包ucb.util不存在 这种某些程序包找不到的情况:
- 请在IDEA的左上角进入 文件——项目结构——库 后,点击加号添加
skeleton-21/library-sp21/目录下的javalib文件夹,添加后点击应用和确认,或参考并重新完成Proj0中的IntelliJ Setup部分 - 参考动图(来自课程文档):


本文使用CC BY-NC-SA 4.0协议进行许可