600.226 Data Structures [Selinski]
Detailed Schedule

 

DatesTopicsResourcesFilesHomework
Day1: 1/28 Course Introduction Sedgewick Ch 1.1, Weiss Ch 1 Syllabus, day01.txt homework1
Day2: 1/30 Analysis Tools and Techniques Sedgewick Ch 1.4, Weiss Ch 2, Wikipedia complexity slides day02.pdf  
Day3: 2/1 (More) Analysis Tools and Techniques Sedgewick Ch 1.4, Weiss Ch 2, Wikipedia complexity slides day03.pdf homework2
Day4: 2/4 Using analysis, Java review: Fibonacci & searching Sedgewick Ch 1.1, Weiss Ch 1, Intro Java Examples day04.txt brief summary notes, fibonacci program, search program  
Day5: 2/6 Recurrence relations & exceptions Sedgewick Ch 1.1, Weiss Ch 1, Intro Java Examples day5 slides with recurrence relations, SearcherBetter.java improved version with exception handling and generics, ArrayNotFullException.java  
Day6: 2/8 Using Unix & emacs, checkstyle Checkstyle website, see Unix resources on course homepage! day06.txt, checkstyle download, jhu config file, timeSomething.java homework3
Day7: 2/11 Polymorphism in Java; JUnit Sedgewick Ch 1.1, Weiss Ch 1, JUnit downloads and basics (revised GitHub link), JUnit Tutorial day07.txt, activities.pdf UML diagram, junit.txt JUnit 4 fundamentals, junit-4.10.jar for easy download  
Day8: 2/13 Abstract Data Types, Algebraic Specifications Sedgewick Ch 1.2, Weiss Ch 1, Definition day08.txt homework4
Days 9 & 10: 2/15 & 2/18 Bag ADT; JUnit & Eclipse Sedgewick Ch 1.3, Weiss Ch 1, Eclipse downloads and tutorials (in Resources) day09.txt, Bag.java interface, day10.txt, BagTest.java JUnit test code, BagArray.java incomplete array implementation  
Day 11: 2/20 Generics & Linked Lists Sedgewick Ch 1.3, Weiss Ch 1 & 3.1-3.5, Java Generics, Wikipedia Linked Lists day11.txt, BaG.java generic Bag interface, BaGArray.java array implementation, SLList.java generic singly linked list implementation homework5
Day12: 2/22 Iterators & Linked Lists Sedgewick Ch 1.3, Weiss Ch 3.1-3.5 day12.txt, Bagi iterable Bag implementations (array & linked list)  
Day13: 2/25 Java Collections Framework, Positional Lists Java Collections day13.txt, positional List (sequence ADT) method complexity worksheet homework6
Day14: 2/27 Stacks & Queues Sedgewick Ch 1.3, Weiss Ch 3.6-3.7 day14.txt, QueueArray.java circular array implementation, QueueEmptyException.java  
Day15: 3/1 Deques & Tree Basics Sedgewick Ch 3, Weiss Ch 4 day15.txt, TreeNode.java implementation start  
Day16: 3/4 Binary Trees Sedgewick Ch 3, Weiss Ch 4 day16.txt, TreeRoot.java recursive (general) Tree implementation homework7
Days 17-18: 3/6 & 3/8 Midterm! Review session Wednesday, test Friday. A collection of sample problems from prior semester midterms is available in two forms: midtermSample.pdf and midtermSample.docx, midtermReview.pdf, older review notes.  
Days 19-21: 3/11, 3/13 & 3/15 Binary Search Trees (unbalanced & AVL) Sedgewick Ch 3.2-3.3, Weiss Ch 4, AlgoViz website, specific visualizations to play with: BST1 and BST2, wikipedia AVL tree diagrams, day19.txt, day20.txt, day21.txt, BSTTest.java JUnit tests for binary search tree, BST.java correct implementation, abandoned implementation, Weiss' AvlTree.java partial implementation  
3/18 - 3/22 Enjoy Spring Break!! extra credit
Days 22 & 23: 3/25 & 3/27 Splay Trees, Maps & Dictionaries, Hashing Wikipedia splay trees, Sedgewick Ch 3.4, Weiss Ch 5, wikipedia hashing day22.txt, day23.txt, hashing problems, hashing solution homework8
Day 24: 3/29 Working Session Class today is an optional homework help session. TAs will review how you should have done homework 7 (set expression trees), and answer questions to get you started on homework 8.    
Day25: 4/1 Priority Queues & HeapsSedgewick Ch 2.4, Weiss Ch 6 day25.txt  
Day26: 4/3 Bottom-up Heap; Sorting I: Bubble, Selection, Merge, Heap Sedgewick Ch 2.1-2.2, Weiss Ch 7, audible sorts, dancing sorts day26.txt, sorting slides, Java code  
Days 27 & 28: 4/5 & 4/8 Teamwork & Versioning bitbucket code repository includes a tutorial on git and mercurial, Git Tutorial day27.txt homework9
Days 29 & 30: 4/10 & 4/12 More Sorting: QuickSort, BucketSort, Lower Bounds Sedgewick Ch 2.2-2.3, Weiss Ch 7, Wikipedia quicksort day29.txt, decisionTree lower bound pic homework10
Days 31 & 32: 4/15 & 4/17 Graphs Sedgewick Ch 4, Weiss Ch 9 graphDrawings.pdf, graphSlides.pdf homework11
Day 33: 4/19 Project crunch time - working session      
Day 34: 4/22 Sets, Partitions & Union-Find Sedgewick Ch 1.5, Weiss Ch 8, good visualization slides, union find board pic  
Days 35 & 36: 4/24 & 4/26 Graphs Revisited: Implementing   Graph.java interface, GraphTest.java JUnit tests for interface, Vertex.java, Edge.java, graph adjacency matrix implementation homework12
Day 37: 4/29 Huffman Codes & Pattern Matching (Tries) Sedgewick 5.5 & 5.2, Weiss Ch 10-12, Wikipedia: Huffman Coding, Tries day37.txt,  
Day38: 5/1 Miscellany   day38.txt  
Day39: 5/3 Review review cheat sheet   
5/13, 9am Final exam