Intro to Algorithms

COMP 4030 and 6030 - Fall 2000

 

Time: 11:20 - 12:45, Tuesday and 11:20 - 12:45, Thursday

Room: 203 Dunn Hall

Instructor: Robert Kozma

 

Introduction

Asymptotic behavior of programs, basic paradigms in algorithm design: divide-and-conquer, greedy, backtracking, dynamic programming. Analysis of efficiency and optimality of representative algorithms, including graph, pattern matching, numerical, randomized, and approximation algorithms. Approaches to lower bound analysis. Basics of NP completeness, parallelism and connectionism. PREREQUISITE COMP 2150.

Evaluation

Evaluation will be viewed as a continuous two-sided feedback process, which (a) allows students to assess themselves about their progress in learning the material/understanding the issues; and (b) allows the instructor to assess how well he is fostering the communication process with and among students. Students are expected to automatically read relevant chapters in the textbook and the supplementary references as indicated in the syllabus before the corresponding topics are discussed in class. Further reading assignments will also be announced at least two lectures in advance. After completing this course, students are expected to be familiar with the introduced major algorithms and concepts and able to use and evaluate them in problems related to design of algorithms.

Final Grades:

15%: Class Participation

25%: Homeworks (5x)

15%: Midterm test (Oct. 31)

45%: Project parts:

5%: Proposal (due Oct.12);

20%: Written part (due Dec. 5);

20%: Presentations (Nov. 28, 30, Dec. 5).

Homeworks: All homeworks are due on the given day (9/12, 9/26, 10/17, 10/31, 11/14) at the start of the class.

 

Syllabus

August 29 Orientation

August 31 Introduction, overview

September 5 Recursion, Induction

September 7 Sorting 1

September 12 Sorting 2

September 14 Sorting 3

September 19 Searching 1

September 21 Searching 1

September 26 Graphs, optimization

September 28 Graphs and backtracking

October 3 Greedy Algorithm

October 5 Transitive closure

--- Fall Break ---

October 12 Dynamic programming 1

October 17 Dynamic programming 2

October 19 Dynamic programming 3

October 24 String matching

October 26 Polynomials and matrices

October 31 Complexity

November 2 NP completeness 1

November 7 Knapsack problem, traveling salesman problem

November 9 Parallel Algorithms

November 14 Connectionism, algorithmic

November 16 Connectionism and intelligence

November 21 Holiday: Thanksgiving

November 23 Project overview

November 28 Project presentations 1

November 30 Project presentations 2

December 5 Project presentations 3

 

MAIN REFERENCES

Textbooks:

S. Baase & A. Van Gelden, Computer Algorithms - Introduction to Design & Analyis, Addison-Wesley, 2000, 3rd Edition

T.H. Cormen, C.E. Leiserson, and R.L. Rivest, Analysis of Algorithms, The MIT Press/McGraw Hill, 1990.

F. Harary, Graph Theory, Addison Wesley, 1972.

R.E. Bellman, S.E. Dreyfus, Applied Dynamic Programming, Princeton University Press, 1962.

G.L. Nemhauser, Introduction to Dynamic Programming, John Wiley & Sons, 1966.

Journals:

Algorithmica

Journal of Algorithms

Journal of Experimental Algorithms

Journal of the ACM

Special Publications:

See instructor about these during the course