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

smh: COSC 311 Algorithms and Data Structures
FALL 2019


0. Basics
  1. Time & Place: T R 2:00 - 3:50 pm; 203 P-H

  2. CRN: 14246

  3. Required Textbook:
    Drozdek, Adam; Data Structures and Algorithms, 4th Edition,
    2013, Cengage Learning, ISBN-10: 9814392782

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

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


  6. Looking to go beyond? Check out this excellent free book on algorithms (2nd course): http://jeffe.cs.illinois.edu/teaching/

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

  8. Syllabus

  9. Original Calendar UNDER CONSTRUCTION

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

  11. Office Hours:
      M 3 - 5:30
      T 1 - 2, 4 - 5
      W 2 - 5:30
      R 1 - 2, 4 - 5



1. Lectures
Date Topic Read
11/19 Priority queue Drozdek: 6.9
11/14 Extendible hashing, file and HD structure Drozdek: 10.6.1
Extendible hashing write-up
Random Access File simple example (in C)
Random Access File, a somewhat more involved example (in Java) using record-oriented I/O:
      the driver
      Record class
      File access
11/5 Hashing Drozdek: 10.1, 10.2, 10.3, 10.4, 10.5
10/24 Skip list, kD tree Drozdek 3.4 (skiplist), Drozdek: 6.11 (kD tree)
10/17 Self-Adjusting Trees: AVL tree, Splay tree D: 6. 7.2, D: 6.8.2
NotesOnAVL.html
AVL rotations
Splay tree: nuts & bolts
10/10 Trees D: 6.1, D: 6.2, D: 6.3, D:6.4 (traversals)
10/1 10/3 Recursion D: 5.1 "Recursive Definitions"
D: 5.2 "Method Calls and Recursion Implementation"
D: 5.3 "Anatomy of a recursive call"
D: 5.4 "Tail Recursion"
D: 5.5 "Nontail Recursion"
9/26 Stack algorithms
Stack Algorithms (pseudocode)
Expression Tree Traversal: inorder (L n R), postorder (L R n), preorder (n L R)
Method call/return (using stack)
http://people.cs.ksu.edu/~schmidt/300s05/Lectures/Week3.html
https://www.cpp.edu/~ftang/courses/CS240/lectures/stack.htm
https://web.ics.purdue.edu/~elgamala/ECE368/Notes8.pdf
9/24 Stack https://www.cs.cmu.edu/~adamchik/15-121/lectures/Stacks%20and%20Queues/Stacks%20and%20Queues.html
https://introcs.cs.princeton.edu/java/43stack/
http://www.bowdoin.edu/~ltoma/teaching/cs210/fall08/Slides/210-stacksAndQueues.pdf
http://www.eecs.umich.edu/courses/eecs380/ALG/stacks.html
9/19 Queue, circular queue Circular queue implemented in array
9/17 Reviewing T(n), O(g(n)), doubly-linked list,
Queue data structure
applications: simulation, round-robin scheduling
9/10 Singly-linked list, simple counting
9/5 First day, orientation, counting https://cs.lmu.edu/~ray/notes/alganalysis/
Especially from beginning to (including) "Time Complexity Classes", and program PrimeTimer.java



2. Homework
Identifier Distributed Due Description
hw1114 -- hashing to a file 11/14 11/19 Same as hw1105, except (1)hashing to random access file, and
(2) collisions discarded
hw1105 -- hashing 11/5 11/12
hw1015 -- binary and BST questions 10/15 10/22
hw0926a -- palindrome 9/26 10/3 10/8 test palindrome
hw0926 -- Tracing call/return 9/26 10/1 10/3 Trace changes to run time stack
Postfix/Infix Practice 9/24 Not graded - do not turn in postfix/infix practice
hw0919 - queue -- written problems 9/19 9/24 queue exercises
hw0912 - singly linked ordered list 9/12/2019 9/19/2019 insert and delete from ordered linked list



3. Projects

Identifier Distributed Due Description
pp1008 10/8 10/29 Queue simulation



4. Quizzes and Tests
quiz q1010 - recursion tracing
quiz q1003 - stack algorithm
ungraded quiz q0926 - infix, postfix, prefix
quiz q0917 - T(n), O(g(n)), doubly linked list
quiz q0910 - elementary counting
Resources


Possibly useful papers


Code snippets
Last changed: