4005 800  Theory of Computer Algorithms
Spring 200405
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 810 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.
This course is designed to teach you
how to design and program algorithms efficiently. It assumes that
by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest
at amazon.com (http://www.amazon.com/exec/obidos/ASIN/0262031418/10314706213263011)
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)
Good
introductory book (if we have time)
A few tutorials
and problem solving sessions will be organized to help the students better understand the
material.
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 pseudocode 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.
Students are assumed to have some knowledge and
practical skills of operating within at least one environment (e.g. MSWindows, Unix,
Linux).
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 
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 
Chapter
6 
week 3 Tues  Hardik + Soujanya  
Topic
# 6 
Chapter
7 
week 3 Tues  Sneha + Dave  
Topic
# 7 
Chapter
8 
week 3 Thur  
Topic # 8 
Chapter
11 
week 3 Thur  Durgesh + Israth  
Topic # 9 
Chapter
12 
week 4 Tues  Victor  
Topic
# 1 
Huffman codes and trees  Chapter 16.3  week 4 Thur  removed  
Topic description of research and project (12 p. each) due  week 3  
Midsemester 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 
week 5 Thur  Shiranchal  
Topic
# 13 
Chapter 32.2+ 
week 5 Thur  Chris + Chiraq  
Topic
# 14 
week 6 Tues  Ed + Brandon  
Topic # 15 
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 
Chapter
24 
week 7 Tues  Adarsh, Durgesh + Israth  
Topic
# 18 
Chapter
26.12 
week 6 Thur  Dave M + Borshin  
Topic # 19 

week 7 Thur  Ray + Jacob  
Topic #20  NPCompleteness 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  
Midsemester 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) 
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 