CSE 2320 - ALGORITHMS & DATA STRUCTURES

Spring 2011
Lectures: Tuesdays and Thursdays, 11:00am-12:20pm
Instructor: Dimitrios Kosmopoulos


Spring 2011 Syllabus PDF

Instructor:
Dimitrios Kosmopoulos
E-mail: kosmopo  uta  edu  
Office:  ERB644
Office hours: TuTh 12:30pm-2:30pm
Teaching assistant:
Sujoy Bhattacharya
E-mail: sujoy.bhattacharya  mavs  uta   edu
Office:  ERB560
Office hours:  MoWe 3:00-5:00pm


Recent Announcements:

5/12/11 Final exams solutions available


Class Schedule

Lecture         Date         Topic Textbook Readings Extra Material
1 Tue 01/18 Data models, data structures, algorithms Chapter 1  
2 Thu 01/20 Algorithm example: Union-Find Chapter 1  - Case Study,
- Union/Find Algorithm Visualization
3 Tue 01/25 Function growth, O-notation, recurrences Chapter 2 - Video about exponential growth,
4 Thu 01/27 Examples Chapter 2

- Big O notation animation

Analysis Example

5 Tue 02/08 Stacks and queues Chapter 4

- Implementation Example,
- Visualizations (stack, queue)

6 Thu 02/10 Recursion and dynamic programming Chapter 5 - Fibonacci.java
- DynamicFibonacci.java
- Stopwatch.java
7 Tue 02/15 Trees Chapter 5  
8 Thu 02/17 Elementary Sorting Algorithms

Bubblesort and comparison

Chapter 6 - Implementation Example,
- Visualizations, Video
9 Tue 02/22 Quicksort Chapter 7 - Implementation Example,
- Visualizations
  Thu 02/24 FIRST EXAM (Lectures 1-7)
10 Tue 03/01 Quicksort improvements Chapter 7  
11 Thu 03/03 Quicksort (cont.) Chapter 7  
12 Tue 03/08 Mergesort, appendix Chapter 8 - Implementation Example,
- Visualizations
13 Thu 03/10 Heaps and Priority Queues Chapter 9 - Implementation Example,
- Tutorial & Visualizations
14 Tue 03/22 Symbol Tables and binary search Chapter 12  
15 Thu 03/24 Binary search trees Chapter 12 - BST Example
16 Tue 03/29 Binary search trees (cont) Chapter 12  
17 Thu 03/31 Balanced Trees Chapter 13, 16.1-16.3 - LLRB Trees tutorial
18 Tue 04/05 Hashing Chapter 14 - Tutorial and Visualizations
19 Thu 04/07 Hashing (cont)    
20 Tue 04/12 Data Compression - - Huffman Encoding Tutorial
- Lecture source code
- Thu 04/14 SECOND EXAM (Lectures 8-19)
22 Tue 04/19 Undirected Graphs Chapter 17-18  
23 Thu 04/21 Undirected Graphs (cont)    
24 Tue 04/26 Directed Graphs Chapter 19 - Visualizations
25 Thu 04/28 Minimum Spanning Trees Chapter 20  
26 Tue 05/03 Shortest Paths Chapter 21 - Visualizations
27 Thu 05/05 Shortest Paths (cont)   -
- Tue 05/10 THIRD EXAM (Comprehensive)

Acknowledgement: Many of the course slides are based on Sedgewick's and Wayne's original version of the slides with proper modifications where necessary. The original version of the slides can be found here.


Homeworks

Submission instructions


Homework 1   Solutions (.docx), Solutions (.pdf)

Homework 2  Solutions (.pdf)

Homework 3  Solutions (.pdf)

Practice Homeworks

Practice homework for lectures 1-2: (Questions, Answers )

Practice homework for chapters 4, 6, 7: (Questions + Answers)

Practice homework for chapter 8 (Questions + Answers)

Practice homework for chapters 9-16 (Questions + Answers)

Practice homework for chapters 18-21 (Questions + Answers)

Note: Use practice homeworks to prepare for the deliverable homeworks and the exams. The work of  V. Metsis to prepare many of the solutions is acknowledged.


Labs

Submission instructions

Programming Assignment 1  

Programming Assignment 2 - ABET Assessment Project Due 3rd May 10:45

 


Tests

Test1 + solutions

Test2  solutions

Test3 + solutions


Code - Java

Implementations of algorithms and clients used in the slides can be found here.
Some of the implementations make use of the java library stdlib.jar which provides auxiliary classes for input, output etc. The library can be found at the link above. If you want to run your programs from the command line you can use the jar files stdlib.jar and algs4.jar following the instructions in the link above. If you want to use them in Netbeans or any other IDE you can download the bundle princeton.jar that includes everything.

Textbook code: