SY00451_.wmf (15996 bytes) 4005 800  -- Theory of Computer Algorithms

Spring 2004-05

Instructor: Dr. Leon Reznik   Contact Information

All electronic communication regarding this course should be directed to vcsg800@cs.rit.edu

Please, note this page is under the development. All information is provisional and could be changed at any time without any notice.

What do I have to do now?

by 03/15 pick up a topic for your further research/presentation. It should be one of the topics listed in the second part of the course. You have to find out how this particular algorithm type is used in sensor networks. To accomplish this you have to do a bibliography search/review by using our library and electronic resources.

Based on your search and a review you have to produce a research paper (at least 8-10 pages), which describes an algorithm application in sensor networks. The paper needs to be submitted by week 10. You have to make a presentation based on your research as scheduled within weeks 8- 10. You have to make another presentation, which introduces your algorithm type to the class and teaches about it.

Course Objectives

This course is designed to teach you how to design and program algorithms efficiently. It assumes that

Textbook.

Introduction to Algorithms (MIT Electrical Engineering and Computer Science) MA, 2nd Edition
by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest
at amazon.com (http://www.amazon.com/exec/obidos/ASIN/0262031418/103-1470621-3263011) List Price: $69.95 Used Price:
from $18.60

(prices are valid as of 03/03/04)

Good comprehensive book (could be used for references later on)

 L. Reznik Fuzzy Controllers Newnes-Butterworth-Heinemann 1997

Good introductory book (if we have time)

 

Tutorials. Problem solving.

A few tutorials and problem solving sessions will be organized to help the students better understand the material.

 

Programming language and skills

I realize that students in my class may have different programming language/skills backgrounds. In order to overcome any possibility of disadvantage I will try to use pseudo-code as much as possible in my lectures and tutorials. However, students are assumed to have some knowledge and practical skills of using at least one programming language and apply them in their project design and implementation.

Programming operating environment

Students are assumed to have some knowledge and practical skills of operating within at least one environment (e.g. MS-Windows, Unix, Linux).

Standards of Conduct

You are expected to conduct yourself in a professional and courteous manner, as prescribed by the Standards of Conduct. Graded work, e.g., homework and tests, is to be done independently and should be unmistakably your own work, although you may discuss your project with other students in a general way. In a group project you may discuss distribution of your work within the group with your peers, however you should report your decision at the start of your project and your actual share at the end.

You may not represent as your own work material that is transcribed or copied from another person, book, or other source, e.g., a web page. Professors are required to report academic dishonesty.

Course contents:

Introductory topics (to be introduced by the instructor, studied and presented by the students)

Ref. reading

Time Student present Homework

Topic # 1

Algorithms and ADTs and their role in computing

Chapter 1

week 1

Topic # 2

Introduction to algorithm analysis. Sensor networks

Chapter 2

week 1

Topic # 3

Mathematical foundations of algorithm analysis

Chapter 3

week 2 Tues Guest lecture: Bibliography review and search in algorithms

Topic # 4

Recurrences

Chapter 4

week 2 Thur

Topic # 5

Heapsort

Chapter 6

week 3 Tues Hardik + Soujanya

Topic # 6

Quicksort

Chapter 7

week 3 Tues Sneha + Dave

Topic # 7

Linear time sorting

Chapter 8

week 3 Thur

Topic # 8

Hashing

Chapter 11

week 3 Thur Durgesh + Israth

Topic # 9

Introduction to trees

Chapter 12

week 4 Tues Victor
Topic # 10 Huffman codes and trees Chapter 16.3 week 4 Thur removed
Topic description of research and project (1-2 p. each) due week 3
Mid-semester test No. 1 week 4 Thur

Advanced topics (to be discussed and studied in greater detail)

 

Topic #11 Dynamic programming: the longest possible sequence Chapter 15.4+ week 5 Tues removed

Topic # 12

String matching. Basic algorithms.

Chapter 32+

week 5 Thur Shiranchal

Topic # 13

Rabin-Karp algorithm.

Chapter 32.2+

week 5 Thur Chris + Chiraq

Topic # 14

Knuth-Morris-Pratt and Boyer-Moore algorithms.

Chapter 32.4+

week 6 Tues Ed + Brandon

Topic # 15

Introduction to graph algorithms, applications

Chapter 22 +

week 6 Tues Sneha + Dave

Topic # 16

Minimum spanning tree, Kruskal's and Prim's algorithms, applications in networking

Chapter 23 +

week 7 Tues Hardik + Soujanya

Topic # 17

Shortest path, Dijkstra's algorithm, applications

Chapter 24 +

week 7 Tues Adarsh, Durgesh + Israth

Topic # 18

Maximum network flow, Ford-Fulkerson method

 Chapter 26.1-2

week 6 Thur Dave M + Borshin

Topic # 19

Polynomial time completeness

 Chapt. 34.1-2

week 7 Thur Ray + Jacob
Topic #20 NP-Completeness and reducibility Chapter 34.3 week 7 Thur MY PRESENTATION
Topic #21 NP- Complete problems Chapter 34.5 week 8 Tues Dan
Topic # 22 Algorithm coding in Java: review and tips CD attachment week 8 Tues removed
Mid-semester test No. 2 week 8 Thur
Topic # 23 AI and soft computing algorithms week 9 Alex + Karthik + James, Sherif
Research and projects week 9 -10

(see below)

Assessment

Homework

15%

Topic preparation No. 1 and presentation

8%

Topic preparation No. 2 and presentation

Research topic (paper and presentation)  

12%

25%

Midterm test No.1

15 %

Midterm test No. 2 25 %

Student presentations

Please, see some advise how to prepare, make and review your presentation here.

week 9 Tuesday week 9 Thursday week 10 Tuesday week 10 Thursday
Sherif James K Chris Jake
Alex Dave + Sneha Victor Dave M
Ray Adarsh Hardik & Soni Borshin
Karthik Shiranchal Dan
Brandon Sam
Chirag