CSCI 467: Algorithm Analysis   Spring 2008

Instructor:  John Martin, IACC 258 A13, Phone (231)-8197, email  John.Martin@ndsu.edu

Class:  MWF, 1-1:50,  Van Es 101

Office Hours:  10:30-11:30 MWF and by appointment.

Course Description:  The design, correctness, and analysis of algorithms and data structures.

Course Objectives:   By the end of the course, the student should be familiar with the "big-O" and "big-Theta" notation for describing the asymptotic behavior of quantities such as algorithm runtimes and space requirements.  He/she should be able to analyze simple algorithms and to compare quantitatively the efficiency of alternative algorithms.  He/she should be acquainted with some of the most familiar abstract data types, such as trees, binary trees, and graphs, and with the analysis of the corresponding algorithms; he/she should understand the analysis of some standard algorithms involving searching and sorting.

Prerequisites:  CSCI 161, MATH 166, and either CSCI 222 or MATH 270.

Homework:  There will be regular homework assignments, and homework will count 20% of the final grade.  For the most part the assignments will be problems from the text.   In order to be counted, homework must be turned in by the due date.

Evaluation Procedures and Criteria:    The grade will be based on hour-exam scores, homework, and final-exam score.   The overall exam grade is the larger of the two following numbers:  i) the score obtained by weighting each of the three hour-exams 24% and the final exam 28%;   ii) the score obtained by weighting each of the two highest hour-exams 28% and the final 44%.  The final total will be obtained by weighting the exam grade 80% and the homework 20%. 

At the end of the semester, an overall percentage of 85 or higher will be an A, 70 or higher will be at least a B, and 55 or higher will be at least a C.  The cutoffs for these letter grades may, but will not necessarily, drop slightly below these numbers.

Makeup exams will normally not be given, and makeup exams after the class has taken the exam will almost never be given.  If you miss an exam, then your exam grade will be computed the second way described above (weighting the two remaining exams and the final exam more), and the exam you miss will be the exam that is dropped. 

Attendance:  Although class attendance is not required, you are strongly encouraged to attend class; you are responsible for what goes on in class, including any topics that are not in the text but are discussed in class, and any changes in dates or policies described here.  

Course Calendar:   The three exams are scheduled for Monday, February 11; Friday, March 28; and Friday, April 25.   The final exam is scheduled for Tuesday, May 6, at 8AM.   

Here is a list of the chapters in the text that I would like to cover.  We will probably not get to the end of the list.   The plan is to go in order through the list until the semester comes to an end.  This list is tentative, and may be revised.  In a number of chapters, I may delete certain sections or portions of sections, and I may not present the results in exactly the same form that they are presented in the text.

     Chapter 1.  The Role of Algorithms in Computing  (I won't say much about this in class, but it's short and you should read it.)
     Chapter 2.  Getting Started
     Chapter 3.  Growth of Functions
         (Note: this is an important chapter.  In discussing it we will also look at some of the topics in Appendix A.)
     Chapter 4.  Recurrences
     Chapter 5.  Probabilistic Analysis and Randomized Algorithms
     Chapter 6.  Heapsort
     Chapter 7.  Quicksort
     Chapter 8.  Sorting in Linear Time
     Chapter 9.  Medians and Order Statistics
     Chapter 11.  Hash Tables
     Chapter 12.  Binary Search Trees
     Chapter 21.  Data Structures for Disjoint Sets
     Chapter 22.  Elementary Graph Algorithms
     Chapter 23.  Minimum Spanning Trees
     Chapter 24.  Single-Source Shortest Paths
     Chapter 31.  Number-Theoretic Algorithms
     Chapter 34.  NP-Completeness

Required Student Resources:  The text is Cormen, Leiserson, Rivest, and Stein, Introduction to Algorithms (Second Edition), McGraw-Hill, 2001.

Special Needs:  Any students with disabilities or other special needs who need special accommodations in this course are invited to share these concerns or requests with the instructor as soon as possible.

Academic Responsibility Policy:  All work in this course must be completed in a manner consistent with NDSU University Senate Policy, Section 335: Code of Academic Responsibility and Conduct (http://www.ndsu.nodak.edu/policy/335.htm).