CS61BL Data Structures and Programming Methodology




Announcements

6/25

Midterm 1 is on July 3rd. Here is a packet of review material.

6/25

Project 1 is live!

6/25

I've written a paper going over the inheritance lecture here.

7/9

Midterm 1 Post-mortem is live here.

7/10

Midterm 1 solutions are posted here.

7/10

Project 2 is live! Check here for more info.

7/17

Midterm 2 is on July 23rd. Here is a packet of review material.

7/17

The final will be on August 10th, from 10 AM to 1 PM in 2050 VLSB.

7/25

Midterm 2 (blank) is available here.

7/25

Project 3 is live! The spec is here and the code is here .

7/30

Midterm 2 solutions can be found here .

7/30

A sample final can be found here .


Calendar

HFJ stands for "Head First Java."
DSA stands for "Data Structures and Algorithms in Java."


Week Date Lecture Topic Reading (subject to change) Lab Assignments Due
1Mon 06/18 Introduction to 61BL and OOPHFJ Chapters 1 and 2
JRS Lectures: Objects, Classes, Conditionals

HFJ Chapter 3, 4, and 9 except pp 250-255.
Box and Arrows Handout

HFJ Chapter 5
JRS Lecture: Arrays
Welcome and Intro to Java
Tue 06/19 Loops and Conditionals
Wed 06/20 Stack and Heap; Pass-by-Value; TestingJava Objectsday1
Thu 06/21 Objects and Arrays; Testingday2
2Mon 06/25 Invariants and IteratorsJRS Lecture: Arrays 2
HFJ pp. 273-287, 292-293


HFJ ch 6 & ch 10 & appendix B: sec. 2 & 7
JRS lecture: inheritance
HFJ ch 7 & ch 8

Arrays, Ctd.; Collection Classesday3
Tue 06/26 Loop and Data Invariants Iteratorsday4
Wed 06/27 Inheritance 101Inheritance; Callbacks; Interfacesday5
Thu 06/28 Inheritance, Ctd.day6
3Mon 07/02
Notes on Linked Data Structures
JRS Lecture: Linked Lists
Midterm Reviewday7disc
Tue 07/03 MIDTERM 1: 5-7 p.m., 155 Dwinelle
Project 1 Work Dayday8
Wed 07/04 HOLIDAY -- Independence DayHOLIDAYsurvey
Thu 07/05 Linked Lists; Algorithm Analysis
4Mon 07/09 Big-Oh Notation; TreesJRS Lecture: Linked Lists 2
JRS Lecture: Asymptotic Analysis
DSA 3.2-3.4,4,5
OPTIONAL : JRS Lecture: Algorithmic Analysis
DSA 7.1, 7.2
Destructive List ManipulationMidterm redo
Tue 07/10 Linked List Finale
Wed 07/11 Tree Traversal and TriesTreesPROJECT 1 (10 p.m.)
Thu 07/12 Trees, Ctd.day12
5Mon 07/16 BSTsJRS Lecture: Binary Search Trees
JRS Lecture: Dictionaries
HFJ ch. 16
DSA 7.3
JRS Lecture: Hash Codes and Hash Tables
DSA 9
Binary Search Trees
Tue 07/17 Tree Wrap-up; Mapsday14
Wed 07/18 Hash TablesHashing, Part 1
Thu 07/19 Hashing, Part 2
Fri 07/20 day15
Sat 07/21
6Mon 07/23 MIDTERM 2: 5-7 p.m., Location TBADSA 8, 13
JRS Lecture: Graphs

JRS Lecture: Weighted Graphs
Midterm Review
Tue 07/24 Priority Queues; Binary Heaps
Wed 07/25 Graphs: Implementation and AlgorithmsGraphsPROJECT 2 (10 PM)
Thu 07/26 Graphs: Algorithms and Applications
7Mon 07/30 Introduction to SortingJRS Lecture: Sorting
DSA 11, 10.3
JRS Lecture: Quicksort

Project 3 Work Daydiscussions
Tue 07/31 Sorting Algorithms
Wed 08/01 AVL Trees/Balanced Search TreesSorting, Ctd.
Thu 08/02 Balanced Search Trees
8Mon 08/06 Special Topics TBDProject Work Day
Tue 08/07 Practice Final
Wed 08/08 Special Topics TBDReviewPROJECT 3 (midnight)
Thu 08/09 Review

Weekly Schedule

Monday Tuesday Wednesday Thursday
8:00 Lab 101
275 Soda
Eugene Huang
Lab 101
275 Soda
Eugene Huang
Lab 101
275 Soda
Eugene Huang
Lab 101
275 Soda
Eugene Huang
9:00
10:00
11:00 Lab 102
275 Soda
Alex Texter
Lab 102
275 Soda
Alex Texter
Lab 102
275 Soda
Alex Texter
Lab 102
275 Soda
Alex Texter
12:00
1:00
2:00 Lab 103
275 Soda
Michael Jun
Lab 105
273 Soda
Eric Kim
Lab 103
275 Soda
Michael Jun
Lab 105
273 Soda
Eric Kim
Lab 103
275 Soda
Michael Jun
Lab 105
273 Soda
Eric Kim
Lab 103
275 Soda
Michael Jun
Lab 105
273 Soda
Eric Kim
3:00
4:00
5:00 Lecture
100 Lewis
Courtney Wang
Lecture
100 Lewis
6:00 Lab 104
275 Soda
Harvey Feng
Lab 106
273 Soda
Dennis Rong
Lab 104
275 Soda
Harvey Feng
Lab 106
273 Soda
Dennis Rong
Lab 104
275 Soda
Harvey Feng
Lab 106
273 Soda
Dennis Rong
Lab 104
275 Soda
Harvey Feng
Lab 106
273 Soda
Dennis Rong
7:00
8:00

Resources


Acknowledgments

This is an incomplete list, since to list every contribution to this course would be infeasible. We would like to thank all the following people, without whose substantial support this course could not have materialized.