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 Sum0.java
Sum1.java
Sum2.java
Sum3.java
Sum4.java
Sum5.java
Lecture 2 Bailey: Chapter 0, Appendix B; Handouts: Java Essentials

Feb 7 Control Structures/OOP/Strings Student.java
TestStudent.java
Lecture 3 Bailey: Chapter 1-1.4 (pgs 5-14)

Feb 9 Inheritance CookieMonster.java
Edible.java
Cookie.java
ChocolateChipCookie.java
Fruit.java
Apple.java
Orange.java
Lecture 4 Bailey: Chapter 1.5-1.10

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.1

Feb 21 Recursion & Induction Fact.java Lecture 8 Bailey: Chapter 5

Feb 23 Lists I Induction Practice
List Interface
Lecture 9 Bailey: Chapter 9-9.2

Feb 26 Lists II Lecture 10 Bailey: Chapter 9

Feb 28 Lists III/Search AssertionTest.java
LinkedList.java
TestLinkedList.java
Lecture 11 Bailey: Chapter 9

Mar 2 Sorting I BinarySearch.java
LinearSearchGeneric.java
Player.java
TestPlayer.java
BinSearchComparable.java
Lecture 12 Bailey: Chapter 6.1, 6.7

Mar 5 Sorting II Lecture 13 Bailey: Chapter 6

Mar 7 Sorting/Linear Structures MergeSort.java
Lecture 14

Mar 9 Problem Solving Problems.java
SLL.java
PS Handout
Sample solns

Mar 12 Linear Structures Lecture 16 Bailey: Chapter 10-10.1

Mar 14 Midterm Exam
(no class)

Mar 16 Linear Sturctures &
Ordered Structures
Lecture 17 Bailey: Chapter 10, 11

Mar 17-
Apr 1
Spring Break Spring Break Spring Break

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

Apr 4 Iterators/Bitwise Operations SkipIterator.java
ReverseIterator.java BIterator.java
Lecture 19 Bailey: Chapter 8

Apr 6 Trees Lecture 20 Bailey: Chapter 12

Apr 9 Trees II InfiniteQuestions.java Lecture 21 Bailey: Chapter 12

Apr 11 Trees III Lecture 22 Bailey: Chapter 12

Apr 13 Traversals & Tree Representation huffman.jar Lecture 23 Bailey: Chapter 12

Apr 16 Priority Queues & Heaps VectorHeap.java Lecture 24 Bailey: Chapter 13

Apr 18 Heaps & Heapsort VectorHeap.java Lecture 25 Bailey: Chapter 13

Apr 20 Binary Search Trees Lecture 26 Bailey: Chapter 14

Apr 23 Binary Search Trees removeTop.java Lecture 27 Bailey: Chapter 14

Apr 25 Balanced Trees, Game Trees RecursiveBSTAdd.java Lecture 28 Bailey: Chapter 14

Apr 27 Graphs Graph Practice
Graph Interface
Lecture 29 Bailey: Chapter 16

Apr 30 Graphs Lecture 30 Bailey: Chapter 16

May 2 Graph Algorithms: MCST & Shortest Path Lecture 31 Bailey: Chapter 16

May 4 Graphs Lecture 32 Bailey: Chapter 16

May 7 Dictionaries NaiveProbing.java Lecture 33 Bailey: Chapter 15

May 9 Hashtables Lecture 34 Bailey: Chapter 15

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