Introduction to Design and Analysis of Algorithms

CS 317 Section 02 – Spring 2006

Syllabus

 

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

 

Objective

 

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.

 

Prerequisites

 

MA244, CS214, and CS221.

 

Required Texts

 

Anany Levitin, Introduction to The Design & Analysis of Algorithms, Addison-Wesley, 2003

 

Course Outline

 

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

 

 

Grading

 

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

Notes

 

 

 

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.