Daily class schedule

CSCI 151
Data Structures
Spring, 2018

week
M
W
F
readings in Weiss
2/5-2/9
Data structures, algorithms, and abstractions.
Java basics.

More Java basics:  Statements.
1, 2
2/12-2/16
Methods and Strings.  Arrays and ArrayLists.
Object-oriented programming in Java.  Abstract data types. Inheritance.  Abstract classes and interfaces.  Iterators.
3, 4
2/19-2/23
Stacks Scope of variables in Java.  Implementing a stack in an array. Infix, postfix, and prefix notation for arithmetic expressions.  Algorithms for processing arithmetic expressions. 16, 11
2/26-3/2
Infix to postfix algorithm. Exceptions.  Expressions as objects.  Introduction to algorithm analysis. Algorithm analysis continued.  Recurrence relations. Algorithm analysis examples. 5
3/5-3/9
Linked stack implementation. Queues.  Queue implementations.  Radix sort. Using the terminal.  Java queues.  Deques.  The List ADT. 13
3/12-3/16
Review for exam
Midterm Exam
Pass back exam.  Linked lists.
7, 10
3/19-3/23
Spring Break
3/26-3/30
List implementation.
Linked lists
Doubly linked lists.  Sentinel nodes.

4/2-4/6
Trees.  Basic terminology.  Binary trees.  Expression trees.  Tree traversals. Implementing binary trees.  Analysis of tree traversal algorithms.  Implementing nonbinary trees. The Map interface.  Map applications and implementations.  Binary search trees.
11,13,14
4/9-4/13
Balanced binary search trees.  AVL trees.
Red-black trees.  The Set interface.
B-trees.  2-3 trees.
12
4/16-4/20
Priority queue ADT.  Binary heaps.
Tries.  Huffman trees.
Introduction to hashing.  Hash function design.
Appendix E
4/23-4/27
Collision handling.  Open addressing.  Linear probing.  Quadratic probing.  Double hashing.
Hash tables with chaining.  Hash table performance.
Graphs.
15
4/30-5/4
Graphs.
Graphs.
Graphs.
9
5/7-5/11
Sorting.  Elementary sorting methods (bubble sort, selection sort, insertion sort).  Merge sort. Heapsort, quicksort, radix sort
Review for final exam
5/14-5-18
Final exam:  Wednesday, May 16, 7:00 pm