**CS 3385 Data Structures and Algorithms: 3 semester hours.**

Course Description:

The design, construction, and analysis of data structures. Abstract data types, lists, stacks, queues, trees, and graphs. Sorting, searching, hashing, Theory. Includes significant coding projects. Uses Linux. PREREQ: CS 2282, CS 2275 and (CS/MATH 1187 or MATH 2287 or MATH 2240). S

Instructor:

Vtivit Kantrabuntra

Prerequisites:

PREREQ: CS 2282, CS 2275 and (CS/MATH 1187 or MATH 2287 or MATH 2240).

Textbooks:

Cormen, Thomas, Charles Leiserson, Ronald Rivest, and Clifford Stein. Introduction to Algorithms. 3rd ed. MIT Press, 2009. ISBN: 9780262033848.

Lectures and Homework:

Three 50 minute sessions three times a week. You are responsible for all material presented during lecture.

I will assign seven problem sets during the course of the semester. Each problem set will consist of a programming assignment to be completed and turned in about a week later at the beginning of class.

If you collaborate with others in any fashion, you must list their names as collaborators. For details, please see the section on our collaboration policy; we take this very seriously.

Grading:

Grade percentages as follows:

70% Homework

30% Exams

Your final grade will be determined by the grades you receive on problem sets, on quizzes, and on the final.

Collaboration Policy:

Collaboration is highly encouraged. Plagiarism is not allowed. If you work with another student, you must cite their name. If you used any resources, you must also cite the source. Plagiarism will result in failing the course and or academic consequences.

Course outline:

Depending on time and course depth, below is the proposed course outline on what we will cover.

Unit 1: Peak finding

Unit 2: Sorting and trees

A. Heaps

B. Merge

C. Insertion

D. Binary tress

E. AVL trees

Unit 3: Graphs and shortest paths

A. Shortest path

B. Dijkstra

C. Bellman-Ford