Data Structures and Introduction to Algorithms
Instructor: Don SheehyEmail: donald@engr.uconn.edu
Class Meets: MWF 1:25-2:15 in Biology/Physics Building 131 (map)
Office Hours: MW 9-10am
Office: ITEB 361
TA: Abdullah Baihan, Nguyen Nhan, and Antonia Lewis (See Piazza for contact info and office hours)
Course description
This course discusses fundamental concepts of data structures and the algorithms that proceed from them. Topics to be covered include the implementation and use of linked lists, stacks, queues, trees, priority queues, heaps and graphs, with an emphasis on recursion, abstract data types, object-oriented design, and associated algorithms and complexity issues.
Resources
Book: Data Structures and Algorithms in Java (6th Edition)
Discussion: We will use Piazza for discussion.
Submission: We will use Mimir for assignment submission.
Official Announcements and Grades: We will use the HuskyCT system available at lms.uconn.edu.
Policies
See the Course Policies.
Lecture Schedule
Note: reading sections are listed in parentheses referring to 6th edition of the book.- 31-Aug Java Primer (1, 2)
- 2-Sep Arrays, Lists, and Doubly-Linked Lists (3)
- 4-Sep List exercises: equivalence and cloning (3.5, 3.6)
- 7-Sep NO CLASS
- 9-Sep Recursion (5)
- 11-Sep Recursion and Design patterns exercises
- 14-Sep Stacks, Queue's and Deques (6)
- 16-Sep Abstract Lists (7)
- 18-Sep Stacks, Queue's and Deques Exercises (7.7)
- 21-Sep Trees 1 (8.1, 8.2)
- 23-Sep Trees 2 (8.3, 8.4)
- 25-Sep Trees 3 with exercises
- 28-Sep Priority Queues (9)
- 30-Sep More on Heaps and Priority Queues (9.5, 9.6)
- 2-Oct Midterm 1 Review
- 5-Oct Midterm 1
- 7-Oct Maps (10.1)
- 9-Oct Hash Tables (10.2)
- 12-Oct Sorted Maps (and Sets)
- 14-Oct Binary Search trees (11.1, 11.2)
- 16-Oct Balanced Binary Search trees (11.1, 11.2)
- 19-Oct AVL Trees
- 21-Oct Splay Trees (11.4)
- 23-Oct Online Assignment in lieu of class: Hash Tables, Balanced Binary Search Trees, and Object-Oriented Programming
- 26-Oct Sorting: Divide and Conquer, MergeSort (12.1)
- 28-Oct Sorting: QuickSort (12.2)
- 30-Oct Sorting Lower Bounds and Radix Sort (12.3)
- 2-Nov Comparing Sorting Algorithms (12.4)
- 4-Nov Selection (12.5)
- 6-Nov Midterm 2 review
- 9-Nov Midterm 2
- 11-Nov Text Processing, pattern Matching (13.1, 13.2)
- 13-Nov Tries (13.3)
- 16-Nov Suffix Trees (13.3)
- 18-Nov Dynamic Programming (13.5)
- 20-Nov More Dynamic Programming (13.5)
- 23-Nov NO CLASS
- 25-Nov NO CLASS
- 27-Nov NO CLASS
- 30-Nov Graphs and Definitions (14.1)
- 2-Dec The Graph ADT (14.2)
- 4-Dec Graphs Traversal DFS and BFS (14.3)
- 7-Dec Single Source Shortest Paths (14.6)
- 9-Dec Minimum Spanning Trees (14.7)
- 11-Dec Course Review