Our school does not support Internet Explorer. For a much better experience, please download the latest version of Google Chrome, Safari, Opera or Firefox
Data Structures (61B)

About:

  • 31½ hours
  • 39 lessons
  • 0 quizzes

Certificate of Completion Offered

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

What You'll Learn In This Course

Data structures
Java
Learn about algorithms

What You Need For This Course

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

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

Syllabus

All the lessons in this course
  • First Module
  • Intro, Hello World Java 49:54
  • Defining and using classes 50:34
  • References, Linked Lists 48:43
  • Testing 49:29
  • Binary and Bits, A 61C Preview 50:17
  • Node lists, sentinel nodes 17:45
  • Node lists, sentinel nodes II 28:57
  • Arrays, For Loops 50:20
  • Resizing Arrays, Lists vs. Arrays 47:27
  • Inheritance, Subtype Polymorphism 53:55
  • Abstract Classes, Interfaces 48:27
  • Higher-Order Functions, Callbacks, Comparators/Comparables 51:02
  • Environment Variables, Packages, Java Libraries 46:19
  • Generics, Conversion, Promotion 50:16
  • Exceptions, Iterator and Iterable 49:44
  • Java Loose Ends 49:54
  • Encapsulation, Delegation vs. Extension 51:32
  • Asymptotics I 47:07
  • Disjoint Sets 45:48
  • Asymptotics II 50:34
  • Asymptotics III 50:17
  • Binary Search Trees 44:03
  • Balanced BSTs 50:53
  • Hashing 50:58
  • Trees 52:52
  • Heaps 49:03
  • Selection Sort, Heapsort 50:32
  • Midterm Review 51:27
  • Insertion Sort, Shell's Sort, Implementations 51:46
  • Quicksort 50:13
  • Sorting Tradeoffs & Algorithmic Bounds 50:12
  • Radix Sorts 50:33
  • Tries 52:03
  • Graphs Intro 51:32
  • Graph Traversals 49:43
  • DFS vs. BFS, Shortest Paths 49:34
  • Minimum Spanning Trees 46:21
  • Compression 50:01
  • Impossible and Intractable Problems 49:07