CS 61BL Data Structures & Programming Methodology, Summer 2014
Instructor: Edwin Liao
Wednesday, 3-5 PM, 2050 Valley Life Sciences Building
Announcements
Date Announcement
8/18 The final exam has been graded. The mean was 42.6 with a standard deviation of 13. See solutions here and histogram here. Regrade requests will be accepted via Pandagrader until August 18 at 11:59pm PDT.
8/10 I, Edwin Liao, have detected invaders from the future attempting to steal my extra credit. I've hidden it so that me, and only me, can have it. No CS 61BL students will ever find the extra credit as long as I am in control! (Or as long as no one learns too much about me and my secrets.) Muahahaha...!
8/5 Project 3 has been released! The checkpoint checkoff is due in your lab section on Monday 8/11. The project itself is due on Friday 8/15 at 10pm PDT.
8/3 Midterm 2 has been graded. The mean was 25, with a standard deviation of 9. See solutions here and histogram here. Regrade requests will be accepted via Pandagrader until August 4 at 11:59pm PDT.
7/30 Midterm 2 is on 7/30 from 3-5 PM. If your last name is A-P, go to 2050 VLSB. If your last name is Q-Z, go to 100 GPB. You can bring two double-sized cheat sheets. They can be handwritten or typed.
7/2 Project 2 was released! The checkoff is due in your lab section on Friday, 7/25. The whole project is due on Saturday, 8/2 at 10 PM.
7/14 Midterm 1 has been graded. The mean was 27, with a standard deviation of 8.4. See solutions here and histogram here. Regrade requests will be accepted via Pandagrader until July 16 at 12pm PDT.
7/11 Submit this form for a homework / project regrade request. Assignment grade breakdowns can be found here.
7/10 Thursday's lab is a project 1 work day as well as an optional lab on Git, the distributed version control system, and packages! We highly encourage you to read through this lab, even if not today, as version control is quite essential to code development workflows.
7/9 Midterm 1 is on 7/9 from 3-5 PM. If your last name is A-H, go to 100 GPB. If your last name is J-Z, go to 2050 VLSB. You can bring one double-sized cheat sheet. It can be handwritten or typed.
7/2 Project 1 was released! The checkoff is due in your lab section on Tuesday, 7/8. The whole project is due on Saturday, 7/12 at 10 PM.
6/25 The Java Style Guide is now released! Please check it out to learn tips on maintaining beautiful code.
Calendar
HFJ: Head First Java
CIDS: Concise Introduction to Data Structures Using Java
JRS: Professor Shewchuk's lecture notes (Spring 2014)
*: Optional / Supplemental
Week Date Lecture Topics Readings Due Lab Topics Assignments Due
1 Mon 6/23 Intro to Java
Testing
Welcome to CS61BL
Tue 6/24 HFJ: Chapters 1 and 2
JRS: Loops, Conditionals
Course Info
Take a look at the resources page
Loops and Conditionals
Thur 6/26 HFJ: Chapters 3, 4, and 9 (except p. 250 - 255)
JRS: OOP, Objects, Classes
CIDS: Chapter 1
More on Box and Arrow Diagrams*
Java Objects hw1, hw2
Fri 6/27 HFJ: Chapter 5
JRS: Arrays
Java Style Guide
Objects, Arrays, and Testing hw3
2 Mon 6/30 Inheritance
Linked Lists
HFJ: p. 273 - 293
JRS: Testing*
Arrays and Collection Classes hw4
Tue 7/1 HFJ: Chapter 6, p. 302 - 314,
Appendix B 2, 3, 5, 6, 7, 9
Exceptions and Invariant Relationships hw5
Thur 7/3 HFJ: Chapters 7 and 8
JRS: Inheritance, Exceptions, Abstract Classes,
.equals(), Field Shadowing,
More on Inheritance (Courtney Wang, Su12)*
Inheritance, Interfaces, and Abstract Classes hw6
Fri 7/4 Academic holiday
3 Sun 7/6 Midterm 1
Wed 7/9, 3-5pm
2050 VLSB
100 GPB
Midterm 1 Review Session (100 GPB, 1-3pm) (slides1 slides2)
Mon 7/7 HFJ: p. 250 - 255, Chapter 11, Appendix B4
JRS: Generics
Generics and Iterators hw7
Tue 7/8 Midterm 1 Review hw8
hw9: Project 1 Checkoff
Thur 7/10 JRS: Packages* Git & Packages + Work on Project 1
Fri 7/11 JRS: Linked Lists, Asymptotic Analysis
CIDS: Chapters 2 and 6
Linked Lists and Algorithm Analysis
Sat 7/12
Project 1 (due 10pm)
4 Mon 7/14 Asymptotic Analysis
Trees
More Linked Lists; Destructive List Manipulation
Tue 7/15 Linked Lists Finale
Thur 7/17 JRS: Stacks and Queues; Trees
CIDS: Chapter 8
Trees hw10, hw11
Fri 7/18 CIDS: Chapters 3, 4 and 5 More on Trees
5 Mon 7/21 Hash Maps
Priority Queues
JRS: Binary Search Trees
CIDS: Chapter 9
Binary Search Trees hw12
Tue 7/22 Trees Wrap-up and Maps hw13
Thur 7/24 JRS: Dictionaries (Hash Maps)
CIDS: Chapter 11
Hashing (Part 1) hw14
Fri 7/25 Hashing (Part 2) hw15: Project 2 Checkoff
6 Sun 7/27 Midterm 2
Wed 7/30, 3-5pm
2050 VLSB
100 GPB
Midterm 2 Review Session (100 GPB, 1-3pm) (slides)
Mon 7/28 JRS: Priority Queues
CIDS: Chapter 10
Priority Queues and Binary Heaps hw16
Tue 7/29 HFJ: Chapter 16 Midterm 2 Review hw17
Thur 7/31 Work on Project 2
Fri 8/1 JRS: Graphs
Graphs
Sat 8/2
Project 2 (due 10pm)
7 Mon 8/4 Graphs
Sorting
Graph Algorithms and Applications
Tue 8/5 JRS: Sorting
JRS: Quicksort
Sorting Algorithms (Part 1) hw18
Thur 8/7 JRS: Linear-time Sorts Sorting Algorithms (Part 2)
Fri 8/8 Kim: 2-3 Trees
JRS: Splay Trees
Patrick: AVL Trees
Balanced Search Trees hw19
8 Sun 8/10 Final Exam
Wed 8/13, 3-6pm
2050 VLSB
100 GPB
Final Exam Review Session (100 GPB, 1-3pm)
Mon 8/11 Bits (optional) hw20: Project 3 Checkoff
Tue 8/12 Final Exam Review
Thur 8/14 Bloom Filters (optional) + Work on Project 3
Fri 8/15 GUIs (optional) + Work on Project 3 hw21
Project 3 (due 10pm)
Lab Schedule
All labs meet on Monday, Tuesday, Thursday, and Friday.
Lab Section Number Location Time Teaching Assistant
101 275 Soda 8am - 11am Joseph Moghadam
102 275 Soda 11am - 2pm Sarah Kim
103 275 Soda 2pm - 5pm Kimberly White
104 275 Soda 5pm - 8pm Munim Ali
105 273 Soda 9am - 12pm Christopher Gioia
106 273 Soda 12pm - 3pm Ralph Arroyo
107 273 Soda 3pm - 6pm Jimmy Lee
108 273 Soda 6pm - 9pm Alan Yao
109 330 Soda 1pm - 4pm Patrick Lutz
110 330 Soda 7pm - 10pm Amit Akula
111 277 Soda 11am - 2pm Leo Colobong
Office Hours
Edwin: Thursday, 3pm - 5pm; Friday, 11am - 1pm in 271 Soda
(If these times do not work for you, feel free to email me to set up an appointment.)

TAs: Monday, 4pm - 5:30pm in 611 Soda
You can also visit your TAs during your lab section.
Acknowledgements
This is an incomplete list, as it would be infeasible to list every contribution to this course. Thank you to all of the following people, without whose substantial support this course could not have materialized.