# CS61B: Data Structures and Algorithms ## 课程简介 - 所属大学:UC Berkeley - 先修要求:CS61A - 编程语言:Java - 课程难度:🌟🌟🌟 - 预计学时:60 小时 伯克利 CS61 系列的第二门课程,注重数据结构与算法的设计,同时让学生有机会接触上千行的工程代码,通过 Java 初步领会软件工程的思想。 我上的是 2018 年春季学期的版本,该课的开课老师 Josh Hug 教授慷慨地将 autograder 开源了,大家可以通过网站公开的邀请码在 [gradescope](https://gradescope.com/) 免费加入课程,从而方便地测评自己的代码。 这门课所有的编程作业都是使用 Java 完成的。没有 Java 基础的同学也不用担心,课程会有保姆级的教程,从 IDEA(一款主流的 Java 编程环境)的配置讲起,把 Java 的核心语法与特性事无巨细地讲授,大家完全不用担心跟不上的问题。 这门课的作业质量也是绝绝子。14 个 lab 会让你自己实现课上所讲的绝大部分数据结构,10 个 Homework 会让你运用数据结构和算法解决实际问题, 另外还有 3 个 Project 更是让你有机会接触上千行的工程代码,在实战中磨练自己的 Java 能力。 ## 课程资源 - 课程网站: - 课程视频:,每节课的链接详见课程网站 - 课程教材:无 - 课程作业:每年略有不同,18 年春季学期有 14 个 Lab,10 个 Homework以及 3 个 Project,具体要求详见课程网站。 ## 资源汇总 我在学习这门课中用到的所有资源和作业实现都汇总在 [PKUFlyingPig/CS61B - GitHub](https://github.com/PKUFlyingPig/CS61B) 中。 Algorithms, 4th Edition: CS61B Exams and Solutions: COS226 Spring 2008 Midterm Solution: COS226 Fall 2008 Midterm Solution: COS226 Fall 2009 Midterm Solution: CS61B Fall 2009 Exam Solutions (Final, Midterm, Midterm2, Midterm3): COS226 Fall 2010 Midterm Solution: COS226 Fall 2011 Midterm Solution: COS226 Spring 2012 Midterm Solution: COS226 Fall 2012 Midterm Solution: COS226 Spring 2013 Midterm Solution: CS61B Fall 2014 Test Solutions (Final, Final2, Final3, Midterm, Midterm2): CS61B Spring 2016 Midterm2 Walkthrough: CS61B Spring 2017 Midterm2 Walkthrough: CS61B Spring 2016 MT1, Spring 2017 Exam Prep, Spring 2018 MT1, Spring 2019 MT1, Spring 2019 MT2, Fall 2020 MT1: CS61B Spring 2019 Discussion: CS61B Fall 2020 Discussion: