Home    Course Archive    Video/Audio Library     Papers Archive    CV    My Keeper Shelf    Cultural References in Class Quotes

smh: COSC 311 Algorithms and Data Structures
WINTER 2016


0. Basics
  1. Required Textbook:
    Koffman & Wolfgang, Data Structures:Abstraction and Design Using Java, 2nd ed, Wiley, 2010, ISBN-10: 0470128704.

  2. Do you need an alternative explanation of some data structures?
    The following book is ridiculously easy to read, but has incomplete coverage of algorithm analysis and advanced topics. It is inexpensive and well-written.
    Lafore, Data Structures and Algorithms in Java, 2nd Ed, Sams Publishing, 2002, ISBN-10: 0672324539.

  3. Do you need some extra help in Java? Suggestions:

  4. Language of Implementation: Java. All code will be in Java. We are a Java shop, for better or worse. Your code will be in Java.

  5. Syllabus

  6. Coding Standards (Keep it clean. Keep it readable. Keep it honest. Keep it simple.)
    Points will be subtracted for bad readability (use of white space, choice of variable names) as well as for lack of functionality and poor design.

  7. Office Hours: See instructor home page



1. Lectures 4.1
Date Topic Reading Notes Assignments / Due
4/14 B tree, B+ tree
4/7 Sage, Hashing sage info
sage: example plot
3/31 Hashing K & W: 7.3
3/29 Review of sorts: quicksort, mergersort, heapsort, radix sort, insertion, bubble, selection
New sorts: shell short, bogo sort
O(n2) sorts
3/24 Sorts: radix, heap, O(n2) K& W: 8.8, 8.2, 8.3, 8.4
3/22 Divide and conquer sorts: quick sort, merge sort K & W: 8.9, 8.7
3/15 AVL trees
Wikipedia page - Splay trees Splay tree operations
3/13
3/8 AVL trees: K & W: 9.1, 9.2
2/25 Test
2/23 Huffman tree, review of traversals and expression trees
2/18
2/16 priority queue
2/11 Binary Search Tree K & W: 6.4 HW0211: Self-Check 6.1: 1, 2, 3, 5.
Self-Check 6.2: 2, 3. Self-Check 6.3: 2.
6.1, #1c: (x + ( a * ( b - c ) ) ) / d
// Due 2/18
2/9 Trees K & W: 6.1 - 6.3
2/4 Recursion and Iteration
2/2 Recursion 5.1 - 5.3 Tracing recursion HW0202 (recursion/iteration) / 2/8/2016
1/28 infix -> prefix shunting-yard algorithm, queue: simulation
1/25 infix, prefix, postfix; More stack applications: evaluate postfix, infix -> postfix 3.4
1/21 stack; stack applications 3.1 - 3.2 Trace of execution of Fibonacci function HW0121 (circular queue) / 1/28/2016
HW0121a: Self-Check 3.1 (p 152), 3.2 (p 161) / next class
1/19 queue, circular queue;
1/14 Implement a singly-linked list in 1D array, Doubly linked list, 2.11 - end HW0114: Self-Check 2.6 (p 103): 1 - 2
1/12 An intuitive introduction to Big Oh (Koffman 2.4)
Singly linked list
2.1 - 2.10 HW0112: Self-Check 2.5 (p 98): 1 - 5

HW0112a: Check your understanding of primitive variables versus dynamic variables (stack vs heap)
This image is a repeat of what we did in class on 1/7/16
This image gives the HW assignment

/ Due: next class
1/7 Course overview, expectations, linked list 1.1, 1.2, 1.3, 2.5, App B.1 HW0107 (sorted linked list) / next class





2. Projects

Assignment Assigned Due Notes
Big Oh for BST traversal 3/30/2016 4/11/2016
Priority queue: job scheduling 3/8/2016 3/29/2016
Multiple Server, Single Queue 1/29/2016 2/18/2016



3. Quizzes and Tests


4. Resources


5. Possibly useful papers


6. Code snippets
Last changed: