Computer Science 313 (Data Structures) Spring 2018
Preliminary Version: under construction.
All content here is subject to change.
Handouts and programs from class will be added over
the course of the semester.
- Syllabus
-
Midterm 1 will be in class on Thursday 03-22-18.
-
The project is posted on Blckboard as well as here. Please submit to the blackboard and
do not email it tom me. Thank you.
Instructions for the project.
-
Midterm 2 will be in class on Thursday 05-10-18.
-
The final exam has been scheduled by Queens College. It will be
on Thursday 05-24-18 from 8:30am to 10:30am.
Note: This date and time might be changed by the College during the semester.
- Planned class topics and links to code from class (subject to minor change):
- 01-30-18
Introduction: ADTs, Data structures.
Java review: Generic classes in Java.
Example Code on Generics
- 02-01-18
Java Review: Inheritance, abstract classes and interfaces, Java object semantics.
Example Code on Objects, Classes and Interfaces
- 02-06-18
Quiz 1 (On Java review topics).
Nodes and lists of nodes. Chapter 3.
Node Code
- 02-08-18
Linked List data structures (singly and doubly linked).
Chapter 3.
Linked List Code
- Review questions on linked lists.
Solutions.
- 02-13-18
Quiz 2 (On nodes and lists).
CS220 Review: O-analysis and recursion. Chapters 4 and 5.
Good use of Recursion Code
- 02-15-18
The Master theorem for O-analysis of recursion (additional to Chapter 5).
Bad use of Recursion Code
- Review questions on O notation and the Master theorem.
Solutions.
- 02-22-18
Quiz 3 (On O-analysis and the Master Theorem).
The Stack ADT, Stack applications. Chapter 6.
Stack Code
- 02-27-18
Stack implementations. Chapter 6.
Stack Code
- 03-01-18
The Queue ADT, circular array implementation. Chapter 6.
Queue Code
- 03-06-18
The Iterator and Iterable interface in Java. Chapter 7.
Iterator Code
- Review questions on Stacks and Queues.
Solutions.
- 03-08-18
Quiz 4 (On Stacks, Queues, Iterators).
Tree data structures. An abstract Tree class with some methods. Chapter 8.
Tree Code
General Tree Gui, jar file
- 03-13-18
General Tree Implementation. Chapter 8.
General Tree Code
- 03-15-18
Binary Trees, Linked Implementation. Chapter 8.
Binary Tree Code
&emsp:
Binary Tree Gui, jar file
- 03-20-18
Tree traversals. Chapter 8.
- Review questions on General and Binary Trees.
Solutions.
- 03-22-18
Midterm 1
- 03-27-18
The priority queue ADT. Simple implementations.
Chapter 9.
Priority Queue Code
- 03-29-18
Heap implementation of a priority queue. Chapter 9.
Priority Queue Code
Heap Gui, jar file
- Review questions on Heaps and Priority Queues.
Solutions.
- 04-10-18
Quiz 5 (On Priority Queues).
Programming Project Discussion
Project
- 04-12-18
The Set and Map ADTs. Map as a Set adapter. Map applications. Chapter 10.
Map and Set Code
Map Application Code
- 04-17-18
Chained Hash tables. Chapter 10.
Chained Hash Table Code
- 04-19-18
Hash tables with open addressing. Chapter 10.
Open Addressing Hash Table Code
- Review questions on Hashing.
Solutions.
- 04-24-18
Quiz 6 (On Hashing).
The TreeSet and TreeMap data structures.
Binary search trees. Section 11.1.
Binary Search Tree Code
Binary Search Tree Gui, jar file
- 04-26-18
AVL trees. Sections 11.2, 11.3.
AVL Tree Code
AVL Tree Gui, jar file
- 05-01-18
AVL trees. Sections 11.2, 11.3.
AVL Tree Code
- Review questions on Search Trees.
Solutions.
- 05-03-18
Quiz 7 (On Binary Search Trees and AVL Trees).
Sorting. Chapter 12.
Sorting Code
- 05-08-18
Catch up. Review. Additional Topics.
- 05-10-18
Midterm 2
- 05-15-18
Quiz 8 (On Sorting).
Catch up. Review. Additional Topics.
- Review questions on Data Structures in general.
Solutions.
- 05-24-18
Final Exam 08.30am-10.30am.