Data Structures (61B)

1 Review

Teachers: University of California, Berkeley

About: 31½ hours, 39 lessons, Certificate of Completion

The CS 61 series is an introduction to computer science, with particular emphasis on software and machines from a programmer's point of view. CS 61A covered high-level approaches to problem-solving, providing you with a variety of ways to organize solutions to programming problems as compositions of functions, collections of objects, or sets of rules. In CS 61B, we move to a somewhat more detailed (and to some extent, more basic) level of programming.

In 61A, the correctness of a program was our primary goal. In CS61B, we're concerned also with engineering. An engineer, it is said, is someone who can do for a dime what any … Read More


More Details

Course Description

The CS 61 series is an introduction to computer science, with particular emphasis on software and machines from a programmer's point of view. CS 61A covered high-level approaches to problem-solving, providing you with a variety of ways to organize solutions to programming problems as compositions of functions, collections of objects, or sets of rules. In CS 61B, we move to a somewhat more detailed (and to some extent, more basic) level of programming.

In 61A, the correctness of a program was our primary goal. In CS61B, we're concerned also with engineering. An engineer, it is said, is someone who can do for a dime what any fool can do for a dollar. Much of 61B will be concerned with the tradeoffs in time and memory for a variety of methods for structuring data. We'll also be concerned with the engineering knowledge and skills needed to build and maintain moderately large programs.

Is this the right course for me?

This is a course about data structures and programming methods. It happens to also teach Java, since it is hard to teach programming without a language. However, it is not intended as an exhaustive course on Java, the World-Wide Web, creating applets, user interfaces, graphics, or any of that fun stuff.

The CS 61B Spring 2015 website can be found here http://datastructur.es/sp15/index.html

License: CC BY-NC-ND

Curriculum

Module 1: First Module

Lesson 1: Intro, Hello World Java
Lesson 2: Defining and using classes
Lesson 3: References, Linked Lists
Lesson 4: Testing
Lesson 5: Binary and Bits, A 61C Preview
Lesson 6: Node lists, sentinel nodes
Lesson 7: Node lists, sentinel nodes II
Lesson 8: Arrays, For Loops
Lesson 9: Resizing Arrays, Lists vs. Arrays
Lesson 10: Inheritance, Subtype Polymorphism
Lesson 11: Abstract Classes, Interfaces
Lesson 12: Higher-Order Functions, Callbacks, Comparators/Comparables
Lesson 13: Environment Variables, Packages, Java Libraries
Lesson 14: Generics, Conversion, Promotion
Lesson 15: Exceptions, Iterator and Iterable
Lesson 16: Java Loose Ends
Lesson 17: Encapsulation, Delegation vs. Extension
Lesson 18: Asymptotics I
Lesson 19: Disjoint Sets
Lesson 20: Asymptotics II
Lesson 21: Asymptotics III
Lesson 22: Binary Search Trees
Lesson 23: Balanced BSTs
Lesson 24: Hashing
Lesson 25: Trees
Lesson 26: Heaps
Lesson 27: Selection Sort, Heapsort
Lesson 28: Midterm Review
Lesson 29: Insertion Sort, Shell's Sort, Implementations
Lesson 30: Quicksort
Lesson 31: Sorting Tradeoffs & Algorithmic Bounds
Lesson 32: Radix Sorts
Lesson 33: Tries
Lesson 34: Graphs Intro
Lesson 35: Graph Traversals
Lesson 36: DFS vs. BFS, Shortest Paths
Lesson 37: Minimum Spanning Trees
Lesson 38: Compression
Lesson 39: Impossible and Intractable Problems

Reviews (1 Review)

Ari Haverinen February 6th, 2017

What You'll Learn

  1. Data structures
  2. Java
  3. Learn about algorithms

Requirements

  1. The Structure and Interpretation of Computer Programs (61A)
  2. UNIX Experience An Asset

Your Teacher