Introduction to Design and Analysis of Algorithms

CS 317 – Spring 2005

Syllabus

 

Instructor:          Dr. Ramazan Aygün

Office:               Technology Hall N360

Email:               raygun@cs.uah.edu

Phone:              824-6455

Office Hours:     MW 5:20-6:20

Meeting day(s):  MW 3:55-5:15

Location:           N308

 

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

 

Sara Baase and Allen Van Gelder, Computer Algorithms: Introduction to Design and Analysis,  Addison-Wesley, Third Edition

 

Course Outline

 

Title

Reading Chapters

Introduction to Design and Analysis of Algorithms;

Asymptotic Order of Computation

Example: Searching an Ordered Array

1.4

1.5

1.6

Recursive Procedures

Proofs and Induction Proofs

Recurrence Relations and Recurrence Trees

3.1, 3.2

3.3, 3.4

3.6, 3.7

Insertion Sort

Quick Sort

Merging and Merge Sort

Heap Sort

4.1, 4.2

4.3, 4.4

4.5, 4.6

4.8

Selection: Finding Max and Min

Finding Kth Largest Key

5.1, 5.2

5.3, 5.4

Representation of Graphs

Graph Traversal and Depth-First Search on Directed Graphs

Strongly Connected Components and Search in Undirected Graphs

7.1, 7.2

7.3, 7.4

7.5, 7.6

Prim’s Minimum Spanning Tree Algorithm

Dijkstra’s Shortest Path Algorithm

Kruskal’s Minimum Spanning Tree Algorithm

8.1, 8.2

8.3

8.4

Dynamic Programming

10.4

String Matching

Knuth-Morris-Pratt Algorithm

Boyer-Moore Algorithm

11.1, 11.2

11.3

11.4

 

Grading

 

25%      Homeworks and Programming Assignment

25%      Midterm 1

25%      Midterm 2

25%      Final, May 2nd Monday, 3:00-5:30

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.