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