Daily class schedule

CSCI 151
Data Structures
Fall, 2018

week
M
W
F
reading in Weiss
9/5-9/7
Labor Day
Data structures, algorithms, and abstractions.
Java basics. 1, 2
9/10-9/14
More Java basics:  Statements. More statements.  Methods, Scanners, and Strings.
Arrays and ArrayLists.  Object-oriented programming in Java. 
3, 4
9/17-9/21
Using objects.  Writing class definitions.  Inheritance.
Yom Kippur (no class)
Abstract classes and interfaces.  Abstract data types. 
15, 16
9/24-9/28
The Stack ADT.  Balanced symbol checker.
Visibility.  Exceptions.  Infix, postfix, and prefix notation for arithmetic expressions.  Algorithm for evaluating a postfix expression.  Infix to postfix algorithm.  Algorithms for processing arithmetic expressions.  Stack Implementations. 6, 11
10/1-10/5
Queues.  Queue implementations.  Deques.  Introduction to algorithm analysis. Asymptotic analysis.  Big-oh notation.  Algorithm analysis examples. Analysis of stack and queue operations.  Java Collections.  List ADT.  Linked lists.  Iterators. 5, 6, 17
10/8-10/12
Singly linked lists.  Linked list implementation. Doubly linked lists.  Sentinel Nodes. Recursion. 7
10/15-10/19
Review for exam
Midterm Exam
Trees.  Basic terminology.  Binary trees.  Expression trees.  Tree traversals. 18
10/20-10/28
Fall Break
10/29-11/2
Implementing binary trees.  Analysis of tree traversal algorithms.  Implementing nonbinary trees. Preorder traversal of a nonbinary tree.  Cloning a binary tree.  Binary search trees. Binary search tree insertion. Balanced binary search trees.  AVL trees. 19.1-19.4
11/5-11/9
AVL tree insertion.  Red-black trees. The Set and Map ADTs.  Map applications and implementations.  B-trees. 2-3 tree insertion algorithm.  Priority queue ADT.  Binary heap implementation. 19.5, 19.7-19.8, 21
11/12-11/16
siftup and siftdown algorithms.  Priority queue add and remove using a binary heap.  Heapsort.
Tries. Huffman trees. 12, 20.1-20.1
11/19-11/23
Introduction to hashing.  Hash function design. Collision handling.  Open addressing.  Linear probing.  Quadratic probing.  Double hashing. Thanksgiving (no class)
20.3-20.7
11/26-11/30
Hash tables with chaining.  Hash table performance.
Introduction to graphs.  Graph representations.  Graph traversals. Shortest path algorithms. 14
12/3-12/7
Directed acyclic graphs.
Minimum spanning trees. Sorting.  Elementary sorting methods (bubble sort, selection sort, insertion sort).  Merge sort. 24, 8.1-8.3
12/10-12/14
Heapsort, quicksort, radix sort Review for final exam Reading period (no class)
8.4-8.5
12/17-12/21
Final exam:  Wednesday, December 19, 2-4 pm