Courses

CS 61B/61BL. Data Structures

Current Schedule (Spring 2015)

Description

In CS 61B, students are expected to gain facility with Java programming, become familiar with fundamental data structures and algorithms, and learn techniques for constructing programs of moderate size using Java.

Roughly a third of the semester will be devoted to an introduction to Java. Constructs and topics to be covered include the following:

In the rest of the semester, and in conjunction with practice of basic Java programming techniques, students will implement and experiment with fundamental algorithms and data structures:

The aim is for students to be able to recognize when these data structures and algorithms are applicable to a problem, and to be able to evaluate their relative advantages and disadvantages.

Design in terms of abstract data types and isolation of their implementation in modules will be emphasized. We intend that, having taken CS 61B, student will:

Data types used for illustration will include queues, stacks, dictionaries, sets, and GUI toolsets.

CS 61B is the first place in our curriculum that students design and develop a program of significant size (1500-2000 lines) from scratch. Course assignments typically involve two such programs.

CS 61A is an important prerequisite for 61B. We expect to build heavily on data-oriented and object-oriented design approaches introduced in those courses, as well as on algorithms for recursive list and tree manipulation.

General Catalog

Undergraduate Student Learning Goals