Skip to main content

cs61b

概述

CS 61系列课程是计算机科学的入门,尤其注重从程序员视角探讨软件与机器。CS 61A 介绍了问题解决的高层次方法,教授了多种组织编程问题解决方案的方法,例如函数组合、对象集合或规则集。CS 61B则会更深入,从更细致(也更基础)的层面,专注于编写程序的设计效率以及运行时的性能优化。

这是一门关于数据结构和编程技巧的课程。课程中会涉及到Java,因为编程教学离不开具体的编程语言。然而,本课程并不旨在全面涵盖 Java、创建 Android 应用、用户界面设计、图形处理或其他有趣内容。 有些同学可能已经学过数据结构,只是想学习Java或C++。对于这些同学来说,自学可能更有效率。

课程网站

cs61b 课程网站

先决条件

本课程假定您已修读过 CS 61A,或者具备与这些课程学生相当的背景知识。课程主要基于您已完成 CS 61A 的前提构建。否则,课程初期可能会感到有些挑战性,尤其是在面向对象编程方面。课程假设您没有任何 Java 经验,但我们将迅速讲解基础的 Java 语法。

讲座与视频(Recordings & Videos)

Recordings是CS 61B网络直播课的录像回放,videos则是Josh Hug教授为2023年春季学期预先录制的讲解视频,两者内容基本一致。

教材

本课程没有指定的教科书。 不过,授课老师和许多课程工作人员共同编写了一本在线教材。如果觉得这些笔记不够详细,可以参考Paul Hilfinger的免费Java参考资料或者Sierra和Bates合著的《Head First Java》。这两本书不是必读材料。第5周到第14周可以选择Wayne和Sedgewick合著的《算法(第四版)- algs4》

Java核心语言的官方描述可以在网上查阅,即James Gosling、Bill Joy、Guy Steele、Gilad Bracha、Alex Buckley、Daniel Smith和Gavin Bierman合著的《The Java Language Specification (Java SE 17 Edition)》。这份规范非常详尽和精确,但内容比较晦涩,技术性也比较强。另外,Java 17的官方文档也会对你有所帮助。

软件

本课程的官方编码环境及文本编辑器为集成开发环境(IDE)IntelliJ。虽然我们不会强制要求使用IntelliJ,但我们强烈推荐它。除IntelliJ外,我们将不正式支持任何其他编辑或编程环境。

sp24的课程采用Java 17及以上版本(因此至少需要IntelliJ 2021.2.1版,不过我们建议使用IntelliJ 2022.3或IntelliJ 2023.2版)。

你可以在任何Windows、macOS或Linux系统的电脑上完成作业。你需要在第一次实验课(Lab 1)上配置好你的电脑。

课后作业

61b sp24 课程共有5项课后作业。

  • 编程作业 (HW0,HW2)类似于实验,可以通过官网查看作业内容。
  • HW1 是关于课程规范的作业,需要登陆才能查看。
  • HW2, HW4 辅助复习备考。这些作业会发布在Gradescope平台上,题型为选择题和填空题,需要登录后才能查看。

课程相关资源