Introduction to Design and Analysis of Algorithms
CS 317 Section 02 – Spring 2006
Instructor: Dr. Ramazan Aygün
Office: Technology Hall N360
Email: raygun@cs.uah.edu
Phone: 824-6455
Office Hours: Tuesday 15:50-17:20 and Wednesday 14:30-15:00
Meeting day(s): TR 11:10-12:30
Location: N324
The objective of this course is to introduce the student to the fundamental concepts necessary for the design and analysis of algorithms with examples from searching, sorting, and graphs.
MA244, CS214, and CS221.
Anany Levitin, Introduction to The Design & Analysis of Algorithms, Addison-Wesley, 2003
Title |
Reading Chapters |
Introduction to Design and Analysis of Algorithms; |
1.1, 1.2, 1.3 |
Analysis
Framework; Asymptotic Notations Mathematical
Analysis of Nonrecursive Algorithms Mathematical
Analysis of Recursive Algorithms Examples; Empirical Analysis |
2.1, 2.2 2.3 2.4 2.5, 2.6 |
Brute-Force Selection
and Bubble Sort; Sequential Search and String Matching Exhaustive Search |
3.1, 3.2 3.4 |
Divide-and-Conquer MergeSort and QuickSort Binary
Search and Binary Tree Traversal Strassen’s Matrix Multiplication |
4.1, 4.2 4.3, 4.4 4.5 |
Decrease-and-Conquer Insertion
Sort; Depth-First and Breadth-First Search Generating
Combinatorial Objects; Median Problem |
5.1, 5.2 5.4, 5.6 |
Transform-and-Conquer Presorting;
Heapsort Horner’s Rule
and Binary Exponentiation; Problem Reduction |
6.1, 6.4 6.5, 6.6 |
Space and Time Tradeoffs Sorting
by Counting; String Matching Hashing |
7.1, 7.2 7.3 |
Dynamic Programming Binomial
Coefficients; Warrshall’s and Floyd’s Algorithms Knapsack Problem |
8.1, 8.2 8.4 |
Greedy Technique Prim’s and Kruskal’s Minimum Spanning Tree Algorithms Dijkstra’s Shortest Path Algorithm; Huffman Trees |
9.1, 9.2 9.3, 9.4 |
Lower-Bounds;
P, NP, and NP-complete Problems |
10.1, 10.3 |
Backtracking
(n-Queens Problem); Branch-and-Bound (Knapsack) |
11.1, 11.2 |
25% Homeworks and Programming Assignment
25% Midterm 1, February 9th, Thursday
25% Midterm 2, March 14th, Tuesday
25% Final, April 27th Thursday, 11:30-14:00
The following information is from http://www.uah.edu/library/turnitin/about.htm: “Turnitin.com allows the student or educator to upload a paper into the Turnitin.com database, where software will then use algorithms to create “digital fingerprints” that can identify similar patterns in text (“About Turnitin.com”). Then the paper is matched to billions of web pages, paper mill essays, and student papers submitted online. In an hour or less, Turnitin.com creates an “originality report” that highlights any passages from the paper that might not be authentic, and lists web sites and other resources with content that matches that in the paper (“About Turnitin.com”).
Students can use Turnitin.com to:
•
Quickly track down sources used in their essays, minimizing the chance that
they will forget to cite sources.
• Learn about the concept of plagiarism and its consequences for the student,
course, and the academic community as a whole.
• Acquire tips on how to avoid both Internet and conventional plagiarism.
• Learn guidelines for proper citation.
• Gain strong research and writing skills.
• Clarify misunderstood concepts like fair use, public domain, and copyright
laws.”
For more information please visit http://www.uah.edu/library/turnitin/.
The students are urged to use turnitin.com before the submission of their papers. The instructor will use turnitin.com in the evaluation of the papers.