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