♦   Welcome to CIS 321 — Data and File Structures   ♦ 
	
	 
       
       
       
    
		
			| Weeks | Topics | Resources | Suggested Readings | Special Days | Important Dates | HAs | Projects | Exams | 
		
			| #1 1/8-1/12
 | 1/08 Mon Add/Drop and Late Registration via RAIL or at Ikenberry Hall, 9:00 am-4:00 pm. 1/12 Fri Last Day to Add/Drop or Late Register via RAIL or at Ikenberry Hall, 9:00 am-4:00 pm. | Assignment 1 
 Example Solution. There are many ways to program this assignment.
 | 
		
			| #2 1/15-1/19
 | 
				Classes and objects/instances.Abstract classes, interfaces, and inheritance in Java.Dynamic binding and polymorphism in Java.Static members - attributes and methods.String class and methods.StringTokenizer, StringBuffer, and Character classes.In-class exercise - Integer operations.Readings - Related chapters of any Java textbook and/or chapter 1. 1/15 Mon Martin Luther King, Jr. Day – Holiday. 1/19 Fri Last Day for Instructor-Approved Late Adds via RAIL. | Assignment 2 
 Example Solution
 | 
		
			| #3 1/22-1/26
 | 
				Array lists or vectors and their advantages. Insertion, deletion, update, search, and traversal operations.ArrayList provides convenience with dynamic sizing and storing different types of objects.Java ArrayList (or "deprecated" Vector) class. Operations/methods.Iterators and ListIterator interface (especially next, previous, add, set, and remove methods).Introduction to Java Collection Framework.Generics and generic ArrayList."Sort the List" exercise. Example solution.Implementation of an Integer-based ArrayList. Example solution.Readings - Chapter 2. |  | 
		
			| #4 1/29-2/2
 | 
				Efficiencies of operations/running times.A brief introduction to algorithms and algorithm efficiency. Big O notation.Single-linked, double-linked, circular lists, and their implementations.Java LinkedList class.Comparison of ArrayList and LinkedList.Implementation of a String-based linked list. Example answer.Readings - Chapter 2. | Exam 1 on Wednesday Morning. Covering weeks 1-3. | 
		|  | 
		
			| #5 2/5-2/9
 | 
				Stacks: Applications, concepts, and basic operations: push, pop, and peek.Java Stack class. Push, pop, peek, empty, and search methods.Example stack applications - Finding palindromes and pairing parentheses.Stack implementation.
					Array based stack.Linked (Array) list based stack.A linked stack implementation → Assignment 3. Readings - Chapter 3. | Assignment 3 
 Example Solution
 | 
		
			| #6 2/12-2/16
 | 
				Queues: Applications, concepts, and basic operations: enqueue and dequeue.Java Queue interface.Implementation methods of queues - array, list, or linked structure.
					Implementing a queue class using a LinkedList and a linked structure.Example solution - ListQueue.Example solution - LinkedQueue. Concept of priority queue. Implementation - optional.Readings - Chapter 4. |  | 
		
			| #7 2/19-2/23
 | 
				Recursion review and examples.Recursion exercises on lists. Sample solutions - ArrayList. LinkedList.Concepts of trees. Nonlinear structure. One predecessor and multiple successors. Applications of tree structures.Node, root, parent, child, ancestor, descendant, sibling, height, and level.Binary trees. Full, complete, and perfect binary trees. Height of a perfect binary tree.Readings - Chapters 5, 6. Mid-term Exam Week. 2/23 Fri Last Day to Apply for August and December 2018 Graduation (Registrar’s Office). | Exam 2 on Wednesday Morning. Covering weeks 4-6. | 
		|  | 
		
			| #8 2/26-3/2
 | 
				Binary search and binary search trees. Recursive definition.Binary search using a sorted array or list.Binary tree traversals: pre-order, in-order, and post-order.Case study - Binary expression trees.Exercises on traversal methods and expression trees.Readings - Chapters 6. | Assignment 4 | 
		
			| #9 3/5-3/9
 | 
				Java TreeSet class.Implementation of generic binary trees. Example solution.Heaps. Definition, basic operations with running times, and applications.Readings - Chapters 6. 3/9 Fri Last Day to Withdraw from a Full Semester Class — See Advisor by Noon. |  | 
		
			| #10 3/12-3/16
 | Spring Break |  | 
		
			| #11 3/19-3/23
 | 
				Implementation of an integer-based heap.Implementing heap sort. Example solution.“Comparable” interface and “compareTo” method.Implementation of a generic heap.Java PriorityQueue class.Implementation of priority queues using heaps.Readings - Chapters 6. 3/19 Mon First Day of Summer 2018 RAIL Registration for Continuing Students, 9:00 am-4:00 pm. 3/21 Wed First Day of Academic Advisement for Continuing Students for Fall 2018. | Assignment 5 | 
		
			| #12 3/26-3/30
 | 
				Sets and Maps. HashSet and HashMap classes.Hash tables and Hashtable class.Readings - Chapters 7. | Exam 3 on Wednesday Morning. Covering weeks 7-11. | 
		|  | 
		
			| #13 4/2-4/6
 | 
				Implement a hash table using open addressing and separate chaining.Hash table implementation programs.Comparison-based sorting methods.Selection sort, bubble sort, and insertion sort.Implementation of quadratic sorting methods with nested loops.Readings - Chapters 7, 8. 4/2 Mon First Day of Fall 2018 RAIL Registration for Continuing Students, 9:00 am-4:00 pm. 4/4 Wed Last Day of Academic Advisement for Continuing Students for Fall 2018. | Assignment 6 | 
		
			| #14 4/9-4/13
 | 
				Heap sort, merge sort, and quick sort.Recursive definitions of merge sort and quick sort.Implementation of quick sort.Java Arrays.sort method.Readings - Chapters 8. |  | 
		
			| #15 4/16-4/20
 | 
				Basic graph concepts. Definition and representation of graphs.Weighted and directed graphs.Implementation of graphs. Adjacency matrix and lists.Depth-first traversal and breadth-first traversal. Depth-first and breath-first traversal trees.Algorithms for weighted graphs. Minimum spanning trees. Kruskal’s and Prim’s algorithms.Shortest paths in directed & weighted graphs. Dijkstra's algorithm.Final exam review.Readings - Chapters 10. 4/20 Fri McMurran Scholars Convocation; Last Day of Classes; Last Day for Complete Withdrawal from Semester. |  | 
		
			| #16 4/23-4/27
 | Final Exam Week. | Final Exam -12 – 2 pm,
 4/25, Wednesday.
 |