CSCI 136 - Spring 2018

Data Structures & Advanced Programming

Home | Lectures 9am 10am | Labs | Handouts | Links | CS@Williams | Piazza

Lecture Notes and Examples

Links to lecture slides and files will be available after class on the date shown. You must be on-campus or using the proxy server to access these materials.

**The schedule may shift as the semester progresses.

Date Topic Examples Notes Readings

Feb 2 Welcome & Java Crash Course Hello.java Lecture 1 Bailey: Chapter 0, Appendix B; Handouts: Syllabus, Java Essentials

Feb 5 More Java & OOP Hello.java Lecture 2

Feb 7 More OOP Baby.java CoinFlip.java Lecture 3 Bailey: Chapter 1

Feb 9 Inheritance CookieMonster.java
Edible.java
Cookie.java
ChocolateChipCookie.java
Fruit.java
Apple.java
Orange.java
Lecture 4

Feb 12 Association & Generics CookieMonster.java
Edible.java
Cookie.java
ChocolateChipCookie.java
Fruit.java
Apple.java
Orange.java
Baby.java
BossBaby.java
Lecture 5 Bailey: Chapter 4

Feb 14 Vectors WordFreq.java
sample.txt
Lecture 6 Bailey: Chapter 3

Feb 16 Winter Carnival
(no class)

Feb 19 Time and space complexity Lecture 7 Bailey: Chapter 5

Feb 21 Recursion Recursion.java
Lecture 8

Feb 23 Induction & List Lecture 9 Bailey: Chapter 9.1-9.4

Feb 26 Lists II Lecture 10 Bailey: Chapter 9.5-9.9

Feb 28 Lists III/Search Lecture 11

Mar 2 Sorting Lecture 12 Bailey: Chapter 6.1-6.2

Mar 5 Sorting II Lecture 13 Bailey: Chapter 6.3-6.4

Mar 7 Sorting/Linear Structures Lecture 14 Bailey: Chapter 6.5-6.10

Mar 9 Problem Solving Practice Problems

Mar 12 Linear Structures Maze.java
Position.java
RecSolver.java
Maze0.txt
Lecture 16 Bailey: Chapter 10.1, 10.3

Mar 14 Midterm Exam
(no class)

Mar 16 Linear Sturctures II Maze.java
Position.java
IterSolver.java
QueueSolver.java
Maze0.txt
Lecture 17 Bailey: Chapter 10.2, 10.4

Mar 17-
Apr 1
Spring Break Spring Break Spring Break

Apr 2 Iterators FibonacciNumbers.java
VectorIterator.java
SLLIterator.java
Lecture 18 Bailey: Chapter 8

Apr 4 Iterators/Bitwise Operations SkipIterator.java
ReverseIterator.java
Lecture 19

Apr 6 Trees Lecture 20 Bailey: Chapter 12

Apr 9 More Trees & Traversals BinaryTreeView.java
InfiniteQuestionsTree.java
Lecture 21

Apr 11 Traversals Lecture 22

Apr 13 Priority Queue huffman.jar Lecture 23 Bailey: Chapter 13

Apr 16 Heap Lecture 24

Apr 18 Binary Search Tree Lecture 25 Bailey: Chapter 14.1-14.2

Apr 20 Binary Search Tree Lecture 26 Bailey: Chapter 14.3-14.4

Apr 23 Balanced Binary Search Trees Lecture 27 Bailey: Chapter 14.5-14.8

Apr 25 Game Trees Lecture 28

Apr 27 Graph Lecture 29 Bailey: Chapter 16

Apr 30 Graph Algorithms: Reachability Lecture 30

May 2 Graph Algorithms: MCST & Shortest Path Lecture 31

May 4 Graph Lecture 32

May 7 Dictionaries NaiveProbing.java Lecture 33

May 9 Hashtables Lecture 34

May 11 Wrapup, looking ahead Optional readings (not on exam):
[A Cool And Practical Alternative to Traditional Hash Tables]
[Cuckoo Hashing for Undergraduates]
[Space/Time Trade-offs in Hash Coding with Allowable Errors]
[Don't Thrash: How to Cache Your Hash on Flash]
Lecture 35

Final Exam Bailey, class handouts, labs, lectures, and Piazza