cs61b
概述
CS 61系列课程是计算机科学的入门,特别侧重于从程序员视角探讨软件与机器。CS 61A介绍了问题解决的高层次方法,教授了多种组织编程问题解决方案的方式,如函数组合、对象集合或规则集。而在CS 61B中,我们将深入到更为细致(一定程度上也更基础)的编程层面,专注于编写程序的设计效率以及运行时的性能优化。
这是一门关于数据结构和编程方法的课程。它恰好也教授Java,因为不借助一门语言很难讲授编程。然而,本课程并不旨在全面涵盖Java、创建Android应用、用户界面设计、图形处理或其他有趣内容。 部分学员可能已修过数据结构课程,仅希望学习Java或C++。对于你们而言,自学或许是更佳选择。
课程网站
先决条件
本课程假定您已修读过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平台上,包含选择题与填空题的组合,不登录不能查看。
课程相关资源
- Skeleton files for Spring 2024 assignments
- proj3-skeleton-sp24
- 用于cs61b课程的自动评分工具 jh61b for BSAG,BSAG A Better Simple AutoGrader
- intellij-plugin
- Library for Spring 2024 semester
- 通过动画可视化数据结构与算法
- Java Visualizer
- 早期课程的阅读材料《Data Structures (Into Java)》
📄️ syllabus-课程大纲
CS 61B Spring 2024 | 课程大纲
📄️ 学习笔记分享
UCB CS 61B 学习笔记分享 | CS61B | cs61B 学习方法 | CS61B 数据结构与算法
🗃️ Guides
10 items
🗃️ homeworks
2 items
🗃️ Labs
10 items
🗃️ projects
8 items