Computing Science 671

 Title: Algorithms and Hard Problems

Fall Term 2003


ALWAYS UNDER CONSTRUCTION

Check this page frequently for Updated Info

See the detailed Course Schedule for links to papers referenced in Class. That page is updated frequently.

Updated Oct. 28, 2003


 
Nov. 4 ---  project proposal.



Time: T R 1400 1520
CSC B 41  

Professor: Joe Culberson


Purpose

This course will consider some of the foundations of a Science of Algorithms, both empirical and theoretical. As a background course for those requiring it, I will attempt to relate some of the theory of algorithm analysis and complexity issues to empirical and practical results. As a research course, I will try to develop topics and project ideas that could lead to research suitable for a thesis.

Prerequisites

Students should have a strong background in algorithms. CMPUT 304 or permission of the instructor. Some familiarity with probability would be most helpful.

Course Outline

The following are representative topics; the detailed material presented will vary depending upon class and instructor interests at the time the course is given, as well as available time. The course will be loosely based around a study of SAT, graph coloring, clique finding and other hard problems, leading into subjects such as complexity classes, approximation algorithms, probabilistic and heuristic algorithms, random graph theory, algorithm analysis and adversary arguments. I will likely spend time on a study of hard regions and phase transitions in problem spaces. Interestingly, there is strong tie-in to physics of disordered systems.

Detailed Course Schedule and Topics click here

Assignments

Assignment one

Assignment Two

Grading and Work Load

Class participation, including suggestions of ideas and asking of questions may be reflected in your grade. A portion of the course is in the form of seminars and student presentations.

In the first two months of lectures I will cover some relevant material on complexity, algorithms, some relevant random graph theory and perhaps a few papers in the area. I will be assuming some familiarity with some of these topics, and this will be more in the form of a review/survey since clearly any one of these is a full term course in itself.


Assignment 1
20%
Assignment 220%
Seminar 110%
Class Participation (discretionary)10%
Written Project 40%


General information on projects  and project grading can be found here (click). All assignments and projects are individual work. All assignments and projects must accurately reflect the work of the student submitting them. Use proper citations for any references or assistance you use, including assistance from the instructor and other students. Check out the following web site carefully, in particular the code of student behavior.

Avoiding Plagiarism (click
)

Any evidence of cheating will be reported to the dean with consequences possibly as severe as expulsion from the program. If you are unsure whether a certain action is appropriate, ask me first.

Texts

None. On request to be reserved in Cameron library are
  1. Author: Michael R. Garey and David S. Johnson
    Title: Computers and Intractability, A guide to NP-completeness
  2. Author: Christos H. Papadimitriou
    Title: Computational Complexity
  3. Author: Michael Sipser
    Title: Introduction to the Theory of Computation
  4. Author: Edgar M. palmer
    Title: Graphical Evolution: an introduction to the theory of random graphs

Papers

Various papers from the areas of interest (click) 

A Background Reading List

Further Reading

The following may also be useful background if you are doing empirical work and for thinking about presentations.
Experimental Algorithmics.
Parberry's Guide to Presenting a Paper 
Parberry's Guide to Refereeing a Paper 

Notes

From time to time I may make additional notes available from this page.
Normally, I do NOT give power point or overhead lectures, but
Here is the introductory Lecture