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、Mac OS X或Linux计算机上进行你想做的任何工作。你将在实验室1中配置自己的电脑。

Homeworks

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

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

课程相关资源